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

69 lines
1.7 KiB
Plaintext

/*
* Copyright (c) 2012, 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.
*/
/*
* a9scu.dev
*
* DESCRIPTION: Cortex A9 Snoop Control Unit
*
* This is derived from:
*
* ARM Cortex-A9 MPCore Technical Reference Manual
*
*/
device cortex_a9_scu msbfirst ( addr base ) "Cortex A9 SCU" {
register control addr(base, 0x0) "SCU Control" {
_ 25 rsvd;
ic_standby 1 rw "IC standby enable";
scu_standby 1 rw "SCU standby enable";
all_device_to_port0 1 rw "Force all Device to port 0 enable";
spec_linefill 1 rw "SCU speculative linefills enable";
ram_parity 1 rw "SCU RAMs parity enable";
address_filtering 1 rw "Address Filtering enable";
enable 1 rw "SCU enable";
};
register config ro addr(base, 0x4) "SCU Configuration" {
_ 16;
tag_ram_sizes 8 ro "Tag RAM sizes";
cpu_smp 4 ro "CPUs SMP bits";
_ 2;
numcpus 2 ro "Number of CPUs present";
};
constants cpu_status "CPU Status" {
normal = 0b00 "Normal mode";
dormant = 0b10 "Dormant mode";
off = 0b11 "Powered-off mode";
};
register powerstatus addr(base, 0x8) "SCU CPU Power Status" {
_ 6;
cpu3 2 rw "Status CPU3";
_ 6;
cpu2 2 rw "Status CPU2";
_ 6;
cpu1 2 rw "Status CPU1";
_ 6;
cpu0 2 rw "Status CPU0";
};
register filterstart addr(base, 0x40) "Filtering Start Address" {
addr 12 rw "Filtering Start address";
_ 20;
};
register filterend addr(base, 0x44) "Filtering End Address" {
addr 12 rw "Filtering Start address";
_ 20;
};
};