43 panic(
"Read from i8237 channel 0 current address unimplemented.\n");
45 panic(
"Read from i8237 channel 0 remaining " 46 "word count unimplemented.\n");
48 panic(
"Read from i8237 channel 1 current address unimplemented.\n");
50 panic(
"Read from i8237 channel 1 remaining " 51 "word count unimplemented.\n");
53 panic(
"Read from i8237 channel 2 current address unimplemented.\n");
55 panic(
"Read from i8237 channel 2 remaining " 56 "word count unimplemented.\n");
58 panic(
"Read from i8237 channel 3 current address unimplemented.\n");
60 panic(
"Read from i8237 channel 3 remaining " 61 "word count unimplemented.\n");
63 panic(
"Read from i8237 status register unimplemented.\n");
65 panic(
"Read from undefined i8237 register %d.\n", offset);
78 panic(
"Write to i8237 channel 0 starting address unimplemented.\n");
80 panic(
"Write to i8237 channel 0 starting " 81 "word count unimplemented.\n");
83 panic(
"Write to i8237 channel 1 starting address unimplemented.\n");
85 panic(
"Write to i8237 channel 1 starting " 86 "word count unimplemented.\n");
88 panic(
"Write to i8237 channel 2 starting address unimplemented.\n");
90 panic(
"Write to i8237 channel 2 starting " 91 "word count unimplemented.\n");
93 panic(
"Write to i8237 channel 3 starting address unimplemented.\n");
95 panic(
"Write to i8237 channel 3 starting " 96 "word count unimplemented.\n");
98 panic(
"Write to i8237 command register unimplemented.\n");
100 panic(
"Write to i8237 request register unimplemented.\n");
103 uint8_t command = pkt->
getLE<uint8_t>();
104 uint8_t select =
bits(command, 1, 0);
105 uint8_t bitVal =
bits(command, 2);
107 panic(
"Turning on i8237 channels unimplemented.\n");
112 panic(
"Write to i8237 mode register unimplemented.\n");
114 panic(
"Write to i8237 clear LSB/MSB flip-flop " 115 "register unimplemented.\n");
117 panic(
"Write to i8237 master clear/reset register unimplemented.\n");
119 panic(
"Write to i8237 clear mask register unimplemented.\n");
121 panic(
"Write to i8237 write all mask register bits unimplemented.\n");
123 panic(
"Write to undefined i8237 register.\n");
142 I8237Params::create()
#define panic(...)
This implements a cprintf based panic() function.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void serialize(CheckpointOut &cp) const override
Serialize an object.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
#define UNSERIALIZE_SCALAR(scalar)
void makeAtomicResponse()
uint64_t Tick
Tick count type.
void replaceBits(T &val, int first, int last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
#define SERIALIZE_SCALAR(scalar)
Declaration of the Packet class.
std::ostream CheckpointOut
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
T getLE() const
Get the data in the packet byte swapped from little endian to host endian.
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...
Addr pioAddr
Address that the device listens to.