使用Jtag燒寫uboot,以及bootdelay=0的解決辦法
一、XP 中安裝GiveIO 的方法
正確連接Jtag燒寫線,如果提示找不到cpu可能是插線接反。
1.首先將giveIO 文件夾下的Giveio.sys 拷貝到C:WindowsSystem32drivers 目錄下。
2.進(jìn)入控制面板,點(diǎn)擊“添加硬件”。
3.選擇“是,我已經(jīng)連接了此硬件”
4.選擇“添加新的硬件設(shè)備”,點(diǎn)擊“下一步”
5.選擇“安裝我手動(dòng)從列表選擇的硬件(高級(jí))”,點(diǎn)擊“下一步”
6.選擇“端口(COM 和LPT)”,點(diǎn)擊“下一步”
7.在廠商中選擇“(標(biāo)準(zhǔn)端口類型)”,點(diǎn)擊“從磁盤安裝(H)…”
8.在跳出的“從磁盤安裝”窗口中點(diǎn)擊“瀏覽(B)…”
9. 選擇當(dāng)前目錄中的“giveio.inf”文件。
10. 在跳出的“硬件安裝”窗口中點(diǎn)擊“仍然繼續(xù)(C)”
最后點(diǎn)擊“完成”,結(jié)束安裝,現(xiàn)在可以運(yùn)行ZSJF24X0.exe 來對(duì)NandFlash 進(jìn)行燒寫了。
二、正常燒寫
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 燒寫起始?jí)K
target size (0x4000*n) =0x20000 燒寫占用字節(jié)數(shù)
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參數(shù)保存在地址 0x20000~0x3FFFF
那么我們要做的就是?擦除參數(shù)保存的區(qū)域內(nèi)容,或者說是讓這個(gè)區(qū)域內(nèi)容變得混亂一些。這樣uboot在加載時(shí)會(huì)提示CRC校驗(yàn)錯(cuò)誤,從而加載默認(rèn)參數(shù),實(shí)現(xiàn)我們的目的。
我的做法是將uboot.bin文件寫入這個(gè)參數(shù)區(qū)域中,實(shí)現(xiàn)CRC檢驗(yàn)失敗的目的。
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 起始?jí)K數(shù)為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é)數(shù)要減1。
破解延時(shí)問題后,建議在uboot下使用命令擦除參數(shù)區(qū)域。
erase 20000 3ffff