RealView.py (12232:20817121988b) RealView.py (12272:bcc67ee98e6d)
1# Copyright (c) 2009-2017 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

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

364 self._attach_io(self._off_chip_devices(), *args, **kwargs)
365
366 def setupBootLoader(self, mem_bus, cur_sys, loc):
367 self.nvmem = SimpleMemory(range = AddrRange('2GB', size = '64MB'),
368 conf_table_reported = False)
369 self.nvmem.port = mem_bus.master
370 cur_sys.boot_loader = loc('boot.arm')
371 cur_sys.atags_addr = 0x100
1# Copyright (c) 2009-2017 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

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

364 self._attach_io(self._off_chip_devices(), *args, **kwargs)
365
366 def setupBootLoader(self, mem_bus, cur_sys, loc):
367 self.nvmem = SimpleMemory(range = AddrRange('2GB', size = '64MB'),
368 conf_table_reported = False)
369 self.nvmem.port = mem_bus.master
370 cur_sys.boot_loader = loc('boot.arm')
371 cur_sys.atags_addr = 0x100
372 cur_sys.load_addr_mask = 0xfffffff
373 cur_sys.load_offset = 0
374
375
376# Reference for memory map and interrupt number
377# RealView Platform Baseboard Explore for Cortex-A9 User Guide(ARM DUI 0440A)
378# Chapter 4: Programmer's Reference
379class RealViewPBX(RealView):
380 uart = Pl011(pio_addr=0x10009000, int_num=44)

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

741
742 def setupBootLoader(self, mem_bus, cur_sys, loc):
743 self.nvmem = SimpleMemory(range = AddrRange('64MB'),
744 conf_table_reported = False)
745 self.nvmem.port = mem_bus.master
746 if not cur_sys.boot_loader:
747 cur_sys.boot_loader = loc('boot_emm.arm')
748 cur_sys.atags_addr = 0x8000000
372 cur_sys.load_offset = 0
373
374
375# Reference for memory map and interrupt number
376# RealView Platform Baseboard Explore for Cortex-A9 User Guide(ARM DUI 0440A)
377# Chapter 4: Programmer's Reference
378class RealViewPBX(RealView):
379 uart = Pl011(pio_addr=0x10009000, int_num=44)

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

740
741 def setupBootLoader(self, mem_bus, cur_sys, loc):
742 self.nvmem = SimpleMemory(range = AddrRange('64MB'),
743 conf_table_reported = False)
744 self.nvmem.port = mem_bus.master
745 if not cur_sys.boot_loader:
746 cur_sys.boot_loader = loc('boot_emm.arm')
747 cur_sys.atags_addr = 0x8000000
749 cur_sys.load_addr_mask = 0xfffffff
750 cur_sys.load_offset = 0x80000000
751
752class VExpress_EMM64(VExpress_EMM):
753 # Three memory regions are specified totalling 512GB
754 _mem_regions = [(Addr('2GB'), Addr('2GB')), (Addr('34GB'), Addr('30GB')),
755 (Addr('512GB'), Addr('480GB'))]
756 pci_host = GenericPciHost(
757 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
758 pci_pio_base=0x2f000000)
759
760 def setupBootLoader(self, mem_bus, cur_sys, loc):
761 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
762 conf_table_reported=False)
763 self.nvmem.port = mem_bus.master
764 if not cur_sys.boot_loader:
765 cur_sys.boot_loader = loc('boot_emm.arm64')
766 cur_sys.atags_addr = 0x8000000
748 cur_sys.load_offset = 0x80000000
749
750class VExpress_EMM64(VExpress_EMM):
751 # Three memory regions are specified totalling 512GB
752 _mem_regions = [(Addr('2GB'), Addr('2GB')), (Addr('34GB'), Addr('30GB')),
753 (Addr('512GB'), Addr('480GB'))]
754 pci_host = GenericPciHost(
755 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
756 pci_pio_base=0x2f000000)
757
758 def setupBootLoader(self, mem_bus, cur_sys, loc):
759 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
760 conf_table_reported=False)
761 self.nvmem.port = mem_bus.master
762 if not cur_sys.boot_loader:
763 cur_sys.boot_loader = loc('boot_emm.arm64')
764 cur_sys.atags_addr = 0x8000000
767 cur_sys.load_addr_mask = 0xfffffff
768 cur_sys.load_offset = 0x80000000
769
770
771class VExpress_GEM5_V1(RealView):
772 """
773The VExpress gem5 memory map is loosely based on a modified
774Versatile Express RS1 memory map.
775

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

931
932 def setupBootLoader(self, mem_bus, cur_sys, loc):
933 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
934 conf_table_reported=False)
935 self.nvmem.port = mem_bus.master
936 if not cur_sys.boot_loader:
937 cur_sys.boot_loader = [ loc('boot_emm.arm64'), loc('boot_emm.arm') ]
938 cur_sys.atags_addr = 0x8000000
765 cur_sys.load_offset = 0x80000000
766
767
768class VExpress_GEM5_V1(RealView):
769 """
770The VExpress gem5 memory map is loosely based on a modified
771Versatile Express RS1 memory map.
772

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

928
929 def setupBootLoader(self, mem_bus, cur_sys, loc):
930 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
931 conf_table_reported=False)
932 self.nvmem.port = mem_bus.master
933 if not cur_sys.boot_loader:
934 cur_sys.boot_loader = [ loc('boot_emm.arm64'), loc('boot_emm.arm') ]
935 cur_sys.atags_addr = 0x8000000
939 # the old load_add_mask 0xfffffff works for 32-bit kernel
940 # but not the 64-bit one. The new value 0x7ffffff works for both
941 cur_sys.load_addr_mask = 0x7ffffff
942 cur_sys.load_offset = 0x80000000
943
944 # Setup m5ops. It's technically not a part of the boot
945 # loader, but this is the only place we can configure the
946 # system.
947 cur_sys.m5ops_base = 0x10010000
936 cur_sys.load_offset = 0x80000000
937
938 # Setup m5ops. It's technically not a part of the boot
939 # loader, but this is the only place we can configure the
940 # system.
941 cur_sys.m5ops_base = 0x10010000