Skip to contentSkip to conversation

how to do:root filesystem on flash?

DISCUSSION Callebaut Benoit 4 participants 6 messages Jun 12, 2003 – Jun 13, 2003

lore
Share & tools
lore
#0 lore raw

I,
1 : Create a cramfs filesystem with the right endianess from your nfs filesystem using mkcramfs.
Burn it into the flash( at the start of the flash).

2 : In your kernel config set the "root=" option to : "/dev/mtdblock0" Enable Flash MTDBlock support and the right options like CFI,... Set up the start of the flash and its length
Enable Cramfs in filesystem
Disable NFS as root filesystem.

Rebuild your kernel and flash it.
Reboot the board en enjoy.

PS : This question was already a 100 times answered. Search in the mailing list before asking such a question.
Or maybe a better idea : One may build a FAQ or a list of Howtos on such common questions.

Benoit Callebaut

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#1 lore raw

VxWorks.c ??

Hi,

I'm trying to reverse-engineer a "home gateway" - used for a home
automation project I worked on. It currently runs VxWorks, but I'd like to see if I can port Linux to it. From what I can tell, it's an XPC860 with two serial ports, a USB port, a FEC and an Rs-485 port. It has two FLASH chips and two RAM chips - probably 32MB of each.

First of all, I need to replace the VxWorks boot loader with U-Boot.
I have the VxWorks loader capable of loading files from my computer via ftp, but the Linux kernel requires virtual memory support, which the boot loader doesn't have. I've looked everywhere for "vxhack.c" and all the ftp sites are gone.

After that, I need to set up a development environment. I have the
ppc kernel source, but I'm not able to get libc and u-boot to compile. Should I give up and just use the ELDK? Also, what JTAG Emulators and programmers do you use that are compatible with Linux and MPC8xx?

Thanks in advance,

Mark
P.S. I did search the list and read the FAQ.
P.P.S. If someone is willing to walk me through this reverse-engineering process, I'd be willing to write it up as a "process" FAQ. I've found some pretty useful tools already for decompiling the kernel code.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#2 lore raw

Re: VxWorks.c ??

Dear Mark,

Quoted 6 lines · in message <009c01c330d8$425ee3d0$040110ac@junior> you wrote:

I'm trying to reverse-engineer a "home gateway" - used for a home
automation project I worked on. It currently runs VxWorks, but I'd like to see if I can port Linux to it. From what I can tell, it's an XPC860 with two serial ports, a USB port, a FEC and an Rs-485 port. It has two FLASH chips and two RAM chips - probably 32MB of each.

860 with USB? So there is an external USB controller on the board?

Quoted 5 lines

First of all, I need to replace the VxWorks boot loader with U-Boot.
I have the VxWorks loader capable of loading files from my computer via ftp, but the Linux kernel requires virtual memory support, which the boot loader doesn't have. I've looked everywhere for "vxhack.c" and all the ftp sites are gone.

I have no doubt that using U-Boot is a Good Thing (TM) per se, but there is no real requirement to use it - you can load and start a Linux kernel using the VxWorks loader, too. You have to tweak the Linux kernel's bootstrap loader code a bit, though. There is NO requirement that the boot loader must support virtual memory - U-Boot doesn't do this either.

Quoted 3 lines

After that, I need to set up a development environment. I have the
ppc kernel source, but I'm not able to get libc and u-boot to compile. Should I give up and just use the ELDK? Also, what JTAG Emulators and

It is an interesting experience to go through all steps necessary to build your own toolchain and to debug all the funny little details that can go wrong. But it's time consuming, too. If you just need the toolchain now, feel free to use the ELDK.

If you want to build your own set of tools please go on, but I recommend to separate these two projects ;-)

Quoted 1 line

programmers do you use that are compatible with Linux and MPC8xx?

The BDI200 was already recommended. I agree with that statement 100%. On the other hand, the price is a bit high if you need the tool just for a hobby project. For the MPC8xx you can also use the BDM4GDB parallel port adapter. Not that powerful, not that fast, limited to 8xx CPUs, not as reliable, plus some other disadvantages if compared against the BDI2000. But the, you can either build it for negligible cost, or buy the ready-to-use adapter for just 50 Euro.

Best regards,

Wolfgang Denk

--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: [email protected] Conceptual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonant
minds. - Frederick Brooks Jr., "The Mythical Man Month"

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#3 lore raw

Re: VxWorks.c ??

Wolfgang,

I can't find any chip that looks like it drives the USB interface.
There are a few buffers, I believe. I know the USB wasn't used for the pilot. Only the two RS232's (one console), RS485 and ethernet were used. It was in a plastic box that hid the JTAG port and LED's. I'm not really concerned about getting the USB working right now.

