I have Linux (32-bit) up and running on multiple B4860QDS development boards. One annoying problem I am dealing with is that all of these systems hang when the 'reboot' command is issued, when the shutdown is nearly complete (not every time the command is issued, but in at least 50% of those cases). I have tried setting the 'reboot=' kernel parameter to all of the supported settings, with no luck.
Any ideas?
Thanks.
--ken
Hello Ken Lauffenburger,
This problem is caused by bad behaviour of spansion flash, this is a know issue and has already been addressed in the SDK document. Please refer to SDK-236666, it is described as the following.
On B4860QDS and B4420QDS, a hang may be observed when performing the reboot command at the kernel prompt. The system won't be able to reach the U-Boot prompt. This is when RCW is at NOR Flash.
This is a issue of NOR flash(S29GL01GS11TFI010)
Workaround:
1. Re-configure the board to read the RCW from I2C EEPROM.
2. Boot from NAND Flash such that the RCW, UBoot, etc. are in NAND flash.
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Yiping,
Is there a guide to do either or both of the workaround options you listed above? I have not been able to find anything.
I have tried to program the i2c eeprom using u-boot commands like the following:
=> i2c read 0x50 0.2 0x50 0x100000
=> md.b 0x100000 0x50
00100000: aa 55 aa 55 01 0e 01 00 14 0e 00 18 0c 00 0f 0a .U.U............
00100010: 00 00 00 00 00 00 00 00 1a 49 00 00 00 00 20 00 .........I.... .
00100020: 08 40 00 00 a9 00 00 00 0e 00 00 00 00 00 00 00 .@..............
00100030: 00 00 00 00 00 03 80 00 00 00 00 00 00 00 00 20 ...............
00100040: 00 00 00 00 00 00 60 09 09 4a 80 0c 00 00 10 13 ......`..J......
=> tftpboot 0x100000 rcw_2sgmii_2xaui_1600mhz_1866ddr.bin
Using FM1@DTSEC5 device
TFTP from server 192.168.5.20; our IP address is 192.168.5.100
Filename 'rcw_2sgmii_2xaui_1600mhz_1866ddr.bin'.
Load address: 0x100000
Loading: #
0 Bytes/s
done
Bytes transferred = 80 (50 hex)
=> md.b 0x100000 $filesize
00100000: aa 55 aa 55 01 0e 01 00 14 0e 00 18 0f 00 12 18 .U.U............
00100010: 00 00 00 00 00 00 00 00 54 98 00 00 90 00 a0 00 ........T.......
00100020: fc 02 50 00 a9 00 00 00 01 00 00 00 00 00 00 00 ..P.............
00100030: 00 00 00 00 00 01 b1 f8 00 00 00 00 14 00 00 20 ...............
00100040: 00 00 00 00 00 00 00 11 08 13 80 40 59 8f 92 8d ...........@Y...
=> i2c write $fileaddr 0x50 0.2 $filesize
=> i2c read 0x50 0.2 0x50 0x100000
=> md.b 0x100000 $filesize
00100000: aa 55 aa 55 01 0e 01 00 14 0e 00 18 0c 00 0f 0a .U.U............
00100010: 00 00 00 00 00 00 00 00 1a 49 00 00 00 00 20 00 .........I.... .
00100020: 08 40 00 00 a9 00 00 00 0e 00 00 00 00 00 00 00 .@..............
00100030: 00 00 00 00 00 03 80 00 00 00 00 00 00 00 00 20 ...............
00100040: 00 00 00 00 00 00 60 09 09 4a 80 0c 00 00 10 13 ......`..J......
=>
As you see, the EEPROM is apparently write-protected. How do I remove and restore the write protection?
Thanks.
--ken
Hello Ken,
Do you use the latest Linux SDK 1.8?
Would you please provide the Kernel log?
Thanks,
Yiping