2008-03-05 10:42:36     Questions on booting u-boot

Document created by Aaronwu Employee on Sep 17, 2013
Version 1Show Document
  • View in full screen mode

2008-03-05 10:42:36     Questions on booting u-boot

J.J. Krabbendam (NETHERLANDS)

Message: 52107    I just started working on the blackfin environment so please be patient...


I have a couple of questions on the boot process. I take the bootloaders.html file as a starting point.


        check BMODE pins

        check OTP memory (if available)

        configure selected boot source

        load LDR from source and execute the init section

            reprogram clocks

            initialize memory

            returns to Boot ROM

        load the rest of the application into external memory (if necessary)


            usually this is Das U-Boot

            could be MicroMonitor

            could be a standalone application

            could be the Linux kernel



I have a u-boot.ldr programmed into NOR flash at address 0x2000.0000


4) The command bfin-uclinux-ldr -s u-boot.ldr shows that there is 1 init section with size 0x12C which is loaded at address 0xFFA0.0000, however if I do bfin-uclinux-objdump -S u-boot then I see only one routine in the 0xFFA0.0000 area and that is _bfin_reset (FFA0.000C - FFA0.0032). I don understand what is executed here. Can someone explain?


5) Until now I was used to a u-boot that runs from flash at reset until it copies itself to RAM and continues from there. When dealing with blackfin, does u-boot entirely run from RAM? Is it possible to do a RAM test before u-boot is copied into RAM by the blackfin bootrom?





Edit: fixed layout




2008-03-05 11:02:16     Re: Questions on booting u-boot

Mike Frysinger (UNITED STATES)

Message: 52109    you should read the documentation on the Boot ROM wrt typical LDR initialization ... this is documented in the HRM for your part as well as some of the VDSP loader manuals.  we do not document these things in our wiki.  you can find pointers and such here:



if you look at how the ldr is generated, you see this flag:

--initcode cpu/blackfin/initcode.o

that means we set that object as the initcode block


yes, the blackfin port relocates to ram before executing anything else ... we plan on providing POST hooks for people to run pre-ram-relocation tests, but that does not exist yet