diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/ke/i386/alr.inc | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/ntos/ke/i386/alr.inc')
-rw-r--r-- | private/ntos/ke/i386/alr.inc | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/private/ntos/ke/i386/alr.inc b/private/ntos/ke/i386/alr.inc new file mode 100644 index 000000000..8491a3aee --- /dev/null +++ b/private/ntos/ke/i386/alr.inc @@ -0,0 +1,87 @@ +;++ +; +; Copyright (c) 1989 Microsoft Corporation +; +; Module Name: +; +; alr.inc +; +; Abstract: +; +; This inlcude file defines all the equates and macros specifically +; used for ALR Multiprocessor system implementation. +; +; Author: +; +; Shie-Lin Tzong (shielint) 29-Oct-1990 +; +; Environment: +; +; Kernel mode only. +; +; Revision History: +; +;-- + +; +; Virtual address map for ALR CBUS IO and address space +; CBUS memory address space starting from 64MB to (128MB - 1) +; CBUS IO space starting from 128MB to (192MB - 1). We are interested +; in the first 4MB only (at least for now). +; + +CBUS_ADDR_START_PHYS equ 4000000h + +CBUS_IO_SPACE_START equ 90000000h +CBUS_IO_SPACE_START_PHYS equ 8000000h +CBUS_IO_SPACE_SIZE equ 400000h + +; +;CPU ID for CBUS PEs and common functions for PEs +; + +ALLCPUID equ 0Fh ; ID to address all the slaves +BASECPUID equ 0Eh ; Base CPU ID + +PE_CRESET equ 0 ; Clear Reset +PE_SRESET equ 1 ; Set Reset +PE_CONTEND equ 2 ; Contend (Place slot number on ARB0-3 + ; lines) +PE_SETIDA equ 3 ; Set ID value on winning processor +PE_CSWI equ 4 ; Clear software interrupt +PE_SSWI equ 5 ; Set software interrupt +PE_CNMI equ 6 ; Clear NMI +PE_SNMI equ 7 ; Set NMI +PE_SLED equ 8 ; Set LED +PE_CLED equ 9 ; Clear LED + +; +; Miscs CBUS definitions +; + +ArbitrateRegister equ 0F1h +ArbitrateMask equ 0Fh ; Lower 4 bits of Arbitrate Register + + +; +; Macros to access CBUS I/O space +; +; CBUS_IO_ACCESS func, cpuid +; func - the function which will be applied to PEs +; cpuid - the desired PE. If not specified, the cpuid is in AL register. +; + +CBUS_IO_ACCESS macro func, cpuid + +ifnb <cpuid> + mov eax, (cpuid SHL 18) + CBUS_IO_SPACE_START + (func SHL 4) +else + movzx eax, al + shl eax, 18 + add eax, CBUS_IO_SPACE_START + (func SHL 4) +endif + or byte ptr [eax], 0ffh + + endm + + |