Thanks for the BDM4GDB link. It looks like that's my best option. I
don't want to put more $$$ than I have to in it. Since I'm trying to save $150 (the cost of an RS-485 programmable thermostat), and learn some things about embedded Linux, it doesn't make sense to spend $1600 on a programmer :).

Thanks!

Mark
----- Original Message -----
From: "Wolfgang Denk" <[email protected]>
Sent: Thursday, June 12, 2003 8:19 AM
Subject: Re: VxWorks.c ??

Quoted 38 lines
Quoted 6 lines · in message <009c01c330d8$425ee3d0$040110ac@junior> you wrote:

I'm trying to reverse-engineer a "home gateway" - used for a home automation project I worked on. It currently runs VxWorks, but I'd like to see if I can port Linux to it. From what I can tell, it's an XPC860 with two serial ports, a USB port, a FEC and an Rs-485 port. It has two FLASH chips and two RAM chips - probably 32MB of each.

860 with USB? So there is an external USB controller on the board?

Quoted 5 lines

First of all, I need to replace the VxWorks boot loader with U-Boot. I have the VxWorks loader capable of loading files from my computer via ftp, but the Linux kernel requires virtual memory support, which the boot loader doesn't have. I've looked everywhere for "vxhack.c" and all the ftp sites are gone.

I have no doubt that using U-Boot is a Good Thing (TM) per se, but there is no real requirement to use it - you can load and start a Linux kernel using the VxWorks loader, too. You have to tweak the Linux kernel's bootstrap loader code a bit, though. There is NO requirement that the boot loader must support virtual memory - U-Boot doesn't do this either.

Quoted 4 lines

After that, I need to set up a development environment. I have the ppc kernel source, but I'm not able to get libc and u-boot to compile. Should I give up and just use the ELDK? Also, what JTAG Emulators and

It is an interesting experience to go through all steps necessary to build your own toolchain and to debug all the funny little details that can go wrong. But it's time consuming, too. If you just need the toolchain now, feel free to use the ELDK.

If you want to build your own set of tools please go on, but I recommend to separate these two projects ;-)

Quoted 1 line

programmers do you use that are compatible with Linux and MPC8xx?

Quoted 7 lines

The BDI200 was already recommended. I agree with that statement 100%. On the other hand, the price is a bit high if you need the tool just for a hobby project. For the MPC8xx you can also use the BDM4GDB parallel port adapter. Not that powerful, not that fast, limited to 8xx CPUs, not as reliable, plus some other disadvantages if compared against the BDI2000. But the, you can either build it for negligible cost, or buy the ready-to-use adapter for just 50 Euro.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#4 lore raw

Re: VxWorks.c ??

Dear Mark,

Quoted 6 lines · in message <00d601c330f2$489159d0$0320a8c0@onstardevserv> you wrote:

I can't find any chip that looks like it drives the USB interface.
There are a few buffers, I believe. I know the USB wasn't used for the pilot. Only the two RS232's (one console), RS485 and ethernet were used. It was in a plastic box that hid the JTAG port and LED's. I'm not really concerned about getting the USB working right now.

Then it either is no MPC860 CPU, or there is no USB support. Only the MPC823 and MPC850 CPUs have a USB controller on-chip.

Quoted 1 line

Thanks for the BDM4GDB link. It looks like that's my best option. I

:-)

Best regards,

Wolfgang Denk

--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: [email protected] All a hacker needs is a tight PUSHJ, a loose pair of UUOs, and a warm place to shift.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#5 lore raw
In reply to Callebaut Benoit

----- Original Message -----
From: "Callebaut Benoit" <[email protected]>
To: "linuxppc-embedded mailing list" <[email protected]>
Sent: Thursday, June 12, 2003 5:33 PM
Subject: RE :how to do:root filesystem on flash?

Quoted 5 lines

I,
1 : Create a cramfs filesystem with the right endianess from your nfs filesystem using mkcramfs.
Burn it into the flash( at the start of the flash).

Is it must be burned from the start of the flash? My u-boot bin code is burned at the start of the flash.

Quoted 2 lines

2 : In your kernel config set the "root=" option to : "/dev/mtdblock0"

In my system, the flash is registered as /dev/flasha, should i pass the parameter "root=/dev/flasha" to kernel?

Quoted 8 lines

Enable Flash MTDBlock support and the right options like CFI,... Set up the start of the flash and its length
Enable Cramfs in filesystem
Disable NFS as root filesystem.

Rebuild your kernel and flash it.
Reboot the board en enjoy.

Quoted 8 lines

PS : This question was already a 100 times answered. Search in the mailing list before asking such a question.
Or maybe a better idea : One may build a FAQ or a list of Howtos on such common questions.

Benoit Callebaut

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/