Message ID | 20210810160318.87376-1-linux@roeck-us.net |
---|---|
State | New |
Headers | show |
Series | [v2] fsl-imx6ul: Instantiate SAI1/2/3 and ASRC as unimplemented devices | expand |
On 8/10/21 6:03 PM, Guenter Roeck wrote: > Instantiate SAI1/2/3 and ASRC as unimplemented devices to avoid random > Linux kernel crashes, such as > > Unhandled fault: external abort on non-linefetch (0x808) at 0xd1580010^M > pgd = (ptrval)^M > [d1580010] *pgd=8231b811, *pte=02034653, *ppte=02034453^M > Internal error: : 808 [#1] SMP ARM^M > ... > [<c095e974>] (regmap_mmio_write32le) from [<c095eb48>] (regmap_mmio_write+0x3c/0x54)^M > [<c095eb48>] (regmap_mmio_write) from [<c09580f4>] (_regmap_write+0x4c/0x1f0)^M > [<c09580f4>] (_regmap_write) from [<c095837c>] (_regmap_update_bits+0xe4/0xec)^M > [<c095837c>] (_regmap_update_bits) from [<c09599b4>] (regmap_update_bits_base+0x50/0x74)^M > [<c09599b4>] (regmap_update_bits_base) from [<c0d3e9e4>] (fsl_asrc_runtime_resume+0x1e4/0x21c)^M > [<c0d3e9e4>] (fsl_asrc_runtime_resume) from [<c0942464>] (__rpm_callback+0x3c/0x108)^M > [<c0942464>] (__rpm_callback) from [<c0942590>] (rpm_callback+0x60/0x64)^M > [<c0942590>] (rpm_callback) from [<c0942b60>] (rpm_resume+0x5cc/0x808)^M > [<c0942b60>] (rpm_resume) from [<c0942dfc>] (__pm_runtime_resume+0x60/0xa0)^M > [<c0942dfc>] (__pm_runtime_resume) from [<c0d3ecc4>] (fsl_asrc_probe+0x2a8/0x708)^M > [<c0d3ecc4>] (fsl_asrc_probe) from [<c0935b08>] (platform_probe+0x58/0xb8)^M > [<c0935b08>] (platform_probe) from [<c0933264>] (really_probe.part.0+0x9c/0x334)^M > [<c0933264>] (really_probe.part.0) from [<c093359c>] (__driver_probe_device+0xa0/0x138)^M > [<c093359c>] (__driver_probe_device) from [<c0933664>] (driver_probe_device+0x30/0xc8)^M > [<c0933664>] (driver_probe_device) from [<c0933c88>] (__driver_attach+0x90/0x130)^M > [<c0933c88>] (__driver_attach) from [<c0931060>] (bus_for_each_dev+0x78/0xb8)^M > [<c0931060>] (bus_for_each_dev) from [<c093254c>] (bus_add_driver+0xf0/0x1d8)^M > [<c093254c>] (bus_add_driver) from [<c0934a30>] (driver_register+0x88/0x118)^M > [<c0934a30>] (driver_register) from [<c01022c0>] (do_one_initcall+0x7c/0x3a4)^M > [<c01022c0>] (do_one_initcall) from [<c1601204>] (kernel_init_freeable+0x198/0x22c)^M > [<c1601204>] (kernel_init_freeable) from [<c0f5ff2c>] (kernel_init+0x10/0x128)^M > [<c0f5ff2c>] (kernel_init) from [<c010013c>] (ret_from_fork+0x14/0x38)^M > > or > > Unhandled fault: external abort on non-linefetch (0x808) at 0xd19b0000^M > pgd = (ptrval)^M > [d19b0000] *pgd=82711811, *pte=308a0653, *ppte=308a0453^M > Internal error: : 808 [#1] SMP ARM^M > ... > [<c095e974>] (regmap_mmio_write32le) from [<c095eb48>] (regmap_mmio_write+0x3c/0x54)^M > [<c095eb48>] (regmap_mmio_write) from [<c09580f4>] (_regmap_write+0x4c/0x1f0)^M > [<c09580f4>] (_regmap_write) from [<c0959b28>] (regmap_write+0x3c/0x60)^M > [<c0959b28>] (regmap_write) from [<c0d41130>] (fsl_sai_runtime_resume+0x9c/0x1ec)^M > [<c0d41130>] (fsl_sai_runtime_resume) from [<c0942464>] (__rpm_callback+0x3c/0x108)^M > [<c0942464>] (__rpm_callback) from [<c0942590>] (rpm_callback+0x60/0x64)^M > [<c0942590>] (rpm_callback) from [<c0942b60>] (rpm_resume+0x5cc/0x808)^M > [<c0942b60>] (rpm_resume) from [<c0942dfc>] (__pm_runtime_resume+0x60/0xa0)^M > [<c0942dfc>] (__pm_runtime_resume) from [<c0d4231c>] (fsl_sai_probe+0x2b8/0x65c)^M > [<c0d4231c>] (fsl_sai_probe) from [<c0935b08>] (platform_probe+0x58/0xb8)^M > [<c0935b08>] (platform_probe) from [<c0933264>] (really_probe.part.0+0x9c/0x334)^M > [<c0933264>] (really_probe.part.0) from [<c093359c>] (__driver_probe_device+0xa0/0x138)^M > [<c093359c>] (__driver_probe_device) from [<c0933664>] (driver_probe_device+0x30/0xc8)^M > [<c0933664>] (driver_probe_device) from [<c0933c88>] (__driver_attach+0x90/0x130)^M > [<c0933c88>] (__driver_attach) from [<c0931060>] (bus_for_each_dev+0x78/0xb8)^M > [<c0931060>] (bus_for_each_dev) from [<c093254c>] (bus_add_driver+0xf0/0x1d8)^M > [<c093254c>] (bus_add_driver) from [<c0934a30>] (driver_register+0x88/0x118)^M > [<c0934a30>] (driver_register) from [<c01022c0>] (do_one_initcall+0x7c/0x3a4)^M > [<c01022c0>] (do_one_initcall) from [<c1601204>] (kernel_init_freeable+0x198/0x22c)^M > [<c1601204>] (kernel_init_freeable) from [<c0f5ff2c>] (kernel_init+0x10/0x128)^M > [<c0f5ff2c>] (kernel_init) from [<c010013c>] (ret_from_fork+0x14/0x38)^M > > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Guenter Roeck <linux@roeck-us.net> > --- > v2: Updated description to include tracebacks and to use the term 'instantiate' > Added inline comments describing devices in more detail Thank you! Peter you might want to s/^M// when queueing ;) > Added Philippe's Reviewed-by: tag > > hw/arm/fsl-imx6ul.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c > index e0128d7316..1d1a708dd9 100644 > --- a/hw/arm/fsl-imx6ul.c > +++ b/hw/arm/fsl-imx6ul.c > @@ -534,6 +534,13 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) > */ > create_unimplemented_device("sdma", FSL_IMX6UL_SDMA_ADDR, 0x4000); > > + /* > + * SAI (Audio SSI (Synchronous Serial Interface)) > + */ > + create_unimplemented_device("sai1", FSL_IMX6UL_SAI1_ADDR, 0x4000); > + create_unimplemented_device("sai2", FSL_IMX6UL_SAI2_ADDR, 0x4000); > + create_unimplemented_device("sai3", FSL_IMX6UL_SAI3_ADDR, 0x4000); > + > /* > * PWM > */ > @@ -542,6 +549,11 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) > create_unimplemented_device("pwm3", FSL_IMX6UL_PWM3_ADDR, 0x4000); > create_unimplemented_device("pwm4", FSL_IMX6UL_PWM4_ADDR, 0x4000); > > + /* > + * Audio ASRC (asynchronous sample rate converter) > + */ > + create_unimplemented_device("asrc", FSL_IMX6UL_ASRC_ADDR, 0x4000); > + > /* > * CAN > */ >
On 8/10/21 9:34 AM, Philippe Mathieu-Daudé wrote: > On 8/10/21 6:03 PM, Guenter Roeck wrote: >> Instantiate SAI1/2/3 and ASRC as unimplemented devices to avoid random >> Linux kernel crashes, such as >> >> Unhandled fault: external abort on non-linefetch (0x808) at 0xd1580010^M >> pgd = (ptrval)^M >> [d1580010] *pgd=8231b811, *pte=02034653, *ppte=02034453^M >> Internal error: : 808 [#1] SMP ARM^M >> ... >> [<c095e974>] (regmap_mmio_write32le) from [<c095eb48>] (regmap_mmio_write+0x3c/0x54)^M >> [<c095eb48>] (regmap_mmio_write) from [<c09580f4>] (_regmap_write+0x4c/0x1f0)^M >> [<c09580f4>] (_regmap_write) from [<c095837c>] (_regmap_update_bits+0xe4/0xec)^M >> [<c095837c>] (_regmap_update_bits) from [<c09599b4>] (regmap_update_bits_base+0x50/0x74)^M >> [<c09599b4>] (regmap_update_bits_base) from [<c0d3e9e4>] (fsl_asrc_runtime_resume+0x1e4/0x21c)^M >> [<c0d3e9e4>] (fsl_asrc_runtime_resume) from [<c0942464>] (__rpm_callback+0x3c/0x108)^M >> [<c0942464>] (__rpm_callback) from [<c0942590>] (rpm_callback+0x60/0x64)^M >> [<c0942590>] (rpm_callback) from [<c0942b60>] (rpm_resume+0x5cc/0x808)^M >> [<c0942b60>] (rpm_resume) from [<c0942dfc>] (__pm_runtime_resume+0x60/0xa0)^M >> [<c0942dfc>] (__pm_runtime_resume) from [<c0d3ecc4>] (fsl_asrc_probe+0x2a8/0x708)^M >> [<c0d3ecc4>] (fsl_asrc_probe) from [<c0935b08>] (platform_probe+0x58/0xb8)^M >> [<c0935b08>] (platform_probe) from [<c0933264>] (really_probe.part.0+0x9c/0x334)^M >> [<c0933264>] (really_probe.part.0) from [<c093359c>] (__driver_probe_device+0xa0/0x138)^M >> [<c093359c>] (__driver_probe_device) from [<c0933664>] (driver_probe_device+0x30/0xc8)^M >> [<c0933664>] (driver_probe_device) from [<c0933c88>] (__driver_attach+0x90/0x130)^M >> [<c0933c88>] (__driver_attach) from [<c0931060>] (bus_for_each_dev+0x78/0xb8)^M >> [<c0931060>] (bus_for_each_dev) from [<c093254c>] (bus_add_driver+0xf0/0x1d8)^M >> [<c093254c>] (bus_add_driver) from [<c0934a30>] (driver_register+0x88/0x118)^M >> [<c0934a30>] (driver_register) from [<c01022c0>] (do_one_initcall+0x7c/0x3a4)^M >> [<c01022c0>] (do_one_initcall) from [<c1601204>] (kernel_init_freeable+0x198/0x22c)^M >> [<c1601204>] (kernel_init_freeable) from [<c0f5ff2c>] (kernel_init+0x10/0x128)^M >> [<c0f5ff2c>] (kernel_init) from [<c010013c>] (ret_from_fork+0x14/0x38)^M >> >> or >> >> Unhandled fault: external abort on non-linefetch (0x808) at 0xd19b0000^M >> pgd = (ptrval)^M >> [d19b0000] *pgd=82711811, *pte=308a0653, *ppte=308a0453^M >> Internal error: : 808 [#1] SMP ARM^M >> ... >> [<c095e974>] (regmap_mmio_write32le) from [<c095eb48>] (regmap_mmio_write+0x3c/0x54)^M >> [<c095eb48>] (regmap_mmio_write) from [<c09580f4>] (_regmap_write+0x4c/0x1f0)^M >> [<c09580f4>] (_regmap_write) from [<c0959b28>] (regmap_write+0x3c/0x60)^M >> [<c0959b28>] (regmap_write) from [<c0d41130>] (fsl_sai_runtime_resume+0x9c/0x1ec)^M >> [<c0d41130>] (fsl_sai_runtime_resume) from [<c0942464>] (__rpm_callback+0x3c/0x108)^M >> [<c0942464>] (__rpm_callback) from [<c0942590>] (rpm_callback+0x60/0x64)^M >> [<c0942590>] (rpm_callback) from [<c0942b60>] (rpm_resume+0x5cc/0x808)^M >> [<c0942b60>] (rpm_resume) from [<c0942dfc>] (__pm_runtime_resume+0x60/0xa0)^M >> [<c0942dfc>] (__pm_runtime_resume) from [<c0d4231c>] (fsl_sai_probe+0x2b8/0x65c)^M >> [<c0d4231c>] (fsl_sai_probe) from [<c0935b08>] (platform_probe+0x58/0xb8)^M >> [<c0935b08>] (platform_probe) from [<c0933264>] (really_probe.part.0+0x9c/0x334)^M >> [<c0933264>] (really_probe.part.0) from [<c093359c>] (__driver_probe_device+0xa0/0x138)^M >> [<c093359c>] (__driver_probe_device) from [<c0933664>] (driver_probe_device+0x30/0xc8)^M >> [<c0933664>] (driver_probe_device) from [<c0933c88>] (__driver_attach+0x90/0x130)^M >> [<c0933c88>] (__driver_attach) from [<c0931060>] (bus_for_each_dev+0x78/0xb8)^M >> [<c0931060>] (bus_for_each_dev) from [<c093254c>] (bus_add_driver+0xf0/0x1d8)^M >> [<c093254c>] (bus_add_driver) from [<c0934a30>] (driver_register+0x88/0x118)^M >> [<c0934a30>] (driver_register) from [<c01022c0>] (do_one_initcall+0x7c/0x3a4)^M >> [<c01022c0>] (do_one_initcall) from [<c1601204>] (kernel_init_freeable+0x198/0x22c)^M >> [<c1601204>] (kernel_init_freeable) from [<c0f5ff2c>] (kernel_init+0x10/0x128)^M >> [<c0f5ff2c>] (kernel_init) from [<c010013c>] (ret_from_fork+0x14/0x38)^M >> >> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> Signed-off-by: Guenter Roeck <linux@roeck-us.net> >> --- >> v2: Updated description to include tracebacks and to use the term 'instantiate' >> Added inline comments describing devices in more detail > > Thank you! > > Peter you might want to s/^M// when queueing ;) > Outch. Sorry for that. Guenter >> Added Philippe's Reviewed-by: tag >> >> hw/arm/fsl-imx6ul.c | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c >> index e0128d7316..1d1a708dd9 100644 >> --- a/hw/arm/fsl-imx6ul.c >> +++ b/hw/arm/fsl-imx6ul.c >> @@ -534,6 +534,13 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) >> */ >> create_unimplemented_device("sdma", FSL_IMX6UL_SDMA_ADDR, 0x4000); >> >> + /* >> + * SAI (Audio SSI (Synchronous Serial Interface)) >> + */ >> + create_unimplemented_device("sai1", FSL_IMX6UL_SAI1_ADDR, 0x4000); >> + create_unimplemented_device("sai2", FSL_IMX6UL_SAI2_ADDR, 0x4000); >> + create_unimplemented_device("sai3", FSL_IMX6UL_SAI3_ADDR, 0x4000); >> + >> /* >> * PWM >> */ >> @@ -542,6 +549,11 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) >> create_unimplemented_device("pwm3", FSL_IMX6UL_PWM3_ADDR, 0x4000); >> create_unimplemented_device("pwm4", FSL_IMX6UL_PWM4_ADDR, 0x4000); >> >> + /* >> + * Audio ASRC (asynchronous sample rate converter) >> + */ >> + create_unimplemented_device("asrc", FSL_IMX6UL_ASRC_ADDR, 0x4000); >> + >> /* >> * CAN >> */ >>
On Tue, 10 Aug 2021 at 17:03, Guenter Roeck <linux@roeck-us.net> wrote: > > Instantiate SAI1/2/3 and ASRC as unimplemented devices to avoid random > Linux kernel crashes, such as Applied to target-arm.next for 6.2 with the ^Ms cleaned up, thanks. -- PMM
diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c index e0128d7316..1d1a708dd9 100644 --- a/hw/arm/fsl-imx6ul.c +++ b/hw/arm/fsl-imx6ul.c @@ -534,6 +534,13 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) */ create_unimplemented_device("sdma", FSL_IMX6UL_SDMA_ADDR, 0x4000); + /* + * SAI (Audio SSI (Synchronous Serial Interface)) + */ + create_unimplemented_device("sai1", FSL_IMX6UL_SAI1_ADDR, 0x4000); + create_unimplemented_device("sai2", FSL_IMX6UL_SAI2_ADDR, 0x4000); + create_unimplemented_device("sai3", FSL_IMX6UL_SAI3_ADDR, 0x4000); + /* * PWM */ @@ -542,6 +549,11 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) create_unimplemented_device("pwm3", FSL_IMX6UL_PWM3_ADDR, 0x4000); create_unimplemented_device("pwm4", FSL_IMX6UL_PWM4_ADDR, 0x4000); + /* + * Audio ASRC (asynchronous sample rate converter) + */ + create_unimplemented_device("asrc", FSL_IMX6UL_ASRC_ADDR, 0x4000); + /* * CAN */