uboot 1.1.6 移植8900网卡+tftp
u-boot本身有cs8900網(wǎng)卡驅(qū)動程式,所以需要修改的地方不多。由于數(shù)據(jù)通過總線傳送,所以要注意地址空間的設(shè)置和總線的設(shè)置。
1) 修改/include/configs/smdk2410.h文件:
#define CONFIG_ETHADDR? ? 08:00:3e:26:0a:5b
#define CONFIG_IPADDR? ?? ???192.168.1.18
#define CONFIG_SERVERIP? ?? ???192.168.1.19
CONFIG_IPADDR? ???宏是你研發(fā)板的IP地址。tftp client
CONFIG_SERVERIP? ?宏是你安裝tftp server的系統(tǒng)的IP
確定網(wǎng)卡的基地址,我的研發(fā)板CS8900接在nGCS3上,而且是A24引腳為高時使能CS8900A的IO模式,所以代碼為:
#define CONFIG_DRIVER_CS8900? ? 1? ? /* we have a CS8900 on-board */
#define CS8900_BASE? ?? ???0x19000300
#define CS8900_BUS16? ?? ???1 /* the Linux driver does accesses as shorts */
2) BWSCON寄存器的設(shè)置,BANKCON3寄存器的設(shè)置
? ?由于網(wǎng)卡占用的是nGCS3之上地址,所以需要設(shè)置/board/smdk2410/lowlevel.S文件中相應(yīng)寄存器的值:
#define B3_BWSCON? ?? ?? ?(DW16 + WAIT + UBLB)
#define B3_Tacs? ?? ?? ?? ? 0x0? ? /* 0clk */
#define B3_Tcos? ?? ?? ?? ? 0x3? ? /* 4clk */
#define B3_Tacc? ?? ?? ?? ? 0x7? ? /* 14clk */
#define B3_Tcoh? ?? ?? ?? ? 0x1? ? /* 1clk */
#define B3_Tah? ?? ?? ?? ? 0x0? ? /* 0clk */
#define B3_Tacp? ?? ?? ?? ? 0x3 /* 6clk */
#define B3_PMC? ?? ?? ?? ? 0x0? ? /* normal */
3) 設(shè)置完畢后能重新編譯。
4) tftp測試:
?
以上改完了就能實現(xiàn)tftp功能.
下面說說我的心得.
1? 網(wǎng)線可以是路由器出來的, 不一定要是直接到pc的網(wǎng)口. 以上192.168.1.19 是pc的地址.
2??xp端的tftp軟件可以用 tftp32, 就一個執(zhí)行文件,綠色的,不需要安裝, 可以自己去弄,? 這個也是別人介紹我用的.
3? 連接上以后如果想重新燒錄nand的bootloader斷,請參考如下
1)燒入內(nèi)核HB2440# tftp 0x30000000 uImage //先燒錄進(jìn)SDRAMHB2440# nand erase 0x0 0x00200000 //擦出NAND flash待燒入空間HB2440# nand write 0x30000000 0x0 0x178400 //使用nand命令從SDRAM到NAND指定 //區(qū)域2)燒入文件系統(tǒng) HB2440# tftp 0x30000000 yaffs.img //先燒錄進(jìn)SDRAMHB2440# nand erase 0xa00000 0x3600000 //擦出NAND flash待燒入空間HB2440# nand write 0x30000000 0xa00000 0x106d0d0//使用nand命令從SDRAM到//NAND指定區(qū)域
是先用tftp命令把uboot.bin傳入4g內(nèi)存索引中的地址0x30000000,然后用nand write 寫入從0x30000000開始的資料到nand地址0x0 到0x178400(這個大小可變,根據(jù)你的bin文件大小).
? 這個方法我試過燒錄一個只有nand支持功能的bin文件上去, 成功.?? 重新開機(jī)后,串口調(diào)試界面只有提示符, 輸入tftp指令,提示錯誤指令. 呵呵.. 說明用tftp功能燒錄bootloader成功.
總結(jié)
以上是生活随笔為你收集整理的uboot 1.1.6 移植8900网卡+tftp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用jQuery发送简单的Ajax请求
- 下一篇: 汇编INT中断和I/O指令【获取主板时钟