[U-Boot-Users] newbie: How to avoid memory area overlapping?

甜瓜 littlesweetmelon at gmail.com
Mon May 19 11:00:52 CEST 2008


Howdy,
    I use uboot + linux kernel + ramdisk to start the board. The
kernel and ramdisk (say uImage and Ramdisk)
are stored on my PC. Each time, by typing:
    tftp 200000 uImage
    tftp 600000 Ramdisk
these two files are loaded to memory. Then enter "bootm 200000 600000"
to real boot. Well, I am a little
confused about the booting.
1. There are only 32MB memory on board. As documented, uboot will copy
itself from flash to the tail of
    memory address. That means, if flash_size=512KB, the memory image
of uboot would located at
    0x01F80000. Am I right? But "md 0x01F80000" does not show data
pattern similar to uboot itself.
    Why? Is this address assigned to other purpose?
2. uImage and Ramdisk are gzipped files. uboot should decompress them
first. Which address will uboot
    store decompress data? Since uboot didn't know the file size of
uImage and Ramdisk, how does uboot
    arrange memory areas to avoid overlapping? I mean decompressed
data might overwrite each other or
    overwrite the original gzipped data.
3. When the control goes to linux, linux will manage whole memory. But
it does not know anything about
    uboot arrangement. How does linux avoid occasionally damaging the
decompressed data of
    uImage/Ramdisk which hosted by uboot?

    Best regards,
---
ShenLei




More information about the U-Boot mailing list