感謝QQ群友5A55提供這個燒錄工具、萬光明修正OOB的配置問題,燒錄步驟如下:
1. 下載https://github.com/steward-fu/website/releases/download/iriver-d88/usbboot.zip
2. 按住背光後,再按一下Reset,背光按鍵需要持續按住,直到進入燒錄模式
進入燒錄模式後,確定安裝好驅動程式
3. 執行USB_Boot.exe
Welcome! USB Boot Host Software! USB Boot Software current version: 1.4b Handling user command. USBBoot :>
4. 執行boot 0進入特殊模式
USBBoot :> boot 0 Checking state of No.0 device: Unboot Now booting No.0 device: Download stage one program and execute at 0x80002000: Pass Download stage two program and execute at 0x80c00000: Pass Boot success! Now configure No.0 device: Now checking whether all configure args valid: Current device information: CPU is Jz4750 Crystal work at 24MHz, the CCLK up to 336MHz and PMH_CLK up to 112MHz Total SDRAM size is 16 MB, work in 4 bank and 32 bit mode Nand page size 4096, ECC offset 24, bad block ID 127, use 1 plane mode Configure success!
5. nquery可以查訊目前裝置資訊
USBBoot :> nquery 0 0 ID of No.0 device No.0 flash: Vendor ID :0xec Product ID :0xd7 Chip ID :0xd5 Page ID :0x29 Plane ID :0x38 Operation status: Success!
6. nerase抹除資料
USBBoot :> nerase 0 8192 0 0 Erasing No.0 device No.0 flash...... Finish! Operation end position : 8193 Force erase ,no bad block infomation !
P.S. 抹除的單位是Block,512KB * 8192 = 4GB
7. 燒錄U-Boot
USBBoot :> nprog 0 u-boot-nand-release.bin 0 0 -n Programing No.0 device... Erasing No.0 device No.0 flash...... Finish! Operation end position : 1 Force erase ,no bad block infomation ! Total size to send in byte is :512668 Image type : without oob It will cause 1 times buffer transfer. No.1 Programming... Finish! Checking... pass! End at 126
P.S. 燒錄的第一個參數是Page Offset,而不是Block Offset,如果只要單獨抹除U-Boot區塊,可以使用nerase 0 8 0 0
8. 燒錄Kernel
USBBoot :> nprog 1024 uImage 0 0 -n Programing No.0 device... Erasing No.0 device No.0 flash...... Finish! Operation end position : 12 Force erase ,no bad block infomation ! Total size to send in byte is :1776665 Image type : without oob It will cause 4 times buffer transfer. No.1 Programming... Finish! Checking... pass! End at 1152 No.2 Programming... Finish! Checking... pass! End at 1280 No.3 Programming... Finish! Checking... pass! End at 1408 No.4 Programming... Finish! Checking... pass! End at 1458
P.S. 如果只要單獨抹除Kernel區塊,可以使用nerase 8 8 0 0
9. 燒錄rootfs
USBBoot :> nprog 2048 rootfs.yaffs2 0 0 -o Programing No.0 device... Erasing No.0 device No.0 flash...... Finish! Operation end position : 24 Force erase ,no bad block infomation ! Total size to send in byte is :4173312 Image type : with oob and without ecc It will cause 8 times buffer transfer. No.1 Programming... Finish! Checking... Check Error! 0=3:ff fail! End at 2304 Can not connect device! Skip a old bad block ! No.2 Programming... Finish! Checking... Check Error! 0=2:ff fail! End at 2560 Can not connect device! Skip a old bad block ! No.3 Programming... Finish! Checking... Check Error! 0=0:ff fail! End at 2816 Can not connect device! Skip a old bad block ! No.4 Programming... Finish! Checking... Check Error! 0=21:ff fail! End at 3072 Can not connect device! Skip a old bad block ! No.5 Programming... Finish! Checking... Check Error! 0=40:ff fail! End at 3584 Can not connect device! Skip a old bad block ! No.6 Programming... Finish! Checking... Check Error! 0=a4:2 fail! End at 3968 Can not connect device! Skip a old bad block ! No.7 Programming... Finish! Checking... Check Error! 0=2:ff fail! End at 4224 Can not connect device! Skip a old bad block ! No.8 Programming... Finish! Checking... pass! End at 4317
P.S. 記得使用-o附帶OOB資訊
10. 完成