diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-03-01 17:26:31 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-03-01 17:26:31 -0600 |
commit | 91b737ed48008ed295db22c857183f040a63234c (patch) | |
tree | 03e4be02cd6846b632045b520ad7d9a588974bc9 /configs/common | |
parent | 3876105bdb5589360c58389ffffff9786a93a2ff (diff) | |
download | gem5-91b737ed48008ed295db22c857183f040a63234c.tar.xz |
ARM: Add support for Versatile Express extended memory map
Also clean up how we create boot loader memory a bit.
Diffstat (limited to 'configs/common')
-rw-r--r-- | configs/common/FSConfig.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py index fdc636a1f..85dfb10f4 100644 --- a/configs/common/FSConfig.py +++ b/configs/common/FSConfig.py @@ -252,6 +252,9 @@ def makeArmSystem(mem_mode, machine_type, mdesc = None, bare_metal=False): self.realview = RealViewEB() elif machine_type == "VExpress_ELT": self.realview = VExpress_ELT() + elif machine_type == "VExpress_EMM": + self.realview = VExpress_EMM() + self.load_addr_mask = 0xffffffff else: print "Unknown Machine Type" sys.exit(1) @@ -273,21 +276,17 @@ def makeArmSystem(mem_mode, machine_type, mdesc = None, bare_metal=False): else: self.kernel = binary('vmlinux.arm.smp.fb.2.6.38.8') self.machine_type = machine_type - if convert.toMemorySize(mdesc.mem()) > convert.toMemorySize('256MB'): - print "The currently implemented ARM platforms only easily support 256MB of DRAM" - print "It might be possible to get some more by using 256MB@0x30000000, but this" - print "is untested and may require some heroics" + if convert.toMemorySize(mdesc.mem()) > self.realview.max_mem_size: + print "The currently selected ARM platforms doesn't support" + print " the amount of DRAM you've selected. Please try" + print " another platform" boot_flags = 'earlyprintk console=ttyAMA0 lpj=19988480 norandmaps ' + \ 'rw loglevel=8 mem=%s root=/dev/sda1' % mdesc.mem() - self.physmem = PhysicalMemory(range = AddrRange(Addr(mdesc.mem())), - zero = True) - self.nvmem = PhysicalMemory(range = AddrRange(Addr('2GB'), - size = '64MB'), zero = True) - self.nvmem.port = self.membus.master - self.boot_loader = binary('boot.arm') - self.boot_loader_mem = self.nvmem + self.physmem = PhysicalMemory(range = AddrRange(self.realview.mem_start_addr, + size = mdesc.mem())) + self.realview.setupBootLoader(self.membus, self, binary) self.gic_cpu_addr = self.realview.gic.cpu_addr self.flags_addr = self.realview.realview_io.pio_addr + 0x30 |