Message ID | 20250308213640.13138-15-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | hw/sd/sdhci: Set reset value of interrupt registers | expand |
Am 8. März 2025 21:36:40 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>: >As Zoltan reported, some U-Boot versions seem to expect >correctly initialized registers before expecting interrupts. > >Now than we have a proper Freescale eSDHC implementation, >use it. > >Reported-by: BALATON Zoltan <balaton@eik.bme.hu> >Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >--- > hw/ppc/e500.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > >diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c >index e85e000f054..7d15c926887 100644 >--- a/hw/ppc/e500.c >+++ b/hw/ppc/e500.c >@@ -1027,20 +1027,12 @@ void ppce500_init(MachineState *machine) > > /* eSDHC */ > if (pmc->has_esdhc) { >- dev = qdev_new(TYPE_UNIMPLEMENTED_DEVICE); "hw/misc/unimp.h" include is now unused and should therefore be removed. With that fixed: Reviewed-by: Bernhard Beschow <shentey@gmail.com> >- qdev_prop_set_string(dev, "name", "esdhc"); >- qdev_prop_set_uint64(dev, "size", MPC85XX_ESDHC_REGS_SIZE); >- s = SYS_BUS_DEVICE(dev); >- sysbus_realize_and_unref(s, &error_fatal); >- memory_region_add_subregion(ccsr_addr_space, MPC85XX_ESDHC_REGS_OFFSET, >- sysbus_mmio_get_region(s, 0)); >- > /* > * Compatible with: > * - SD Host Controller Specification Version 2.0 Part A2 > * (See MPC8569E Reference Manual) > */ >- dev = qdev_new(TYPE_SYSBUS_SDHCI); >+ dev = qdev_new(TYPE_FSL_ESDHC); > qdev_prop_set_uint8(dev, "sd-spec-version", 2); > qdev_prop_set_enum(dev, "endianness", ENDIAN_MODE_BIG); > s = SYS_BUS_DEVICE(dev);
On 9/3/25 09:31, Bernhard Beschow wrote: > > > Am 8. März 2025 21:36:40 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>: >> As Zoltan reported, some U-Boot versions seem to expect >> correctly initialized registers before expecting interrupts. >> >> Now than we have a proper Freescale eSDHC implementation, >> use it. >> >> Reported-by: BALATON Zoltan <balaton@eik.bme.hu> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> hw/ppc/e500.c | 10 +--------- >> 1 file changed, 1 insertion(+), 9 deletions(-) >> >> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c >> index e85e000f054..7d15c926887 100644 >> --- a/hw/ppc/e500.c >> +++ b/hw/ppc/e500.c >> @@ -1027,20 +1027,12 @@ void ppce500_init(MachineState *machine) >> >> /* eSDHC */ >> if (pmc->has_esdhc) { >> - dev = qdev_new(TYPE_UNIMPLEMENTED_DEVICE); > > "hw/misc/unimp.h" include is now unused and should therefore be removed. Good catch. > > With that fixed: > Reviewed-by: Bernhard Beschow <shentey@gmail.com> Thanks!
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index e85e000f054..7d15c926887 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -1027,20 +1027,12 @@ void ppce500_init(MachineState *machine) /* eSDHC */ if (pmc->has_esdhc) { - dev = qdev_new(TYPE_UNIMPLEMENTED_DEVICE); - qdev_prop_set_string(dev, "name", "esdhc"); - qdev_prop_set_uint64(dev, "size", MPC85XX_ESDHC_REGS_SIZE); - s = SYS_BUS_DEVICE(dev); - sysbus_realize_and_unref(s, &error_fatal); - memory_region_add_subregion(ccsr_addr_space, MPC85XX_ESDHC_REGS_OFFSET, - sysbus_mmio_get_region(s, 0)); - /* * Compatible with: * - SD Host Controller Specification Version 2.0 Part A2 * (See MPC8569E Reference Manual) */ - dev = qdev_new(TYPE_SYSBUS_SDHCI); + dev = qdev_new(TYPE_FSL_ESDHC); qdev_prop_set_uint8(dev, "sd-spec-version", 2); qdev_prop_set_enum(dev, "endianness", ENDIAN_MODE_BIG); s = SYS_BUS_DEVICE(dev);
As Zoltan reported, some U-Boot versions seem to expect correctly initialized registers before expecting interrupts. Now than we have a proper Freescale eSDHC implementation, use it. Reported-by: BALATON Zoltan <balaton@eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/ppc/e500.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)