]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - lib_i386/bios_pci.S
mpc83xx: unreinvent mem_clk
[karo-tx-uboot.git] / lib_i386 / bios_pci.S
index e53791a1538f46c38001fca729fc22aebbd3eb71..b57b7260a6d0be58dadd1c6d5908f0e58c2e493c 100644 (file)
@@ -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.
  *
 
 /*
  * 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