DM365 booting from NAND

 

 

1.  NAND

 

注意在uboot里面写ubl要先打补丁。针对EEC。。 

 

块擦除: 128K+4K Bytes   块的大小 128K = 0x2 0000

页: 2K + 64 byte       页大小2K = 0x800

 

UBL页数  20,480 /2112  = 15pages.

 

 

 

address offset

Value

Description

0

 

0x0

 

CIS/IDI block?

1

0

0x00021000

a1aced00 00000100 0000000F 00000001

UBL signature

 

 

 

 

 

 

1

0x00021840

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 0 Address

Value

Address

32-Bits

Description

0

a1aced00

 

0xA1AC EDxx

Magic number (0xA1ACEDxx)

4

 

 

Entry Point Address of UBL

Entry point address for the user bootloader (absolute address)

8

 

 

Number of pages in UBL

Number of blocks (size of user bootloader in number of blocks)

12

 

 

Starting Block # of UBL

Block number where user bootloader is located

16

 

 

Starting Page # of UBL

Page number where user bootloader is present

20

 

 

PLL settings -M

PLL setting -Multiplier (only valid is Magic Number indicates PLL enable)

24

 

 

PLL settings -N

PLL setting -Divider (only valid is Magic Number indicates PLL enable)

28

 

 

Fast EMIF setting

Fast EMIF settings(only valid is Magic Number indicates fast EMIF boot)

 

 

 

 

 

1.2.       擦除整片NAND

nand scrub.chip

Erasing at 0x4280000 --  52% complete.

nand_erase: Failed erase status = c1, page 0x00008740

nand0: MTD Erase failure: -5

注意先擦除再写第二次!!!

 

1.3.       ubl描述符

nand erase 0x20000 0x10

读取SD卡的 UBL描述符(位于第1.不是第0! 块大小0x200

mmc[1] read 0 0x80700000 1 1

查看

md 0x80700000

80700000: a1aced00 00000100 00000028 00000075 

80700010: 00000000 00000000 00000000 00000000

 

a1aced00 00000100 0000000F 00000002 00000000

修改 Page 0 Address = 12 (75) 处为第2块:

nm.b 0x80700008

F

q

nm.b 0x8070000C

2

q

 

修改 75  1 : 由于地址对齐,(75) 不是 0x8070000F ,而是 0x8070000C

80700000: a1aced00 00000100 00000028 00000075 

 

 

ubl描述符前16字节(0x10)到nand中的第1(BLOCK ERASE : 128K+4K Bytes  块的大小 128K = 0x20000)

nand[2] write 0x80700000  0x20000 0x10        

 

16 bytes : sd描述符

32 bytes : nand描述符

 

查看

nand[3] read 0x80700000 0x20000 10               

md 0x80700000

 

2.        ubl内容

读取SD750xEA00处)的内容(为ubl的实际内容) 30K = 30,720 = 0x7800 = 0x3C 个块(SD块大小0x200)到内存:

 

mmc read 0 0x80700000 75 0x3C

 

写这些内容到nand的第2块中:

nand write 0x80700000  0x40000 0x7800

*********************************************************************
注意:
UBL for nand 合适的描述符为
00000000h: 00 ED AC A1 00 01 00 00 0A 00 00 00 01 00 00 00 ; .憩?...........
00000010h: 01 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF ; ........

UBL内容开始地址20000+800 = 0x20800

uboot for nand 的合适的描述符为
00000000h: 66 ED AC A1 00 00 08 81 98 00 00 00 19 00 00 00 ; f憩?..仒.......
00000010h: 01 00 00 00 00 00 08 81 FF FF FF FF FF FF FF FF ; .......?

UBoot内容开始地址 0x320800

*********************************************************************

 


[1] mmc read   dev_no    dest_address    start_block    block_count

[2] nand write    mem_address     flash_offset   size

[3] nand read    mem_address     flash_offset   size

你可能感兴趣的:(DM365 booting from NAND)