龍芯軟體開發(24) PCI裝置初始化2

2021-04-12 16:37:45 字數 1381 閱讀 4141

在彙編的**裡,已經進行了串列埠初始化,在這裡更進一步初始化串列埠,它是通過呼叫下面的**實現的:

#define

superio_cfg_reg 0x85

上面定義南橋裡串列埠暫存器位址。

static

void

initserial(void)

接著來看初始化鍵盤,

static

void

init_keyboard(void)

上面是開啟鍵盤和

rtc的功能,開啟聲音功能,開啟

sd資料線

4—7的訊號為1。

接著下來,就是初始化

ide埠的功能了,在龍芯裡

ide主要接硬碟和光碟機。它的**如下:

#define

ide_chipen_reg 0x40

#define

ide_cfg_reg 0x41

static

void

initide(void)

接著初始化中斷控制,**如下:

#define

irq_route_reg1 0x51

#define

irq_route_reg2 0x52

#define

irq_route_reg4 0x55

#define

irq_route_reg5 0x56

#define

irq_route_reg6 0x57

#define

pci_irq_type_reg 0x54

#define

irq(x) x

#define

parallel_irq     (irq(7)<<4)

#define

floppy_irq       (irq(6))

#define

com1_irq     (irq(4))

#define

com2_irq     (irq(3)<<4)

#define

pcia_irq     (irq(10)<<4)

#define

pcib_irq     (irq(11))

#define

pcic_irq     (irq(12)<<4)

#define

pcid_irq     (irq(13)<<4)

static

void

initirq(void)

這樣就初始化中斷源了。接著就啟用

io的功能,如下:

static

void

enable_io_decode(void)

經歷上面很多暫存器的初始化,才把南橋的功能設定完成。

龍芯軟體開發(23) PCI裝置初始化

2007 01 11 00 05 00 caimouse 閱讀數 5217 更多分類專欄 嵌入式軟體開發 目前在個人電腦裡,主機板上使用區域性匯流排技術把不同的裝置連線在一起,這樣就可以隨時新增裝置到匯流排上。比如主機板上一般都有很多 pci插槽,可以插入顯示卡 音效卡 網絡卡以及符合 pci匯流排...

龍芯軟體開發(25) PCI裝置初始化3

上面繼續初始化南橋之後,再接著下來,就要初始化 pci匯流排上其它的裝置了。看下面的 cpu configcache 上面重新配置龍芯 2e的快取。pci businit 1 pci bus initialization 上面繼續初始化 pci匯流排上的裝置,這個函式裡要初始化完成所有其它連線到 p...

龍芯軟體開發(26) PCI裝置初始化4

2007 01 19 23 18 00 caimouse 閱讀數 4805 更多分類專欄 嵌入式軟體開發 繼續來分析 pci裝置的搜尋過程,下面就是通過呼叫搜尋程式來實現的。for i 0,pb pci head i pci roots i pb pb next 接著去看看函式 pci scan d...