ArmSystem.py (9649:c717bd5e0a1d) ArmSystem.py (10037:5cac77888310)
1# Copyright (c) 2009 ARM Limited
1# Copyright (c) 2009, 2012-2013 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license
9# terms below provided that you ensure that this notice is replicated

--- 29 unchanged lines hidden (view full) ---

39
40from System import System
41
42class ArmMachineType(Enum):
43 map = {'RealView_EB' : 827,
44 'RealView_PBX' : 1901,
45 'VExpress_ELT' : 2272,
46 'VExpress_CA9' : 2272,
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license
9# terms below provided that you ensure that this notice is replicated

--- 29 unchanged lines hidden (view full) ---

39
40from System import System
41
42class ArmMachineType(Enum):
43 map = {'RealView_EB' : 827,
44 'RealView_PBX' : 1901,
45 'VExpress_ELT' : 2272,
46 'VExpress_CA9' : 2272,
47 'VExpress_EMM' : 2272}
47 'VExpress_EMM' : 2272,
48 'VExpress_EMM64' : 2272}
48
49class ArmSystem(System):
50 type = 'ArmSystem'
51 cxx_header = "arch/arm/system.hh"
52 load_addr_mask = 0xffffffff
53 multi_proc = Param.Bool(True, "Multiprocessor system?")
54 boot_loader = Param.String("", "File that contains the boot loader code if any")
55 gic_cpu_addr = Param.Addr(0, "Addres of the GIC CPU interface")
56 flags_addr = Param.Addr(0, "Address of the flags register for MP booting")
49
50class ArmSystem(System):
51 type = 'ArmSystem'
52 cxx_header = "arch/arm/system.hh"
53 load_addr_mask = 0xffffffff
54 multi_proc = Param.Bool(True, "Multiprocessor system?")
55 boot_loader = Param.String("", "File that contains the boot loader code if any")
56 gic_cpu_addr = Param.Addr(0, "Addres of the GIC CPU interface")
57 flags_addr = Param.Addr(0, "Address of the flags register for MP booting")
58 have_security = Param.Bool(False,
59 "True if Security Extensions are implemented")
60 have_virtualization = Param.Bool(False,
61 "True if Virtualization Extensions are implemented")
62 have_lpae = Param.Bool(False, "True if LPAE is implemented")
63 have_generic_timer = Param.Bool(False,
64 "True if the Generic Timer extension is implemented")
65 highest_el_is_64 = Param.Bool(False,
66 "True if the register width of the highest implemented exception level "
67 "is 64 bits (ARMv8)")
68 reset_addr_64 = Param.UInt64(0x0,
69 "Reset address if the highest implemented exception level is 64 bits "
70 "(ARMv8)")
71 phys_addr_range_64 = Param.UInt8(40,
72 "Supported physical address range in bits when using AArch64 (ARMv8)")
73 have_large_asid_64 = Param.Bool(False,
74 "True if ASID is 16 bits in AArch64 (ARMv8)")
57
58class LinuxArmSystem(ArmSystem):
59 type = 'LinuxArmSystem'
60 cxx_header = "arch/arm/linux/system.hh"
61 load_addr_mask = 0x0fffffff
62 machine_type = Param.ArmMachineType('RealView_PBX',
63 "Machine id from http://www.arm.linux.org.uk/developer/machines/")
75
76class LinuxArmSystem(ArmSystem):
77 type = 'LinuxArmSystem'
78 cxx_header = "arch/arm/linux/system.hh"
79 load_addr_mask = 0x0fffffff
80 machine_type = Param.ArmMachineType('RealView_PBX',
81 "Machine id from http://www.arm.linux.org.uk/developer/machines/")
64 atags_addr = Param.Addr(0x100,
65 "Address where default atags structure should be written")
82 atags_addr = Param.Addr("Address where default atags structure should " \
83 "be written")
84 boot_release_addr = Param.Addr(0xfff8, "Address where secondary CPUs " \
85 "spin waiting boot in the loader")
66 dtb_filename = Param.String("",
67 "File that contains the Device Tree Blob. Don't use DTB if empty.")
68 early_kernel_symbols = Param.Bool(False,
69 "enable early kernel symbol tables before MMU")
70 enable_context_switch_stats_dump = Param.Bool(False, "enable stats/task info dumping at context switch boundaries")
71
72 panic_on_panic = Param.Bool(False, "Trigger a gem5 panic if the " \
73 "guest kernel panics")
74 panic_on_oops = Param.Bool(False, "Trigger a gem5 panic if the " \
75 "guest kernel oopses")
86 dtb_filename = Param.String("",
87 "File that contains the Device Tree Blob. Don't use DTB if empty.")
88 early_kernel_symbols = Param.Bool(False,
89 "enable early kernel symbol tables before MMU")
90 enable_context_switch_stats_dump = Param.Bool(False, "enable stats/task info dumping at context switch boundaries")
91
92 panic_on_panic = Param.Bool(False, "Trigger a gem5 panic if the " \
93 "guest kernel panics")
94 panic_on_oops = Param.Bool(False, "Trigger a gem5 panic if the " \
95 "guest kernel oopses")