turbolaser.py
来自「linux下基于c++的处理器仿真平台。具有处理器流水线」· Python 代码 · 共 88 行
PY
88 行
from m5 import *from Device import PioDevicefrom Device import FooPioDevicefrom Platform import Platformclass TlaserClock(SimObject): type = 'TlaserClock' delay = Param.Latency('1ms', "number of cycles to delay clock start") frequency = Param.Frequency('1200Hz', "clock interrupt frequency") intr_control = Param.IntrControl(Parent.any, "interrupt controller")class TlaserIpi(PioDevice): type = 'TlaserIpi' tlaser = Param.Turbolaser(Parent.any, "Turbolaser") addr = 0xff8e000000class TlaserMBox(SimObject): type = 'TlaserMBox' physmem = Param.PhysicalMemory(Parent.any, "physical memory")class TlaserMC146818(PioDevice): type = 'TlaserMC146818' clock = Param.TlaserClock(Parent.any, "turbolaser clock") time = Param.Int(1136073600, "System time to use (0 for actual time, default is 1/1/06") addr = 0xffb0000000class TlaserNodeType(Enum): vals = ["KFTHA", "KFTIA", "MS7CC", "SingleProc4M", "SingleProc16M", "DualProc4M", "DualProc16M"]class TlaserNode(PioDevice): type = 'TlaserNode' node_type = Param.TlaserNodeType("Node Type") number = Param.Int("Node Number") tlaser = Param.Turbolaser(Parent.any, "Turbolaser")class TlaserPciDev(FooPioDevice): type = 'TlaserPciDev' VendorID = Param.UInt16("Vendor ID") DeviceID = Param.UInt16("Device ID") Command = Param.UInt16(0, "Command") Status = Param.UInt16(0, "Status") Revision = Param.UInt8(0, "Device") ProgIF = Param.UInt8(0, "Programming Interface") SubClassCode = Param.UInt8(0, "Sub-Class Code") ClassCode = Param.UInt8(0, "Class Code") CacheLineSize = Param.UInt8(0, "System Cacheline Size") LatencyTimer = Param.UInt8(0, "PCI Latency Timer") HeaderType = Param.UInt8(0, "PCI Header Type") BIST = Param.UInt8(0, "Built In Self Test") BAR0 = Param.UInt32(0x00, "Base Address Register 0") BAR1 = Param.UInt32(0x00, "Base Address Register 1") BAR2 = Param.UInt32(0x00, "Base Address Register 2") BAR3 = Param.UInt32(0x00, "Base Address Register 3") BAR4 = Param.UInt32(0x00, "Base Address Register 4") BAR5 = Param.UInt32(0x00, "Base Address Register 5") BAR0Size = Param.UInt32(0, "Base Address Register 0 Size") BAR1Size = Param.UInt32(0, "Base Address Register 1 Size") BAR2Size = Param.UInt32(0, "Base Address Register 2 Size") BAR3Size = Param.UInt32(0, "Base Address Register 3 Size") BAR4Size = Param.UInt32(0, "Base Address Register 4 Size") BAR5Size = Param.UInt32(0, "Base Address Register 5 Size") CardbusCIS = Param.UInt32(0x00, "Cardbus Card Information Structure") SubsystemID = Param.UInt16(0x00, "Subsystem ID") SubsystemVendorID = Param.UInt16(0x00, "Subsystem Vendor ID") ExpansionROM = Param.UInt32(0x00, "Expansion ROM Base Address") InterruptLine = Param.UInt8(0x00, "Interrupt Line") InterruptPin = Param.UInt8(0x00, "Interrupt Pin") MaximumLatency = Param.UInt8(0x00, "Maximum Latency") MinimumGrant = Param.UInt8(0x00, "Minimum Grant")class TlaserPcia(PioDevice): type = 'TlaserPcia' addr = 0xc780000000class TlaserSerial(PioDevice): type = 'TlaserSerial' sernum = Param.UInt32(0xFAFAFAFAL, "Serial Number") addr = 0xffc7000000class Turbolaser(Platform): type = 'Turbolaser' clock = Param.TlaserClock(Parent.any, "turbolaser clock") mbox = Param.TlaserMBox(Parent.any, "message box")
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?