UBL descriptor ti dm365 引导分析 RBL,UBLU-BOOT
来源:互联网 发布:php curl culopt 编辑:程序博客网 时间:2024/06/05 11:51
1. 分析NAND ubl
dump uboot 描述符(一页大小0x800)
nanddump -o -s 0x320000 -l 0x20 -f ./nand_uboot_description_dump.bin /dev/mtd0
写 uboot 描述符
nandwrite -s 0x320000 /dev/mtd0 ./nand_uboot_description_dump.bin
BLOCK ERASE : 128K+4K Bytes 块的大小 128K = 0x2 0000
PAGE SIZE: 2K + 64 byte 页大小2K = 0x800
nanddump[1] -o -f ./nand_ubl_dump.bin /dev/mtd0
ubl描述符 第1个块第0页: 0x20000
00020000h: 00 ED AC A1 00 01 00 00 0A 00 00 00 01 00 00 00
00020010h: 01 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
Page 0 Address
Value
Address
32-Bits
Description
0
A1ACED00
0xA1AC EDxx
Magic number (0xA1ACEDxx)
4
00000100
Entry Point Address of UBL
Entry point address for the user bootloader (absolute address)
8
0000000A
Number of pages in UBL
Number of blocks (size of user bootloader in number of blocks)
12
00000001
1 * 20000 = 0x2 0000
Starting Block # of UBL
Block number where user bootloader is located
16
00000001
2K = 0x800
Starting Page # of UBL
Page number where user bootloader is present
20
00000000
PLL settings -M
PLL setting -Multiplier (only valid is Magic Number indicates PLL enable)
24
FFFFFFFFF
PLL settings -N
PLL setting -Divider (only valid is Magic Number indicates PLL enable)
28
FFFFFFFFF
Fast EMIF setting
Fast EMIF settings(only valid is Magic Number indicates fast EMIF boot)
UBL内容开始地址20000+800 = 0x20800 第1个块第1页
结束地址 0x20800 + 0x7800(30K) = 0x28000
UBL二进制文件有数据的结束地方为20800 + 4550 = 0x24D50
00004550h: 44 4D 33 36 78 00 00 00 FF 00 00 00 00 00 00 00 ; DM36x..........
先烧写ubl描述符到 0x20000
再烧写ubl 到 0x20800
1.1. 先烧写ubl描述符到 0x20000
l 擦除nand
nand erase 0 0x8000000
l 下载ubl_description.bin到内存
tftp 0x80700000 ubl_description.bin
l 写32 字节uboot描述符到nand
nand write 0x80700000 0x20000 0x20
1.2. 再烧写ubl 到 0x20800
l 下载ubl
tftp 0x80700000 UBL_DM36x_NAND.bin
l 写入nand
nand write 0x80700000 0x20800 0x7800
2. U-boot
uboot描述符 第0x19=25个块第0页: 0x320000
00320000h: 66 ED AC A1 00 00 08 81 98 00 00 00 19 00 00 00 ; f憩?..仒.......
00320010h: 01 00 00 00 00 00 08 81 FF FF FF FF FF FF FF FF ; .......?
Page 0 Address
Value
Address
32-Bits
Description
0
A1ACED66
0xA1AC EDxx
Magic number (0xA1ACEDxx)
4
81080000
Entry Point Address of UBL
Entry point address for the user bootloader (absolute address)
8
00000098
Number of pages in UBL
Number of blocks (size of user bootloader in number of blocks)
12
00000019
0x19 * 0x20000 =
0x32 0000
Starting Block # of UBL
Block number where user bootloader is located
16
00000001
0x800
Starting Page # of UBL
Page number where user bootloader is present
20
81080000
PLL settings -M
PLL setting -Multiplier (only valid is Magic Number indicates PLL enable)
24
FFFFFFFFF
PLL settings -N
PLL setting -Divider (only valid is Magic Number indicates PLL enable)
28
FFFFFFFFF
Fast EMIF setting
Fast EMIF settings(only valid is Magic Number indicates fast EMIF boot)
Uboot内容:第0x19=25块第1页:0x320800
Uboot大小 0x4bab0 ; 结束处:0x320800 + 0x4bab0 = 0x36C2B0 (此地址和dump下来的有些出入,可能是因为这里的uboot烧写文件和已烧到nand里面的不同吧)
0x320800 + 0x60000 = 0x38 0800 => 0x40 0000
先烧写uboot描述符到 0x320000
再烧写uboot 到 0x320800
2.1. 先烧写uboot描述符到 0x320000
l 擦除nand
nand erase 0 0x8000000
l 下载uboot_description.bin到内存
tftp 0x80700000 uboot_description.bin
l 写32 字节uboot描述符到nand
当前块为0x19
nand write 0x80700000 0x320000 0x20
2.2. 再烧写uboot到 0x320800
l 下载uboot
tftp 0x80700000 u-boot.bin
l 写入nand 需要先得到uboot大小 0x4bab0 < 0x60000
nand write 0x80700000 0x320800 0x60000
2.3. 写内核到nand
下载内核镜像到内存某个地方,镜像大小0x20c7a8 = 2M
tftp 0x80700000 uImage.ti
擦除
nand erase 0x400000 0x400000
写入
nand write 0x80700000 0x400000 0x20c7a8
修改为nand启动
setenv bootcmd "nand read 0x80700000 0x400000 20c7a8 ; bootm 0x80700000"
saveenv
boot
3. NAND 正常引导信息
TI UBL Version: 1.50
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000019.
DONE
Jumping to entry point at 0x81080000.
U-Boot 2010.12-rc2 (Jan 12 2011 - 19:44:22)
Cores: ARM 297 MHz
DDR: 270 MHz
I2C: ready
DRAM: 128 MiB
NAND: 2048 MiB
MMC: davinci: 0, davinci: 1
Bad block table found at page 524224, version 0x01
Bad block table found at page 1048512, version 0x01
Bad block table found at page 524160, version 0x01
Bad block table found at page 1048448, version 0x01
nand_read_bbt: Bad block at 0x000000a00000
nand_read_bbt: Bad block at 0x000002fe0000
nand_read_bbt: Bad block at 0x000015b40000
nand_read_bbt: Bad block at 0x000017100000
nand_read_bbt: Bad block at 0x00001d420000
nand_read_bbt: Bad block at 0x00002ba80000
nand_read_bbt: Bad block at 0x000042440000
nand_read_bbt: Bad block at 0x000053320000
nand_read_bbt: Bad block at 0x000077be0000
Net: Ethernet PHY: GENERIC @ 0x00
DaVinci-EMAC
Hit any key to stop autoboot: 0
DM365 EVM #
[1] nanddump -o -l len -f <file> /dev/mtdX
- UBL descriptor ti dm365 引导分析 RBL,UBLU-BOOT
- UBL descriptor ti dm365 引导分析 RBL,UBLU-BOOT
- UBL descriptor ti dm365 引导分析 RBL,UBLU-BOOT
- DM365启动之—RBL、UBL分析
- DM365启动之—RBL、UBL分析
- dm365启动分析以及RBL、UBL、Uboot的简单介绍
- DM365的UBL源码分析
- DM365的UBL源码分析
- DM365的UBL源码分析
- DM365的UBL源码分析
- DM365串口下载UBL和u-boot
- DM36x之 RBL->UBL->U-BOOT
- DM365的UBL源码分析(转)
- DM365的UBL源码分析和移植
- AM1808的RBL UBL
- RBL.UBL,UBOOT
- RBL, UBL, Uboot的关系
- RBL, UBL, Uboot的关系
- 书摘---创业36条军规1:创业是怎么回事
- 批量删除GridView(DataGrid)选中项
- u-boot移植流程的C语言描述
- hadoop跨域集群构建实验
- 使cxgrid中某列下拉列表自动下拉
- UBL descriptor ti dm365 引导分析 RBL,UBLU-BOOT
- LINQ 多条件查询 where 条件组建
- PLSQL Developer设置及快捷键设置
- openAL跨平台开发,解码方式 wav & ogg
- ABAP运算符
- 纯静态页面实现301跳转
- silverlight使用DataGrid实现类似Treelistview效果
- 找出100~1000内的所有水仙花数
- Unix script 4 - variables part I