00001 ;++
00002 ;
00003 ;
Copyright (c) 1989 Microsoft Corporation
00004 ;
00005 ; Module
Name:
00006 ;
00007 ; alr.inc
00008 ;
00009 ; Abstract:
00010 ;
00011 ; This inlcude
file defines all
the equates and
macros specifically
00012 ; used
for ALR Multiprocessor system implementation.
00013 ;
00014 ; Author:
00015 ;
00016 ; Shie-Lin Tzong (shielint) 29-Oct-1990
00017 ;
00018 ; Environment:
00019 ;
00020 ; Kernel mode
only.
00021 ;
00022 ; Revision
History:
00023 ;
00024 ;--
00025
00026 ;
00027 ;
Virtual address map
for ALR CBUS IO and address space
00028 ; CBUS memory address space starting from 64MB to (128MB - 1)
00029 ; CBUS IO space starting from 128MB to (192MB - 1). We are interested
00030 ; in
the first 4MB
only (at least
for now).
00031 ;
00032
00033 CBUS_ADDR_START_PHYS equ 4000000h
00034
00035 CBUS_IO_SPACE_START equ 90000000h
00036 CBUS_IO_SPACE_START_PHYS equ 8000000h
00037 CBUS_IO_SPACE_SIZE equ 400000h
00038
00039 ;
00040 ;CPU
ID for CBUS PEs and common
functions for PEs
00041 ;
00042
00043 ALLCPUID equ 0Fh ;
ID to address all
the slaves
00044 BASECPUID equ 0Eh ; Base CPU
ID
00045
00046 PE_CRESET equ 0 ; Clear Reset
00047 PE_SRESET equ 1 ; Set Reset
00048 PE_CONTEND equ 2 ; Contend (Place slot number on ARB0-3
00049 ; lines)
00050 PE_SETIDA equ 3 ; Set
ID value on winning processor
00051 PE_CSWI equ 4 ; Clear software interrupt
00052 PE_SSWI equ 5 ; Set software interrupt
00053 PE_CNMI equ 6 ; Clear NMI
00054 PE_SNMI equ 7 ; Set NMI
00055 PE_SLED equ 8 ; Set LED
00056 PE_CLED equ 9 ; Clear LED
00057
00058 ;
00059 ; Miscs CBUS definitions
00060 ;
00061
00062 ArbitrateRegister equ 0F1h
00063 ArbitrateMask equ 0Fh ; Lower 4 bits of Arbitrate Register
00064
00065
00066 ;
00067 ; Macros to access CBUS I/O space
00068 ;
00069 ; CBUS_IO_ACCESS func, cpuid
00070 ; func -
the function which will be applied to PEs
00071 ; cpuid -
the desired PE. If not specified,
the cpuid
is in AL
register.
00072 ;
00073
00074 CBUS_IO_ACCESS macro func, cpuid
00075
00076 ifnb <cpuid>
00077 mov eax, (cpuid SHL 18) + CBUS_IO_SPACE_START + (func SHL 4)
00078
else
00079 movzx eax, al
00080 shl eax, 18
00081 add eax, CBUS_IO_SPACE_START + (func SHL 4)
00082 endif
00083 or byte ptr [eax], 0ffh
00084
00085 endm
00086
00087