使用Jtag燒寫uboot,以及bootdelay=0的解決辦法
一、XP 中安裝GiveIO 的方法
正確連接Jtag燒寫線,如果提示找不到cpu可能是插線接反。
1.首先將giveIO 文件夾下的Giveio.sys 拷貝到C:WindowsSystem32drivers 目錄下。
2.進入控制面板,點擊“添加硬件”。
3.選擇“是,我已經連接了此硬件”
4.選擇“添加新的硬件設備”,點擊“下一步”
5.選擇“安裝我手動從列表選擇的硬件(高級)”,點擊“下一步”
6.選擇“端口(COM 和LPT)”,點擊“下一步”
7.在廠商中選擇“(標準端口類型)”,點擊“從磁盤安裝(H)…”
8.在跳出的“從磁盤安裝”窗口中點擊“瀏覽(B)…”
9. 選擇當前目錄中的“giveio.inf”文件。
10. 在跳出的“硬件安裝”窗口中點擊“仍然繼續(xù)(C)”
最后點擊“完成”,結束安裝,現在可以運行ZSJF24X0.exe 來對NandFlash 進行燒寫了。
二、正常燒寫
E:aa>sjf2410.exe /f:u-boot.bin
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.4 |
| (S3C2410X & SMDK2410 B/D) |
| --- 18/02/2004 [Nx] |
+------------------------------------+
Usage: SJF /f:
> S3C2410X(ID=0x0032409d) is detected.
[SJF Main Menu]
0:K9F1208 prog 1:28F128J3A prog 2:AM29LV800 Prog 3:Memory Rd/Wr
4:Exit
Select the function to test:0
[K9F1208 NAND Flash JTAG Programmer]
K9F1208 is detected. ID=0xec76
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :0
[SMC(K9S1208V0M) NAND Flash Writing Program]
Source size:0h~1c4abh
Available target block number: 0~4095
Input target block number:0
target start block number =0 燒寫起始塊
target size (0x4000*n) =0x20000 燒寫占用字節(jié)數
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :2
三、bootdelay=0的解決辦法
首先我們要明確:
1. uboot燒寫地址為0x0~0x20000
2. uboot參數保存在地址 0x20000~0x3FFFF
那么我們要做的就是?擦除參數保存的區(qū)域內容,或者說是讓這個區(qū)域內容變得混亂一些。這樣uboot在加載時會提示CRC校驗錯誤,從而加載默認參數,實現我們的目的。
我的做法是將uboot.bin文件寫入這個參數區(qū)域中,實現CRC檢驗失敗的目的。
E:aa>sjf2410.exe /f:u-boot.bin
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.4 |
| (S3C2410X & SMDK2410 B/D) |
| --- 18/02/2004 [Nx] |
+------------------------------------+
Usage: SJF /f:
> S3C2410X(ID=0x0032409d) is detected.
[SJF Main Menu]
0:K9F1208 prog 1:28F128J3A prog 2:AM29LV800 Prog 3:Memory Rd/Wr
4:Exit
Select the function to test:0
[K9F1208 NAND Flash JTAG Programmer]
K9F1208 is detected. ID=0xec76
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :0
[SMC(K9S1208V0M) NAND Flash Writing Program]
Source size:0h~1c4abh
Available target block number: 0~4095
Input target block number:8 起始塊數為8,那么開始地址就是0x4000*8=20000
target start block number =8
target size (0x4000*n) =0x20000 終止地址為20000+1FFFF=3FFFF
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :2
說明:起始地址是由0開始的,所以加上字節(jié)數要減1。
破解延時問題后,建議在uboot下使用命令擦除參數區(qū)域。
erase 20000 3ffff