Re: [U-Boot-Users] Re: Problem with bootm command

in message 4221395@web.de you wrote:
I searched the do_bootm_linux() function to find out what u-boot is doing when booting linux using the bootm command, because the kernel patch i fou nd in the mailing list (which makes the kernel able to copy an initrd dire ctly from flash to ram) has to be used with kernel version 2.4.18, but i h ave 2.6.12.
It would be definitely helpful if you expolained which architecture you're working on. I speculate that this is ona ARM system?
It's an AT91RM9200
ll fail to load the ramdisk. But there is no such string in my enviroment, so shouldn't the bootm command copy initrd to it's designated sdram locat ion? It seems as it does not because the start address of the initrd, whic h u-boot delivers to the linux kernel is located in flash (one can read it in the kernel booting sequence; the error is that the initrd extends phys ical memory, but it's quite clear why this error occures).
I cannot parse this. Isn't your flash mapped in a physical address range? Or what exacty do you mean?
The point is the following. The flash is mapped from 0x10000000 to 0x10800000. u-boot delilveres the start address of the initrd to the kernel which is 0x10160000, if the image is located in flash. But the Kernel expects an address located in the sdram which is mapped from 0x2000000 to 0x24000000. Thats why the kernel is not able to mount the initrd. It tells me that the initrd extends physical memory
All this has been discussed many times before. May I suggest to search the archives?
Is it possible to force u-boot to copy the image to ram? Of course i could
Why should it do that? It's just a waste of boot time. THe kernel can poick it up from flash, so why bother with copying it to ram first?
Of course, it's a waste of time, but obviously my kernel is not able to pick it up from flash
Regards
Mirco _________________________________________________________________________ Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179

In message 4428425@web.de you wrote:
It's an AT91RM9200
OK, so it's an ARM as I expected.
The point is the following. The flash is mapped from 0x10000000 to 0x10800000. u-boot delilveres the start address of the initrd to the kernel which is 0x10160000, if the image is located in flash. But the Kernel expects an address located in the sdram which is mapped from
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Here is your problem. The kernel shouldn't do this. Patches have been posted several times before.
0x2000000 to 0x24000000. Thats why the kernel is not able to mount the initrd. It tells me that the initrd extends physical memory
[Can you please stick to the Netiquette and use shorter lines? Thanks.]
Why should it do that? It's just a waste of boot time. THe kernel can poick it up from flash, so why bother with copying it to ram first?
Of course, it's a waste of time, but obviously my kernel is not able to pick it up from flash
Then fix the problem where it happens: in your kernel. As mentioned before, all this has been discusses so many times before, including the required modifications.
Best regards,
Wolfgang Denk
participants (2)
-
Mirco Fuchs
-
Wolfgang Denk