On 03/10/2022 21:13, BALATON Zoltan wrote:
> Map regions in ascending order and reorganise code a bit to avoid some
> casts and move Uninorth parts together.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
> hw/ppc/mac_newworld.c | 38 ++++++++++++++++++--------------------
> 1 file changed, 18 insertions(+), 20 deletions(-)
>
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 73b01e8c6d..be2cb5f057 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -228,13 +228,6 @@ static void ppc_core99_init(MachineState *machine)
> }
> }
>
> - /* UniN init */
> - dev = qdev_new(TYPE_UNI_NORTH);
> - s = SYS_BUS_DEVICE(dev);
> - sysbus_realize_and_unref(s, &error_fatal);
> - memory_region_add_subregion(get_system_memory(), 0xf8000000,
> - sysbus_mmio_get_region(s, 0));
> -
> openpic_irqs = g_new0(IrqLines, machine->smp.cpus);
> for (i = 0; i < machine->smp.cpus; i++) {
> /* Mac99 IRQ connection between OpenPIC outputs pins
> @@ -275,24 +268,31 @@ static void ppc_core99_init(MachineState *machine)
> }
> }
>
> + /* UniN init */
> + s = SYS_BUS_DEVICE(qdev_new(TYPE_UNI_NORTH));
> + sysbus_realize_and_unref(s, &error_fatal);
> + memory_region_add_subregion(get_system_memory(), 0xf8000000,
> + sysbus_mmio_get_region(s, 0));
> +
> +
> if (PPC_INPUT(env) == PPC_FLAGS_INPUT_970) {
> + machine_arch = ARCH_MAC99_U3;
> /* 970 gets a U3 bus */
> /* Uninorth AGP bus */
> dev = qdev_new(TYPE_U3_AGP_HOST_BRIDGE);
> - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
> uninorth_pci = U3_AGP_HOST_BRIDGE(dev);
> s = SYS_BUS_DEVICE(dev);
> + sysbus_realize_and_unref(s, &error_fatal);
> + sysbus_mmio_map(s, 0, 0xf0800000);
> + sysbus_mmio_map(s, 1, 0xf0c00000);
> /* PCI hole */
> - memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
> + memory_region_add_subregion(get_system_memory(), 0x80000000,
> sysbus_mmio_get_region(s, 2));
> /* Register 8 MB of ISA IO space */
> memory_region_add_subregion(get_system_memory(), 0xf2000000,
> sysbus_mmio_get_region(s, 3));
> - sysbus_mmio_map(s, 0, 0xf0800000);
> - sysbus_mmio_map(s, 1, 0xf0c00000);
> -
> - machine_arch = ARCH_MAC99_U3;
> } else {
> + machine_arch = ARCH_MAC99;
> /* Use values found on a real PowerMac */
> /* Uninorth AGP bus */
> uninorth_agp_dev = qdev_new(TYPE_UNI_NORTH_AGP_HOST_BRIDGE);
> @@ -309,22 +309,20 @@ static void ppc_core99_init(MachineState *machine)
> sysbus_mmio_map(s, 0, 0xf4800000);
> sysbus_mmio_map(s, 1, 0xf4c00000);
>
> - /* Uninorth main bus */
> + /* Uninorth main bus - this must be last to make it the default */
> dev = qdev_new(TYPE_UNI_NORTH_PCI_HOST_BRIDGE);
> qdev_prop_set_uint32(dev, "ofw-addr", 0xf2000000);
> - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
> uninorth_pci = UNI_NORTH_PCI_HOST_BRIDGE(dev);
> s = SYS_BUS_DEVICE(dev);
> + sysbus_realize_and_unref(s, &error_fatal);
> + sysbus_mmio_map(s, 0, 0xf2800000);
> + sysbus_mmio_map(s, 1, 0xf2c00000);
> /* PCI hole */
> - memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
> + memory_region_add_subregion(get_system_memory(), 0x80000000,
> sysbus_mmio_get_region(s, 2));
> /* Register 8 MB of ISA IO space */
> memory_region_add_subregion(get_system_memory(), 0xf2000000,
> sysbus_mmio_get_region(s, 3));
> - sysbus_mmio_map(s, 0, 0xf2800000);
> - sysbus_mmio_map(s, 1, 0xf2c00000);
> -
> - machine_arch = ARCH_MAC99;
> }
>
> machine->usb |= defaults_enabled() && !machine->usb_disabled;
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
ATB,
Mark.