⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oemrpci.asm

📁 <BIOS研发技术剖析>书的源代码,包括完整的BIOS汇编语言源程序.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;             | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 2    | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     010h,      041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  044h,   1101111010111000b,  0,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 1      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#20       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 9    | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     048h,      041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  044h,   1101111010111000b,  1,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 2      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#21       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 10   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     050h,      044h,   1101111010111000b,  041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  2,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 3      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#22       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 11   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     058h,      043h,   1101111010111000b,  044h,   1101111010111000b,  041h,   1101111010111000b,  042h,   1101111010111000b,  3,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Audio       |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#23       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 12   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     060h,      044h,   1101111010111000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  0,        0        >

align   16
        public  ms_irq_route_table_sign
ms_irq_route_table_sign label byte
                        db      "$PIR"
ms_irq_route_table_ver  dw      0100h
ms_irq_route_table_size dw      32+(6*16)
ms_irq_route_table_bus  db      00h
ms_irq_route_table_dev  db      S5595_PCI2ISA_DEV_FUNC_NUM 
ms_irq_route_table_irq  dw      0h
ms_irq_route_table_id   dd      00081039h               ; SiS5595
ms_irq_route_table_mini dd      0h
ms_irq_route_table_resd db      11 dup(0)
ms_irq_route_table_cksm db      0
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; USB         |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
;             | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 1    | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     008h,      062h,   1101111010111000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  0,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AGP Bridge  |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
;             | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 2    | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     010h,      041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  044h,   1101111010111000b,  0,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 1      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#20       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 9    | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     048h,      041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  044h,   1101111010111000b,  1,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 2      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#21       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 10   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     050h,      044h,   1101111010111000b,  041h,   1101111010111000b,  042h,   1101111010111000b,  043h,   1101111010111000b,  2,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Slot 3      |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#22       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 11   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     058h,      043h,   1101111010111000b,  044h,   1101111010111000b,  041h,   1101111010111000b,  042h,   1101111010111000b,  3,        0        >

;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; Audio       |  Device Location  |        Int A Pin          |        Int B Pin          |        Int C Pin          |        Int D Pin          |                    |
;             +-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
; AD#23       | PCI Bus  Dev Num  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Chipset   Bitmap of IRQs  | Physical  Reserved |
; Device 12   | Number   (Shl 3)  | Reg       Routable to Pin | Reg       Routable Pin    | Reg       Routable Pin    | Reg       Routable Pin    | Slot Num  Byte     |
;-------------+-------------------+---------------------------+---------------------------+---------------------------+---------------------------+--------------------+
pci_irq_entry < 00h,     060h,      044h,   1101111010111000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  000h,   0000000000000000b,  0,        0        >
;---------------------------------------------------------------------------;

COMMENT ~
~
endif
;------------------------------------------------------------------------------;
;                                                                              ;
;                              16/32 Bit Code                                  ;
;                                                                              ;
;------------------------------------------------------------------------------;
;---------------------------------------;
; rth_pci_search_xlat                   ;
;---------------------------------------;--------------------------------------;
; This function translates a PCI device search index to a logical PCI device   ;
; number.  In the core BIOS there are several loops that search for each device;
; on the PCI bus.  In most systems it is acceptable to search from device 0    ;
; to device 1F or from device 1F down to 0.  But in some systems the search    ;
; order may need to be more complex than a simple first-to-last or             ;
; last-to-first scheme.  This routine allows any type of search order to be    ;
; implemented.  In general there are three possibilties:                       ;
;                                                                              ;
; 1. Simple First-to-Last search order (0 - 1F)                                ;
;    This is the easiest case.  To implement this type of search order, just   ;
;    do nothing since BL is already set properly on entry.                     ;
;                                                                              ;
; 2. Simple Last-to-First search order (1F - 0)                                ;
;    This is the most common search order because it gives priority to off     ;
;    board devices (usually higher device numbers) over on board devices       ;
;    (usually lower device numbers).  To implement this type of search order   ;
;    just do:   SUB  BL, 1Fh                                                   ;
;               NEG  BL                                                        ;
;               RET                                                            ;
;                                                                              ;
; 3. Complex search order                                                      ;
;    This type of search order may be needed if an on board device's number    ;
;    lies between two PCI expansion slots.  Another use for this complex order ;
;    is to control the searching order with setup questions.  To implement a   ;
;    complex search order some sort of list must be used.                      ;
;                                                                              ;
; NOTE: This function does not need to be modified for most platforms.         ;
;                                                                              ;
; NOTE: This function is assembled twice, once for real mode code, and once    ;
;       for 32 bit protected mode code.  All calls must be made using the      ;
;       callproc macro.  Do not modify and segment registers.                  ;
;                                                                              ;
; Input:  BH = PCI bus number that is being searched                           ;
;         BL = PCI device search index "n" (in the range 0 - 1F)               ;
;                                                                              ;
; Output: BL = The "nth" PCI device number to search for (in the range 0 - 1F) ;
;                                                                              ;
; Destroys: Nothing                                                            ;
;------------------------------------------------------------------------------;
        pubproc rth_pci_search_xlat
defproc rth_pci_search_xlat
;       sub     bl, 1Fh                 ;Default is search Last-to-First
;       neg     bl
        ret
endproc rth_pci_search_xlat
;------------------------------------------------------------------------------;
;*****************************************************************;
;*****************************************************************;
;**                                                             **;
;**      (C)Copyright 1985-1995, American Megatrends, Inc.      **;
;**                                                             **;
;**                     All Rights Reserved.                    **;
;**                                                             **;
;**           6145-F Northbelt Pkwy, Norcross, GA 30071         **;
;**                                                             **;
;**                     Phone (770)-263-8181                    **;
;**                                                             **;
;*****************************************************************;
;*****************************************************************;
ifndef RT32
        _text    ends
else
        _runtime32 ends
endif
         end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -