Subversion Repositories Kolibri OS

Rev

Rev 2434 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;                                                              ;;
  3. ;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
  4. ;; Distributed under terms of the GNU General Public License    ;;
  5. ;;                                                              ;;
  6. ;;  PCI16.INC                                                   ;;
  7. ;;                                                              ;;
  8. ;;  16 bit PCI driver code                                      ;;
  9. ;;                                                              ;;
  10. ;;  Version 0.2  December 21st, 2002                            ;;
  11. ;;                                                              ;;
  12. ;;  Author: Victor Prodan, victorprodan@yahoo.com               ;;
  13. ;;                                                              ;;
  14. ;;  See file COPYING for details                                ;;
  15. ;;                                                              ;;
  16. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17.  
  18. $Revision: 2465 $
  19.  
  20.  
  21. init_pci_16:
  22.  
  23.         pushad
  24.  
  25.         xor     ax, ax
  26.         mov     es, ax
  27.         mov     byte [es:0x9020], 1;default mechanism:1
  28.         mov     ax, 0xb101
  29.         int     0x1a
  30.         or      ah, ah
  31.         jnz     pci16skip
  32.  
  33.         mov     [es:0x9021], cl;last PCI bus in system
  34.         mov     [es:0x9022], bx
  35.         mov     [es:0x9024], edi
  36.  
  37. ; we have a PCI BIOS, so check which configuration mechanism(s)
  38. ; it supports
  39. ; AL = PCI hardware characteristics (bit0 => mechanism1, bit1 => mechanism2)
  40.         test    al, 1
  41.         jnz     pci16skip
  42.         test    al, 2
  43.         jz      pci16skip
  44.         mov     byte [es:0x9020], 2; if (al&3)==2 => mechanism 2
  45.  
  46. pci16skip:
  47.  
  48.         mov     ax, 0x1000
  49.         mov     es, ax
  50.  
  51.         popad
  52.