[U-Boot] problem detecting CFI

wpa at fastmail.fm wpa at fastmail.fm
Fri Oct 2 01:25:31 CEST 2009


I just found something interesting - 

In my previous email I thought the CFI detection was running from DRAM,
but that assumption seems to be wrong. Previously I though it was
running from DRAM because I traced the execution using BDI into 
mips/start">cpu/mips/start.S relocate_code, it runs to the place where
it relocates itself. To be exact, here -

addi t0, s2, in_ram - start
jr t0
nop

I checked and found the pc register changed to pointing to a SDRAM
location, so relocation seems to be fine. I also load the symbol-file to
the DRAM location at that point. 
But afterwards if I set breakpoint to board_init_r, the breakpoint is
not triggered.

Then I realized if I keep using the same symbol-file, the breakpoint at
board_init_r can be triggered, and at that point, I can see the PC is
still pointing to the flash.

I don't understand how can the code, which has been relocated to SDRAM
at one point, suddenly going back to run in the flash when it calls
board_init_r. Can someone help me?

Thanks.


On Thu, 01 Oct 2009 16:47 -0500, wpa at fastmail.fm wrote:
> I have a working u-boot 2008.10 on a mips 32 board and am trying to port
> it over to u-boot 2009.06.
> So I used buildroot 2009.08 to build the tool chain for my mips32 board
> as well as u-boot2009.06. I also copied the previous u-boot
> initialization code to
> initialize timer, serial port, ram and etc from u-boot 2008.10 to
> 2009.06.
> 
> Right now the problem is the new u-boot 2009.06 does not detect cfi of
> the flash. I am pretty sure u-boot is running from SDRAM when the
> problem happens because the address is in the range of SDRAM. Please let
> me know if you have any suggestion - I am running out of ideas. I am
> attaching the printout from both the working u-boot 2008.10 and u-boot
> 2009.06 below.
> 
> Thanks a lot.
> 
> U-Boot 2009.06 (Sep 30 2009 - 18:41:26)
> 
> Reset Cause: Hardware Reset
> DRAM:  64 MB
> Top of RAM usable for U-Boot at: 98000000
> Reserving 139k for U-Boot at: 97fdc000
> Reserving 4352k for malloc() at: 97b9c000
> Reserving 36 Bytes for Board Info at: 97b9bfdc
> Reserving 36 Bytes for Global Data at: 97b9bfb8
> Reserving 128k for boot params() at: 97b7bfb8
> Stack Pointer at: 97b7bf98
> Now running in RAM - U-Boot at: 97fdc000
> flash detect cfi
> not found
> flash detect cfi
> not found
> 
> 
> U-Boot 2008.10 (Sep 30 2009 - 11:37:03)
> 
> Reset Cause: Hardware Reset
> DRAM:  64 MB
> Top of RAM usable for U-Boot at: 98000000
> Reserving 736k for U-Boot at: 97f44000
> Reserving 4352k for malloc() at: 97b04000
> Reserving 44 Bytes for Board Info at: 97b03fd4
> Reserving 36 Bytes for Global Data at: 97b03fb0
> Reserving 128k for boot params() at: 97ae3fb0
> Stack Pointer at: 97ae3f98
> Now running in RAM - U-Boot at: 97f44000
> flash detect cfi
> fwc addr b0000000 cmd f0 f0 8bit x 8 bit
> fwc addr b0000000 cmd ff ff 8bit x 8 bit
> fwc addr b0000055 cmd 98 98 8bit x 8 bit
> is= cmd 51(Q) addr b0000010 is= 4f 51
> fwc addr b0000555 cmd 98 98 8bit x 8 bit
> is= cmd 51(Q) addr b0000010 is= 4f 51
> fwc addr b0000000 cmd f0 f0f0 16bit x 8 bit
> fwc addr b0000000 cmd ff ffff 16bit x 8 bit
> fwc addr b00000aa cmd 98 9898 16bit x 8 bit
> is= cmd 51(Q) addr b0000020 is= 5151 5151
> is= cmd 52(R) addr b0000022 is= 5252 5252
> is= cmd 59(Y) addr b0000024 is= 5959 5959
> device interface is 2
> found port 2 chip 1 port 16 bits chip 8 bits
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list