[PATCH] board: mediatek: disable watchdog on BananaPi R2
Matthias Brugger
mbrugger at suse.com
Sun Jan 10 19:55:40 CET 2021
On 10/01/2021 19:44, Matthias Brugger wrote:
>
>
> On 09/01/2021 15:57, Stefan Roese wrote:
>> On 09.01.21 03:32, Matthias Brugger wrote:
>>> On 08/01/2021 08:39, Stefan Roese wrote:
>>>> On 07.01.21 16:36, matthias.bgg at kernel.org wrote:
>>>>> From: Matthias Brugger <mbrugger at suse.com>
>>>>>
>>>>> Watchdog timeout comes in before we are able to load the
>>>>> kernel and reset the watchdog. Disable the watchdog late in the boot
>>>>> process to be able to boot the board.
>>>>
>>>> Can't you change the WDT reset timeout instead to a higher value?
>>>>
>>>
>>> I tried that, but the HW has a max timeout of 15984 ms. Unfortunately that's not
>>> enough.
>>
>> Nearly 16 seconds is not enough to boot into Linux so that the Linux
>> watchdog daemon can take control?
>>
>
> Exactly. I'm using a standard distro image. I think the main problem is, that it
> needs 14 seconds for the EFI stub to actually boot the kernel. I've already the
> watchdog timer as build-in (which is not the best to do, taking into account
> that we don't want to bloat our distro kernel with random board specific drivers
> build-in. If we I had the watchdog driver as kernel module it would take forever
> to get that loaded.
I just checked and "forever" was a bit of a overstatement. Kernel modules get
loaded after around 2 seconds into kernel booting. But adding this to the 14
seconds the EFI stub needs we already got reset by the watchdog.
Regards,
Matthias
>
> You can find a serial log with timestamp from the moment U-Boot got loaded until
> the kernel actually boots here:
> https://paste.opensuse.org/98390849
>
> Regards,
> Matthias
>
>> Thanks,
>> Stefan
>>
>>> Regards,
>>> Matthias
>>>
>>>> Thanks,
>>>> Stefan
>>>>
>>>>> Signed-off-by: Matthias Brugger <mbrugger at suse.com>
>>>>>
>>>>> ---
>>>>>
>>>>> board/mediatek/mt7623/mt7623_rfb.c | 8 ++++++++
>>>>> configs/mt7623n_bpir2_defconfig | 1 +
>>>>> 2 files changed, 9 insertions(+)
>>>>>
>>>>> diff --git a/board/mediatek/mt7623/mt7623_rfb.c
>>>>> b/board/mediatek/mt7623/mt7623_rfb.c
>>>>> index 984e75ccaf..22120be412 100644
>>>>> --- a/board/mediatek/mt7623/mt7623_rfb.c
>>>>> +++ b/board/mediatek/mt7623/mt7623_rfb.c
>>>>> @@ -5,6 +5,7 @@
>>>>> #include <common.h>
>>>>> #include <mmc.h>
>>>>> +#include <watchdog.h>
>>>>> DECLARE_GLOBAL_DATA_PTR;
>>>>> @@ -40,3 +41,10 @@ int mmc_get_env_dev(void)
>>>>> return mmc_get_boot_dev();
>>>>> }
>>>>> #endif
>>>>> +
>>>>> +#ifdef CONFIG_BOARD_LATE_INIT
>>>>> +int board_late_init(void)
>>>>> +{
>>>>> + wdt_stop(gd->watchdog_dev);
>>>>> +}
>>>>> +#endif
>>>>> diff --git a/configs/mt7623n_bpir2_defconfig b/configs/mt7623n_bpir2_defconfig
>>>>> index 9177c17dff..fe0b6259dd 100644
>>>>> --- a/configs/mt7623n_bpir2_defconfig
>>>>> +++ b/configs/mt7623n_bpir2_defconfig
>>>>> @@ -14,6 +14,7 @@ CONFIG_FIT_VERBOSE=y
>>>>> CONFIG_BOOTDELAY=3
>>>>> CONFIG_SYS_CONSOLE_IS_IN_ENV=y
>>>>> CONFIG_DEFAULT_FDT_FILE="mt7623n-bananapi-bpi-r2.dtb"
>>>>> +CONFIG_BOARD_LATE_INIT=y
>>>>> # CONFIG_DISPLAY_BOARDINFO is not set
>>>>> CONFIG_SYS_PROMPT="U-Boot> "
>>>>> CONFIG_CMD_BOOTMENU=y
>>>>>
>>>>
>>>>
>>>> Viele Grüße,
>>>> Stefan
>>>>
>>>
>>
>>
>> Viele Grüße,
>> Stefan
>>
More information about the U-Boot
mailing list