gem5 v24.0.0.0
|
Device model for an IDE disk. More...
#include "base/statistics.hh"
#include "dev/io_device.hh"
#include "dev/storage/disk_image.hh"
#include "dev/storage/ide_atareg.h"
#include "dev/storage/ide_ctrl.hh"
#include "dev/storage/ide_wdcreg.h"
#include "params/IdeDisk.hh"
#include "sim/eventq.hh"
Go to the source code of this file.
Classes | |
struct | gem5::PrdEntry_t |
class | gem5::PrdTableEntry |
struct | gem5::CommandReg_t |
class | gem5::IdeDisk |
IDE Disk device model. More... | |
struct | gem5::IdeDisk::IdeDiskStats |
Namespaces | |
namespace | gem5 |
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved. | |
Macros | |
#define | DMA_BACKOFF_PERIOD 200 |
#define | MAX_DMA_SIZE 0x20000 |
#define | MAX_SINGLE_DMA_SIZE 0x10000 |
#define | MAX_MULTSECT (128) |
#define | PRD_BASE_MASK 0xfffffffe |
#define | PRD_COUNT_MASK 0xfffe |
#define | PRD_EOT_MASK 0x8000 |
#define | DATA_OFFSET (0) |
#define | ERROR_OFFSET (1) |
#define | FEATURES_OFFSET (1) |
#define | NSECTOR_OFFSET (2) |
#define | SECTOR_OFFSET (3) |
#define | LCYL_OFFSET (4) |
#define | HCYL_OFFSET (5) |
#define | SELECT_OFFSET (6) |
#define | DRIVE_OFFSET (6) |
#define | STATUS_OFFSET (7) |
#define | COMMAND_OFFSET (7) |
#define | CONTROL_OFFSET (2) |
#define | ALTSTAT_OFFSET (2) |
#define | SELECT_DEV_BIT 0x10 |
#define | CONTROL_RST_BIT 0x04 |
#define | CONTROL_IEN_BIT 0x02 |
#define | STATUS_BSY_BIT 0x80 |
#define | STATUS_DRDY_BIT 0x40 |
#define | STATUS_DRQ_BIT 0x08 |
#define | STATUS_SEEK_BIT 0x10 |
#define | STATUS_DF_BIT 0x20 |
#define | DRIVE_LBA_BIT 0x40 |
#define | DEV0 (0) |
#define | DEV1 (1) |
Device model for an IDE disk.
Definition in file ide_disk.hh.
#define ALTSTAT_OFFSET (2) |
Definition at line 114 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readControl().
#define COMMAND_OFFSET (7) |
Definition at line 111 of file ide_disk.hh.
Referenced by gem5::IdeDisk::writeCommand().
#define CONTROL_IEN_BIT 0x02 |
Definition at line 118 of file ide_disk.hh.
Referenced by gem5::IdeDisk::writeControl().
#define CONTROL_OFFSET (2) |
Definition at line 113 of file ide_disk.hh.
Referenced by gem5::IdeDisk::writeControl().
#define CONTROL_RST_BIT 0x04 |
Definition at line 117 of file ide_disk.hh.
Referenced by gem5::IdeDisk::writeControl().
#define DATA_OFFSET (0) |
Definition at line 101 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define DEV0 (0) |
Definition at line 126 of file ide_disk.hh.
Referenced by gem5::IdeDisk::reset().
#define DEV1 (1) |
Definition at line 127 of file ide_disk.hh.
Referenced by gem5::IdeDisk::reset().
#define DMA_BACKOFF_PERIOD 200 |
Definition at line 62 of file ide_disk.hh.
Referenced by gem5::IdeDisk::doDmaRead(), gem5::IdeDisk::doDmaTransfer(), and gem5::IdeDisk::doDmaWrite().
#define DRIVE_LBA_BIT 0x40 |
Definition at line 124 of file ide_disk.hh.
Referenced by gem5::IdeDisk::startCommand().
#define DRIVE_OFFSET (6) |
Definition at line 109 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define ERROR_OFFSET (1) |
Definition at line 102 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand().
#define FEATURES_OFFSET (1) |
Definition at line 103 of file ide_disk.hh.
Referenced by gem5::IdeDisk::writeCommand().
#define HCYL_OFFSET (5) |
Definition at line 107 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define LCYL_OFFSET (4) |
Definition at line 106 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define MAX_DMA_SIZE 0x20000 |
Definition at line 64 of file ide_disk.hh.
Referenced by gem5::IdeDisk::doDmaDataWrite(), gem5::IdeDisk::doDmaRead(), gem5::IdeDisk::doDmaWrite(), gem5::IdeDisk::reset(), gem5::IdeDisk::serialize(), gem5::IdeDisk::unserialize(), and gem5::IdeDisk::updateState().
#define MAX_MULTSECT (128) |
Definition at line 66 of file ide_disk.hh.
#define MAX_SINGLE_DMA_SIZE 0x10000 |
Definition at line 65 of file ide_disk.hh.
Referenced by gem5::PrdTableEntry::getByteCount().
#define NSECTOR_OFFSET (2) |
Definition at line 104 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define PRD_BASE_MASK 0xfffffffe |
Definition at line 68 of file ide_disk.hh.
Referenced by gem5::PrdTableEntry::getBaseAddr().
#define PRD_COUNT_MASK 0xfffe |
Definition at line 69 of file ide_disk.hh.
Referenced by gem5::PrdTableEntry::getByteCount().
#define PRD_EOT_MASK 0x8000 |
Definition at line 70 of file ide_disk.hh.
Referenced by gem5::PrdTableEntry::getEOT().
#define SECTOR_OFFSET (3) |
Definition at line 105 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand(), and gem5::IdeDisk::writeCommand().
#define SELECT_DEV_BIT 0x10 |
Definition at line 116 of file ide_disk.hh.
#define SELECT_OFFSET (6) |
Definition at line 108 of file ide_disk.hh.
#define STATUS_BSY_BIT 0x80 |
Definition at line 119 of file ide_disk.hh.
Referenced by gem5::IdeDisk::isBSYSet(), gem5::IdeDisk::startCommand(), and gem5::IdeDisk::updateState().
#define STATUS_DF_BIT 0x20 |
Definition at line 123 of file ide_disk.hh.
#define STATUS_DRDY_BIT 0x40 |
Definition at line 120 of file ide_disk.hh.
Referenced by gem5::IdeDisk::reset(), and gem5::IdeDisk::setComplete().
#define STATUS_DRQ_BIT 0x08 |
Definition at line 121 of file ide_disk.hh.
Referenced by gem5::IdeDisk::updateState().
#define STATUS_OFFSET (7) |
Definition at line 110 of file ide_disk.hh.
Referenced by gem5::IdeDisk::readCommand().
#define STATUS_SEEK_BIT 0x10 |
Definition at line 122 of file ide_disk.hh.
Referenced by gem5::IdeDisk::setComplete(), and gem5::IdeDisk::updateState().