69 lines
1.8 KiB
Plaintext
69 lines
1.8 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 a9scu msbfirst ( addr base ) "Cortex A9 SCU" {
|
|
|
|
register SCUControl 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";
|
|
SCU_spec_linefill 1 rw "SCU speculative linefills enable";
|
|
SCU_ram_parity 1 rw "SCU RAMs parity enable";
|
|
address_filtering 1 rw "Address Filtering enable";
|
|
SCU_enable 1 rw "SCU enable";
|
|
};
|
|
|
|
register SCUConfig ro addr(base, 0x4) "SCU Configuration" {
|
|
_ 16;
|
|
tag_ram_sizes 8 ro "Tag RAM sizes";
|
|
cpu_smp 4 ro "CPUs SMP bits";
|
|
_ 2;
|
|
cpu_number 2 ro "Number of CPUs present";
|
|
};
|
|
|
|
constants cpu_status "CPU Status" {
|
|
normal_mode = 0b00 "Normal mode";
|
|
dormant_mode = 0b10 "Dormant mode";
|
|
powered_off_mode = 0b11 "Powered-off mode";
|
|
};
|
|
|
|
register SCUPowerStatus addr(base, 0x8) "SCU CPU Power Status" {
|
|
_ 6;
|
|
cpu3_status 2 rw "Status CPU3";
|
|
_ 6;
|
|
cpu2_status 2 rw "Status CPU2";
|
|
_ 6;
|
|
cpu1_status 2 rw "Status CPU1";
|
|
_ 6;
|
|
cpu0_status 2 rw "Status CPU0";
|
|
};
|
|
|
|
register SCUFilteringStart addr(base, 0x40) "Filtering Start Address" {
|
|
start_address 12 rw "Filtering Start address";
|
|
_ 20;
|
|
};
|
|
|
|
register SCUFilteringEnd addr(base, 0x44) "Filtering End Address" {
|
|
end_address 12 rw "Filtering Start address";
|
|
_ 20;
|
|
};
|
|
|
|
};
|