Chinaunix首页 | 论坛 | 博客
  • 博客访问: 561020
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: LINUX

2010-03-23 22:41:23

要想移植操作系统,第一步当然是要知道怎么烧程序了。
先看看BeagleBoard怎么烧程序。
    正常情况下,如果从MMC启动,你将会从串口终端(115200 8N1)得到如下数据:...40T...
这是omap3's的bootrom在从MMC卡启动之前扫描uart是否可以作为boot源输出来的,如果你没有看到这些数
据,但是又想从mmc启动,很可能bootrom根本不会到达MMC启动那一步。如果你之前使用nand,很可能你的
nand包含了一些损坏的数据。
    到底发生了什么呢?
    可以通过板子上的用户按键来从不同的地方启动。正常的启动方式(按键没有按下时)是:
    NAND-->USB-->UART-->MMC
    按照这个启动顺序,如果NAND有些地方(使OMAP3的bootrom混乱而阻止从MMC启动)坏了,会导致MMC
启动失败。
    我们现在该怎么做?
    首先,我们必须在上电时按下用户键,这时启动顺序是:
    USB-->UART-->MMC-->NAND。
    这样即使NAND上的数据不对,我们依然可以获得boot源。
 
这样,我们仍然有3种启动方式可选择:MMC、USB、UART
    下面,主要讲从MMC与USB恢复的详细信息。
    MMC恢复
    以下步骤将会让你的开发板恢复出厂状态。
 
     如果nand出现问题,并且你的MLO(x-loader)文件损坏将会导致启动失败,比如下面这种情况:
 
...40T.........
Texas Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector
150832 Bytes Read 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
这种情况可能会在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
150832 Bytes Read 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 #
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
NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 beagleboard.org #
如果不按着用户键重新上电,板子将正常工作。庆贺下,板子终于可以运行了。
MMC恢复问题解决方法
    一些人会遇到了从MMC启动的问题,这是由于MMC格式化有问题或者拷贝的MLO有问题。下面这个示例演
示了,即使用户按钮(40T)被按下,仍然从NAND启动的情况。
...40T...     
Texas Instruments X-Loader 1.41
Starting OS Bootloader...
从MMC正确的启动结果应该如下
...40T...
Texas Instruments X-Loader 1.41
Starting on with MMC
Reading boot sector
150832 Bytes Read 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启动了
注意:MLO与x-loader.bin.ift的区别为MLO是用在SD上的,而后者是用在nand启动的。

有了上述方便的恢复方法了,也就不需要USB恢复和uart恢复了。
若以后需要USB恢复或者UART恢复,再来研究这一块内容。
 

 
阅读(2800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~