要想移植操作系统,第一步当然是要知道怎么烧程序了。
先看看BeagleBoard怎么烧程序。
正常情况下,如果从MMC启动,你将会从串口终端(115200 8N1)得到如下数据:...40T...
这是omap3's的bootrom在从MMC卡启动之前扫描uart是否可以作为boot源输出来的,如果你没有看到这些数
正常情况下,如果从MMC启动,你将会从串口终端(115200 8N1)得到如下数据:...40T...
这是omap3's的bootrom在从MMC卡启动之前扫描uart是否可以作为boot源输出来的,如果你没有看到这些数
据,但是又想从mmc启动,很可能bootrom根本不会到达MMC启动那一步。如果你之前使用nand,很可能你的
nand包含了一些损坏的数据。
到底发生了什么呢?
可以通过板子上的用户按键来从不同的地方启动。正常的启动方式(按键没有按下时)是:
NAND-->USB-->UART-->MMC
按照这个启动顺序,如果NAND有些地方(使OMAP3的bootrom混乱而阻止从MMC启动)坏了,会导致MMC
可以通过板子上的用户按键来从不同的地方启动。正常的启动方式(按键没有按下时)是:
NAND-->USB-->UART-->MMC
按照这个启动顺序,如果NAND有些地方(使OMAP3的bootrom混乱而阻止从MMC启动)坏了,会导致MMC
启动失败。
我们现在该怎么做?
首先,我们必须在上电时按下用户键,这时启动顺序是:
USB-->UART-->MMC-->NAND。
这样即使NAND上的数据不对,我们依然可以获得boot源。
我们现在该怎么做?
首先,我们必须在上电时按下用户键,这时启动顺序是:
USB-->UART-->MMC-->NAND。
这样即使NAND上的数据不对,我们依然可以获得boot源。
这样,我们仍然有3种启动方式可选择:MMC、USB、UART
下面,主要讲从MMC与USB恢复的详细信息。
下面,主要讲从MMC与USB恢复的详细信息。
MMC恢复
以下步骤将会让你的开发板恢复出厂状态。
如果nand出现问题,并且你的MLO(x-loader)文件损坏将会导致启动失败,比如下面这种情况:
...40T.........
以下步骤将会让你的开发板恢复出厂状态。
如果nand出现问题,并且你的MLO(x-loader)文件损坏将会导致启动失败,比如下面这种情况:
...40T.........
Texas Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector
Starting on with MMC
Reading boot sector
150832 Bytes Read from MMC
Starting OS Bootloader from MMC...
Starting OS Bootloader from MMC...
U-Boot 1.3.3 (Jun 20 2008 - 17:06:22)
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle Board + LPDDR/NAND
RAM Configuration:
Bank #0: 80000000 128 MB
Bank #1: 88000000 0 kB
NAND: NAND device: Manufacturer ID: 0x2c, Chip ID: 0x01 ( AND 128MiB 3,3V 8-bit)
NAND bus width 16 instead 8 bit
0 MiB
<hang, no prompt>
OMAP3 Beagle Board + LPDDR/NAND
RAM Configuration:
Bank #0: 80000000 128 MB
Bank #1: 88000000 0 kB
NAND: NAND device: Manufacturer ID: 0x2c, Chip ID: 0x01 ( AND 128MiB 3,3V 8-bit)
NAND bus width 16 instead 8 bit
0 MiB
<hang, no prompt>
这种情况可能会在MLO与U-BOOT版本配合有问题时出现。因此这是你必须使用特殊的(?)MLO来恢复获得u
-boot提示信息。
将MMC/SD卡里的MLO换成 recovery MLO,这样当我们按下用户键上电时,如下:
...40T.........
Texas Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector
Starting on with MMC
Reading boot sector
150832 Bytes Read from MMC
Starting OS Bootloader from MMC...
Starting OS Bootloader from MMC...
U-Boot 1.3.3 (Jun 20 2008 - 17:06:22)
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle Board + LPDDR/NAND
RAM Configuration:
Bank #0: 80000000 128 MB
Bank #1: 88000000 0 kB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
OMAP3 beagleboard.org #
OMAP3 Beagle Board + LPDDR/NAND
RAM Configuration:
Bank #0: 80000000 128 MB
Bank #1: 88000000 0 kB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
OMAP3 beagleboard.org #
u-boot版本好像没有问题了,然后你就可以开始擦除nand:
OMAP3 beagleboard.org # nand unlock
device 0 whole chip
nand_unlock: start: 00000000, length: 268435456!
NAND flash successfully unlocked
OMAP3 beagleboard.org # nand erase 0 80000
device 0 whole chip
nand_unlock: start: 00000000, length: 268435456!
NAND flash successfully unlocked
OMAP3 beagleboard.org # nand erase 0 80000
NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 beagleboard.org #
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 beagleboard.org #
如果不按着用户键重新上电,板子将正常工作。庆贺下,板子终于可以运行了。
MMC恢复问题解决方法
一些人会遇到了从MMC启动的问题,这是由于MMC格式化有问题或者拷贝的MLO有问题。下面这个示例演
一些人会遇到了从MMC启动的问题,这是由于MMC格式化有问题或者拷贝的MLO有问题。下面这个示例演
示了,即使用户按钮(40T)被按下,仍然从NAND启动的情况。
...40T...
Texas Instruments X-Loader 1.41
Starting OS Bootloader...
Starting OS Bootloader...
从MMC正确的启动结果应该如下
...40T...
Texas Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector
Starting on with MMC
Reading boot sector
150832 Bytes Read from MMC
Starting OS Bootloader from MMC...
Starting OS Bootloader from MMC...
如果MMC没有显示出来,这意味着MLO有问题或者格式化不合适,或者仅仅是MMC卡有些小问题。
操作顺序:
1,MMC分区(详细参考beagle board)
2,格式化MMC(详细参考beagle board)
3,复制 MLO
4,复制 u-boot.bin
5,插入SD卡。然后按着用户键上电,应该就可以从MMC启动了
1,MMC分区(详细参考beagle board)
2,格式化MMC(详细参考beagle board)
3,复制 MLO
4,复制 u-boot.bin
5,插入SD卡。然后按着用户键上电,应该就可以从MMC启动了
注意:MLO与x-loader.bin.ift的区别为MLO是用在SD上的,而后者是用在nand启动的。
有了上述方便的恢复方法了,也就不需要USB恢复和uart恢复了。
若以后需要USB恢复或者UART恢复,再来研究这一块内容。