forked from KolibriOS/kolibrios
- SysFuncs docs updated;
- PCI Expansion ROM is now readable via uMMIO. git-svn-id: svn://kolibrios.org@1353 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -3289,6 +3289,63 @@ IPC
|
||||
<20>室<EFBFBD><E5AEA4>, <20><><EFBFBD>ਬ<EFBFBD><E0A8AC>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Interrupt List by Ralf Brown;
|
||||
ᯨ᮪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD> <20> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>樨 <20><> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD><EFBFBD>.
|
||||
|
||||
======================================================================
|
||||
====================== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 62, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 11 =====================
|
||||
== <20><><EFBFBD>樠<EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD>᪨<EFBFBD> <20>/<2F> <20> <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ==
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 62 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||
* bl = 11 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||
* cx = <20><><EFBFBD><EFBFBD><EFBFBD> PCI-<2D><><EFBFBD>ன<EFBFBD>⢠
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = -1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PCI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
* eax = -2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> MMIO-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD>⢠ <20><> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD>;
|
||||
* eax = -3 - <20>訡<EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
* eax = ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>㯭<EFBFBD><E3AFAD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PCI
|
||||
<20><><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 12 <20>㭪樨 21.
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD> PCI-<2D><><EFBFBD>ன<EFBFBD>⢠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮢ<><E1AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
mmio_pci_addr
|
||||
|
||||
======================================================================
|
||||
====================== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 62, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 12 =====================
|
||||
== <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ <20><><EFBFBD> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD><EFBFBD><E1AAAE> MMIO ==
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 62 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||
* bl = 12 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||
* bh = <20><><EFBFBD><EFBFBD><EFBFBD> BAR-ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>䨣<EFBFBD><E4A8A3><EFBFBD>樮<EFBFBD><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> PCI
|
||||
* ecx = ࠧ<><E0A0A7><EFBFBD> MMIO-<2D><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* edx = ᬥ饭<E1ACA5><E9A5AD> <20>⭮<EFBFBD><E2ADAE>⥫쭮 <20><>砫<EFBFBD> MMIO-<2D><><EFBFBD><EFBFBD><EFBFBD> (<28> 4K-<2D><>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>!)
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = -1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PCI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
* eax = -2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> BAR-ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD>;
|
||||
* eax = -3 - BAR <20><> ᮤ<>ন<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IO;
|
||||
* eax = -4 - BAR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IO;
|
||||
* eax = -5 - <20>訡<EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨; <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
* eax = <20><>砫<EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> MMIO <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥ <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PCI
|
||||
<20><><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 12 <20>㭪樨 21.
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD> PCI-<2D><><EFBFBD>ன<EFBFBD>⢠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> mmio_pci_addr.
|
||||
* <20>।<EFBFBD><E0A5A4>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>।<EFBFBD>⢮<EFBFBD> <20>맮<EFBFBD><EBA7AE> <20>㭪樨 62:13
|
||||
|
||||
======================================================================
|
||||
====================== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 62, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 13 =====================
|
||||
== <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD><EFBFBD><E1AAAE> MMIO ==
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 62 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||
* bl = 12 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||
* ecx = <20><>砫<EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MMIO-<2D><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥ <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 1 - <20><><EFBFBD><EFBFBD> <20>ᯥ譮 <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD> uMMIO-<2D><><EFBFBD><EFBFBD> (fn62:12)
|
||||
|
||||
======================================================================
|
||||
================ <20>㭪<EFBFBD><E3ADAA><EFBFBD> 63 - ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD> <20>⫠<EFBFBD><E2ABA0><EFBFBD>. ===============
|
||||
======================================================================
|
||||
|
@@ -3260,6 +3260,59 @@ Remarks:
|
||||
Ralf Brown; registers of the second type must be listed
|
||||
in the device documentation.
|
||||
|
||||
======================================================================
|
||||
===================== Function 62, subfunction 11 ====================
|
||||
== Initialize user-accessible MMIO channel ==
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 62 - function
|
||||
* bl = 11 - subfunction
|
||||
* cx = PCI-address (bbbbbbbb dddddfff)
|
||||
Returns:
|
||||
* eax = -1 - PCI access not granted;
|
||||
* eax = -2 - no user MMIO access to this PCI address;
|
||||
* eax = -3 - memory allocation error; otherwise
|
||||
* eax = available user heap size.
|
||||
Remarks:
|
||||
* Low-level PCI access must be allowed (fn21:12)
|
||||
* PCI-address should correspond the system var [mmio_pci_addr]
|
||||
|
||||
======================================================================
|
||||
===================== Function 62, subfunction 12 ====================
|
||||
== Request user-accessible MMIO address space ==
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 62 - function
|
||||
* bl = 12 - subfunction
|
||||
* bh = BAR number in PCI configuration space
|
||||
* ecx = MMIO-block size needed (bytes)
|
||||
* edx = MMIO-offset (number of whole 4Kb-pages!)
|
||||
Returns:
|
||||
* eax = -1 - user PCI access denied;
|
||||
* eax = -2 - invalid BAR number;
|
||||
* eax = -3 - BAR contains no valid IO addres;
|
||||
* eax = -4 - BAR addresses IO ports;
|
||||
* eax = -5 - dynamic allocation error; otherwise
|
||||
* eax = MMIO start address (in application's linear space).
|
||||
Remarks:
|
||||
* Low-level PCI access must be allowed (fn21:12)
|
||||
* The system var [mmio_pci_addr] sets the actual PCI-address
|
||||
* The granted MMIO addresses should be released after use (fn62:13)
|
||||
|
||||
======================================================================
|
||||
===================== Function 62, subfunction 13 ====================
|
||||
== Release a block of user MMIO addresses ==
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 62 - function
|
||||
* bl = 12 - subfunction
|
||||
* ecx = MMIO start address (in application's linear space).
|
||||
Returns:
|
||||
* eax = 1 if the block is successfully released;
|
||||
* eax = 0 in case of reallocation error;
|
||||
Remarks:
|
||||
* A valid uMMIO block should exist at this address (fn62:12)
|
||||
|
||||
======================================================================
|
||||
============== Function 63 - work with the debug board. ==============
|
||||
======================================================================
|
||||
|
Reference in New Issue
Block a user