aos/devices/xeon_phi/xeon_phi_apic.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

137 lines
3.6 KiB
Plaintext

/*
* Copyright (c) 2014 ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* xeon_phi_apic.dev
*
* description: register definitions for the Xeon Phi APIC register
*
* Note: this is for raising interrupts to the other parts.
*/
device xeon_phi_apic lsbfirst ( addr base ) "Intel Xeon Phi APIC register" {
constants irq_vec width(32) "Interupt Vectors" {
vec_bsp = 229;
};
constants irq_idx width(3) "Interrupt Register Index" {
vnet = 0;
sht = 1;
hvc = 2;
virtio = 3;
pm = 4;
unused = 5;
unused2 = 6;
bootstrap = 7;
};
constants dst_shorthand "Destination shorthand" {
none = 0b00 "No shorthand";
self = 0b01 "Self";
all_inc = 0b10 "All including self";
all_exc = 0b11 "All excluding self";
};
constants dst_mode "Destination mode" {
dst_phys = 0b00 "Physical";
dst_log = 0b01 "Logical";
};
constants int_level "Interrupt level" {
lvl_clr = 0b00 "Clear";
lvl_set = 0b01 "Set";
};
constants vdm "Vector delivery mode" {
fixed = 0b000 "Fixed";
lowest = 0b001 "Lowest priority";
smi = 0b010 "SMI";
nmi = 0b100 "NMI";
init = 0b101 "INIT";
startup = 0b110 "Start Up";
extint = 0b111 "ExtINT";
};
constants trigm "Trigger mode" {
edge = 0 "Edge";
level = 1 "Level";
};
/*
* Protection Level: Ring 0
* Visibility: Host / Coprocessor
* Reset Dmain: GRPB_RESET
* Register Access: CRU
*/
register id rw addr(base, 0xA800) "APIC Identification Register" {
_ 23;
id 9 "apic id";
};
/*
* Protection Level: Ring 0
* Visibility: Host / Coprocessor
* Reset Dmain: GRPB_RESET
* Register Access: CRU
*/
register version rw addr(base, 0xA804) "APIC Version Register" {
ver 8 "version";
_ 8;
max_lvt 8 "max LVT entry";
_ 8;
};
/*
* Protection Level: Ring 0
* Visibility: Host / Coprocessor
* Reset Dmain: GRPB_RESET
* Register Access: CRU
*/
register pr rw addr(base, 0xA808) "APIC Priority Register" {
value 32 "Value";
};
/*
* Protection Level: Ring 0
* Visibility: Host / Coprocessor
* Reset Dmain: GRPB_RESET
* Register Access: CRU
* Number: 26
*/
regarray rt rw addr(base, 0xA840) [26] "APIC Redirection Table" {
value 64 "Value";
};
/*
* Protection Level: Ring 0
* Visibility: Host / Coprocessor
* Reset Dmain: GRPB_RESET
* Register Access: CRU
* Number: 8
*/
regarray icr_lo rw addr(base, 0xA9D0) [8; 0x8] "APIC Interrupt Command Register 0 to 7" {
vector 8 "Vector";
dlv_mode 3 type(vdm) "Delivery mode";
dst_mode 1 type(dst_mode) "Destination mode";
dlv_stat 1 ro "Delivery status";
boot_notify 1 "Boot notify bit";
level 1 type(int_level) "Level";
trig_mode 1 type(trigm) "Trigger mode";
_ 2;
dst_short 2 type(dst_shorthand) "Destination shorthand";
_ 12;
};
regarray icr_hi rw addr(base, 0xA9D4) [8; 0x8] "APIC Interrupt Command Register 0 to 7" {
dest 32 "Destination field";
};
};