gem5 v24.0.0.0
|
#include <ide_ctrl.hh>
Classes | |
struct | BMIRegs |
Registers used for bus master interface. More... | |
Public Member Functions | |
bool | isPrimary () const |
bool | pendingInterrupt () const |
IdeDisk * | selected () const |
IdeController * | controller () const |
void | setDevice0 (IdeDisk *disk) |
void | setDevice1 (IdeDisk *disk) |
void | select (bool select_device_1) |
void | accessCommand (Addr offset, int size, uint8_t *data, bool read) |
void | accessControl (Addr offset, int size, uint8_t *data, bool read) |
void | accessBMI (Addr offset, int size, uint8_t *data, bool read) |
void | setDmaComplete () |
void | postInterrupt () |
void | clearInterrupt () |
Channel (std::string new_name, IdeController *new_ctrl, bool new_primary) | |
void | serialize (const std::string &base, std::ostream &os) const |
void | unserialize (const std::string &base, CheckpointIn &cp) |
Public Member Functions inherited from gem5::Named | |
Named (const std::string &name_) | |
virtual | ~Named ()=default |
virtual std::string | name () const |
Public Attributes | |
struct gem5::IdeController::Channel::BMIRegs | bmiRegs |
Private Attributes | |
IdeController * | ctrl |
IdeDisk * | device0 = nullptr |
IDE disks connected to this controller For more details about device0 and device1 see: https://en.wikipedia.org/wiki/Parallel_ATA #Multiple_devices_on_a_cable. | |
IdeDisk * | device1 = nullptr |
IdeDisk * | _selected = nullptr |
Currently selected disk. | |
bool | selectBit = false |
bool | primary |
bool | _pendingInterrupt = false |
Definition at line 109 of file ide_ctrl.hh.
gem5::IdeController::Channel::Channel | ( | std::string | new_name, |
IdeController * | new_ctrl, | ||
bool | new_primary ) |
Definition at line 64 of file ide_ctrl.cc.
References bmiRegs, gem5::IdeController::Channel::BMIRegs::reset(), and gem5::IdeController::Channel::BMIRegs::status.
void gem5::IdeController::Channel::accessBMI | ( | Addr | offset, |
int | size, | ||
uint8_t * | data, | ||
bool | read ) |
Definition at line 230 of file ide_ctrl.cc.
References gem5::BMICommand, gem5::BMIDescTablePtr, gem5::BMIStatus, data, DPRINTF, gem5::htole(), gem5::letoh(), gem5::ArmISA::offset, panic, and gem5::IdeController::read().
Referenced by gem5::IdeController::dispatchAccess().
void gem5::IdeController::Channel::accessCommand | ( | Addr | offset, |
int | size, | ||
uint8_t * | data, | ||
bool | read ) |
Definition at line 196 of file ide_ctrl.cc.
References data, gem5::ArmISA::offset, and gem5::IdeController::read().
Referenced by gem5::IdeController::dispatchAccess().
void gem5::IdeController::Channel::accessControl | ( | Addr | offset, |
int | size, | ||
uint8_t * | data, | ||
bool | read ) |
Definition at line 216 of file ide_ctrl.cc.
References data, gem5::ArmISA::offset, and gem5::IdeController::read().
Referenced by gem5::IdeController::dispatchAccess().
void gem5::IdeController::Channel::clearInterrupt | ( | ) |
Definition at line 132 of file ide_ctrl.cc.
Referenced by gem5::IdeDisk::clearInterrupt().
|
inline |
Definition at line 136 of file ide_ctrl.hh.
References ctrl.
Referenced by gem5::IdeDisk::setChannel().
|
inline |
|
inline |
Definition at line 133 of file ide_ctrl.hh.
References _pendingInterrupt.
void gem5::IdeController::Channel::postInterrupt | ( | ) |
Definition at line 124 of file ide_ctrl.cc.
References _pendingInterrupt, bmiRegs, ctrl, isPrimary(), gem5::IdeController::postInterrupt(), and gem5::IdeController::Channel::BMIRegs::status.
Referenced by gem5::IdeDisk::postInterrupt().
|
inline |
Definition at line 169 of file ide_ctrl.hh.
References _selected, device0, device1, and selectBit.
Referenced by gem5::IdeController::IdeController().
|
inline |
Definition at line 135 of file ide_ctrl.hh.
References _selected.
Referenced by gem5::IdeDisk::isDEVSelect().
void gem5::IdeController::Channel::serialize | ( | const std::string & | base, |
std::ostream & | os ) const |
Definition at line 415 of file ide_ctrl.cc.
References gem5::X86ISA::base, gem5::paramOut(), and gem5::ArmISA::status.
Referenced by gem5::IdeController::serialize().
|
inline |
Definition at line 139 of file ide_ctrl.hh.
References device0.
Referenced by gem5::IdeController::IdeController().
|
inline |
Definition at line 146 of file ide_ctrl.hh.
References device1.
void gem5::IdeController::Channel::setDmaComplete | ( | ) |
Definition at line 379 of file ide_ctrl.cc.
Referenced by gem5::IdeDisk::updateState().
void gem5::IdeController::Channel::unserialize | ( | const std::string & | base, |
CheckpointIn & | cp ) |
Definition at line 443 of file ide_ctrl.cc.
References gem5::X86ISA::base, gem5::paramIn(), and gem5::ArmISA::status.
Referenced by gem5::IdeController::unserialize().
|
private |
Definition at line 128 of file ide_ctrl.hh.
Referenced by pendingInterrupt(), and postInterrupt().
|
private |
Currently selected disk.
Definition at line 123 of file ide_ctrl.hh.
Referenced by select(), and selected().
struct gem5::IdeController::Channel::BMIRegs gem5::IdeController::Channel::bmiRegs |
Referenced by Channel(), and postInterrupt().
|
private |
Definition at line 112 of file ide_ctrl.hh.
Referenced by controller(), and postInterrupt().
|
private |
IDE disks connected to this controller For more details about device0 and device1 see: https://en.wikipedia.org/wiki/Parallel_ATA #Multiple_devices_on_a_cable.
Definition at line 120 of file ide_ctrl.hh.
Referenced by select(), and setDevice0().
|
private |
Definition at line 120 of file ide_ctrl.hh.
Referenced by select(), and setDevice1().
|
private |
Definition at line 126 of file ide_ctrl.hh.
Referenced by isPrimary().
|
private |
Definition at line 125 of file ide_ctrl.hh.
Referenced by select().