在彙編的**裡,已經進行了串列埠初始化,在這裡更進一步初始化串列埠,它是通過呼叫下面的**實現的:
#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...