RealView.py (12077:3c014d139dc7) RealView.py (12116:5aeb6cc0993a)
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

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

734 self.gic = Pl390(dist_addr=0x2C001000, cpu_addr=0x2C002000, it_lines=512)
735 self.gicv2m = Gicv2m()
736 self.gicv2m.frames = [Gicv2mFrame(spi_base=256, spi_len=64, addr=0x2C1C0000)]
737
738 def setupBootLoader(self, mem_bus, cur_sys, loc):
739 self.nvmem = SimpleMemory(range = AddrRange('64MB'),
740 conf_table_reported = False)
741 self.nvmem.port = mem_bus.master
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

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

734 self.gic = Pl390(dist_addr=0x2C001000, cpu_addr=0x2C002000, it_lines=512)
735 self.gicv2m = Gicv2m()
736 self.gicv2m.frames = [Gicv2mFrame(spi_base=256, spi_len=64, addr=0x2C1C0000)]
737
738 def setupBootLoader(self, mem_bus, cur_sys, loc):
739 self.nvmem = SimpleMemory(range = AddrRange('64MB'),
740 conf_table_reported = False)
741 self.nvmem.port = mem_bus.master
742 cur_sys.boot_loader = loc('boot_emm.arm')
742 if not cur_sys.boot_loader:
743 cur_sys.boot_loader = loc('boot_emm.arm')
743 cur_sys.atags_addr = 0x8000000
744 cur_sys.load_addr_mask = 0xfffffff
745 cur_sys.load_offset = 0x80000000
746
747class VExpress_EMM64(VExpress_EMM):
748 # Three memory regions are specified totalling 512GB
749 _mem_regions = [(Addr('2GB'), Addr('2GB')), (Addr('34GB'), Addr('30GB')),
750 (Addr('512GB'), Addr('480GB'))]
751 pci_host = GenericPciHost(
752 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
753 pci_pio_base=0x2f000000)
754
755 def setupBootLoader(self, mem_bus, cur_sys, loc):
756 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
757 conf_table_reported=False)
758 self.nvmem.port = mem_bus.master
744 cur_sys.atags_addr = 0x8000000
745 cur_sys.load_addr_mask = 0xfffffff
746 cur_sys.load_offset = 0x80000000
747
748class VExpress_EMM64(VExpress_EMM):
749 # Three memory regions are specified totalling 512GB
750 _mem_regions = [(Addr('2GB'), Addr('2GB')), (Addr('34GB'), Addr('30GB')),
751 (Addr('512GB'), Addr('480GB'))]
752 pci_host = GenericPciHost(
753 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
754 pci_pio_base=0x2f000000)
755
756 def setupBootLoader(self, mem_bus, cur_sys, loc):
757 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
758 conf_table_reported=False)
759 self.nvmem.port = mem_bus.master
759 cur_sys.boot_loader = loc('boot_emm.arm64')
760 if not cur_sys.boot_loader:
761 cur_sys.boot_loader = loc('boot_emm.arm64')
760 cur_sys.atags_addr = 0x8000000
761 cur_sys.load_addr_mask = 0xfffffff
762 cur_sys.load_offset = 0x80000000
763
764
765class VExpress_GEM5_V1(RealView):
766 """
767The VExpress gem5 memory map is loosely based on a modified

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

922 def attachPciDevice(self, device, *args, **kwargs):
923 device.host = self.pci_host
924 self._attach_device(device, *args, **kwargs)
925
926 def setupBootLoader(self, mem_bus, cur_sys, loc):
927 self.nvmem = SimpleMemory(range=AddrRange(0, size='64MB'),
928 conf_table_reported=False)
929 self.nvmem.port = mem_bus.master
762 cur_sys.atags_addr = 0x8000000
763 cur_sys.load_addr_mask = 0xfffffff
764 cur_sys.load_offset = 0x80000000
765
766
767class VExpress_GEM5_V1(RealView):
768 """
769The VExpress gem5 memory map is loosely based on a modified

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

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