74 warn_once(
"A9SCU with >4 CPUs is unsupported");
76 "Too many CPUs (%d) for A9SCU!", threads);
78 int smp_bits, core_cnt;
79 smp_bits = (1 << threads) - 1;
80 core_cnt = threads - 1;
81 pkt->
setLE(smp_bits << 4 | core_cnt);
86 panic(
"Tried to read SCU at offset %#x\n", daddr);
103 warn(
"Tried to write SCU at offset %#x\n", daddr);
This defines the snoop control unit register on an A9.
A9SCU(const Params &p)
The constructor for RealView just registers itself with the MMU.
virtual Tick write(PacketPtr pkt)
All writes are panic.
virtual Tick read(PacketPtr pkt)
Handle a read to the device.
Addr pioAddr
Address that the device listens to.
Tick pioDelay
Delay that the device experinces on an access.
Addr pioSize
Size that the device's address range.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void setLE(T v)
Set the value in the data pointer to v as little endian.
void makeAtomicResponse()
#define panic(...)
This implements a cprintf based panic() function.
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
Declaration of the Packet class.