mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
board: sl28: disable recovery watchdog
This board has an internal watchdog which supervises the board startup. Although, the initial state of the watchdog is configurable, it is enabled by default. In board_late_init(), which means almost everything worked as expected, disable the watchdog. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
2ba8a446ce
commit
453d1711d2
2 changed files with 35 additions and 6 deletions
|
@ -15,6 +15,7 @@
|
|||
#include <asm/arch/soc.h>
|
||||
#include <fsl_immap.h>
|
||||
#include <netdev.h>
|
||||
#include <wdt.h>
|
||||
|
||||
#include <sl28cpld.h>
|
||||
#include <fdtdec.h>
|
||||
|
@ -73,6 +74,34 @@ int checkboard(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void stop_recovery_watchdog(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = uclass_get_device_by_driver(UCLASS_WDT,
|
||||
DM_DRIVER_GET(sl28cpld_wdt), &dev);
|
||||
if (!ret)
|
||||
wdt_stop(dev);
|
||||
}
|
||||
|
||||
int fsl_board_late_init(void)
|
||||
{
|
||||
/*
|
||||
* Usually, the after a board reset, the watchdog is enabled by
|
||||
* default. This is to supervise the bootloader boot-up. Therefore,
|
||||
* to prevent a watchdog reset if we don't actively kick it, we have
|
||||
* to disable it.
|
||||
*
|
||||
* If the watchdog isn't enabled at reset (which is a configuration
|
||||
* option) disabling it doesn't hurt either.
|
||||
*/
|
||||
if (!CONFIG_IS_ENABLED(WATCHDOG_AUTOSTART))
|
||||
stop_recovery_watchdog();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void detail_board_ddr_info(void)
|
||||
{
|
||||
print_ddr_info(0);
|
||||
|
|
|
@ -23,17 +23,17 @@ Copy u-boot.rom to a TFTP server.
|
|||
Install the bootloader on the board
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Please note, this bootloader doesn't support the builtin watchdog (yet),
|
||||
therefore you have to disable it, see below. Otherwise you'll end up in
|
||||
the failsafe bootloader on every reset::
|
||||
To install the bootloader binary use the following command::
|
||||
|
||||
> tftp path/to/u-boot.rom
|
||||
> sf probe 0
|
||||
> sf update $fileaddr 0x210000 $filesize
|
||||
|
||||
The board is fully failsafe, you can't break anything. But because you've
|
||||
disabled the builtin watchdog you might have to manually enter failsafe
|
||||
mode by asserting the ``FORCE_RECOV#`` line during board reset.
|
||||
The board is fully failsafe, you can't break anything. If builtin watchdog
|
||||
is enabled, you'll automatically end up in the failsafe bootloader if
|
||||
something goes wrong. If the watchdog is disabled, you have to manually
|
||||
enter failsafe mode by asserting the ``FORCE_RECOV#`` line during board
|
||||
reset.
|
||||
|
||||
Update image
|
||||
------------
|
||||
|
|
Loading…
Reference in a new issue