config TARGET_STARFIVE_VISIONFIVE2
bool "Support StarFive VisionFive2 Board"
+ select BOARD_LATE_INIT
config TARGET_TH1520_LPI4A
bool "Support Sipeed's TH1520 Lichee PI 4A Board"
*/
#include <common.h>
-#include <asm/io.h>
-#include <asm/sections.h>
#include <cpu_func.h>
#include <dm.h>
#include <fdt_support.h>
+#include <env.h>
+#include <asm/arch/eeprom.h>
+#include <asm/io.h>
+#include <asm/sections.h>
#include <linux/bitops.h>
DECLARE_GLOBAL_DATA_PTR;
#define JH7110_L2_PREFETCHER_BASE_ADDR 0x2030000
#define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000
+#define FDTFILE_VISIONFIVE2_1_2A \
+ "starfive/jh7110-starfive-visionfive-2-v1.2a.dtb"
+#define FDTFILE_VISIONFIVE2_1_3B \
+ "starfive/jh7110-starfive-visionfive-2-v1.3b.dtb"
/* enable U74-mc hart1~hart4 prefetcher */
static void enable_prefetcher(void)
}
}
+/**
+ * set_fdtfile() - set the $fdtfile variable based on the board revision
+ */
+static void set_fdtfile(void)
+{
+ u8 version;
+ const char *fdtfile;
+
+ version = get_pcb_revision_from_eeprom();
+ switch (version) {
+ case 'a':
+ case 'A':
+ fdtfile = FDTFILE_VISIONFIVE2_1_2A;
+ break;
+
+ case 'b':
+ case 'B':
+ default:
+ fdtfile = FDTFILE_VISIONFIVE2_1_3B;
+ break;
+ };
+
+ env_set("fdtfile", fdtfile);
+}
+
int board_init(void)
{
enable_caches();
return 0;
}
+int board_late_init(void)
+{
+ if (CONFIG_IS_ENABLED(ID_EEPROM))
+ set_fdtfile();
+
+ return 0;
+}
+
void *board_fdt_blob_setup(int *err)
{
*err = 0;
run altbootcmd;
fi;
#ifdef CONFIG_SYS_BOOT_LOCKED
- hab_auth_img ${fileaddr} ${filesize};
-#else
hab_auth_img_or_fail ${fileaddr} ${filesize};
+#else
+ hab_auth_img ${fileaddr} ${filesize};
#endif
run mmcargs;
if bootm; then
CONFIG_SPL_DM_SPI=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am6528-iot2050-basic"
CONFIG_SPL_TEXT_BASE=0x80080000
-CONFIG_SYS_PROMPT="IOT2050> "
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_DM_RESET=y
CONFIG_SPL_SERIAL=y
CONFIG_AUTOBOOT_PROMPT="Hit SPACE to stop autoboot in %d seconds...\n"
CONFIG_AUTOBOOT_STOP_STR=" "
CONFIG_BOOTCOMMAND="run start_watchdog; run distro_bootcmd"
-CONFIG_CONSOLE_MUX=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_SPL_MAX_SIZE=0x58000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x380000
+CONFIG_SYS_PROMPT="IOT2050> "
CONFIG_SYS_MAXARGS=64
CONFIG_SYS_PBSIZE=1050
CONFIG_CMD_ASKENV=y
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="imx7d-smegw01"
CONFIG_TARGET_SMEGW01=y
-# CONFIG_SYS_BOOT_LOCKED is not set
+CONFIG_SYS_BOOT_LOCKED=y
CONFIG_ENV_OFFSET_REDUND=0x110000
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
# CONFIG_ARMV7_VIRT is not set
pos
number of bytes to skip
-addr, bytes, pos are hexadecimal numbers.
+part, addr, bytes, pos are hexadecimal numbers.
Example
-------
addr_fit=0x90000000
name_fit=fitImage
update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit}
-get_overlaystring=
- for overlay in $name_overlays;
- do;
- setenv overlaystring ${overlaystring}'#'${overlay};
+get_fit_overlaystring=
+ for overlay in $name_overlays; do;
+ setexpr name_fit_overlay gsub / _ conf-${overlay};
+ setenv overlaystring ${overlaystring}'#'${name_fit_overlay};
done;
get_fit_config=setexpr name_fit_config gsub / _ conf-${fdtfile}
run_fit=run get_fit_config; bootm ${addr_fit}#${name_fit_config}${overlaystring}
run main_cpsw0_qsgmii_phyinit; run boot_rprocs;
#endif
if test ${boot_fit} -eq 1;
- then run get_fit_${boot}; run get_overlaystring; run run_fit;
+ then run get_fit_${boot}; run get_fit_overlaystring; run run_fit;
else;
run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern;
fi;
repacking an entry might cause it to disobey the original constraints provided
when it was created.
- Repacking an image involves
-
Signing FIT container with private key in an image
--------------------------------------------------