搜尋此網誌

顯示具有 BIOS Int1Ah 標籤的文章。 顯示所有文章
顯示具有 BIOS Int1Ah 標籤的文章。 顯示所有文章

2012年10月1日 星期一

Int1Ah AX = B10Dh(在PCI表面配置空間上,寫入DWord) -- BIOS Int1Ah



WRITE CONFIGURATION DWORD (32-bit)


Input:
AX = B18Dh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 4 less than 0100h)
ECX = dword to write
Return: 
CF clear if successful
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Note:
the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation

Int1Ah AX = B10Bh(在PCI表面配置空間上,寫入Word) -- BIOS Int1Ah


WRITE CONFIGURATION WORD


Input:
AX = B10Ch
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 2 less than 0100h)
CX = word to write
Return: 
CF clear if successful
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation

Int1Ah AX = B10Bh(在PCI表面配置空間上,寫入Byte) -- BIOS Int1Ah

WRITE CONFIGURATION BYTE


Input:
AX = B10Bh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
CL = byte to write
Return: 
CF clear if successful
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation

2012年9月28日 星期五

Int1Ah AX = B10Ah(在PCI表面配置空間上,讀取DWord) -- BIOS Int1Ah

READ CONFIGURATION DWORD

Input:

AX = B10Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh, must be multiple of 4) (see PCI Configuration Data Format)
Return: 
CF clear if successful
   ECX = dword read
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified

all other flags (except IF) may be modified
Notes:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation
BUG:
the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFFFFFh for register 00h if the PCI function number is nonzero

Int1Ah AX = B109h(在PCI表面配置空間上,讀取Word) -- BIOS Int1Ah


READ CONFIGURATION WORD

Input:
AX = B109h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh, must be multiple of 2) (see PCI Configuration Data Format)
Return: 
 CF clear if successful
   CX = word read
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation
BUG:
the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFh for register 00h if the PCI function number is nonzero

Int1Ah AX = B108h(在PCI表面配置空間上,讀取Byte) -- BIOS Int1Ah


READ CONFIGURATION BYTE


Input:
AX = B108h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see PCI Configuration Data Format)
Return: 
        CF clear if successful
   CL = byte read
CF set on error
AH = status (00h,87h) (see PCI BIOS v2.0 status codes)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call the meanings of BL and BH on entry were exchanged between the initial drafts of the specification and final implementation
BUG:
the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFh for register 00h if the PCI function number is nonzero


PCI表面配置資料格式


Format of PCI Configuration Data:

Offset Size Description
 00h WORD vendor ID (read-only)
FFFFh returned if requested device non-existent
 02h WORD device ID (read-only)
 04h WORD command register
 06h WORD status register
 08h BYTE revision ID
 09h  3 BYTEs class code
bits 7-0: programming interface
bits 15-8: sub-class
bits 23-16: class code
 0Ch BYTE cache line size

 0Dh BYTE latency timer
 0Eh BYTE header type
bits 6-0: header format
00h other
01h PCI-to-PCI bridge
02h PCI-to-CardBus bridge
bit 7: multi-function device
 0Fh BYTE Built-In Self-Test result
---header type 00h---
 10h DWORD base address 0
(OpenHCI) base address of host controller registers
 14h DWORD base address 1
 18h DWORD base address 2
 1Ch DWORD base address 3

 20h DWORD base address 4
 24h DWORD base address 5
 28h DWORD CardBus CIS pointer (read-only)
 2Ch WORD subsystem vendor ID or 0000h
 2Eh WORD subsystem ID or 0000h
 30h DWORD expansion ROM base address
 34h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set)
 35h  3 BYTEs reserved
 38h DWORD reserved
 3Ch BYTE interrupt line

00h = none, 01h = IRQ1 to 0Fh = IRQ15
 3Dh BYTE interrupt pin (read-only)
(00h = none, else indicates INTA# to INTD#)
 3Eh BYTE minimum time bus master needs PCI bus ownership, in 250ns units
(read-only)
 3Fh BYTE maximum latency, in 250ns units (bus masters only) (read-only)
 40h 48 DWORDs varies by device
---header type 01h---
 10h DWORD base address 0

 14h DWORD base address 1
 18h BYTE primary bus number (for bus closer to host processor)
 19h BYTE secondary bus number (for bus further from host processor)
 1Ah BYTE subordinate bus number
 1Bh BYTE secondary latency timer
 1Ch BYTE I/O base
 1Dh BYTE I/O limit
 1Eh WORD secondary status
 20h WORD memory base
 22h WORD memory limit
 24h WORD prefetchable memory base

 26h WORD prefetchable memory limit
 28h DWORD prefetchable base, upper 32 bits
 2Ch DWORD prefetchable limit, upper 32 bits
 30h WORD I/O base, upper 16 bits
 32h WORD I/O limit, upper 16 bits
 34h DWORD reserved
 38h DWORD expansion ROM base address
 3Ch BYTE interrupt line
 3Dh BYTE interrupt pin (read-only)
 3Eh WORD bridge control
 40h 48 DWORDs varies by device

PCI BIOS 2.0狀態表


Values for PCI BIOS v2.0c+ status codes:


 00h successful
 81h unsupported function
 83h bad vendor ID
 86h device not found
 87h bad PCI register number


Int1Ah AX = B106h(PCI匯流排特殊的操作) -- BIOS Int1Ah

PCI BUS-SPECIFIC OPERATIONS


Input:
AX = B106h
BL = bus number
EDX = Special Cycle data

Return: 
 CF clear if successful
CF set on error
AH = status (00h,81h) (see Format of floppy format address field buffer entry)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified

Note:
this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call

2012年9月27日 星期四

Int1Ah AX = B103h(搜尋PCI類別碼) -- BIOS Int1Ah

FIND PCI CLASS CODE

Input:
    AX = B103h
    ECX = class code
        bits 31-24 unused
        bits 23-16 class
        bits 15-8  subclass
        bits 7-0   programming interface
    SI = device index (0-n)
Return: 
    CF clear if successful
    CF set on error
    AH = status (00h,86h) (see Format of floppy format address field buffer entry)
        00h successful
        BH = bus number
        BL = device/function number (bits 7-3 device, bits 2-0 func)
        86h device not found
    EAX, EBX, ECX, and EDX may be modified

all other flags (except IF) may be modified

Notes:  
  • this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
  • the meanings of BL and BH on return were exchanged between the initial drafts of the specification and final implementation
  • all devices sharing the same Class Code may be enumerated byincrementing SI from 0 until error 86h is returned

2012年9月26日 星期三

Int1Ah AX = B102h(搜尋PCI裝置) -- BIOS Int1Ah

FIND PCI DEVICE

Input:
    AX = B102h
    CX = device ID
    DX = vendor ID (Intel:0x8086, MRVL:0x1B4B, Acer:0x1025, AMI:0x101E, Phoenix:0x100A)
    SI = device index (0-n)
Return:
    CF clear if successful
    CF set on error
    AH = status (00h,83h,86h)  (see Format of floppy format address field buffer entry)
        00h successful
        BH = bus number
        BL = device/function number (bits 7-3 device, bits 2-0 func)
    EAX, EBX, ECX, and EDX may be modified

all other flags (except IF) may be modified

Notes:   
  • this function may require up to 1024 byte of stack; it will not enable interrupts if they were disabled before making the call
  • device ID FFFFh may be reserved as a wildcard in future implementations
  • the meanings of BL and BH on return were exchanged between the initial
  • drafts of the specification and final implementation
  • all devices sharing a single vendor ID and device ID may be enumerated by incrementing SI from 0 until error 86h is returned