Skip to contentSkip to conversation

target/xtensa: xtfpga: provide default memory sizes

PATCH Superseded Max Filippov 2 participants 4 messages Nov 20, 2018 – Nov 21, 2018

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 target/xtensa: xtfpga: provide default memory sizes

Provide default RAM sizes for all XTFPGA boards, so that when started without -m option they do the right thing.

---
 hw/xtensa/xtfpga.c | 8 ++++++++
 1 file changed, 8 insertions(+)
hw/xtensa/xtfpga.c +8 -0
index b3161de32093..7c1421d5beb4 100644
@@ -568,6 +568,7 @@ static void xtfpga_lx60_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_lx60_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 64 * MiB;
 }
 
 static const TypeInfo xtfpga_lx60_type = {
@@ -584,6 +585,7 @@ static void xtfpga_lx60_nommu_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_lx60_nommu_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 64 * MiB;
 }
 
 static const TypeInfo xtfpga_lx60_nommu_type = {
@@ -600,6 +602,7 @@ static void xtfpga_lx200_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_lx200_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 96 * MiB;
 }
 
 static const TypeInfo xtfpga_lx200_type = {
@@ -616,6 +619,7 @@ static void xtfpga_lx200_nommu_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_lx200_nommu_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 96 * MiB;
 }
 
 static const TypeInfo xtfpga_lx200_nommu_type = {
@@ -632,6 +636,7 @@ static void xtfpga_ml605_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_ml605_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 256 * MiB;
 }
 
 static const TypeInfo xtfpga_ml605_type = {
@@ -648,6 +653,7 @@ static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_ml605_nommu_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;
 }
 
 static const TypeInfo xtfpga_ml605_nommu_type = {
@@ -664,6 +670,7 @@ static void xtfpga_kc705_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_kc705_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 1 * GiB;
 }
 
 static const TypeInfo xtfpga_kc705_type = {
@@ -680,6 +687,7 @@ static void xtfpga_kc705_nommu_class_init(ObjectClass *oc, void *data)
     mc->init = xtfpga_kc705_nommu_init;
     mc->max_cpus = 4;
     mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;
 }
 
 static const TypeInfo xtfpga_kc705_nommu_type = {
Signature · 1 line
2.11.0
#1 lore raw

Hi Max,

Quoted 45 lines · Max Filippov

Provide default RAM sizes for all XTFPGA boards, so that when started without -m option they do the right thing.

---
  hw/xtensa/xtfpga.c | 8 ++++++++
  1 file changed, 8 insertions(+)
hw/xtensa/xtfpga.c +4 -0
index b3161de32093..7c1421d5beb4 100644
@@ -568,6 +568,7 @@ static void xtfpga_lx60_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_lx60_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 64 * MiB;
  }
 
  static const TypeInfo xtfpga_lx60_type = {
@@ -584,6 +585,7 @@ static void xtfpga_lx60_nommu_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_lx60_nommu_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 64 * MiB;
  }
 
  static const TypeInfo xtfpga_lx60_nommu_type = {
@@ -600,6 +602,7 @@ static void xtfpga_lx200_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_lx200_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 96 * MiB;
  }
 
  static const TypeInfo xtfpga_lx200_type = {
@@ -616,6 +619,7 @@ static void xtfpga_lx200_nommu_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_lx200_nommu_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 96 * MiB;
  }
 
  static const TypeInfo xtfpga_lx200_nommu_type = {

hw/xtensa/xtfpga.c static void xtfpga_ml605_class_init(ObjectClass *oc, void *data) · line 639

Quoted 4 lines
hw/xtensa/xtfpga.c +1 -0
@@ -632,6 +636,7 @@ static void xtfpga_ml605_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_ml605_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Isn't it 512 MB for the ML605?

hw/xtensa/xtfpga.c static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data) · line 656

