mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge git://git.denx.de/u-boot-marvell
- Add DM based generic watchdog start and reset implementation and remove all ad-hoc implementations (Stefan) - Move mv_sdhci to DM (Pierre) - Misc turris_omnia updates (Pierre) - Change openrd targets to correctly build again (size changes and fixes to the dts targets) and bring it back into Travis builds (Stefan) - Add Kirkwood db-88f6281-bp board (Chris)
This commit is contained in:
@@ -137,6 +137,9 @@ typedef struct global_data {
|
||||
#if defined(CONFIG_TRANSLATION_OFFSET)
|
||||
fdt_addr_t translation_offset; /* optional translation offset */
|
||||
#endif
|
||||
#if defined(CONFIG_WDT)
|
||||
struct udevice *watchdog_dev;
|
||||
#endif
|
||||
} gd_t;
|
||||
#endif
|
||||
|
||||
@@ -165,5 +168,6 @@ typedef struct global_data {
|
||||
#define GD_FLG_ENV_DEFAULT 0x02000 /* Default variable flag */
|
||||
#define GD_FLG_SPL_EARLY_INIT 0x04000 /* Early SPL init is done */
|
||||
#define GD_FLG_LOG_READY 0x08000 /* Log system is ready for use */
|
||||
#define GD_FLG_WDT_READY 0x10000 /* Watchdog is ready for use */
|
||||
|
||||
#endif /* __ASM_GENERIC_GBL_DATA_H */
|
||||
|
||||
99
include/configs/db-88f6281-bp.h
Normal file
99
include/configs/db-88f6281-bp.h
Normal file
@@ -0,0 +1,99 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
|
||||
#ifndef _CONFIG_DB_88F6281_BP_H
|
||||
#define _CONFIG_DB_88F6281_BP_H
|
||||
|
||||
/*
|
||||
* High Level Configuration Options (easy to change)
|
||||
*/
|
||||
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
|
||||
#define CONFIG_KW88F6281 1 /* SOC Name */
|
||||
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
|
||||
#define CONFIG_SYS_TCLK 166666667
|
||||
#define CONFIG_SYS_KWD_CONFIG $(CONFIG_BOARDDIR)/kwbimage.cfg
|
||||
#define CONFIG_BUILD_TARGET "u-boot.kwb"
|
||||
|
||||
/* additions for new ARM relocation support */
|
||||
#define CONFIG_SYS_SDRAM_BASE 0x00000000
|
||||
|
||||
#define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1 for kernel */
|
||||
#define CONFIG_KIRKWOOD_PCIE_INIT /* Enable PCIE Port0 */
|
||||
#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */
|
||||
#define CONFIG_KIRKWOOD_GPIO 1
|
||||
|
||||
/*
|
||||
* NS16550 Configuration
|
||||
*/
|
||||
#define CONFIG_SYS_NS16550_SERIAL
|
||||
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
|
||||
#define CONFIG_SYS_NS16550_CLK CONFIG_SYS_TCLK
|
||||
#define CONFIG_SYS_NS16550_COM1 KW_UART0_BASE
|
||||
|
||||
#define CONFIG_SYS_MAX_NAND_DEVICE 1
|
||||
/*
|
||||
* Serial Port configuration
|
||||
* The following definitions let you select what serial you want to use
|
||||
* for your console driver.
|
||||
*/
|
||||
|
||||
#define CONFIG_CONS_INDEX 1 /* Console on UART0 */
|
||||
|
||||
/*
|
||||
* Environment variables configurations
|
||||
*/
|
||||
#define CONFIG_ENV_SPI_BUS 0
|
||||
#define CONFIG_ENV_SPI_CS 0
|
||||
#define CONFIG_ENV_SPI_MAX_HZ 20000000 /* 20Mhz */
|
||||
#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE
|
||||
#define CONFIG_ENV_SECT_SIZE 0x40000 /* 256K */
|
||||
#define CONFIG_ENV_SIZE 0x01000
|
||||
#define CONFIG_ENV_OFFSET 0xC0000
|
||||
|
||||
/*
|
||||
* U-Boot bootcode configuration
|
||||
*/
|
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN (256 << 10) /* Reserve 256 kB for monitor */
|
||||
#define CONFIG_SYS_MALLOC_LEN (4 << 20) /* Reserve 4.0 MB for malloc */
|
||||
|
||||
/*
|
||||
* For booting Linux, the board info and command line data
|
||||
* have to be in the first 8 MB of memory, since this is
|
||||
* the maximum mapped by the Linux kernel during initialization.
|
||||
*/
|
||||
#define CONFIG_SYS_BOOTMAPSZ (8 << 20) /* Initial Mem map for Linux*/
|
||||
|
||||
/* size in bytes reserved for initial data */
|
||||
|
||||
#include <asm/arch/config.h>
|
||||
/* There is no PHY directly connected so don't ask it for link status */
|
||||
#undef CONFIG_SYS_FAULT_ECHO_LINK_DOWN
|
||||
|
||||
/*
|
||||
* Other required minimal configurations
|
||||
*/
|
||||
#define CONFIG_ARCH_CPU_INIT /* call arch_cpu_init() */
|
||||
#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
|
||||
#define CONFIG_SYS_MEMTEST_END 0x007fffff /* (_8M - 1) */
|
||||
#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
|
||||
|
||||
/*
|
||||
* SDIO/MMC Card Configuration
|
||||
*/
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_MVEBU_MMC
|
||||
#define CONFIG_SYS_MMC_BASE KW_SDIO_BASE
|
||||
#endif /* CONFIG_CMD_MMC */
|
||||
|
||||
/*
|
||||
* SATA Driver configuration
|
||||
*/
|
||||
#ifdef CONFIG_MVSATA_IDE
|
||||
#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET
|
||||
#endif /*CONFIG_MVSATA_IDE*/
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x1000000 /* default location for tftp and bootm */
|
||||
|
||||
#define CONFIG_SYS_DCACHE_OFF
|
||||
|
||||
#endif /* _CONFIG_DB_88F6281_BP_H */
|
||||
@@ -41,8 +41,7 @@
|
||||
* it has to be rounded to sector size
|
||||
*/
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 128k */
|
||||
#define CONFIG_ENV_ADDR 0x60000
|
||||
#define CONFIG_ENV_OFFSET 0x60000 /* env starts here */
|
||||
#define CONFIG_ENV_OFFSET 0x80000 /* env starts here */
|
||||
/*
|
||||
* Environment is right behind U-Boot in flash. Make sure U-Boot
|
||||
* doesn't grow into the environment area.
|
||||
|
||||
@@ -29,11 +29,6 @@
|
||||
#define CONFIG_SPL_I2C_MUX
|
||||
#define CONFIG_SYS_I2C_MVTWSI
|
||||
|
||||
/* Watchdog support */
|
||||
#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_WDT_ORION)
|
||||
# define CONFIG_WATCHDOG
|
||||
#endif
|
||||
|
||||
/*
|
||||
* SDIO/MMC Card Configuration
|
||||
*/
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
#ifndef _WDT_H_
|
||||
#define _WDT_H_
|
||||
|
||||
#include <dm.h>
|
||||
#include <dm/read.h>
|
||||
|
||||
/*
|
||||
* Implement a simple watchdog uclass. Watchdog is basically a timer that
|
||||
* is used to detect or recover from malfunction. During normal operation
|
||||
@@ -103,4 +106,42 @@ struct wdt_ops {
|
||||
int (*expire_now)(struct udevice *dev, ulong flags);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_WDT)
|
||||
#ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
|
||||
#define CONFIG_WATCHDOG_TIMEOUT_MSECS (60 * 1000)
|
||||
#endif
|
||||
#define WATCHDOG_TIMEOUT_SECS (CONFIG_WATCHDOG_TIMEOUT_MSECS / 1000)
|
||||
|
||||
static inline int initr_watchdog(void)
|
||||
{
|
||||
u32 timeout = WATCHDOG_TIMEOUT_SECS;
|
||||
|
||||
/*
|
||||
* Init watchdog: This will call the probe function of the
|
||||
* watchdog driver, enabling the use of the device
|
||||
*/
|
||||
if (uclass_get_device_by_seq(UCLASS_WDT, 0,
|
||||
(struct udevice **)&gd->watchdog_dev)) {
|
||||
debug("WDT: Not found by seq!\n");
|
||||
if (uclass_get_device(UCLASS_WDT, 0,
|
||||
(struct udevice **)&gd->watchdog_dev)) {
|
||||
printf("WDT: Not found!\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (CONFIG_IS_ENABLED(OF_CONTROL)) {
|
||||
timeout = dev_read_u32_default(gd->watchdog_dev, "timeout-sec",
|
||||
WATCHDOG_TIMEOUT_SECS);
|
||||
}
|
||||
|
||||
wdt_start(gd->watchdog_dev, timeout * 1000, 0);
|
||||
gd->flags |= GD_FLG_WDT_READY;
|
||||
printf("WDT: Started with%s servicing (%ds timeout)\n",
|
||||
IS_ENABLED(CONFIG_WATCHDOG) ? "" : "out", timeout);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WDT_H_ */
|
||||
|
||||
Reference in New Issue
Block a user