Hi,

 

If you want to simulate more RAM on an ARMv8 system you'll need to do something 
like the following:

 

1.  Modify the address map definition in gem5 src/dev/arm/RealView.py. 

diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py
--- a/src/dev/arm/RealView.py
+++ b/src/dev/arm/RealView.py
@@ -621,12 +621,16 @@
         self.mmc_fake.clk_domain      = clkdomain
 
 class VExpress_EMM64(VExpress_EMM):
+    mem_start_addr = '34GB'
+    max_mem_size = '16GB'
+ 
+    local_cpu_timer = CpuLocalTimer(int_num_timer=29, int_num_watchdog=30, 
pio_addr=0x2A430000)
+    hdlcd  = HDLcd(pio_addr=0x7FF60000, int_num=117)
+ 
     def setupBootLoader(self, mem_bus, cur_sys, loc):
         self.nvmem = SimpleMemory(range = AddrRange(0, size = '64MB'))
         self.nvmem.port = mem_bus.master
-        cur_sys.boot_loader = loc('boot_emm.arm64')
+        cur_sys.boot_loader = loc('boot_emm_largemem.arm64')
         cur_sys.atags_addr = 0x8000000
         cur_sys.load_addr_mask = 0xfffffff
-        cur_sys.load_offset = 0x80000000
-
-
+        cur_sys.load_offset = 0x880000000
2. Modify the bootloader to reflect the new starting offset (-DPHYS_OFFSET).

diff --git a/system/arm/aarch64_bootloader/makefile 
b/system/arm/aarch64_bootloader/makefile
--- a/system/arm/aarch64_bootloader/makefile
+++ b/system/arm/aarch64_bootloader/makefile
@@ -1,4 +1,4 @@
 build:
-       aarch64-linux-gnu-gcc -c  -DPHYS_OFFSET=0x80000000 -DCNTFRQ=0x01800000 
-DUART_BASE=0x1c090000 -DSYSREGS_BASE=0x1c010000 -DGIC_DIST_BASE=0x2c001000 
-DGIC_CPU_BASE=0x2c002000 -Dkernel=0x80080000 -Dmbox=0x8000fff8 
-Ddtb=0x80000100 -o boot_emm.o -march=armv8-a boot.S
-       aarch64-linux-gnu-ld -o boot_emm.arm64 -N -Ttext 0x00000010 boot_emm.o 
-non_shared -static
-       rm boot_emm.o
\ No newline at end of file
+       aarch64-linux-gnu-gcc -c  -DPHYS_OFFSET=0x880000000 -DCNTFRQ=0x01800000 
-DUART_BASE=0x1c090000 -DSYSREGS_BASE=0x1c010000 -DGIC_DIST_BASE=0x2c001000 
-DGIC_CPU_BASE=0x2c002000 -Dkernel=0x80080000 -Dmbox=0x8000fff8 
-Ddtb=0x80000100 -o boot_emm.o -march=armv8-a boot.S
+       aarch64-linux-gnu-ld -o boot_emm_largemem.arm64 -N -Ttext 0x00000010 
boot_emm.o -non_shared -static
+       rm boot_emm.o

3. Modify the memory definition in the dts file to reflect the new starting 
point.

For example you need to change:

    

    memory@80000000 { 

        device_type = "memory";

        reg = <0x0 0x80000000 0x80000000>;                                      
   

    };

...

cpu-release-addr = <0x0 0x8000fff8>;  

...

 to

 

cpu-release-addr = <0x8 0x8000fff8>;

...

    memory@880000000 {

        device_type = "memory";

        reg = <0x8 0x80000000 0x4 0x0>;

    };

 

Ali

 

 

On 28.05.2014 18:35, Embedded Systems MadHatter wrote:

> Thank you Ali.
>  
> I forgot to clarify, I'm trying to use it for ARMv8 so far, ARMv7 I expected 
> this limitation, but I'm focusing into the ARMv8 right now.
> 
> 
> On Mon, May 26, 2014 at 1:50 PM, Ali Saidi <sa...@umich.edu> wrote:
> For ARMv7 you can only really use 2047MB of RAM with the memory map we have 
> in the simulator. It would be possible to use more with the LPAE extensions 
> we recently implemented, but it would certainly required some work on your 
> part to define a new memory map and modify a dtb file appropriately. For 
> ARMv8 it’s much easier to get more RAM, however it too doesn’t work outside 
> the box. To make this work you need to again modify a DTB file and the armv8 
> boot loader start address to match that address. I’ve got the latter mostly 
> working and will try to get you some instructions in the next week.
> 
> Ali
> 
> 
> 
> On May 21, 2014, at 1:52 PM, Embedded Systems MadHatter via gem5-users 
> <gem5-users@gem5.org> wrote:
> 
> > Hello,
> > I'm trying to launch simulations with ARMv7, ARMv8 and X86, but 
> > unfortunately I cannot use more than 2GB of RAM for the simulation. How can 
> > I set a simulation with more than 2GB of RAM ?
> >
> > My current parameter is: --mem-type=DDR3_1600_x64 --mem-size=2GB
> > _______________________________________________
> > gem5-users mailing list
> > gem5-users@gem5.org
> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> 
 

 
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to