Template:FAQ/Questions/verdex buildroot update 1

270 Branch to increase boot speed on larger flash devices
This FAQ answer assumes a basic understanding of UBoot

March 5, 2007:

An update to the 270 branch in the buildroot has been added to help increase boot speed on the larger flash devices.

Here is the commit comment which summarizes what has been done:

This update changes the way the kernel uImage is stored, and the default flash-map.

The new map is:

0x00000000-0x0003FFFF  U-boot 0x00040000-N           JFFS2 rootfs N-top of flash         Kernel uImage

"top of flash" is the highest address in the flash for that gumstix.

This varies from gumstix to gumstix. "N" is the highest address in the flash for that gumstix, minus 0x00100000 (1MB) -- that is, we reserve 1MB for the kernel uImage. This is plenty for a modular bzImage kernel; it will not be enough for kernels with lots of builtin drivers, or for otherly-compressed kernels.

This update defines 2 helpful u-boot commands: "katload" and "katinstall" which will read/write kernel uImages from/to the correct location in flash, based on a specified offset from the top of flash and a RAM address. If the RAM address isn't specified, the system default is used.

So you can do this now:

loadb  katinstall 100000 katload 100000 bootm

The "katinstall" command will copy from a2000000 (or specified address) to flash, erasing as necessary. "katload" will load the image from a top-of-flash offset to RAM.

This change was made because for large flash, JFFS2 scanning to find the boot/uImage file to load was taking a long long long long long long time.

Under linux, the new uImage location will show up as /dev/mtd2 and so new uImages can be written from within linux using flashcp:


 * 1) flashcp /path/to/uImage /dev/mtd2