2009年3月30日 星期一

●bios知識起點



bios知識起點:幾個重要知識
一、位址空間解析
(1) 0 ~ 9_FFFF:屬於DOS的基本記憶體,被MCH控制提交到DRAM。
(2) A_0000 ~ B_FFFF:此區域能提交到Device 2(集成顯示裝置)、Device 1(PCI Express周邊設備)以及提交到ICH進行處理。按Dev2/Dev1/ICH優先順序進行映射。
當處理器在SMM模式下,此區域供SMM 使用,此時,此區域將被MCH提交到DRAM相同的位置上。
(3) C_0000 ~ F_FFFF:共256KB的區域被稱為PAE(Programed Attribute Memory)區域,可定義4種類型屬性:Disable、Read/Write、Read-Only以及Write-Only。根據這些操作類型可以提交到DRAM和ICH處理。這些區域的初始狀態是Disable屬性,也就是說,缺省時將得交到ICH處理。可由BIOS BOOTLOCK進行對類型的屬性設置,從而達到shadow memory效果。。
(4) E_0000 ~ E_FFFF:典型地被用作BIOS使用。俗稱E_Segment。
(5) F_0000 ~ F_FFFF:被提交到LPC匯流排上的BIOS,它是High BIOS的別名,初始屬性是disable,將被MCH控制直接提交到ICH處理。俗稱F_Segment。
(6) F0_0000 ~ FF_FFFF:這1M的空間可以選擇保留給ISA使用,這段空間將不提交至DRAM,轉交ICH處理。
(7) TOLUD(Top Of Low Usable DRAM)由Host Bridge Registers設置,在位址空間最低DRAM memory區域的頂端,在TOLUD下的TSEG區域可設置為1M、2M或8M,processor在SMM模式下將被提交至DRAM相同位址上。
(8 ) IGD區域:可供MCH內部集成的Graphics Device使用,MCH內被定義為Device 2。大小由1M ~ 64M。
(9) E000_0000 ~ EFFF_FFFF:這段空間典型地被用作為PCI Express 配置空間,由Host Bridge(Dev0)的PCIEXBAR寄存器設置。缺省的Pci Express Base Address設置為0_E000_0000,共256M大小。每個Device的每個Functon大小為4K(包括PCI的256 Byte和PCI Express增強的空間共4K)
★ PCI Express Bus 定義了256條Bus:Bus0 ~ Bus255,每條Bus下可掛32個設備:Device0 ~ Device 31,每個設備下又可執行8個Function:Function 0 ~ Function 7。
★ PCI Express空間大小可得:256 × 32 × 8 × 4096 = 256M
(10) FEC0_0000 ~ FEC7_FFFF:這段區域固定分配IOAPIC中斷控制器使用,訪問這段區域將被提交到ICH處理。
(11) FEC8_0000 ~ FECF_FFFF:附加的APIC增加區域提交至 PCI Express 埠,當不設此區域時,整個APIC 配置區域(FEC0_0000 ~ FECF_FFFF)將提交至 ICH。
(12) FEDA_0000 ~ FEDB_FFFF:可選為HSEG區域以供SMM模式下使用。被重新映射至A_0000 ~ B_FFFF區域。
(13) FEE0_0000 ~ FEEF_FFFF:這段區域保留給FSB中斷信號使用。當PCI Express 或 ICH上的設備往這段區域寫資料時,將以中斷信號形式提交至FSB上,不會提交到DRAM。
(14) FFE0_0000 ~ FFFF_FFFF:此區域固定分配給BIOS 使用。共2M空間,將直接提交至ICH處理。

二、關於PCI Bus
1、PCI Bus是一種原生32位,通過Dual Address Cycle形式來實現64位元定址的資料匯流排。
2、PCI的配置寄存器集成在MCH(North Bridge)內部:CONFIG_ADDRESS寄存器和CONFING_DATA寄存器,通過埠 CF8H ~ CFBH 來實現32位元資料訪問 CONFIG_ADDRESS寄存器;通過埠 CFCH ~ CFFH 來實現32位元資料訪問 CONFIG_DATA 寄存器。
3、PCI 設備訪問位址如下:

4、訪問的形式:
mov eax,80000090h
mov dx, CF8h
out dx, eax
mov dx, CFCh
in eax,dx
… …
三、I/O 空間
1、系統提供的64K IO定址空間(0 ~ FFFF)劃分幾種情況:
★分為MCH(hostbridge) 使用和 ICH 使用,大部分供ICH外部設備使用。例如:CF8h ~ CFFh 這些埠固定分配供MCH用來訪問PCI Configuration Space。
★分為系統固定分配及按情況進行分配。如:0 ~ 1Fh 埠固定分配給ICH的DMA 控制器使用。
★一些埠被保留未用。
2、一般PCI設備都可選用memory空間和IO空間進行設備訪問。在PCI設備的configuration Register可對PCICMD寄存器的IOSE位設為IO空間訪問,根據IOBASE及IOLIMIT寄存器設置IO埠位址。

四、MCH(hostbridge)提交到ICH後的轉發處理
ICH包括PCI-to-PCI bridge 、PCI-to-ISA bridge、USB Controller、PCI Express Ports等等。ICH收到經MCH提交來的地址,相當多都分派到PCI-to-ISA bridge(LPC Controller)中的Firmware Hub及LPC bus。

沒有留言:

張貼留言