Merge patch series "*** Commonize board code for K3 based SoMs ***"
Wadim Egorov <w.egorov@phytec.de> says: Factor out code that we can reuse across all our K3 based SoMs. 2nd patch of this series require patch [1] to be applied first. [1] https://lists.denx.de/pipermail/u-boot/2024-April/552021.html
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
# necessary to create built-in.o
|
||||
obj- := __dummy__.o
|
||||
else
|
||||
obj-$(CONFIG_ARCH_K3) += k3/
|
||||
endif
|
||||
|
||||
obj-y += phytec_som_detection.o
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
obj-y += board.o
|
||||
@@ -0,0 +1,73 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (C) 2024 PHYTEC Messtechnik GmbH
|
||||
* Author: Wadim Egorov <w.egorov@phytec.de>
|
||||
*/
|
||||
|
||||
#include <env_internal.h>
|
||||
#include <spl.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
#if IS_ENABLED(CONFIG_ENV_IS_IN_FAT) || IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
|
||||
int mmc_get_env_dev(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
return 0;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
return 1;
|
||||
};
|
||||
|
||||
return CONFIG_SYS_MMC_ENV_DEV;
|
||||
}
|
||||
#endif
|
||||
|
||||
enum env_location env_get_location(enum env_operation op, int prio)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
if (prio)
|
||||
return ENVL_UNKNOWN;
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
case BOOT_DEVICE_MMC2:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_FAT))
|
||||
return ENVL_FAT;
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC))
|
||||
return ENVL_MMC;
|
||||
case BOOT_DEVICE_SPI:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
|
||||
return ENVL_SPI_FLASH;
|
||||
default:
|
||||
return ENVL_NOWHERE;
|
||||
};
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_BOARD_LATE_INIT)
|
||||
int board_late_init(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
env_set_ulong("mmcdev", 0);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
env_set_ulong("mmcdev", 1);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_SPI:
|
||||
env_set("boot", "spi");
|
||||
break;
|
||||
case BOOT_DEVICE_ETHERNET:
|
||||
env_set("boot", "net");
|
||||
break;
|
||||
};
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -5,11 +5,8 @@
|
||||
*/
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <env.h>
|
||||
#include <env_internal.h>
|
||||
#include <spl.h>
|
||||
#include <fdt_support.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -57,67 +54,3 @@ void spl_board_init(void)
|
||||
MCU_CTRL_DEVICE_CLKOUT_32K_CTRL);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ENV_IS_IN_FAT) || IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
|
||||
int mmc_get_env_dev(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
return 0;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
return 1;
|
||||
};
|
||||
|
||||
return CONFIG_SYS_MMC_ENV_DEV;
|
||||
}
|
||||
#endif
|
||||
|
||||
enum env_location env_get_location(enum env_operation op, int prio)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
if (prio)
|
||||
return ENVL_UNKNOWN;
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
case BOOT_DEVICE_MMC2:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_FAT))
|
||||
return ENVL_FAT;
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC))
|
||||
return ENVL_MMC;
|
||||
case BOOT_DEVICE_SPI:
|
||||
if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
|
||||
return ENVL_SPI_FLASH;
|
||||
default:
|
||||
return ENVL_NOWHERE;
|
||||
};
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_BOARD_LATE_INIT)
|
||||
int board_late_init(void)
|
||||
{
|
||||
u32 boot_device = get_boot_device();
|
||||
|
||||
switch (boot_device) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
env_set_ulong("mmcdev", 0);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_MMC2:
|
||||
env_set_ulong("mmcdev", 1);
|
||||
env_set("boot", "mmc");
|
||||
break;
|
||||
case BOOT_DEVICE_SPI:
|
||||
env_set("boot", "spi");
|
||||
break;
|
||||
case BOOT_DEVICE_ETHERNET:
|
||||
env_set("boot", "net");
|
||||
break;
|
||||
};
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -38,6 +38,7 @@ CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
|
||||
CONFIG_BOOTSTD_FULL=y
|
||||
CONFIG_BOOTCOMMAND="run mmcboot; bootflow scan -lb"
|
||||
CONFIG_DEFAULT_FDT_FILE="oftree"
|
||||
CONFIG_BOARD_LATE_INIT=y
|
||||
CONFIG_SPL_MAX_SIZE=0x180000
|
||||
CONFIG_SPL_BOARD_INIT=y
|
||||
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
|
||||
|
||||
Reference in New Issue
Block a user