| from m5.SimObject import SimObject |
| from m5.params import * |
| from Pci import PciDevice, PciConfigData |
| |
| class IdeID(Enum): vals = ['master', 'slave'] |
| |
| class IdeControllerPciData(PciConfigData): |
| VendorID = 0x8086 |
| DeviceID = 0x7111 |
| Command = 0x0 |
| Status = 0x280 |
| Revision = 0x0 |
| ClassCode = 0x01 |
| SubClassCode = 0x01 |
| ProgIF = 0x85 |
| BAR0 = 0x00000001 |
| BAR1 = 0x00000001 |
| BAR2 = 0x00000001 |
| BAR3 = 0x00000001 |
| BAR4 = 0x00000001 |
| BAR5 = 0x00000001 |
| InterruptLine = 0x1f |
| InterruptPin = 0x01 |
| BAR0Size = '8B' |
| BAR1Size = '4B' |
| BAR2Size = '8B' |
| BAR3Size = '4B' |
| BAR4Size = '16B' |
| |
| class IdeDisk(SimObject): |
| type = 'IdeDisk' |
| delay = Param.Latency('1us', "Fixed disk delay in microseconds") |
| driveID = Param.IdeID('master', "Drive ID") |
| image = Param.DiskImage("Disk image") |
| |
| class IdeController(PciDevice): |
| type = 'IdeController' |
| disks = VectorParam.IdeDisk("IDE disks attached to this controller") |
| |
| configdata =IdeControllerPciData() |