summaryrefslogtreecommitdiffstats
path: root/lib_i386/bios_pci.S
diff options
context:
space:
mode:
Diffstat (limited to 'lib_i386/bios_pci.S')
-rw-r--r--lib_i386/bios_pci.S110
1 files changed, 55 insertions, 55 deletions
diff --git a/lib_i386/bios_pci.S b/lib_i386/bios_pci.S
index e53791a153..b57b7260a6 100644
--- a/lib_i386/bios_pci.S
+++ b/lib_i386/bios_pci.S
@@ -1,7 +1,7 @@
/*
* (C) Copyright 2002
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
- *
+ *
* See file CREDITS for list of people who contributed to this
* project.
*
@@ -23,10 +23,10 @@
/*
* x86 realmode assembly implementation of a PCI BIOS
- * for platforms that use one PCI hose and configuration
+ * for platforms that use one PCI hose and configuration
* access type 1. (The common case for low-end PC's)
*/
-
+
#include "bios.h"
#define PCI_BIOS_DEBUG
@@ -39,8 +39,8 @@ realmode_pci_bios_call_entry:
call realmode_pci_bios
RESTORE_CALLERS_STACK
ret
-
-
+
+
.globl realmode_pci_bios
realmode_pci_bios:
gs movw OFFS_AX(%bp), %ax
@@ -69,7 +69,7 @@ gs movw OFFS_AX(%bp), %ax
cmpb $15, %al
je pci_bios_set_irq
jmp unknown_function
-
+
/*****************************************************************************/
pci_bios_present:
@@ -77,31 +77,31 @@ pci_bios_present:
cs incl num_pci_bios_present
#endif
movl $0x20494350, %eax
-gs movl %eax, OFFS_EDX(%bp)
+gs movl %eax, OFFS_EDX(%bp)
movb $0x01, %al
-gs movb %al, OFFS_AL(%bp) /* We support cfg type 1 */
- movw $0x0210, %ax /* version 2.10 */
-gs movw %ax, OFFS_BX(%bp)
+gs movb %al, OFFS_AL(%bp) /* We support cfg type 1 */
+ movw $0x0210, %ax /* version 2.10 */
+gs movw %ax, OFFS_BX(%bp)
cs movb pci_last_bus, %al /* last bus number */
-gs movb %al, OFFS_CL(%bp)
+gs movb %al, OFFS_CL(%bp)
jmp clear_carry
/*****************************************************************************/
/* device 0-31, function 0-7 */
-pci_bios_find_device:
+pci_bios_find_device:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_find_device
#endif
-gs movw OFFS_CX(%bp), %di
+gs movw OFFS_CX(%bp), %di
shll $16, %edi
-gs movw OFFS_DX(%bp), %di /* edi now holds device in upper 16
- * bits and vendor in lower 16 bits */
-gs movw OFFS_SI(%bp), %si
+gs movw OFFS_DX(%bp), %di /* edi now holds device in upper 16
+ * bits and vendor in lower 16 bits */
+gs movw OFFS_SI(%bp), %si
xorw %bx, %bx /* start at bus 0 dev 0 function 0 */
-pfd_loop:
- xorw %ax, %ax /* dword 0 is vendor/device */
- call __pci_bios_select_register
+pfd_loop:
+ xorw %ax, %ax /* dword 0 is vendor/device */
+ call __pci_bios_select_register
movw $0xcfc, %dx
inl %dx, %eax
cmpl %edi, %eax /* our device ? */
@@ -111,8 +111,8 @@ pfd_next_dev:
movw %bx, %ax
andw $3, %ax
jnz pfd_function_not_zero
- movw $0x000c, %ax
- call __pci_bios_select_register
+ movw $0x000c, %ax
+ call __pci_bios_select_register
movw $0xcfe, %dx
inb %dx, %al
andb $0x80, %al
@@ -121,11 +121,11 @@ pfd_function_not_zero:
incw %bx /* next function, overflows in to
* device number, then bus number */
jmp pfd_check_bus
-
+
pfd_not_multi_function:
andw $0xfff8, %bx /* remove function bits */
addw $0x0008, %bx /* next device, overflows in to bus number */
-pfd_check_bus:
+pfd_check_bus:
cs movb pci_last_bus, %ah
cmpb %ah, %bh
ja pfd_not_found
@@ -136,7 +136,7 @@ pfd_found_one:
jmp pfd_next_dev
pfd_done:
-gs movw %bx, OFFS_BX(%bp)
+gs movw %bx, OFFS_BX(%bp)
jmp clear_carry
pfd_not_found:
@@ -149,13 +149,13 @@ pci_bios_find_class:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_find_class
#endif
-gs movl OFFS_ECX(%bp), %edi
- andl $0x00ffffff, %edi /* edi now holds class-code in lower 24 bits */
-gs movw OFFS_SI(%bp), %si
+gs movl OFFS_ECX(%bp), %edi
+ andl $0x00ffffff, %edi /* edi now holds class-code in lower 24 bits */
+gs movw OFFS_SI(%bp), %si
xorw %bx, %bx /* start at bus 0 dev 0 function 0 */
-pfc_loop:
- movw $8, %ax /* dword 8 is class-code high 24bits */
- call __pci_bios_select_register
+pfc_loop:
+ movw $8, %ax /* dword 8 is class-code high 24bits */
+ call __pci_bios_select_register
movw $0xcfc, %dx
inl %dx, %eax
shrl $8, %eax
@@ -166,8 +166,8 @@ pfc_next_dev:
/* check for multi function devices */
andw $3, %bx
jnz pfc_function_not_zero
- movw $0x000c, %ax
- call __pci_bios_select_register
+ movw $0x000c, %ax
+ call __pci_bios_select_register
movw $0xcfe, %dx
inb %dx, %al
andb $0x80, %al
@@ -176,11 +176,11 @@ pfc_function_not_zero:
incw %bx /* next function, overflows in to
* device number, then bus number */
jmp pfc_check_bus
-
+
pfc_not_multi_function:
andw $0xfff8, %bx /* remove function bits */
addw $0x0008, %bx /* next device, overflows in to bus number */
-pfc_check_bus:
+pfc_check_bus:
cs movb pci_last_bus, %ah
cmpb %ah, %bh
ja pfc_not_found
@@ -191,7 +191,7 @@ pfc_found_one:
jmp pfc_next_dev
pfc_done:
-gs movw %bx, OFFS_BX(%bp)
+gs movw %bx, OFFS_BX(%bp)
jmp clear_carry
pfc_not_found:
@@ -206,24 +206,24 @@ cs incl num_pci_bios_generate_special_cycle
#endif
movb $0x81, %ah /* function not supported */
jmp set_carry
-
+
/*****************************************************************************/
-pci_bios_read_cfg_byte:
+pci_bios_read_cfg_byte:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_read_cfg_byte
#endif
- call pci_bios_select_register
+ call pci_bios_select_register
gs movw OFFS_DI(%bp), %dx
andw $3, %dx
addw $0xcfc, %dx
inb %dx, %al
-gs movb %al, OFFS_CL(%bp)
+gs movb %al, OFFS_CL(%bp)
jmp clear_carry
/*****************************************************************************/
-pci_bios_read_cfg_word:
+pci_bios_read_cfg_word:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_read_cfg_word
#endif
@@ -232,20 +232,20 @@ gs movw OFFS_DI(%bp), %dx
andw $2, %dx
addw $0xcfc, %dx
inw %dx, %ax
-gs movw %ax, OFFS_CX(%bp)
+gs movw %ax, OFFS_CX(%bp)
jmp clear_carry
/*****************************************************************************/
-pci_bios_read_cfg_dword:
+pci_bios_read_cfg_dword:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_read_cfg_dword
#endif
call pci_bios_select_register
movw $0xcfc, %dx
inl %dx, %eax
-gs movl %eax, OFFS_ECX(%bp)
+gs movl %eax, OFFS_ECX(%bp)
jmp clear_carry
/*****************************************************************************/
@@ -254,35 +254,35 @@ pci_bios_write_cfg_byte:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_write_cfg_byte
#endif
- call pci_bios_select_register
+ call pci_bios_select_register
gs movw OFFS_DI(%bp), %dx
gs movb OFFS_CL(%bp), %al
andw $3, %dx
addw $0xcfc, %dx
outb %al, %dx
jmp clear_carry
-
+
/*****************************************************************************/
pci_bios_write_cfg_word:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_write_cfg_word
#endif
- call pci_bios_select_register
+ call pci_bios_select_register
gs movw OFFS_DI(%bp), %dx
gs movw OFFS_CX(%bp), %ax
andw $2, %dx
addw $0xcfc, %dx
outw %ax, %dx
jmp clear_carry
-
+
/*****************************************************************************/
pci_bios_write_cfg_dword:
#ifdef PCI_BIOS_DEBUG
cs incl num_pci_bios_write_cfg_dword
#endif
- call pci_bios_select_register
+ call pci_bios_select_register
gs movl OFFS_ECX(%bp), %eax
movw $0xcfc, %dx
outl %eax, %dx
@@ -296,7 +296,7 @@ cs incl num_pci_bios_get_irq_routing
#endif
movb $0x81, %ah /* function not supported */
jmp set_carry
-
+
/*****************************************************************************/
pci_bios_set_irq:
@@ -316,7 +316,7 @@ cs incl num_pci_bios_unknown_function
jmp set_carry
/*****************************************************************************/
-
+
pci_bios_select_register:
gs movw OFFS_BX(%bp), %bx
gs movw OFFS_DI(%bp), %ax
@@ -339,11 +339,11 @@ gs movw OFFS_FLAGS(%bp), %ax
andw $0xfffe, %ax /* clear carry -- function succeeded */
gs movw %ax, OFFS_FLAGS(%bp)
xorw %ax, %ax
-gs movb %ah, OFFS_AH(%bp)
+gs movb %ah, OFFS_AH(%bp)
ret
set_carry:
-gs movb %ah, OFFS_AH(%bp)
+gs movb %ah, OFFS_AH(%bp)
gs movw OFFS_FLAGS(%bp), %ax
orw $1, %ax /* return carry -- function not supported */
gs movw %ax, OFFS_FLAGS(%bp)
@@ -360,7 +360,7 @@ pci_last_bus:
.globl num_pci_bios_present
num_pci_bios_present:
.long 0
-
+
.globl num_pci_bios_find_device
num_pci_bios_find_device:
.long 0
@@ -370,9 +370,9 @@ num_pci_bios_find_class:
.long 0
.globl num_pci_bios_generate_special_cycle
-num_pci_bios_generate_special_cycle:
+num_pci_bios_generate_special_cycle:
.long 0
-
+
.globl num_pci_bios_read_cfg_byte
num_pci_bios_read_cfg_byte:
.long 0
OpenPOWER on IntegriCloud