Beagleboard:擦除 NAND 闪存,现在无法启动

use*_*785 4 u-boot beagleboard

我有一个 Beagle 板 OMAP3530-GP,我已将内核和 rootfs 复制到 SD 卡的两个分区中并想启动它。

SD卡第1分区:FAT32引导分区,文件顺序相同:MLO u-boot.bin uImage uInitrd

在分区 2:rootfs

现在我最初启动了它,我得到了:

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Error: reading boot sector
Loading u-boot.bin from nand


U-Boot 2011.03 (Apr 20 2011 - 07:19:53)

OMAP3530-GP ES3.0, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0
In:    serial
Out:   serial
Err:   serial                                                                                                                                                                   
Beagle Rev C1/C2/C3                                                                                                                                                             
timed out in wait_for_pin: I2C_STAT=0                                                                                                                                           
No EEPROM on expansion board                                                                                                                                                    
Die ID #5738000300000000040323091100e002                                                                                                                                        
Hit any key to stop autoboot:  0                                                                                                                                                
MMC: block number 0x1 exceeds max(0x0)                                                                                                                                          
** Can't read from device 0 **                                                                                                                                                  

** Unable to use mmc 0:1 for fatload **                                                                                                                                         
MMC: block number 0x1 exceeds max(0x0)                                                                                                                                          
** Can't read from device 0 **                                                                                                                                                  

** Unable to use mmc 0:1 for fatload **                                                                                                                                         
Wrong Image Format for bootm command                                                                                                                                            
ERROR: can't get kernel image!  
Run Code Online (Sandbox Code Playgroud)

我认为它在 NAND 中有一个较早的 u-boot.bin 正在读取并想擦除它,所以在一个奇怪的时刻做了:

OMAP3 beagleboard.org # nandecc sw                                                                                                                                              
SW ECC selected                                                                                                                                                                 
OMAP3 beagleboard.org # nand erase 0 80000                                                                                                                                      

NAND erase: device 0 offset 0x0, size 0x80000                                                                                                                                   
Erasing at 0x60000 -- 100% complete.                                                                                                                                            
OK                                                                                                                                                                              
OMAP3 beagleboard.org # nand erase 80000 160000                                                                                                                                 

NAND erase: device 0 offset 0x80000, size 0x160000                                                                                                                              
Erasing at 0x1c0000 -- 100% complete.                                                                                                                                           
OK
Run Code Online (Sandbox Code Playgroud)

再次启动时只注意到一些不可读的串行字符,并且引导加载程序不再出现。

然后我突然想到我可能已经删除了 NAND 中的 X-loader 1.4.2!我将它复制到我的引导分区,以便 X-loader 可以从 SD 卡而不是 NAND 启动。但是我在开机时看到相同的不可读字符:( :(

我该怎么办??如何让引导加载程序工作?

提前致谢

The*_*ist 5

您可以准备一个带有 x-loader( MLO ) 和u-boot.bin的 sd 卡,然后从它启动,如下所示:

  1. 断电比格板
  2. MLOu-boot.bin复制到 SD 卡(FAT32 分区)上。
  3. 插入 SD 卡
  4. 按住板上的“用户”键
  5. 打开电路板电源(先不要松开“用户”键)

这会强制比格犬从 SD 卡启动。如果 MLO 和 u-boot.bin 都正确复制到 sd 卡上,那么现在应该在串行控制台上看到 u-boot 提示。您现在可以在 u-boot 提示符下从 sd 卡和闪存中加载二进制文件到 nand。

  • @Mr.Hyde 在按上述顺序尝试上述命令之前,您可以尝试`mmc rescan 0` 或`mmc init`。通常为了获得快速准确的答复,请**[在 StackOverflow 本身上创建一个适当的单独问题,其中包含所有相关详细信息](http://stackoverflow.com/questions/ask)**。 (3认同)