|
gem5 [DEVELOP-FOR-25.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 (std::string_view 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, ctrl, gem5::IdeController::IdeController(), gem5::Named::Named(), and primary.
| 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, bmiRegs, gem5::BMIStatus, data, DPRINTF, gem5::htole(), gem5::letoh(), gem5::ArmISA::offset, panic, gem5::IdeController::read(), and selected().
| 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, gem5::IdeController::read(), select(), and selected().
| 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, gem5::IdeController::read(), and selected().
| void gem5::IdeController::Channel::clearInterrupt | ( | ) |
Definition at line 132 of file ide_ctrl.cc.
References _pendingInterrupt, bmiRegs, ctrl, and isPrimary().
|
inline |
Definition at line 136 of file ide_ctrl.hh.
References ctrl, and gem5::IdeController::IdeController().
|
inline |
Definition at line 131 of file ide_ctrl.hh.
References primary.
Referenced by clearInterrupt(), and postInterrupt().
|
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, and isPrimary().
|
inline |
Definition at line 169 of file ide_ctrl.hh.
References _selected, device0, device1, and selectBit.
Referenced by accessCommand(), and unserialize().
|
inline |
Definition at line 135 of file ide_ctrl.hh.
References _selected.
Referenced by accessBMI(), accessCommand(), and accessControl().
| void gem5::IdeController::Channel::serialize | ( | const std::string & | base, |
| std::ostream & | os ) const |
Definition at line 415 of file ide_ctrl.cc.
References gem5::RiscvISA::base, bmiRegs, gem5::paramOut(), selectBit, and gem5::ArmISA::status.
|
inline |
Definition at line 139 of file ide_ctrl.hh.
References device0.
|
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.
References bmiRegs.
| void gem5::IdeController::Channel::unserialize | ( | const std::string & | base, |
| CheckpointIn & | cp ) |
Definition at line 443 of file ide_ctrl.cc.
References gem5::RiscvISA::base, bmiRegs, gem5::paramIn(), select(), selectBit, and gem5::ArmISA::status.
|
private |
Definition at line 128 of file ide_ctrl.hh.
Referenced by clearInterrupt(), 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 accessBMI(), Channel(), clearInterrupt(), postInterrupt(), serialize(), setDmaComplete(), and unserialize().
|
private |
Definition at line 112 of file ide_ctrl.hh.
Referenced by Channel(), clearInterrupt(), 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 Channel(), and isPrimary().
|
private |
Definition at line 125 of file ide_ctrl.hh.
Referenced by select(), serialize(), and unserialize().