[PATCH master] ARM: at91: at91sam9x5: fix co-existance of erratum-aware and generic reset
Sascha Hauer
sha at pengutronix.de
Tue Jan 5 07:02:06 EST 2021
On Mon, Jan 04, 2021 at 10:34:32AM +0100, Ahmad Fatoum wrote:
> We have a generic at91sam9 reset driver, but it's unaware of the
> erratum on the at91sam9x5, which can prevent reboot from NAND due to
> interference from SDRAM. The workaround is packing the powering down
> of the DDR and the system reset into a single cache line and executing
> that. This would be a bit tedious to add into the device tree probed
> driver, thus:
>
> - Don't activate the work around if we are device-tree enabled, but
> have a newer SoC
> - Give the workaround a slightly higher priority, so it's taken instead
> of the generic DT driver
>
> This fixes an issue of failing reset with the at91_multi_defconfig,
> because both reset drivers have the same priority of 100.
>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> arch/arm/mach-at91/at91sam9x5.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
Applied, thanks
Sascha
>
> diff --git a/arch/arm/mach-at91/at91sam9x5.c b/arch/arm/mach-at91/at91sam9x5.c
> index 086e27a79f51..8266b512c999 100644
> --- a/arch/arm/mach-at91/at91sam9x5.c
> +++ b/arch/arm/mach-at91/at91sam9x5.c
> @@ -11,10 +11,17 @@ static void at91sam9x5_restart(struct restart_handler *rst)
> IOMEM(AT91SAM9X5_BASE_RSTC + AT91_RSTC_CR));
> }
>
> +static struct restart_handler restart;
> +
> static int at91sam9x5_initialize(void)
> {
> - restart_handler_register_fn("soc", at91sam9x5_restart);
> + if (IS_ENABLED(CONFIG_OFDEVICE) && !of_machine_is_compatible("atmel,at91sam9x5"))
> + return 0;
> +
> + restart.name = "soc";
> + restart.priority = 110;
> + restart.restart = at91sam9x5_restart;
>
> - return 0;
> + return restart_handler_register(&restart);
> }
> coredevice_initcall(at91sam9x5_initialize);
> --
> 2.29.2
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list