[PATCH v2] spl: watchdog: introduce SPL_HW_WATCHDOG
Stefan Roese
sr at denx.de
Mon Aug 28 16:30:14 CEST 2023
Hi Oleksandr,
On 8/28/23 15:23, Oleksandr Suvorov wrote:
> Hi Stefan,
>
> On Thu, Aug 24, 2023 at 2:24 PM Stefan Roese <sr at denx.de> wrote:
>>
>> On 8/23/23 14:00, Oleksandr Suvorov wrote:
>>> Add SPL_HW_WATCHDOG Kconfig symbol which can be used to enable
>>> non-WDT hardware watchdog in SPL.
>>
>> Hmmm, my hope / plan was to completely drop HW_WATCHDOG at some point.
>> It's some old relict and if I don't miss something completely, it's more
>> a "normal" watchdog that needs to get triggered very early in most
>> cases (PowerPC etc).
>
> Oh, it's a good approach, thanks.
Good that we agree. But...
>> So adding some more *_HW_WATCHDOG stuff does not sound appealing to me.
>> Could you perhaps investigate a bit, if your HW_WATCHDOG use case can
>> be converted to the "normal" watchdog support instead?
>
> We just need to be able to exclude a hardware watchdog from SPL to
> save some memory.
Did you already enable LTO so decrease the image size? Just checking.
> So I resign this patch and we'll wait for your work and then revise
> what we have again.
...but: Actually I don't have any plans to do this rework myself. At
least not short-term. My hope was that someone for the platforms using
this HW_WATCHDOG stuff would jump in here. ;)
Thanks,
Stefan
>> Thanks,
>> Stefan
>
> Cheers,
> Oleksandr
>
>>
>>> Co-developed-by: Igor Opaniuk <igor.opaniuk at foundries.io>
>>> Signed-off-by: Igor Opaniuk <igor.opaniuk at foundries.io>
>>> Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov at foundries.io>
>>> ---
>>>
>>> Changes in v2:
>>> - remove mistakenly included unwanted changes
>>>
>>> common/spl/Kconfig | 1 -
>>> drivers/Makefile | 1 +
>>> drivers/sysreset/Kconfig | 6 ++++++
>>> drivers/sysreset/Makefile | 2 +-
>>> drivers/watchdog/Kconfig | 4 ++++
>>> 5 files changed, 12 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
>>> index c5dd476db58..07d9dac29bd 100644
>>> --- a/common/spl/Kconfig
>>> +++ b/common/spl/Kconfig
>>> @@ -1351,7 +1351,6 @@ config SPL_THERMAL
>>>
>>> config SPL_WATCHDOG
>>> bool "Support watchdog drivers"
>>> - imply SPL_WDT if !HW_WATCHDOG
>>> help
>>> Enable support for watchdog drivers in SPL. A watchdog is
>>> typically a hardware peripheral which can reset the system when it
>>> diff --git a/drivers/Makefile b/drivers/Makefile
>>> index efc2a4afb24..2eb8ec0a894 100644
>>> --- a/drivers/Makefile
>>> +++ b/drivers/Makefile
>>> @@ -62,6 +62,7 @@ obj-$(CONFIG_SPL_USB_GADGET) += usb/gadget/
>>> obj-$(CONFIG_SPL_USB_GADGET) += usb/common/
>>> obj-$(CONFIG_SPL_USB_GADGET) += usb/gadget/udc/
>>> obj-$(CONFIG_SPL_WATCHDOG) += watchdog/
>>> +obj-$(CONFIG_SPL_HW_WATCHDOG) += watchdog/
>>> obj-$(CONFIG_SPL_USB_HOST) += usb/host/
>>> obj-$(CONFIG_SPL_SATA) += ata/ scsi/
>>> obj-$(CONFIG_SPL_LEGACY_BLOCK) += block/
>>> diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
>>> index bdbe2a95364..0d21673e402 100644
>>> --- a/drivers/sysreset/Kconfig
>>> +++ b/drivers/sysreset/Kconfig
>>> @@ -157,6 +157,12 @@ config SYSRESET_WATCHDOG
>>> help
>>> Reboot support for generic watchdog reset.
>>>
>>> +config SPL_SYSRESET_WATCHDOG
>>> + bool "Enable support for watchdog reboot driver in SPL mode"
>>> + select SPL_WDT
>>> + help
>>> + Reboot support for generic watchdog reset in SPL mode.
>>> +
>>> config SYSRESET_WATCHDOG_AUTO
>>> bool "Automatically register first watchdog with sysreset"
>>> depends on SYSRESET_WATCHDOG
>>> diff --git a/drivers/sysreset/Makefile b/drivers/sysreset/Makefile
>>> index 40c876764af..e5a7fc07a81 100644
>>> --- a/drivers/sysreset/Makefile
>>> +++ b/drivers/sysreset/Makefile
>>> @@ -18,7 +18,7 @@ obj-$(CONFIG_SYSRESET_SOCFPGA) += sysreset_socfpga.o
>>> obj-$(CONFIG_SYSRESET_SOCFPGA_SOC64) += sysreset_socfpga_soc64.o
>>> obj-$(CONFIG_SYSRESET_TI_SCI) += sysreset-ti-sci.o
>>> obj-$(CONFIG_SYSRESET_SYSCON) += sysreset_syscon.o
>>> -obj-$(CONFIG_SYSRESET_WATCHDOG) += sysreset_watchdog.o
>>> +obj-$(CONFIG_$(SPL_)SYSRESET_WATCHDOG) += sysreset_watchdog.o
>>> obj-$(CONFIG_SYSRESET_RESETCTL) += sysreset_resetctl.o
>>> obj-$(CONFIG_$(SPL_TPL_)SYSRESET_AT91) += sysreset_at91.o
>>> obj-$(CONFIG_$(SPL_TPL_)SYSRESET_X86) += sysreset_x86.o
>>> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
>>> index 07fc4940e91..d696a04fc18 100644
>>> --- a/drivers/watchdog/Kconfig
>>> +++ b/drivers/watchdog/Kconfig
>>> @@ -39,9 +39,13 @@ config WATCHDOG_TIMEOUT_MSECS
>>> config HW_WATCHDOG
>>> bool
>>>
>>> +config SPL_HW_WATCHDOG
>>> + bool
>>> +
>>> config IMX_WATCHDOG
>>> bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
>>> select HW_WATCHDOG if !WDT
>>> + select SPL_HW_WATCHDOG if !SPL_WDT
>>> help
>>> Select this to enable the IMX and LSCH2 of Layerscape watchdog
>>> driver.
>>
>> Viele Grüße,
>> Stefan Roese
>>
>> --
>> DENX Software Engineering GmbH, Managing Director: Erika Unter
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
>
>
>
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list