[PATCH 2/4] configs: at91: sam9x60: Switch to new reset driver
Eugen Hristev
eugen.hristev at collabora.com
Wed Aug 16 17:02:26 CEST 2023
On 8/16/23 16:42, Alexander Dahl wrote:
> Hei hei,
>
> Am Wed, Aug 16, 2023 at 03:48:25PM +0300 schrieb Eugen Hristev:
>>
>> Hi Alexander,
>>
>> On 8/9/23 17:16, Alexander Dahl wrote:
>>> Since commit 61040097a9d1 ("reset: at91: Add reset driver for basic
>>> assert/deassert operations") the compatible "microchip,sam9x60-rstc" for
>>> the sam9x60 reset controller in sam9x60.dtsi is not handled by
>>> CONFIG_SYSRESET_AT91 anymore, but by CONFIG_RESET_AT91 now. This
>>> resulted in the following error message, when trying to reset from
>>> U-Boot shell:
>>>
>>> U-Boot> reset
>>> resetting ...
>>> System reset not supported on this platform
>>> ### ERROR ### Please RESET the board ###
>>>
>>> Fixed with the switch to the new driver. Tested on sam9x60-curiosity
>>> board. Defconfigs for sam9x60ek adapted in the same way, but without
>>> testing. These should be all sam9x60 boards affected in U-Boot here.
>>
>> From what I remember from the top of my head, it makes sense to use the new
>> reset driver, however, you should not remove the old SYSRESET driver,
>> because that driver handles different kind of resets on the SoC and PHYs.
>> Can you double check that?
>
> Had a look into it and TBH it's very confusing to me. I found no help
> in documentation. There are two different uclass which from the
> outside seem to do the same thing. The Kconfig help texts do not
> explain what the purpose is of one over the other. As a user this
> creates very bad user experience: Do I need one or the other or both?
Maybe I can shed some light into it.
U-boot, unlike Linux, is a bit more modular in a few aspects, as in this
RESET vs SYSRESET case.
From my understanding, RESET is used to reset the board and SYSRESET
for general reset purposes: reset a PHY, reset something else, etc.
DT-bindings are done by Linux guys, and in Linux, we have a single
driver for all above (it's similar with PINCTRL and GPIO, one linux
driver, but two different u-boot UCLASS), so we have just one
compatible, but U-boot needs to probe two drivers to achieve all the
wanted functionality !
And we are forced to use the bindings from Linux (little rant), so just
one U-boot driver is bound to the compatible at boot time. Then, the
second driver, has to be manually bound by the first driver, and it does
not have a compatible into it.
I think some of the stuff I explained(poorly) should be readable from
this patch https://lists.denx.de/pipermail/u-boot/2022-December/501618.html
To simply answer your question, you would need both.
>
> Then there's CONFIG_SYSRESET_CMD_RESET which implicates there are more
> than one possible implementations for cmd 'reset' … but which is the
> right one. The help text does not explain.
>
> I though sysreset is old and reset is new and assumed things get
> migrated like in other subsystems. But here it seems we have two
> entangled subsystems where one hooks into the other (as reset_at91
> does).
>
> So, I can of course _just_ enable CONFIG_RESET_AT91 and hope for the
> best here, keeping SYSRESET_CMD_RESET as is … but it would be very
> nice if someone else could explain the what and why in help texts and
> documentation!
>
> Greets
> Alex
>
> P.S.: I would have added sysreset or reset subsystem maintainer to Cc,
> but according to MAINTAINERS there is none.
>
>>> Signed-off-by: Alexander Dahl <ada at thorsis.com>
>>> ---
>>> configs/sam9x60_curiosity_mmc1_defconfig | 4 ++--
>>> configs/sam9x60_curiosity_mmc_defconfig | 4 ++--
>>> configs/sam9x60ek_mmc_defconfig | 4 ++--
>>> configs/sam9x60ek_nandflash_defconfig | 4 ++--
>>> configs/sam9x60ek_qspiflash_defconfig | 4 ++--
>>> 5 files changed, 10 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/configs/sam9x60_curiosity_mmc1_defconfig b/configs/sam9x60_curiosity_mmc1_defconfig
>>> index 21b2cc2edd..e8781b363b 100644
>>> --- a/configs/sam9x60_curiosity_mmc1_defconfig
>>> +++ b/configs/sam9x60_curiosity_mmc1_defconfig
>>> @@ -14,6 +14,7 @@ CONFIG_DM_GPIO=y
>>> CONFIG_DEFAULT_DEVICE_TREE="at91-sam9x60_curiosity"
>>> CONFIG_SYS_PROMPT="U-Boot> "
>>> CONFIG_OF_LIBFDT_OVERLAY=y
>>> +CONFIG_DM_RESET=y
>>> CONFIG_DEBUG_UART_BASE=0xfffff200
>>> CONFIG_DEBUG_UART_CLOCK=200000000
>>> CONFIG_DEBUG_UART_BOARD_INIT=y
>>> @@ -79,11 +80,10 @@ CONFIG_PHY_MICREL=y
>>> CONFIG_MACB=y
>>> CONFIG_PINCTRL=y
>>> CONFIG_PINCTRL_AT91=y
>>> +CONFIG_RESET_AT91=y
>>> CONFIG_DM_SERIAL=y
>>> CONFIG_DEBUG_UART_ANNOUNCE=y
>>> CONFIG_ATMEL_USART=y
>>> -CONFIG_SYSRESET=y
>>> -CONFIG_SYSRESET_AT91=y
>>> CONFIG_TIMER=y
>>> CONFIG_MCHP_PIT64B_TIMER=y
>>> CONFIG_W1=y
>>> diff --git a/configs/sam9x60_curiosity_mmc_defconfig b/configs/sam9x60_curiosity_mmc_defconfig
>>> index 269f015989..0f57588d8b 100644
>>> --- a/configs/sam9x60_curiosity_mmc_defconfig
>>> +++ b/configs/sam9x60_curiosity_mmc_defconfig
>>> @@ -14,6 +14,7 @@ CONFIG_DM_GPIO=y
>>> CONFIG_DEFAULT_DEVICE_TREE="at91-sam9x60_curiosity"
>>> CONFIG_SYS_PROMPT="U-Boot> "
>>> CONFIG_OF_LIBFDT_OVERLAY=y
>>> +CONFIG_DM_RESET=y
>>> CONFIG_DEBUG_UART_BASE=0xfffff200
>>> CONFIG_DEBUG_UART_CLOCK=200000000
>>> CONFIG_DEBUG_UART_BOARD_INIT=y
>>> @@ -79,11 +80,10 @@ CONFIG_PHY_MICREL=y
>>> CONFIG_MACB=y
>>> CONFIG_PINCTRL=y
>>> CONFIG_PINCTRL_AT91=y
>>> +CONFIG_RESET_AT91=y
>>> CONFIG_DM_SERIAL=y
>>> CONFIG_DEBUG_UART_ANNOUNCE=y
>>> CONFIG_ATMEL_USART=y
>>> -CONFIG_SYSRESET=y
>>> -CONFIG_SYSRESET_AT91=y
>>> CONFIG_TIMER=y
>>> CONFIG_MCHP_PIT64B_TIMER=y
>>> CONFIG_W1=y
>>> diff --git a/configs/sam9x60ek_mmc_defconfig b/configs/sam9x60ek_mmc_defconfig
>>> index 2a1399748c..446caceba0 100644
>>> --- a/configs/sam9x60ek_mmc_defconfig
>>> +++ b/configs/sam9x60ek_mmc_defconfig
>>> @@ -15,6 +15,7 @@ CONFIG_DM_GPIO=y
>>> CONFIG_DEFAULT_DEVICE_TREE="sam9x60ek"
>>> CONFIG_SYS_PROMPT="U-Boot> "
>>> CONFIG_OF_LIBFDT_OVERLAY=y
>>> +CONFIG_DM_RESET=y
>>> CONFIG_DEBUG_UART_BASE=0xfffff200
>>> CONFIG_DEBUG_UART_CLOCK=200000000
>>> CONFIG_DEBUG_UART_BOARD_INIT=y
>>> @@ -87,14 +88,13 @@ CONFIG_PHY_MICREL=y
>>> CONFIG_MACB=y
>>> CONFIG_PINCTRL=y
>>> CONFIG_PINCTRL_AT91=y
>>> +CONFIG_RESET_AT91=y
>>> CONFIG_DM_SERIAL=y
>>> CONFIG_DEBUG_UART_ANNOUNCE=y
>>> CONFIG_ATMEL_USART=y
>>> CONFIG_SPI=y
>>> CONFIG_DM_SPI=y
>>> CONFIG_ATMEL_QSPI=y
>>> -CONFIG_SYSRESET=y
>>> -CONFIG_SYSRESET_AT91=y
>>> CONFIG_TIMER=y
>>> CONFIG_ATMEL_PIT_TIMER=y
>>> CONFIG_W1=y
>>> diff --git a/configs/sam9x60ek_nandflash_defconfig b/configs/sam9x60ek_nandflash_defconfig
>>> index c6c4686658..acaa16ee49 100644
>>> --- a/configs/sam9x60ek_nandflash_defconfig
>>> +++ b/configs/sam9x60ek_nandflash_defconfig
>>> @@ -14,6 +14,7 @@ CONFIG_DM_GPIO=y
>>> CONFIG_DEFAULT_DEVICE_TREE="sam9x60ek"
>>> CONFIG_SYS_PROMPT="U-Boot> "
>>> CONFIG_OF_LIBFDT_OVERLAY=y
>>> +CONFIG_DM_RESET=y
>>> CONFIG_DEBUG_UART_BASE=0xfffff200
>>> CONFIG_DEBUG_UART_CLOCK=200000000
>>> CONFIG_DEBUG_UART_BOARD_INIT=y
>>> @@ -89,14 +90,13 @@ CONFIG_PHY_MICREL=y
>>> CONFIG_MACB=y
>>> CONFIG_PINCTRL=y
>>> CONFIG_PINCTRL_AT91=y
>>> +CONFIG_RESET_AT91=y
>>> CONFIG_DM_SERIAL=y
>>> CONFIG_DEBUG_UART_ANNOUNCE=y
>>> CONFIG_ATMEL_USART=y
>>> CONFIG_SPI=y
>>> CONFIG_DM_SPI=y
>>> CONFIG_ATMEL_QSPI=y
>>> -CONFIG_SYSRESET=y
>>> -CONFIG_SYSRESET_AT91=y
>>> CONFIG_TIMER=y
>>> CONFIG_ATMEL_PIT_TIMER=y
>>> CONFIG_W1=y
>>> diff --git a/configs/sam9x60ek_qspiflash_defconfig b/configs/sam9x60ek_qspiflash_defconfig
>>> index ef2e2db8b8..6fb79214e5 100644
>>> --- a/configs/sam9x60ek_qspiflash_defconfig
>>> +++ b/configs/sam9x60ek_qspiflash_defconfig
>>> @@ -14,6 +14,7 @@ CONFIG_DM_GPIO=y
>>> CONFIG_DEFAULT_DEVICE_TREE="sam9x60ek"
>>> CONFIG_SYS_PROMPT="U-Boot> "
>>> CONFIG_OF_LIBFDT_OVERLAY=y
>>> +CONFIG_DM_RESET=y
>>> CONFIG_DEBUG_UART_BASE=0xfffff200
>>> CONFIG_DEBUG_UART_CLOCK=200000000
>>> CONFIG_DEBUG_UART_BOARD_INIT=y
>>> @@ -88,14 +89,13 @@ CONFIG_PHY_MICREL=y
>>> CONFIG_MACB=y
>>> CONFIG_PINCTRL=y
>>> CONFIG_PINCTRL_AT91=y
>>> +CONFIG_RESET_AT91=y
>>> CONFIG_DM_SERIAL=y
>>> CONFIG_DEBUG_UART_ANNOUNCE=y
>>> CONFIG_ATMEL_USART=y
>>> CONFIG_SPI=y
>>> CONFIG_DM_SPI=y
>>> CONFIG_ATMEL_QSPI=y
>>> -CONFIG_SYSRESET=y
>>> -CONFIG_SYSRESET_AT91=y
>>> CONFIG_TIMER=y
>>> CONFIG_ATMEL_PIT_TIMER=y
>>> CONFIG_W1=y
>>
More information about the U-Boot
mailing list