[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 21/24] hw/arm/mps2-tz: Stub out USB controller for mps3-an524
From: |
Peter Maydell |
Subject: |
[PATCH 21/24] hw/arm/mps2-tz: Stub out USB controller for mps3-an524 |
Date: |
Fri, 5 Feb 2021 17:00:16 +0000 |
The AN524 has a USB controller (an ISP1763); we don't have a model of
it but we should provide a stub "unimplemented-device" for it. This
is slightly complicated because the USB controller shares a PPC port
with the ethernet controller.
Implement a make_* function which provides creates a container
MemoryRegion with both the ethernet controller and an
unimplemented-device stub for the USB controller.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/arm/mps2-tz.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index aa57c4b2596..db1afa4bd22 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -119,6 +119,8 @@ struct MPS2TZMachineState {
ARMSSE iotkit;
MemoryRegion ram[MPS2TZ_RAM_MAX];
+ MemoryRegion eth_usb_container;
+
MPS2SCC scc;
MPS2FPGAIO fpgaio;
TZPPC ppc[5];
@@ -130,6 +132,7 @@ struct MPS2TZMachineState {
UnimplementedDeviceState gfx;
UnimplementedDeviceState cldc;
UnimplementedDeviceState rtc;
+ UnimplementedDeviceState usb;
PL080State dma[4];
TZMSC msc[4];
CMSDKAPBUART uart[6];
@@ -431,6 +434,49 @@ static MemoryRegion *make_eth_dev(MPS2TZMachineState *mms,
void *opaque,
return sysbus_mmio_get_region(s, 0);
}
+static MemoryRegion *make_eth_usb(MPS2TZMachineState *mms, void *opaque,
+ const char *name, hwaddr size,
+ const int *irqs)
+{
+ /*
+ * The AN524 makes the ethernet and USB share a PPC port.
+ * irqs[] is the ethernet IRQ.
+ */
+ SysBusDevice *s;
+ NICInfo *nd = &nd_table[0];
+
+ memory_region_init(&mms->eth_usb_container, OBJECT(mms),
+ "mps2-tz-eth-usb-container", 0x200000);
+
+ /*
+ * In hardware this is a LAN9220; the LAN9118 is software compatible
+ * except that it doesn't support the checksum-offload feature.
+ */
+ qemu_check_nic_model(nd, "lan9118");
+ mms->lan9118 = qdev_new(TYPE_LAN9118);
+ qdev_set_nic_properties(mms->lan9118, nd);
+
+ s = SYS_BUS_DEVICE(mms->lan9118);
+ sysbus_realize_and_unref(s, &error_fatal);
+ sysbus_connect_irq(s, 0, get_sse_irq_in(mms, irqs[0]));
+
+ memory_region_add_subregion(&mms->eth_usb_container,
+ 0, sysbus_mmio_get_region(s, 0));
+
+ /* The USB OTG controller is an ISP1763; we don't have a model of it. */
+ object_initialize_child(OBJECT(mms), "usb-otg",
+ &mms->usb, TYPE_UNIMPLEMENTED_DEVICE);
+ qdev_prop_set_string(DEVICE(&mms->usb), "name", "usb-otg");
+ qdev_prop_set_uint64(DEVICE(&mms->usb), "size", 0x100000);
+ s = SYS_BUS_DEVICE(&mms->usb);
+ sysbus_realize(s, &error_fatal);
+
+ memory_region_add_subregion(&mms->eth_usb_container,
+ 0x100000, sysbus_mmio_get_region(s, 0));
+
+ return &mms->eth_usb_container;
+}
+
static MemoryRegion *make_mpc(MPS2TZMachineState *mms, void *opaque,
const char *name, hwaddr size,
const int *irqs)
@@ -808,7 +854,7 @@ static void mps2tz_common_init(MachineState *machine)
{ "gpio1", make_unimp_dev, &mms->gpio[1], 0x41101000, 0x1000 },
{ "gpio2", make_unimp_dev, &mms->gpio[2], 0x41102000, 0x1000 },
{ "gpio3", make_unimp_dev, &mms->gpio[3], 0x41103000, 0x1000 },
- { "eth", make_eth_dev, NULL, 0x41400000, 0x100000, { 48 } },
+ { "eth-usb", make_eth_usb, NULL, 0x41400000, 0x200000, { 48 }
},
},
},
};
--
2.20.1
- Re: [PATCH 20/24] hw/arm/mps2-tz: Add new mps3-an524 board, (continued)
- [PATCH 22/24] hw/arm/mps2-tz: Provide PL031 RTC on mps3-an524, Peter Maydell, 2021/02/05
- [PATCH 23/24] docs/system/arm/mps2.rst: Document the new mps3-an524 board, Peter Maydell, 2021/02/05
- [PATCH 18/24] hw/arm/mps2-tz: Support ROMs as well as RAMs, Peter Maydell, 2021/02/05
- [PATCH 15/24] hw/arm/mps2-tz: Allow boards to have different PPCInfo data, Peter Maydell, 2021/02/05
- [PATCH 24/24] hw/arm/mps2: Update old infocenter.arm.com URLs, Peter Maydell, 2021/02/05
- [PATCH 16/24] hw/arm/mps2-tz: Make RAM arrangement board-specific, Peter Maydell, 2021/02/05
- [PATCH 21/24] hw/arm/mps2-tz: Stub out USB controller for mps3-an524,
Peter Maydell <=
- [PATCH 17/24] hw/arm/mps2-tz: Set MachineClass default_ram info from RAMInfo data, Peter Maydell, 2021/02/05
- [PATCH 14/24] hw/arm/mps2-tz: Size the uart-irq-orgate based on the number of UARTs, Peter Maydell, 2021/02/05
- [PATCH 12/24] hw/arm/mps2-tz: Allow PPCPortInfo structures to specify device interrupts, Peter Maydell, 2021/02/05
- Re: [PATCH 00/24] hw/arm: New board model mps3-an524, Philippe Mathieu-Daudé, 2021/02/05
Re: [PATCH 00/24] hw/arm: New board model mps3-an524, no-reply, 2021/02/05