20160722_jeffrey - silenceuncrio/diary GitHub Wiki
Index
- 0920 - 寫 KPI
- 1000 - M300 meeting - aaron 確定 八月一號 報到
- 1035 - 繼續 NAND Flash 問題
- 1325 - 套用 How-To use NAND boot on i.MX6UL EVK board 的
mx6ul_14x14_evk.h
- 1405 - 將 U-Boot 燒錄到 NAND Flash -
kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE
- 1415 - 試 MfgTool -
L3.14.52_1.1.0_ga-mfg-tools.tar.gz
- 1510 - MXIC FAE Frank 電話
- 1530 - winston 示範 怎麼看 code 有寫到 NAND Flash 去
- 1625 -
0x87800000
address - RAM 裡面的 U-Boot - 1700 -
local.conf
UBOOT_CONFIG = "nand"
- SD Card 開機 - U-Boot 有nand
command 可以使用
0920
先來寫 KPI
參考上一次的
- KPI -SW-Jeffrey-2015-H2.xls
- KPI -SW-Jeffrey-2016-H1.xls
針對 KPI -SW-Jeffrey-2016-H1.xls
來自評
再把下半年的 KPI -SW-Jeffrey-2016-H2.xls
寫一寫
1000
M300 meeting
john 也有參加
aaron 確定八月一號會報到
1035
繼續追 NAND Flash 的問題
1325
避免後續溝通上的麻煩
完全套用 How-To use NAND boot on i.MX6UL EVK board 的 mx6ul_14x14_evk.h
MfgTool 只燒錄 U-Boot 的 log 檔請看 - 2016-07-22-MfgTool.log
1405
該 log 其實有相當豐富的資訊
將 U-Boot 燒錄到 NAND Flash 去要使用 kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE
試著在 NXP 官網找 kobs-ng
相關的討論串
從 log - 2016-07-22-MfgTool.log 發現
Linux version 4.1.15-1.0.0-mfgtool+g3924425
我們用來搭配 kobs-ng
的 kernel 版本是 4.1.15-1.0.0-mfgtool+g3924425
目前使用的 MfgTool 是從官方下載的 L4.1.15_1.0.0_ga-mfg-tools.tar.gz
試著利用比較早的 MfgTool 看看
1415
試一下 MfgTool - L3.14.52_1.1.0_ga-mfg-tools.tar.gz
一樣只燒錄 U-Boot
log - 2016-07-22-01-MfgTool.log
Linux version 3.14.52-1.1.0_ga-mfgtool+g5f6f0a5
不過調整 boot mode 從 nand 開機一樣看不到 console 的任何訊息
1510
根根根 MXIC 的 FAE Frank 通完電話
他會請他們工程師幫忙試一下
我們將連結 - How-To use NAND boot on i.MX6UL EVK board mail 給 Frank 請他幫忙
1530
winston 來關心一下 NAND Flash boot 的 issue
使用我們自己有焊 NAND Flash 的 CPU 板從 SD Card 開機進 U-Boot
winston 示範一下怎麼看我們的 code 有寫到 NAND Flash 去
console 記錄在 sd_boot_winston_01.log
觀察 U-Boot build 出來的
- u-boot.map
- u-boot.bin
觀察 u-boot.map
*(.vectors)
.vectors 0x87800000 0x300 arch/arm/lib/built-in.o
0x87800000 _start
0x87800020 _undefined_instruction
0x87800024 _software_interrupt
0x87800028 _prefetch_abort
0x8780002c _data_abort
0x87800030 _not_used
0x87800034 _irq
0x87800038 _fiq
0x87800040 IRQ_STACK_START_IN
可知 0x87800000
- 啥?
然後 winston 在 U-Boot 下使用 md.b 87800000 100
=> md.b 87800000 100
87800000: be 00 00 ea 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................
87800010: 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................
87800020: 60 00 80 87 c0 00 80 87 20 01 80 87 80 01 80 87 `....... .......
87800030: e0 01 80 87 40 02 80 87 a0 02 80 87 ef be ad de ....@...........
87800040: de c0 ad 0b 00 f0 20 e3 00 f0 20 e3 00 f0 20 e3 ...... ... ... .
87800050: 00 f0 20 e3 00 f0 20 e3 00 f0 20 e3 00 f0 20 e3 .. ... ... ... .
87800060: 28 d0 1f e5 00 e0 8d e5 00 e0 4f e1 04 e0 8d e5 (.........O.....
87800070: 13 d0 a0 e3 0d f0 69 e1 0f e0 a0 e1 0e f0 b0 e1 ......i.........
87800080: 48 d0 4d e2 ff 1f 8d e8 50 20 1f e5 0c 00 92 e8 H.M.....P ......
87800090: 48 00 8d e2 34 50 8d e2 0e 10 a0 e1 0f 00 85 e8 H...4P..........
878000a0: 0d 00 a0 e1 60 09 00 eb 00 f0 20 e3 00 f0 20 e3 ....`..... ... .
878000b0: 00 f0 20 e3 00 f0 20 e3 00 f0 20 e3 00 f0 20 e3 .. ... ... ... .
878000c0: 88 d0 1f e5 00 e0 8d e5 00 e0 4f e1 04 e0 8d e5 ..........O.....
878000d0: 13 d0 a0 e3 0d f0 69 e1 0f e0 a0 e1 0e f0 b0 e1 ......i.........
878000e0: 48 d0 4d e2 ff 1f 8d e8 b0 20 1f e5 0c 00 92 e8 H.M...... ......
878000f0: 48 00 8d e2 34 50 8d e2 0e 10 a0 e1 0f 00 85 e8 H...4P..........
便可和 u-boot.bin
來交叉比對我們有沒有把 U-Boot image 燒錄到 SD Card 去
be00 00ea 14f0 9fe5 14f0 9fe5 14f0 9fe5
14f0 9fe5 14f0 9fe5 14f0 9fe5 14f0 9fe5
6000 8087 c000 8087 2001 8087 8001 8087
e001 8087 4002 8087 a002 8087 efbe adde
dec0 ad0b 00f0 20e3 00f0 20e3 00f0 20e3
00f0 20e3 00f0 20e3 00f0 20e3 00f0 20e3
28d0 1fe5 00e0 8de5 00e0 4fe1 04e0 8de5
13d0 a0e3 0df0 69e1 0fe0 a0e1 0ef0 b0e1
48d0 4de2 ff1f 8de8 5020 1fe5 0c00 92e8
4800 8de2 3450 8de2 0e10 a0e1 0f00 85e8
0d00 a0e1 4f09 00eb 00f0 20e3 00f0 20e3
00f0 20e3 00f0 20e3 00f0 20e3 00f0 20e3
88d0 1fe5 00e0 8de5 00e0 4fe1 04e0 8de5
13d0 a0e3 0df0 69e1 0fe0 a0e1 0ef0 b0e1
48d0 4de2 ff1f 8de8 b020 1fe5 0c00 92e8
4800 8de2 3450 8de2 0e10 a0e1 0f00 85e8
...
1625
尷尬的是 0x87800000
這個 address 讀到的是 RAM 裡面的 U-Boot
把 SD Card 拔掉後再做一次就會發現還是讀到一樣的東西
回頭再看 i.MX 6UltraLite Applications - Processor Reference Manual
Chapter 8 System Boot
看看有沒有什麼 address 可以直接 dump 出 NAND Flash 裡的值
1700
在 local.conf
有 UBOOT_CONFIG = "nand"
這樣敘述的狀態下
還是可以 build 出 SD Card 用的 image
開機進 U-Boot 後就可以發現有 nand
這個 command 可以使用
=> nand
nand - NAND sub-system
Usage:
nand info - show available NAND devices
nand device [dev] - show or set current device
nand read - addr off|partition size
nand write - addr off|partition size
read/write 'size' bytes starting at offset 'off'
to/from memory address 'addr', skipping bad blocks.
nand read.raw - addr off|partition [count]
nand write.raw - addr off|partition [count]
Use read.raw/write.raw to avoid ECC and access the flash as-is.
nand write.trimffs - addr off|partition size
write 'size' bytes starting at offset 'off' from memory address
'addr', skipping bad blocks and dropping any pages at the end
of eraseblocks that contain only 0xFF
nand erase[.spread] [clean] off size - erase 'size' bytes from offset 'off'
With '.spread', erase enough for given file size, otherwise,
'size' includes skipped bad blocks.
nand erase.part [clean] partition - erase entire mtd partition'
nand erase.chip [clean] - erase entire chip'
nand bad - show bad blocks
nand dump[.oob] off - dump page
nand scrub [-y] off size | scrub.part partition | scrub.chip
really clean NAND erasing bad blocks (UNSAFE)
nand markbad off [...] - mark bad block(s) at offset (UNSAFE)
nand biterr off - make a bit error at offset (UNSAFE)
=>