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;
84 BMICommandReg command;
100 select(
bool selSlave)
102 selectBit = selSlave;
103 selected = selectBit ? slave : master;
107 void accessControl(
Addr offset,
int size, uint8_t *data,
bool read);
108 void accessBMI(
Addr offset,
int size, uint8_t *data,
bool read);
110 Channel(std::string newName,
Addr _cmdSize,
Addr _ctrlSize);
159 #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.
const Params * params() const
BitUnion8(BMIStatusReg) Bitfield< 6 > dmaCap0
uint16_t primaryTiming
Registers used in device specific PCI configuration.
void dispatchAccess(PacketPtr pkt, bool read)
uint64_t Tick
Tick count type.
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...
Addr bmiAddr
Bus master interface (BMI) registers.
virtual const std::string name() const
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.