[ELDK] U-Boot configuration kernel + rootfs squashfs image in NAND Flash, copy rootfs to ram, mount rootfs from ram

Wolfgang Denk wd at denx.de
Tue Jan 15 11:02:50 CET 2013

Dear Christoph,

In message <50F51711.9070707 at gmx.de> you wrote:
> i have an embedded system based on arm (tx28) with 128MB ram and
> 128MB NAND-flash with a working cross compilation toolchain.
> Now id like to get the following boot configuration to work:
> - kernel from NAND and root file system with squashfs from ram

Please note that no part of your request aappears to be related to
the ELDK, so your posting is actually off topic here.  You probably
have better chances for a helpful reply in a more appropiate mailing
list, say linux-embedded .

Second, you write some 200+ lines of description what you did and what
you think, and then ask for "help or suggestions", but I cannot see
any clear statement of what your specific questions are, or which
exact step is not working for you.  OK, there are some questions
intermingled with your text, but these are difficult to find.  You
might want to have a look at [1]; I'll try to answer whichever
questions I happen to find.

[1] http://catb.org/esr/faqs/smart-questions.html

> D) write this rootfs image from ram to NAND partition "rootfs"
> Maybe i do something wrong here. I use the u-boot nand write.trimffs
> command to write the rootfs image file to the "rootfs"
> partition of the NAND-flash.
> MX28 U-Boot > nand write.trimffs ${fileaddr} rootfs ${filesize}

Why are you using write.trimffs? Please see "doc/README.nand".

> MX28 U-Boot > printenv bootargs_ram_squashfs
> bootargs_ram_squashfs=run default_bootargs; setenv bootargs ${bootargs} 
> root=/dev/ram r initrd=${rootfsaddr} rootfstype=squashfs

This makes no sense to me.  Why do you use /dev/ram here?  Your
squashfs file system is in NAND flash, so the normal way would be to
just access it through the MTD block device emulation in Linux.

> The kernel documentation for the use of initramfs and initrd is quite
> confusing for me and there are nearly no kernel docs for squashfs in
> kernel 3.0. As far as i understand the initramfs method combines a kernel
> and the rootfs in one image. But this method does not use
> squashfs.

This should make you stop and wonder if you are doing the right thing.
Normally it gets used via MTD's block device emulation (as IIRC squashfs
lacks native MTD support).

>     Load Address: 40008000
>     Entry Point:  40008000

Are you sure these are correct?

> I believe that u-boot loads the kernel image from the 'linux'
> partition of my NAND-flash into the ram at starting address
> 0x40008000. What is the difference between Load Address
> and Entry Point by the way? In which case do they differ?

The load address is the start address of the area where the Linux
kernel image gets loaded/unpacked to, and the entry point is where the
code execution begins (which may or may not be the very start of the
image).  Aren't the names pretty much self-explaining?

> 8000(hex) is 32Kbyte. Where is this parameter defined?

You define these yourself when configuring and building your Linux
kernel image.

> I did not find it in my u-boot sources. Its confusing to have
> parameters and output that i don't understand. Anyway, I

There is _some_ documentation about this.  Also, the mkimage command
has a help option; the Linux kernel Makefiles that are used to create
the images have some comments, and last but not least there is a ton
of information in the U-Boot mailing list archives.

> Any help or suggestions are highly appreciated.

And what would your specific questions be?
> I have succesfully tried to boot:
>      - kernel via tftp and rootfs via nfs
>      - kernel from NAND and rootfs (jffs2) from NAND

Why did you not do the (to me) next logical step when using quashfs
and try

	- kernel from NAND and rootfs (quashfs) from NAND


Best regards,

Wolfgang Denk

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Common sense and a sense of humor  are  the  same  thing,  moving  at
different speeds.  A sense of humor is just common sense, dancing.
                                                        - Clive James

More information about the eldk mailing list