From 2dd6c0e7e2ee54784169d68933ab5b2e44881585 Mon Sep 17 00:00:00 2001 From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de> Date: Mon, 2 May 2022 23:47:59 +0200 Subject: [PATCH] use distro_bootcmd - this partially reverts b3a8287b which prevented BOOTENV as set by config_distro_boot.h being appended to CONFIG_EXTRA_ENV_SETTINGS - distro_bootcmd can do everything the nested loop can do: * boot from usb * arbitrary boot order * set arbitrary boot partition * search arbitrary list of prefixes * load a boot.scr - in addition to that, distro_bootcmd: * is the standard boot mechanism for distros (see doc/README.distro) * thus we can replace hard-to-read custom code * works with extlinux.conf (needed for debian-installer) --- .../boundary/nitrogen8m_som/nitrogen8m_som.c | 29 ++++--------------- include/configs/nitrogen8m_som.h | 7 +++-- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/board/boundary/nitrogen8m_som/nitrogen8m_som.c b/board/boundary/nitrogen8m_som/nitrogen8m_som.c index f70bbd92e5d..acb702a5fb3 100644 --- a/board/boundary/nitrogen8m_som/nitrogen8m_som.c +++ b/board/boundary/nitrogen8m_som/nitrogen8m_som.c @@ -330,37 +330,20 @@ static void set_env_vars(void) env_set("soc", "imx8mq"); env_set("imx_cpu", get_imx_type((get_cpu_rev() & 0xFF000) >> 12)); env_set("uboot_defconfig", CONFIG_DEFCONFIG); + env_set("stdin", "serial,usbkbd"); env_set("stdout", "serial,vga"); env_set("stderr", "serial,vga"); // MNT Reform 2 - env_set("fdt_addr", "0x50000000"); - env_set("ramdiskaddr", "0x51000000"); + env_set("fdt_addr_r", "0x50000000"); + env_set("ramdisk_addr_r", "0x44000000"); #ifdef MNTREFORM_BOOT_RISCOS env_set("bootcmd", "usb start; usb reset; ext4load mmc 1 ${loadaddr} /RISCOSIMX8M; go ${loadaddr} 32"); #else - // boot normal system using boot.scr + // boot normal system using distro_bootcmd env_set("kernel_addr_r", "0x40480000"); - env_set("fdt_addr_r", "0x50000000"); - env_set("ramdisk_addr_r", "0x51000000"); - env_set("bootpart", "1"); - env_set("script", "boot.scr"); - env_set("bootcmd", - "usb start; " - "setenv devtype; " // unset environment variable so that the loop variable takes precedence - "for devtype in usb mmc; do " // first try usb, then SD card or eMMC - "setenv devnum; " // unset environment variable so that the loop variable takes precedence - "for devnum in 1 0; do " // first try SD card (mmc1) then eMMC (mmc0) - "${devtype} dev ${devnum}; " - "if test \"${devtype}\" = \"usb\" || ${devtype} rescan; then " - "setenv prefix; " // unset environment variable so that the loop variable takes precedence - "for prefix in / /boot/; do " // search for boot.scr in / and in /boot/ - "load ${devtype} ${devnum}:${bootpart} ${loadaddr} ${prefix}${script} && source; " - "done; " - "fi; " - "done; " - "done" - ); + env_set("pxefile_addr_r", "0x60000000"); + env_set("scriptaddr", "0x61000000"); #endif env_set("bootdelay", "1"); diff --git a/include/configs/nitrogen8m_som.h b/include/configs/nitrogen8m_som.h index 3ada3900db5..ae84e6abf59 100644 --- a/include/configs/nitrogen8m_som.h +++ b/include/configs/nitrogen8m_som.h @@ -175,7 +175,8 @@ #if (CONFIG_SYS_FSL_USDHC_NUM == 1) #define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0) #elif (CONFIG_SYS_FSL_USDHC_NUM == 2) -#define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1) +/* first try SD-Card, then eMMC */ +#define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 1) func(MMC, mmc, 0) #else #define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1) func(MMC, mmc, 2) #endif @@ -208,7 +209,7 @@ #define SYS_AUXCORE_BOOTDATA_DDR 0x80000000 #define SYS_AUXCORE_BOOTDATA_TCM 0x007E0000 -/*#define CONFIG_EXTRA_ENV_SETTINGS \ +#define CONFIG_EXTRA_ENV_SETTINGS \ "console=" BD_CONSOLE "\0" \ "env_dev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ "env_part=" __stringify(CONFIG_SYS_MMC_ENV_PART) "\0" \ @@ -247,7 +248,7 @@ "setenv ipaddr 10.0.0.2; " \ "setenv netmask 255.255.255.0; " \ "setenv serverip 10.0.0.1;\0" \ - BOOTENV*/ + BOOTENV /* * PCI express -- GitLab