Rev 1213 | Rev 1445 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1213 | Rev 1353 | ||
---|---|---|---|
Line 3259... | Line 3259... | ||
3259 | first type can be found e.g. in famous Interrupt List by |
3259 | first type can be found e.g. in famous Interrupt List by |
3260 | Ralf Brown; registers of the second type must be listed |
3260 | Ralf Brown; registers of the second type must be listed |
3261 | in the device documentation. |
3261 | in the device documentation. |
Line 3262... | Line 3262... | ||
3262 | 3262 | ||
- | 3263 | ====================================================================== |
|
- | 3264 | ===================== Function 62, subfunction 11 ==================== |
|
- | 3265 | == Initialize user-accessible MMIO channel == |
|
- | 3266 | ====================================================================== |
|
- | 3267 | Parameters: |
|
- | 3268 | * eax = 62 - function |
|
- | 3269 | * bl = 11 - subfunction |
|
- | 3270 | * cx = PCI-address (bbbbbbbb dddddfff) |
|
- | 3271 | Returns: |
|
- | 3272 | * eax = -1 - PCI access not granted; |
|
- | 3273 | * eax = -2 - no user MMIO access to this PCI address; |
|
- | 3274 | * eax = -3 - memory allocation error; otherwise |
|
- | 3275 | * eax = available user heap size. |
|
- | 3276 | Remarks: |
|
- | 3277 | * Low-level PCI access must be allowed (fn21:12) |
|
- | 3278 | * PCI-address should correspond the system var [mmio_pci_addr] |
|
- | 3279 | ||
- | 3280 | ====================================================================== |
|
- | 3281 | ===================== Function 62, subfunction 12 ==================== |
|
- | 3282 | == Request user-accessible MMIO address space == |
|
- | 3283 | ====================================================================== |
|
- | 3284 | Parameters: |
|
- | 3285 | * eax = 62 - function |
|
- | 3286 | * bl = 12 - subfunction |
|
- | 3287 | * bh = BAR number in PCI configuration space |
|
- | 3288 | * ecx = MMIO-block size needed (bytes) |
|
- | 3289 | * edx = MMIO-offset (number of whole 4Kb-pages!) |
|
- | 3290 | Returns: |
|
- | 3291 | * eax = -1 - user PCI access denied; |
|
- | 3292 | * eax = -2 - invalid BAR number; |
|
- | 3293 | * eax = -3 - BAR contains no valid IO addres; |
|
- | 3294 | * eax = -4 - BAR addresses IO ports; |
|
- | 3295 | * eax = -5 - dynamic allocation error; otherwise |
|
- | 3296 | * eax = MMIO start address (in application's linear space). |
|
- | 3297 | Remarks: |
|
- | 3298 | * Low-level PCI access must be allowed (fn21:12) |
|
- | 3299 | * The system var [mmio_pci_addr] sets the actual PCI-address |
|
- | 3300 | * The granted MMIO addresses should be released after use (fn62:13) |
|
- | 3301 | ||
- | 3302 | ====================================================================== |
|
- | 3303 | ===================== Function 62, subfunction 13 ==================== |
|
- | 3304 | == Release a block of user MMIO addresses == |
|
- | 3305 | ====================================================================== |
|
- | 3306 | à ¬¥âàë: |
|
- | 3307 | * eax = 62 - function |
|
- | 3308 | * bl = 12 - subfunction |
|
- | 3309 | * ecx = MMIO start address (in application's linear space). |
|
- | 3310 | Returns: |
|
- | 3311 | * eax = 1 if the block is successfully released; |
|
- | 3312 | * eax = 0 in case of reallocation error; |
|
- | 3313 | Remarks: |
|
- | 3314 | * A valid uMMIO block should exist at this address (fn62:12) |
|
- | 3315 | ||
3263 | ====================================================================== |
3316 | ====================================================================== |
3264 | ============== Function 63 - work with the debug board. ============== |
3317 | ============== Function 63 - work with the debug board. ============== |
3265 | ====================================================================== |
3318 | ====================================================================== |
3266 | The debug board is the global system buffer (with the size |
3319 | The debug board is the global system buffer (with the size |
3267 | 1024 bytes), to which any program can write (generally speaking, |
3320 | 1024 bytes), to which any program can write (generally speaking, |