36#include "debug/IsaFake.hh"
58 if (
params().warn_access !=
"")
60 "Device %s accessed by read to address %#x size=%d. "
61 "Access message: %s\n",
63 if (
params().ret_bad_addr) {
72 case sizeof(uint64_t):
75 case sizeof(uint32_t):
78 case sizeof(uint16_t):
88 panic(
"invalid access size! Device being accessed by cache?\n");
98 if (
params().warn_access !=
"") {
101 case sizeof(uint64_t):
104 case sizeof(uint32_t):
107 case sizeof(uint16_t):
110 case sizeof(uint8_t):
117 "Device %s accessed by write to address %#x size=%d data=%#x. "
118 "Access message: %s\n",
121 if (
params().ret_bad_addr) {
129 if (
params().update_data) {
131 case sizeof(uint64_t):
134 case sizeof(uint32_t):
137 case sizeof(uint16_t):
140 case sizeof(uint8_t):
144 panic(
"invalid access size!\n");
Addr pioAddr
Address that the device listens to.
BasicPioDevice(const Params &p, Addr size)
Tick pioDelay
Delay that the device experinces on an access.
Addr pioSize
Size that the device's address range.
virtual Tick write(PacketPtr pkt)
All writes are simply ignored.
virtual Tick read(PacketPtr pkt)
This read always returns -1.
IsaFake(const Params &p)
The constructor for Isa Fake just registers itself with the MMU.
void setLE(T v)
Set the value in the data pointer to v as little endian.
T * getPtr()
get a pointer to the data ptr.
void makeAtomicResponse()
T getLE() const
Get the data in the packet byte swapped from little endian to host endian.
#define panic(...)
This implements a cprintf based panic() function.
const Params & params() const
Declaration of a fake device.
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Tick
Tick count type.
Declaration of the Packet class.
const std::string & name()