mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-07 05:34:28 +00:00
95 lines
1.9 KiB
C
95 lines
1.9 KiB
C
|
// SPDX-License-Identifier: GPL-2.0+
|
||
|
/*
|
||
|
* Copyright 2019 NXP
|
||
|
*/
|
||
|
|
||
|
#include <common.h>
|
||
|
#include <errno.h>
|
||
|
#include <asm/mach-imx/iomux-v3.h>
|
||
|
#include <asm-generic/gpio.h>
|
||
|
#include <asm/arch/imx8mp_pins.h>
|
||
|
#include <asm/arch/sys_proto.h>
|
||
|
#include <asm/mach-imx/gpio.h>
|
||
|
|
||
|
DECLARE_GLOBAL_DATA_PTR;
|
||
|
|
||
|
#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1)
|
||
|
#define WDOG_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE)
|
||
|
|
||
|
static iomux_v3_cfg_t const uart_pads[] = {
|
||
|
MX8MP_PAD_UART2_RXD__UART2_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||
|
MX8MP_PAD_UART2_TXD__UART2_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||
|
};
|
||
|
|
||
|
static iomux_v3_cfg_t const wdog_pads[] = {
|
||
|
MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL),
|
||
|
};
|
||
|
|
||
|
int board_early_init_f(void)
|
||
|
{
|
||
|
struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
|
||
|
|
||
|
imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
|
||
|
|
||
|
set_wdog_reset(wdog);
|
||
|
|
||
|
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int dram_init(void)
|
||
|
{
|
||
|
/* rom_pointer[1] contains the size of TEE occupies */
|
||
|
if (rom_pointer[1])
|
||
|
gd->ram_size = PHYS_SDRAM_SIZE - rom_pointer[1];
|
||
|
else
|
||
|
gd->ram_size = PHYS_SDRAM_SIZE;
|
||
|
|
||
|
#if CONFIG_NR_DRAM_BANKS > 1
|
||
|
gd->ram_size += PHYS_SDRAM_2_SIZE;
|
||
|
#endif
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int dram_init_banksize(void)
|
||
|
{
|
||
|
gd->bd->bi_dram[0].start = PHYS_SDRAM;
|
||
|
if (rom_pointer[1])
|
||
|
|
||
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE - rom_pointer[1];
|
||
|
else
|
||
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
|
||
|
|
||
|
#if CONFIG_NR_DRAM_BANKS > 1
|
||
|
gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
|
||
|
gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
|
||
|
#endif
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
phys_size_t get_effective_memsize(void)
|
||
|
{
|
||
|
if (rom_pointer[1])
|
||
|
return (PHYS_SDRAM_SIZE - rom_pointer[1]);
|
||
|
else
|
||
|
return PHYS_SDRAM_SIZE;
|
||
|
}
|
||
|
|
||
|
int board_init(void)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int board_late_init(void)
|
||
|
{
|
||
|
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||
|
env_set("board_name", "EVK");
|
||
|
env_set("board_rev", "iMX8MP");
|
||
|
#endif
|
||
|
|
||
|
return 0;
|
||
|
}
|