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 |