Răsfoiți Sursa

hw/usb/hcd-dwc3: Align global registers size with Linux

While at it add missing GUSB2RHBCTL register as found in i.MX 8M Plus reference
manual.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Message-id: 20250223114708.1780-2-shentey@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Bernhard Beschow 6 luni în urmă
părinte
comite
b513766ee9
2 a modificat fișierele cu 6 adăugiri și 1 ștergeri
  1. 5 0
      hw/usb/hcd-dwc3.c
  2. 1 1
      include/hw/usb/hcd-dwc3.h

+ 5 - 0
hw/usb/hcd-dwc3.c

@@ -343,6 +343,8 @@ REG32(GFLADJ, 0x530)
     FIELD(GFLADJ, GFLADJ_REFCLK_FLADJ, 8, 14)
     FIELD(GFLADJ, GFLADJ_REFCLK_FLADJ, 8, 14)
     FIELD(GFLADJ, GFLADJ_30MHZ_SDBND_SEL, 7, 1)
     FIELD(GFLADJ, GFLADJ_30MHZ_SDBND_SEL, 7, 1)
     FIELD(GFLADJ, GFLADJ_30MHZ, 0, 6)
     FIELD(GFLADJ, GFLADJ_30MHZ, 0, 6)
+REG32(GUSB2RHBCTL, 0x540)
+    FIELD(GUSB2RHBCTL, OVRD_L1TIMEOUT, 0, 4)
 
 
 #define DWC3_GLOBAL_OFFSET 0xC100
 #define DWC3_GLOBAL_OFFSET 0xC100
 static void reset_csr(USBDWC3 * s)
 static void reset_csr(USBDWC3 * s)
@@ -560,6 +562,9 @@ static const RegisterAccessInfo usb_dwc3_regs_info[] = {
         .rsvd = 0x40,
         .rsvd = 0x40,
         .ro = 0x400040,
         .ro = 0x400040,
         .unimp = 0xffffffff,
         .unimp = 0xffffffff,
+    },{ .name = "GUSB2RHBCTL",  .addr = A_GUSB2RHBCTL,
+        .rsvd = 0xfffffff0,
+        .unimp = 0xffffffff,
     }
     }
 };
 };
 
 

+ 1 - 1
include/hw/usb/hcd-dwc3.h

@@ -35,7 +35,7 @@
 #define USB_DWC3(obj) \
 #define USB_DWC3(obj) \
      OBJECT_CHECK(USBDWC3, (obj), TYPE_USB_DWC3)
      OBJECT_CHECK(USBDWC3, (obj), TYPE_USB_DWC3)
 
 
-#define USB_DWC3_R_MAX ((0x530 / 4) + 1)
+#define USB_DWC3_R_MAX (0x600 / 4)
 #define DWC3_SIZE 0x10000
 #define DWC3_SIZE 0x10000
 
 
 typedef struct USBDWC3 {
 typedef struct USBDWC3 {