37 #ifndef __DEV_STORAGE_IDE_CTRL_HH__ 38 #define __DEV_STORAGE_IDE_CTRL_HH__ 43 #include "params/IdeController.hh" 79 Addr cmdAddr, cmdSize, ctrlAddr, ctrlSize;
85 memset(static_cast<void *>(
this), 0,
sizeof(*
this));
88 BMICommandReg command;
104 select(
bool selSlave)
106 selectBit = selSlave;
107 selected = selectBit ? slave : master;
111 void accessControl(
Addr offset,
int size, uint8_t *data,
bool read);
112 void accessBMI(
Addr offset,
int size, uint8_t *data,
bool read);
114 Channel(std::string newName,
Addr _cmdSize,
Addr _ctrlSize);
163 #endif // __DEV_STORAGE_IDE_CTRL_HH_ Tick readConfig(PacketPtr pkt) override
Read from the PCI config space data that is stored locally.
IdeControllerParams Params
void unserialize(CheckpointIn &cp) override
Reconstruct the state of this object from a checkpoint.
PCI device, base implementation is only config space.
bool isDiskSelected(IdeDisk *diskPtr)
See if a disk is selected based on its pointer.
Device model for an Intel PIIX4 IDE controller.
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
BitUnion8(BMIStatusReg) Bitfield< 6 > dmaCap0
uint16_t primaryTiming
Registers used in device specific PCI configuration.
void dispatchAccess(PacketPtr pkt, bool read)
EndBitUnion(BMICommandReg) struct Channel
uint64_t Tick
Tick count type.
const Params * params() const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual const std::string name() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Addr bmiAddr
Bus master interface (BMI) registers.
std::ostream CheckpointOut
const SimObjectParams * _params
Cached copy of the object parameters.
EndBitUnion(BMIStatusReg) BitUnion8(BMICommandReg) Bitfield< 3 > rw
void serialize(CheckpointOut &cp) const override
Serialize this object to the given output stream.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void setDmaComplete(IdeDisk *disk)
Tick writeConfig(PacketPtr pkt) override
Write to the PCI config space data that is stored locally.