Quoted 8 lines
hw/xtensa/xtfpga.c +1 -0
  }
 
  static const TypeInfo xtfpga_ml605_type = {
@@ -648,6 +653,7 @@ static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_ml605_nommu_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Ditto.

Quoted 13 lines
hw/xtensa/xtfpga.c +1 -0
  }
 
  static const TypeInfo xtfpga_ml605_nommu_type = {
@@ -664,6 +670,7 @@ static void xtfpga_kc705_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_kc705_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 1 * GiB;
  }
 
  static const TypeInfo xtfpga_kc705_type = {

hw/xtensa/xtfpga.c static void xtfpga_kc705_nommu_class_init(ObjectClass *oc, void *data) · line 693

Quoted 7 lines
hw/xtensa/xtfpga.c +1 -0
@@ -680,6 +687,7 @@ static void xtfpga_kc705_nommu_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_kc705_nommu_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;
  }
 
  static const TypeInfo xtfpga_kc705_nommu_type = {

Others looks OK.

Regards,

Phil.

#2 lore raw

Hi Philippe,

thanks for your review.

Quoted 9 lines · Philippe Mathieu-Daudé

hw/xtensa/xtfpga.c static void xtfpga_ml605_class_init(ObjectClass *oc, void *data) · line 639

Quoted 6 lines · Max Filippov
  static const TypeInfo xtfpga_lx200_nommu_type = {
hw/xtensa/xtfpga.c +1 -0
@@ -632,6 +636,7 @@ static void xtfpga_ml605_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_ml605_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Isn't it 512 MB for the ML605?

There's 512MB on the board, but the Tensilica prototyping user's guide for the ML605 only documents 256MB in the memory map section. But now that you've mentioned it I recall that in reality both ML605 and KC705 had all onboard memory minus 128MB mapped for cores with MMU.

Quoted 10 lines

hw/xtensa/xtfpga.c static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data) · line 656

Quoted 8 lines
hw/xtensa/xtfpga.c +1 -0
  }
 
  static const TypeInfo xtfpga_ml605_type = {
@@ -648,6 +653,7 @@ static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data)
      mc->init = xtfpga_ml605_nommu_init;
      mc->max_cpus = 4;
      mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Ditto.

For noMMU cores there's only 256MB window available for the system memory, so it's capped at 256MB.

I'll send an updated v2.

Signature · 2 lines
Thanks.
-- Max
#3 lore raw
Quoted 33 lines · Max Filippov

Hi Philippe,

thanks for your review.

Quoted 9 lines · Philippe Mathieu-Daudé

hw/xtensa/xtfpga.c static void xtfpga_ml605_class_init(ObjectClass *oc, void *data) · line 639

Quoted 6 lines · Max Filippov
   static const TypeInfo xtfpga_lx200_nommu_type = {
hw/xtensa/xtfpga.c +1 -0
@@ -632,6 +636,7 @@ static void xtfpga_ml605_class_init(ObjectClass *oc, void *data)
       mc->init = xtfpga_ml605_init;
       mc->max_cpus = 4;
       mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Isn't it 512 MB for the ML605?

There's 512MB on the board, but the Tensilica prototyping user's guide for the ML605 only documents 256MB in the memory map section. But now that you've mentioned it I recall that in reality both ML605 and KC705 had all onboard memory minus 128MB mapped for cores with MMU.

Quoted 10 lines

hw/xtensa/xtfpga.c static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data) · line 656

Quoted 8 lines
hw/xtensa/xtfpga.c +1 -0
   }
 
   static const TypeInfo xtfpga_ml605_type = {
@@ -648,6 +653,7 @@ static void xtfpga_ml605_nommu_class_init(ObjectClass *oc, void *data)
       mc->init = xtfpga_ml605_nommu_init;
       mc->max_cpus = 4;
       mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE;
+    mc->default_ram_size = 256 * MiB;

Ditto.

Quoted 2 lines

For noMMU cores there's only 256MB window available for the system memory, so it's capped at 256MB.

This totally makes sense.

Quoted 2 lines

I'll send an updated v2.

Thanks!

Phil.