qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 13/41] Add BCM2838 PCIE Root Complex


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v6 13/41] Add BCM2838 PCIE Root Complex
Date: Mon, 26 Feb 2024 14:25:55 +0100
User-agent: Mozilla Thunderbird

Hi Sergey,

On 26/2/24 01:02, Sergey Kambalin wrote:
Signed-off-by: Sergey Kambalin <sergey.kambalin@auriga.com>
---
  hw/arm/bcm2838_pcie.c         | 82 +++++++++++++++++++++++++++++++++++
  hw/arm/meson.build            |  5 ++-
  include/hw/arm/bcm2838_pcie.h | 53 ++++++++++++++++++++++
  3 files changed, 139 insertions(+), 1 deletion(-)
  create mode 100644 hw/arm/bcm2838_pcie.c
  create mode 100644 include/hw/arm/bcm2838_pcie.h


+static void bcm2838_pcie_root_init(Object *obj)
+{
+    PCIBridge *br = PCI_BRIDGE(obj);
+    br->bus_name = "pcie.1";

Shouldn't we set the bridge name using pci_bridge_map_irq()?

+}
+
+static void bcm2838_pcie_root_class_init(ObjectClass *class, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(class);
+    PCIDeviceClass *k = PCI_DEVICE_CLASS(class);
+    ResettableClass *rc = RESETTABLE_CLASS(class);
+    PCIERootPortClass *rpc = PCIE_ROOT_PORT_CLASS(class);
+
+    dc->desc = "BCM2711 PCIe Bridge";
+    /*
+     * PCI-facing part of the host bridge, not usable without the host-facing
+     * part, which can't be device_add'ed.

This is the host-facing part; you add the PCI-facing one in
the next patch.

+     */
+
+    resettable_class_set_parent_phases(rc, NULL,
+                                       bcm2838_pcie_root_port_reset_hold,
+                                       NULL, &rpc->parent_phases);
+
+    dc->user_creatable = false;
+    k->vendor_id = BCM2838_PCIE_VENDOR_ID;
+    k->device_id = BCM2838_PCIE_DEVICE_ID;
+    k->revision = BCM2838_PCIE_REVISION;
+
+    rpc->exp_offset = BCM2838_PCIE_EXP_CAP_OFFSET;
+    rpc->aer_offset = BCM2838_PCIE_AER_CAP_OFFSET;
+}
+
+static const TypeInfo bcm2838_pcie_root_info = {
+    .name = TYPE_BCM2838_PCIE_ROOT,
+    .parent = TYPE_PCIE_ROOT_PORT,
+    .instance_size = sizeof(BCM2838PcieRootState),
+    .instance_init = bcm2838_pcie_root_init,
+    .class_init = bcm2838_pcie_root_class_init,
+};
+
+static void bcm2838_pcie_register(void)
+{
+    type_register_static(&bcm2838_pcie_root_info);
+}

Please use the DEFINE_TYPES() if you have to respin.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]