From: Paul Kocialkowski <paulk@sys-base.io>
To: Quentin Schulz <foss+uboot@0leil.net>
Cc: Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,
Philipp Tomsich <philipp.tomsich@vrull.eu>,
Kever Yang <kever.yang@rock-chips.com>,
Klaus Goger <klaus.goger@cherry.de>,
u-boot@lists.denx.de, Paul Kocialkowski <contact@paulk.fr>,
Quentin Schulz <quentin.schulz@cherry.de>
Subject: Re: [PATCH next 2/5] rockchip: rk3399: merge CRU check within rk3399_force_power_on_reset
Date: Tue, 5 Nov 2024 19:36:53 +0100 [thread overview]
Message-ID: <ZyplxTZvoyd9r_v9@collins> (raw)
In-Reply-To: <20241105-rk3399-sysreset-gpio-tpl-v1-2-12caff07a4e4@cherry.de>
[-- Attachment #1: Type: text/plain, Size: 3463 bytes --]
Hi,
Le Tue 05 Nov 24, 16:36, Quentin Schulz a écrit :
> From: Quentin Schulz <quentin.schulz@cherry.de>
>
> To prepare to support forcing power on reset from TPL which would have
> the exact same logic, just in an earlier stage, let's merge the CRU
> check that triggers the power on reset with the rest of the logic.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Cheers,
Paul
> ---
> arch/arm/mach-rockchip/rk3399/rk3399.c | 43 +++++++++++++++++-----------------
> 1 file changed, 21 insertions(+), 22 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
> index edccb2a3980d0e3921aa4073b67aea6a00f18b8d..7b6a822ed04b8151a5da147056dbf73ffdafd149 100644
> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
> @@ -172,9 +172,29 @@ void board_debug_uart_init(void)
> #if defined(CONFIG_XPL_BUILD) && !defined(CONFIG_TPL_BUILD)
> static void rk3399_force_power_on_reset(void)
> {
> + const struct rockchip_cru *cru = rockchip_get_cru();
> ofnode node;
> struct gpio_desc sysreset_gpio;
>
> + /*
> + * The RK3399 resets only 'almost all logic' (see also in the
> + * TRM "3.9.4 Global software reset"), when issuing a software
> + * reset. This may cause issues during boot-up for some
> + * configurations of the application software stack.
> + *
> + * To work around this, we test whether the last reset reason
> + * was a power-on reset and (if not) issue an overtemp-reset to
> + * reset the entire module.
> + *
> + * While this was previously fixed by modifying the various
> + * places that could generate a software reset (e.g. U-Boot's
> + * sysreset driver, the ATF or Linux), we now have it here to
> + * ensure that we no longer have to track this through the
> + * various components.
> + */
> + if (cru->glb_rst_st == 0)
> + return;
> +
> if (!IS_ENABLED(CONFIG_SPL_GPIO)) {
> debug("%s: trying to force a power-on reset but no GPIO "
> "support in SPL!\n", __func__);
> @@ -206,27 +226,6 @@ void spl_board_init(void)
> {
> led_setup();
>
> - if (IS_ENABLED(CONFIG_SPL_GPIO)) {
> - struct rockchip_cru *cru = rockchip_get_cru();
> -
> - /*
> - * The RK3399 resets only 'almost all logic' (see also in the
> - * TRM "3.9.4 Global software reset"), when issuing a software
> - * reset. This may cause issues during boot-up for some
> - * configurations of the application software stack.
> - *
> - * To work around this, we test whether the last reset reason
> - * was a power-on reset and (if not) issue an overtemp-reset to
> - * reset the entire module.
> - *
> - * While this was previously fixed by modifying the various
> - * places that could generate a software reset (e.g. U-Boot's
> - * sysreset driver, the ATF or Linux), we now have it here to
> - * ensure that we no longer have to track this through the
> - * various components.
> - */
> - if (cru->glb_rst_st != 0)
> - rk3399_force_power_on_reset();
> - }
> + rk3399_force_power_on_reset();
> }
> #endif
>
> --
> 2.47.0
>
--
Paul Kocialkowski,
Independent contractor - sys-base - https://www.sys-base.io/
Free software developer - https://www.paulk.fr/
Specialist in multimedia, graphics and embedded hardware support with Linux.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-11-05 18:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 15:36 [PATCH next 0/5] rockchip: rk3399: allow to trigger sysreset in TPL Quentin Schulz
2024-11-05 15:36 ` [PATCH next 1/5] pinctrl: rockchip: allow to build for TPL Quentin Schulz
2024-11-05 18:34 ` Paul Kocialkowski
2024-11-05 15:36 ` [PATCH next 2/5] rockchip: rk3399: merge CRU check within rk3399_force_power_on_reset Quentin Schulz
2024-11-05 18:36 ` Paul Kocialkowski [this message]
2024-11-05 15:36 ` [PATCH next 3/5] rockchip: tpl: allow to call board/SoC-specific code before DRAM init Quentin Schulz
2024-11-05 18:37 ` Paul Kocialkowski
2024-11-05 15:36 ` [PATCH next 4/5] rockchip: rk3399: allow to handle sysreset-gpio in TPL Quentin Schulz
2024-11-05 18:40 ` Paul Kocialkowski
2024-11-05 18:44 ` Paul Kocialkowski
2024-11-05 15:36 ` [PATCH next 5/5] rockchip: configs: puma-rk3399: do the system reset " Quentin Schulz
2024-11-05 18:40 ` Paul Kocialkowski
2024-11-05 18:45 ` [PATCH next 0/5] rockchip: rk3399: allow to trigger sysreset " Paul Kocialkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZyplxTZvoyd9r_v9@collins \
--to=paulk@sys-base.io \
--cc=contact@paulk.fr \
--cc=foss+uboot@0leil.net \
--cc=kever.yang@rock-chips.com \
--cc=klaus.goger@cherry.de \
--cc=philipp.tomsich@vrull.eu \
--cc=quentin.schulz@cherry.de \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.