03a2aca9a9
System object now exists for both fullsys and syscall emulation, as the latter needs it so that Process objects can find the shared PhysicalMemory for initialization. Changes are incomplete: still need to fix up Process (& EioProcess) memory initialization and syscall emulation code for new mem interface. arch/alpha/alpha_linux_process.cc: arch/alpha/alpha_linux_process.hh: arch/alpha/alpha_tru64_process.cc: arch/alpha/alpha_tru64_process.hh: cpu/base.cc: cpu/base.hh: Take System argument in constructor. cpu/exec_context.cc: Take System argument in constructor. Merge two constructors into a single one. cpu/exec_context.hh: Take System argument in constructor. Merge two constructors into a single one. Replace dummy translation with lookup in Process object's page table. python/m5/objects/Process.py: Add System parameter to Process object (& subobjects). python/m5/objects/System.py: Segregate full-system only Process parameters (most of them!). sim/process.cc: Take System argument in constructor. Move initialization to startup() callback to occur after system & cpus are initialized. Generate ProxyMemory object to pass to loader for transparent virtual page allocation. sim/process.hh: Take System argument in constructor. Move initialization to startup() callback to occur after system & cpus are initialized. sim/system.cc: sim/system.hh: Enable System object for non-full-system too. Basically involved putting most of the existing code inside '#ifdef FULL_SYSTEM'. Key thing needed for syscall emulation at this point is the PhysicalMemory object (for Process initialization). --HG-- extra : convert_revision : f0f34b47bd4f77b502191affd3d03b4d6d9bcdd8
19 lines
1.1 KiB
Python
19 lines
1.1 KiB
Python
from m5 import *
|
|
class System(SimObject):
|
|
type = 'System'
|
|
physmem = Param.PhysicalMemory(Parent.any, "phsyical memory")
|
|
|
|
if build_env['FULL_SYSTEM']:
|
|
boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency,
|
|
"boot processor frequency")
|
|
memctrl = Param.MemoryController(Parent.any, "memory controller")
|
|
kernel = Param.String("file that contains the kernel code")
|
|
console = Param.String("file that contains the console code")
|
|
pal = Param.String("file that contains palcode")
|
|
readfile = Param.String("", "file to read startup script from")
|
|
init_param = Param.UInt64(0, "numerical value to pass into simulator")
|
|
boot_osflags = Param.String("a", "boot flags to pass to the kernel")
|
|
system_type = Param.UInt64("Type of system we are emulating")
|
|
system_rev = Param.UInt64("Revision of system we are emulating")
|
|
bin = Param.Bool(False, "is this system binned")
|
|
binned_fns = VectorParam.String([], "functions broken down and binned")
|