日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uboot中IDE移植

發布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uboot中IDE移植 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.配置

首先要支持IDE需要在CONFIG_COMMANDS中添加CFG_CMD_IDE命令,然后要添加IDE的相關配置信息。不看代碼就不知道需要哪些信息,可以先編譯一下試試,如果出錯就會提示哪些宏沒有定義,直接定義就行了,而且在u-boot的README文件中沒有相關信息,這一點也感覺有點兒不解,為什么沒有IDE的相關配置說明?

我是搜索/include/configs文件夾中的配置文件,支持IDE的配置文件有幾個,但多是PPC的,ARM的只有shannon.h而且CPU用的是sa1100,其它ARM的開發板好像都不支持IDE,或者說沒有把u-boot的IDE移植過去。又看了幾個支持IDE的配置文件,大概需要以下幾個配置:

#define CFG_ATA_BASE_ADDR 0x04000000 /* Offset for data I/O */??
#define CFG_ATA_IDE0_OFFSET 0x0000

#define CFG_ATA_REG_OFFSET 0 /* Offset for alternate registers */??
#define CFG_ATA_DATA_OFFSET 0 /* Offset for normal register accesses */???
#define CFG_ATA_ALT_OFFSET 0

#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */??
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */

配置完了,一編譯又出現新的錯誤,說有些函數沒有定義,如inb, outb, inw, outw, insw, outsw等,查看了一下cmd_ide.c文件,發現里面相關的配置信息里有一個關于IO操作的配置,不同的板子引用了不同的IO操作的頭文件,這些頭文件都在/include/asm-xxx目錄里,當然s3c44b0的就應該在/include/asm-arm里。打開io.h,發現里面已經有這幾個函數的宏定義了,但被一個宏__io給控制著,可能這個宏沒有定義,也不知道這個宏應該在哪兒定義,看形狀像是編譯器的一個選項,但又沒地兒去查,于是就在下面重新定義了那些IO的操作宏

2006-09-1??
今天開始調試,都是超時,沒有反應,后來看IDE的寄存器地址發現板上的地址線居然連得都是亂的,導致硬盤的寄存器地址在配置時很麻煩,就在ata.h中重新定義了宏。

感覺地址應該沒問題,但編譯后仍然無法識別硬盤,考慮到是不是數據線寬度不同,于時就查看low_level_init.s,發現nGCS2是16位,應該沒有問題;又想到是不是時序有問題,就改了nGCS2 的配置,把所有的時間參數都調到最大,然后判斷WAIT,結果不超時了,但是仍然不能識別設備。由于還沒弄清楚WAIT有多大影響,試試不就行了,于是去掉了WAIT判斷,結果可以識別設備,但識別為Removable Harddisk,提示信息如下:

Device 0: Model: Firm: 02 0 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)??
而我的硬盤是80G的,那么這些數據應該讀得不正確!

2006-9-1??
查了一下信號,又發現DMACK-應該是從主機向設備方向的信號,原來在IO初始化程序中DMACK-被初始化為輸入,而輸入可能導致設備處信號為低電平,而該信號又剛好是低電平有效,有可能導致數據的讀寫被忽略!后將PG3配置為輸出,高電平。???
結果讀出來的是不一樣了,但也不對啊容量還是不對,提示信息???
OK

Device 0: Model: Firm: 082 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)

ide_read dev 0 start 0, blocks 1 buffer at C6CF8C0

Powersaving FF

這是第一次,以后的就成了??
OK

Device 0: Model: Firm: 082 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)

ide_read dev 0 start 0, blocks 1 buffer at C6CF8C0

Powersaving FF??
Firm成了082

總結

以上是生活随笔為你收集整理的uboot中IDE移植的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。