Re: [PATCH-for-8.0 5/7] hw/mips/malta: Explicit GT64120 endianness upon device creation

2022-12-20 Thread Philippe Mathieu-Daudé

On 20/12/22 09:30, Philippe Mathieu-Daudé wrote:

+Eduardo/Markus for QOM/QDEV clarification.

On 20/12/22 01:52, Richard Henderson wrote:

On 12/9/22 07:15, Philippe Mathieu-Daudé wrote:

Propagate the controller endianess from the machine, setting
the "cpu-little-endian" property.

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/mips/malta.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)


Modulo using qdev_prop_set_bool,


Surprisingly there is no qdev_prop_set_bool()... I can use the QOM layer
with object_property_add_bool(), i.e.:

$ git grep memory-hotplug-support
hw/acpi/ich9.c:451:    object_property_add_bool(obj, 
"memory-hotplug-support",
hw/acpi/piix4.c:608:    DEFINE_PROP_BOOL("memory-hotplug-support", 
PIIX4PMState,


Oops I meant:

$ git grep reset-hivecs
hw/arm/digic.c:55:if (!object_property_set_bool(OBJECT(>cpu), 
"reset-hivecs", true,
hw/arm/npcm7xx.c:469: 
object_property_set_bool(OBJECT(>cpu[i]), "reset-hivecs", true,
hw/arm/xlnx-zynqmp.c:246: 
object_property_set_bool(OBJECT(>rpu_cpu[i]), "reset-hivecs", true,
target/arm/cpu.c:1245:DEFINE_PROP_BOOL("reset-hivecs", 
ARMCPU, reset_hivecs, false);



But I notice some qdev_prop_set_bit() uses, i.e. in hw/arm/:

$ git grep enable-bitband
hw/arm/armv7m.c:528:    DEFINE_PROP_BOOL("enable-bitband", ARMv7MState, 
enable_bitband, false),

hw/arm/mps2.c:242:    qdev_prop_set_bit(armv7m, "enable-bitband", true);
hw/arm/msf2-soc.c:138:    qdev_prop_set_bit(armv7m, "enable-bitband", 
true);
hw/arm/stellaris.c:1070:    qdev_prop_set_bit(nvic, "enable-bitband", 
true);
hw/arm/stm32f100_soc.c:119:    qdev_prop_set_bit(armv7m, 
"enable-bitband", true);


In that case this patch doesn't require any change.


I'll keep qdev_prop_set_bit() which is simpler.


Reviewed-by: Richard Henderson 


Thanks!



diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index ba92022f87..1f4e0c7acc 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -1390,7 +1390,9 @@ void mips_malta_init(MachineState *machine)
  stl_p(memory_region_get_ram_ptr(bios_copy) + 0x10, 0x0420);
  /* Northbridge */
-    dev = sysbus_create_simple("gt64120", -1, NULL);
+    dev = qdev_new("gt64120");
+    qdev_prop_set_bit(dev, "cpu-little-endian", !be);
+    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), _fatal);
  pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci"));
  /* Southbridge */









Re: [PATCH-for-8.0 5/7] hw/mips/malta: Explicit GT64120 endianness upon device creation

2022-12-20 Thread Philippe Mathieu-Daudé

+Eduardo/Markus for QOM/QDEV clarification.

On 20/12/22 01:52, Richard Henderson wrote:

On 12/9/22 07:15, Philippe Mathieu-Daudé wrote:

Propagate the controller endianess from the machine, setting
the "cpu-little-endian" property.

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/mips/malta.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)


Modulo using qdev_prop_set_bool,


Surprisingly there is no qdev_prop_set_bool()... I can use the QOM layer
with object_property_add_bool(), i.e.:

$ git grep memory-hotplug-support
hw/acpi/ich9.c:451:object_property_add_bool(obj, 
"memory-hotplug-support",
hw/acpi/piix4.c:608:DEFINE_PROP_BOOL("memory-hotplug-support", 
PIIX4PMState,


But I notice some qdev_prop_set_bit() uses, i.e. in hw/arm/:

$ git grep enable-bitband
hw/arm/armv7m.c:528:DEFINE_PROP_BOOL("enable-bitband", ARMv7MState, 
enable_bitband, false),

hw/arm/mps2.c:242:qdev_prop_set_bit(armv7m, "enable-bitband", true);
hw/arm/msf2-soc.c:138:qdev_prop_set_bit(armv7m, "enable-bitband", true);
hw/arm/stellaris.c:1070:qdev_prop_set_bit(nvic, "enable-bitband", true);
hw/arm/stm32f100_soc.c:119:qdev_prop_set_bit(armv7m, 
"enable-bitband", true);


In that case this patch doesn't require any change.


Reviewed-by: Richard Henderson 


Thanks!



diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index ba92022f87..1f4e0c7acc 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -1390,7 +1390,9 @@ void mips_malta_init(MachineState *machine)
  stl_p(memory_region_get_ram_ptr(bios_copy) + 0x10, 0x0420);
  /* Northbridge */
-    dev = sysbus_create_simple("gt64120", -1, NULL);
+    dev = qdev_new("gt64120");
+    qdev_prop_set_bit(dev, "cpu-little-endian", !be);
+    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), _fatal);
  pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci"));
  /* Southbridge */







Re: [PATCH-for-8.0 5/7] hw/mips/malta: Explicit GT64120 endianness upon device creation

2022-12-19 Thread Richard Henderson

On 12/9/22 07:15, Philippe Mathieu-Daudé wrote:

Propagate the controller endianess from the machine, setting
the "cpu-little-endian" property.

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/mips/malta.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)


Modulo using qdev_prop_set_bool,
Reviewed-by: Richard Henderson 


r~



diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index ba92022f87..1f4e0c7acc 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -1390,7 +1390,9 @@ void mips_malta_init(MachineState *machine)
  stl_p(memory_region_get_ram_ptr(bios_copy) + 0x10, 0x0420);
  
  /* Northbridge */

-dev = sysbus_create_simple("gt64120", -1, NULL);
+dev = qdev_new("gt64120");
+qdev_prop_set_bit(dev, "cpu-little-endian", !be);
+sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), _fatal);
  pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci"));
  
  /* Southbridge */





[PATCH-for-8.0 5/7] hw/mips/malta: Explicit GT64120 endianness upon device creation

2022-12-09 Thread Philippe Mathieu-Daudé
Propagate the controller endianess from the machine, setting
the "cpu-little-endian" property.

Signed-off-by: Philippe Mathieu-Daudé 
---
 hw/mips/malta.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index ba92022f87..1f4e0c7acc 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -1390,7 +1390,9 @@ void mips_malta_init(MachineState *machine)
 stl_p(memory_region_get_ram_ptr(bios_copy) + 0x10, 0x0420);
 
 /* Northbridge */
-dev = sysbus_create_simple("gt64120", -1, NULL);
+dev = qdev_new("gt64120");
+qdev_prop_set_bit(dev, "cpu-little-endian", !be);
+sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), _fatal);
 pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci"));
 
 /* Southbridge */
-- 
2.38.1