summaryrefslogtreecommitdiffstats
path: root/private/ntos/ke/i386/alr.inc
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/ke/i386/alr.inc
downloadNT4.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.inc87
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
+
+