Set default RV32 RAM size to 4 GiB - 256 MiB
authorAndrew Waterman <waterman@cs.berkeley.edu>
Mon, 8 Feb 2016 01:05:21 +0000 (17:05 -0800)
committerAndrew Waterman <waterman@cs.berkeley.edu>
Wed, 2 Mar 2016 20:15:25 +0000 (12:15 -0800)
This allows, by default, 256 MiB of addressable I/O space.

riscv/sim.cc

index 67b655e6634d79cc7ea033d691ab89dd95f867c2..69d5e19e8af8f23ae8d6414582fd4fd812a49a01 100644 (file)
@@ -30,11 +30,11 @@ sim_t::sim_t(const char* isa, size_t nprocs, size_t mem_mb,
   size_t memsz0 = (size_t)mem_mb << 20;
   size_t quantum = 1L << 20;
   if (memsz0 == 0)
-    memsz0 = 1L << (sizeof(size_t) == 8 ? 32 : 30);
+    memsz0 = (size_t)((sizeof(size_t) == 8 ? 4096 : 2048) - 256) << 20;
 
   memsz = memsz0;
   while ((mem = (char*)calloc(1, memsz)) == NULL)
-    memsz = memsz*10/11/quantum*quantum;
+    memsz = (size_t)(memsz*0.9)/quantum*quantum;
 
   if (memsz != memsz0)
     fprintf(stderr, "warning: only got %lu bytes of target mem (wanted %lu)\n",