123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839 |
- From 702ea30b462ba06f4fbee3393f0e6c19531f1e5f Mon Sep 17 00:00:00 2001
- From: Robert Nelson <robertcnelson@gmail.com>
- Date: Fri, 25 Jun 2021 11:33:25 -0500
- Subject: [PATCH] am57xx_evm-fixes
- Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
- [Patch from https://github.com/beagleboard/u-boot/commit/702ea30b462ba06f4fbee3393f0e6c19531f1e5f]
- Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- ---
- arch/arm/mach-omap2/omap5/hw_data.c | 1 +
- board/ti/am57xx/board.c | 167 +++++++++++-
- configs/am57xx_evm_defconfig | 15 +-
- include/configs/ti_armv7_common.h | 407 ++++++++++++++++++++++++++++
- include/configs/ti_omap5_common.h | 5 +
- include/environment/ti/boot.h | 32 ++-
- include/environment/ti/mmc.h | 49 +++-
- 7 files changed, 651 insertions(+), 25 deletions(-)
- diff --git a/arch/arm/mach-omap2/omap5/hw_data.c b/arch/arm/mach-omap2/omap5/hw_data.c
- index fa4e27063c..d5192b1671 100644
- --- a/arch/arm/mach-omap2/omap5/hw_data.c
- +++ b/arch/arm/mach-omap2/omap5/hw_data.c
- @@ -421,6 +421,7 @@ void enable_basic_clocks(void)
- (*prcm)->cm_l4per_uart1_clkctrl,
- (*prcm)->cm_l4per_uart3_clkctrl,
- (*prcm)->cm_l4per_i2c1_clkctrl,
- + (*prcm)->cm_l4per_i2c4_clkctrl,
- #ifdef CONFIG_DRIVER_TI_CPSW
- (*prcm)->cm_gmac_gmac_clkctrl,
- #endif
- diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
- index 73063faee6..ad05c41f22 100644
- --- a/board/ti/am57xx/board.c
- +++ b/board/ti/am57xx/board.c
- @@ -41,6 +41,7 @@
- #include <mmc.h>
- #include <dm/uclass.h>
- #include <hang.h>
- +#include <i2c.h>
-
- #include "../common/board_detect.h"
- #include "mux_data.h"
- @@ -528,8 +529,10 @@ void do_board_detect(void)
-
- rc = ti_i2c_eeprom_am_get(CONFIG_EEPROM_BUS_ADDRESS,
- CONFIG_EEPROM_CHIP_ADDRESS);
- - if (rc)
- + if (rc) {
- printf("ti_i2c_eeprom_init failed %d\n", rc);
- + ti_i2c_eeprom_am_set("BBONE-AI", "A");
- + };
-
- #ifdef CONFIG_SUPPORT_EMMC_BOOT
- rc = board_bootmode_has_emmc();
- @@ -579,6 +582,164 @@ void do_board_detect(void)
- "Board: %s REV %s\n", bname, board_ti_get_rev());
- }
-
- +struct am335x_cape_eeprom_id {
- + unsigned int header;
- + char eeprom_rev[2];
- + char board_name[32];
- + char version[4];
- + char manufacture[16];
- + char part_number[16];
- + char number_of_pins[2];
- + char serial_number[12];
- + char pin_usage[140];
- + char vdd_3v3exp[ 2];
- + char vdd_5v[ 2];
- + char sys_5v[2];
- + char dc_supplied[2];
- +};
- +
- +#define CAPE_EEPROM_BUS_NUM 3
- +#define CAPE_EEPROM_ADDR0 0x54
- +#define CAPE_EEPROM_ADDR1 0x55
- +#define CAPE_EEPROM_ADDR2 0x56
- +#define CAPE_EEPROM_ADDR3 0x57
- +
- +#define CAPE_EEPROM_ADDR_LEN 0x10
- +
- +static int probe_cape_eeprom(struct am335x_cape_eeprom_id *cape_header)
- +{
- + int ret;
- + struct udevice *dev;
- + unsigned char addr;
- + /* /lib/firmware/BB-CAPE-DISP-CT4-00A0.dtbo */
- + /* 14 + 16 + 1 + 4 + 5 = 40 */
- + char hash_cape_overlay[40];
- + char cape_overlay[26];
- + char process_cape_part_number[16];
- + char process_cape_version[4];
- + char end_part_number;
- + char cape_overlay_pass_to_kernel[18];
- +
- + strlcpy(cape_overlay_pass_to_kernel, "", 1);
- +
- + for ( addr = CAPE_EEPROM_ADDR0; addr <= CAPE_EEPROM_ADDR3; addr++ ) {
- + ret = i2c_get_chip_for_busnum(CAPE_EEPROM_BUS_NUM, addr, 1, &dev);
- + if (ret) {
- + printf("BeagleBone Cape EEPROM: no EEPROM at address: 0x%x\n", addr);
- + } else {
- + printf("BeagleBone Cape EEPROM: found EEPROM at address: 0x%x\n", addr);
- +
- + ret = i2c_set_chip_offset_len(dev, 2);
- + if (ret) {
- + printf("BeagleBone Cape EEPROM: i2c_set_chip_offset_len failure\n");
- + }
- +
- + ret = dm_i2c_read(dev, 0, (uchar *)cape_header, sizeof(struct am335x_cape_eeprom_id));
- + if (ret) {
- + printf("BeagleBone Cape EEPROM: Cannot read eeprom params\n");
- + }
- +
- + if (cape_header->header == 0xEE3355AA) {
- + strlcpy(hash_cape_overlay, "/lib/firmware/", 14 + 1);
- + strlcpy(cape_overlay, "", 2);
- + strlcpy(cape_overlay_pass_to_kernel, "", 2);
- + strlcpy(process_cape_part_number, "...............", 16 + 1);
- + strlcpy(process_cape_version, "...", 4 + 1);
- +
- + strlcpy(process_cape_part_number, cape_header->part_number, 16 + 1);
- + printf("BeagleBone Cape EEPROM: debug part_number field:[%s]\n", process_cape_part_number);
- +
- + //FIXME: some capes end with '.'
- + if ( process_cape_part_number[15] == 0x2E ) {
- + puts("debug: fixup, extra . in eeprom field\n");
- + process_cape_part_number[15] = 0x00;
- + if ( process_cape_part_number[14] == 0x2E ) {
- + process_cape_part_number[14] = 0x00;
- + }
- + }
- +
- + //Find ending 0x00 or 0xFF
- + puts("BeagleBone Cape EEPROM: debug part_number field HEX:[");
- + end_part_number=16;
- + for ( int i=0; i <= 16; i++ ) {
- + if (( process_cape_part_number[i] == 0x00 ) || ( process_cape_part_number[i] == 0xFF )) {
- + end_part_number=i;
- + i=17;
- + } else {
- + printf("%x", process_cape_part_number[i]);
- + }
- + }
- + puts("]\n");
- +
- + strncat(cape_overlay_pass_to_kernel, process_cape_part_number, end_part_number);
- + strncat(cape_overlay_pass_to_kernel, ",", 1);
- + //printf("debug: %s\n", cape_overlay_pass_to_kernel);
- +
- + strncat(hash_cape_overlay, process_cape_part_number, end_part_number);
- + strncat(cape_overlay, process_cape_part_number, end_part_number);
- + //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
- +
- + strncat(hash_cape_overlay, "-", 1);
- + strncat(cape_overlay, "-", 1);
- + //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
- +
- + strlcpy(process_cape_version, cape_header->version, 4 + 1);
- + //printf("debug: version field:[%s]\n", process_cape_version);
- +
- + //Find invalid 0xFF -> 0x30 BBAI FAN Cape...
- + puts("BeagleBone Cape EEPROM: debug version field HEX:[");
- + for ( int i=0; i <= 3; i++ ) {
- + printf("%x", process_cape_version[i]);
- + if ( process_cape_version[i] == 0xFF ) {
- + process_cape_version[i] = 0x30;
- + }
- + }
- + puts("]\n");
- +
- + strncat(hash_cape_overlay, process_cape_version, 4);
- + strncat(cape_overlay, process_cape_version, 4);
- + //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
- +
- + strncat(hash_cape_overlay, ".dtbo", 5);
- + strncat(cape_overlay, ".dtbo", 5);
- + //printf("debug: %s %s\n", hash_cape_overlay, cape_overlay);
- +
- + printf("BeagleBone Cape EEPROM: 0x%x %s\n", addr, cape_overlay);
- +
- + switch(addr) {
- + case CAPE_EEPROM_ADDR0:
- + env_set("uboot_overlay_addr0", cape_overlay);
- + env_set("uboot_detected_capes_addr0", cape_overlay_pass_to_kernel);
- + break;
- + case CAPE_EEPROM_ADDR1:
- + env_set("uboot_overlay_addr1", cape_overlay);
- + env_set("uboot_detected_capes_addr1", cape_overlay_pass_to_kernel);
- + break;
- + case CAPE_EEPROM_ADDR2:
- + env_set("uboot_overlay_addr2", cape_overlay);
- + env_set("uboot_detected_capes_addr2", cape_overlay_pass_to_kernel);
- + break;
- + case CAPE_EEPROM_ADDR3:
- + env_set("uboot_overlay_addr3", cape_overlay);
- + env_set("uboot_detected_capes_addr3", cape_overlay_pass_to_kernel);
- + break;
- + }
- + env_set("uboot_detected_capes", "1");
- + } else {
- + printf("BeagleBone Cape EEPROM: EEPROM contents not valid (or blank) on address: 0x%x\n", addr);
- + }
- + }
- + }
- + return 0;
- +}
- +
- +void do_cape_detect(void)
- +{
- + struct am335x_cape_eeprom_id cape_header;
- +
- + probe_cape_eeprom(&cape_header);
- +}
- +
- static void setup_board_eeprom_env(void)
- {
- char *name = "beagle_x15";
- @@ -782,8 +943,10 @@ int board_late_init(void)
- /* Just probe the potentially supported cdce913 device */
- uclass_get_device(UCLASS_CLK, 0, &dev);
-
- - if (board_is_bbai())
- + if (board_is_bbai()) {
- env_set("console", "ttyS0,115200n8");
- + do_cape_detect();
- + }
-
- #if !defined(CONFIG_SPL_BUILD)
- board_ti_set_ethaddr(2);
- diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
- index 4da4aaa1c7..ed5b8aec16 100644
- --- a/configs/am57xx_evm_defconfig
- +++ b/configs/am57xx_evm_defconfig
- @@ -10,16 +10,20 @@ CONFIG_SPL_TEXT_BASE=0x40300000
- CONFIG_OMAP54XX=y
- CONFIG_TARGET_AM57XX_EVM=y
- CONFIG_SPL=y
- -CONFIG_ENV_OFFSET_REDUND=0x280000
- CONFIG_SPL_SPI_FLASH_SUPPORT=y
- CONFIG_SPL_SPI_SUPPORT=y
- CONFIG_ARMV7_LPAE=y
- -CONFIG_DEFAULT_DEVICE_TREE="am572x-idk"
- +CONFIG_DEFAULT_DEVICE_TREE="am57xx-beagle-x15-revc"
- CONFIG_AHCI=y
- CONFIG_DISTRO_DEFAULTS=y
- CONFIG_SPL_LOAD_FIT=y
- # CONFIG_USE_SPL_FIT_GENERATOR is not set
- CONFIG_OF_BOARD_SETUP=y
- +CONFIG_BOOTDELAY=1
- +CONFIG_AUTOBOOT_KEYED=y
- +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
- +CONFIG_AUTOBOOT_DELAY_STR="d"
- +CONFIG_AUTOBOOT_STOP_STR=" "
- CONFIG_USE_BOOTARGS=y
- CONFIG_BOOTARGS="androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=beagle_x15board"
- # CONFIG_USE_BOOTCOMMAND is not set
- @@ -48,13 +52,12 @@ CONFIG_BOOTP_DNS2=y
- CONFIG_CMD_AVB=y
- CONFIG_OF_CONTROL=y
- CONFIG_SPL_OF_CONTROL=y
- -CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai am572x-idk am571x-idk am574x-idk"
- +CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai"
- CONFIG_ENV_OVERWRITE=y
- -CONFIG_ENV_IS_IN_MMC=y
- -CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
- +# CONFIG_ENV_IS_IN_FAT is not set
- CONFIG_SYS_RELOC_GD_ENV_ADDR=y
- -CONFIG_SYS_MMC_ENV_DEV=1
- CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
- +# CONFIG_SPL_ENV_IS_NOWHERE is not set
- CONFIG_VERSION_VARIABLE=y
- CONFIG_BOOTP_SEND_HOSTNAME=y
- CONFIG_DM=y
- diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
- index f13e9e5264..eabd03e27d 100644
- --- a/include/configs/ti_armv7_common.h
- +++ b/include/configs/ti_armv7_common.h
- @@ -92,6 +92,413 @@
- #define CONFIG_SYS_I2C
- #endif
-
- +#define EEPROM_PROGRAMMING \
- + "eeprom_dump=i2c dev 0; " \
- + "i2c md 0x50 0x00.2 20; " \
- + "\0" \
- + "eeprom_blank=i2c dev 0; " \
- + "i2c mw 0x50 0x00.2 ff; " \
- + "i2c mw 0x50 0x01.2 ff; " \
- + "i2c mw 0x50 0x02.2 ff; " \
- + "i2c mw 0x50 0x03.2 ff; " \
- + "i2c mw 0x50 0x04.2 ff; " \
- + "i2c mw 0x50 0x05.2 ff; " \
- + "i2c mw 0x50 0x06.2 ff; " \
- + "i2c mw 0x50 0x07.2 ff; " \
- + "i2c mw 0x50 0x08.2 ff; " \
- + "i2c mw 0x50 0x09.2 ff; " \
- + "i2c mw 0x50 0x0a.2 ff; " \
- + "i2c mw 0x50 0x0b.2 ff; " \
- + "i2c mw 0x50 0x0c.2 ff; " \
- + "i2c mw 0x50 0x0d.2 ff; " \
- + "i2c mw 0x50 0x0e.2 ff; " \
- + "i2c mw 0x50 0x0f.2 ff; " \
- + "i2c mw 0x50 0x10.2 ff; " \
- + "i2c mw 0x50 0x11.2 ff; " \
- + "i2c mw 0x50 0x12.2 ff; " \
- + "i2c mw 0x50 0x13.2 ff; " \
- + "i2c mw 0x50 0x14.2 ff; " \
- + "i2c mw 0x50 0x15.2 ff; " \
- + "i2c mw 0x50 0x16.2 ff; " \
- + "i2c mw 0x50 0x17.2 ff; " \
- + "i2c mw 0x50 0x18.2 ff; " \
- + "i2c mw 0x50 0x19.2 ff; " \
- + "i2c mw 0x50 0x1a.2 ff; " \
- + "i2c mw 0x50 0x1b.2 ff; " \
- + "i2c mw 0x50 0x1c.2 ff; " \
- + "i2c mw 0x50 0x1d.2 ff; " \
- + "i2c mw 0x50 0x1e.2 ff; " \
- + "i2c mw 0x50 0x1f.2 ff; " \
- + "i2c md 0x50 0x00.2 20; " \
- + "\0" \
- + "eeprom_x15_b1=i2c dev 0; " \
- + "i2c mw 0x50 0x00.2 aa; " \
- + "i2c mw 0x50 0x01.2 55; " \
- + "i2c mw 0x50 0x02.2 33; " \
- + "i2c mw 0x50 0x03.2 ee; " \
- + "i2c mw 0x50 0x04.2 42; " \
- + "i2c mw 0x50 0x05.2 42; " \
- + "i2c mw 0x50 0x06.2 52; " \
- + "i2c mw 0x50 0x07.2 44; " \
- + "i2c mw 0x50 0x08.2 58; " \
- + "i2c mw 0x50 0x09.2 31; " \
- + "i2c mw 0x50 0x0a.2 35; " \
- + "i2c mw 0x50 0x0b.2 5f; " \
- + "i2c mw 0x50 0x0c.2 42; " \
- + "i2c mw 0x50 0x0d.2 2e; " \
- + "i2c mw 0x50 0x0e.2 31; " \
- + "i2c mw 0x50 0x0f.2 30; " \
- + "i2c mw 0x50 0x10.2 57; " \
- + "i2c mw 0x50 0x11.2 57; " \
- + "i2c mw 0x50 0x12.2 59; " \
- + "i2c mw 0x50 0x13.2 59; " \
- + "i2c mw 0x50 0x14.2 34; " \
- + "i2c mw 0x50 0x15.2 50; " \
- + "i2c mw 0x50 0x16.2 35; " \
- + "i2c mw 0x50 0x17.2 35; " \
- + "i2c mw 0x50 0x18.2 30; " \
- + "i2c mw 0x50 0x19.2 30; " \
- + "i2c mw 0x50 0x1a.2 30; " \
- + "i2c mw 0x50 0x1b.2 30; " \
- + "i2c mw 0x50 0x1c.2 ff; " \
- + "i2c mw 0x50 0x1d.2 ff; " \
- + "i2c mw 0x50 0x1e.2 ff; " \
- + "i2c mw 0x50 0x1f.2 ff; " \
- + "i2c md 0x50 0x00.2 20; " \
- + "\0" \
- + "eeprom_x15_c=i2c dev 0; " \
- + "i2c mw 0x50 0x00.2 aa; " \
- + "i2c mw 0x50 0x01.2 55; " \
- + "i2c mw 0x50 0x02.2 33; " \
- + "i2c mw 0x50 0x03.2 ee; " \
- + "i2c mw 0x50 0x04.2 42; " \
- + "i2c mw 0x50 0x05.2 42; " \
- + "i2c mw 0x50 0x06.2 52; " \
- + "i2c mw 0x50 0x07.2 44; " \
- + "i2c mw 0x50 0x08.2 58; " \
- + "i2c mw 0x50 0x09.2 31; " \
- + "i2c mw 0x50 0x0a.2 35; " \
- + "i2c mw 0x50 0x0b.2 5f; " \
- + "i2c mw 0x50 0x0c.2 43; " \
- + "i2c mw 0x50 0x0d.2 2e; " \
- + "i2c mw 0x50 0x0e.2 30; " \
- + "i2c mw 0x50 0x0f.2 30; " \
- + "i2c mw 0x50 0x10.2 79; " \
- + "i2c mw 0x50 0x11.2 79; " \
- + "i2c mw 0x50 0x12.2 77; " \
- + "i2c mw 0x50 0x13.2 77; " \
- + "i2c mw 0x50 0x14.2 50; " \
- + "i2c mw 0x50 0x15.2 58; " \
- + "i2c mw 0x50 0x16.2 31; " \
- + "i2c mw 0x50 0x17.2 35; " \
- + "i2c mw 0x50 0x18.2 6e; " \
- + "i2c mw 0x50 0x19.2 6e; " \
- + "i2c mw 0x50 0x1a.2 6e; " \
- + "i2c mw 0x50 0x1b.2 6e; " \
- + "i2c mw 0x50 0x1c.2 ff; " \
- + "i2c mw 0x50 0x1d.2 ff; " \
- + "i2c mw 0x50 0x1e.2 ff; " \
- + "i2c mw 0x50 0x1f.2 ff; " \
- + "i2c md 0x50 0x00.2 20; " \
- + "eeprom_bbai_a2=i2c dev 0; " \
- + "i2c mw 0x50 0x00.2 aa; " \
- + "i2c mw 0x50 0x01.2 55; " \
- + "i2c mw 0x50 0x02.2 33; " \
- + "i2c mw 0x50 0x03.2 ee; " \
- + "i2c mw 0x50 0x04.2 42; " \
- + "i2c mw 0x50 0x05.2 42; " \
- + "i2c mw 0x50 0x06.2 4F; " \
- + "i2c mw 0x50 0x07.2 4E; " \
- + "i2c mw 0x50 0x08.2 45; " \
- + "i2c mw 0x50 0x09.2 2D; " \
- + "i2c mw 0x50 0x0a.2 41; " \
- + "i2c mw 0x50 0x0b.2 49; " \
- + "i2c mw 0x50 0x0c.2 30; " \
- + "i2c mw 0x50 0x0d.2 30; " \
- + "i2c mw 0x50 0x0e.2 41; " \
- + "i2c mw 0x50 0x0f.2 32; " \
- + "i2c mw 0x50 0x10.2 57; " \
- + "i2c mw 0x50 0x11.2 57; " \
- + "i2c mw 0x50 0x12.2 59; " \
- + "i2c mw 0x50 0x13.2 59; " \
- + "i2c mw 0x50 0x14.2 53; " \
- + "i2c mw 0x50 0x15.2 42; " \
- + "i2c mw 0x50 0x16.2 41; " \
- + "i2c mw 0x50 0x17.2 49; " \
- + "i2c mw 0x50 0x18.2 30; " \
- + "i2c mw 0x50 0x19.2 30; " \
- + "i2c mw 0x50 0x1a.2 30; " \
- + "i2c mw 0x50 0x1b.2 30; " \
- + "i2c mw 0x50 0x1c.2 30; " \
- + "i2c mw 0x50 0x1d.2 30; " \
- + "i2c mw 0x50 0x1e.2 ff; " \
- + "i2c mw 0x50 0x1f.2 ff; " \
- + "i2c md 0x50 0x00.2 20; " \
- + "\0" \
- +
- +#define EEWIKI_MMC_BOOT \
- + "mmc_boot=${devtype} dev ${mmcdev}; ${devtype} part; " \
- + "if ${devtype} rescan; then " \
- + "echo Scanning ${devtype} device ${mmcdev};" \
- + "setenv bootpart ${mmcdev}:1; " \
- + "echo Checking for: /uEnv.txt ...;" \
- + "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /uEnv.txt;" \
- + "echo Checking if uenvcmd is set ...;" \
- + "if test -n ${uenvcmd}; then " \
- + "echo Running uenvcmd ...;" \
- + "run uenvcmd;" \
- + "fi;" \
- + "fi; " \
- + "echo Checking for: /boot/uEnv.txt ...;" \
- + "for i in 1 2 3 4 5 6 7 ; do " \
- + "setenv mmcpart ${i};" \
- + "setenv bootpart ${mmcdev}:${mmcpart};" \
- + "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /boot/uEnv.txt;" \
- + "if test -n ${dtb}; then " \
- + "setenv fdtfile ${dtb};" \
- + "echo debug: [dtb=${fdtfile}] ...;" \
- + "fi;" \
- + "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
- + "if test -n ${uname_r}; then " \
- + "echo debug: [uname_r=${uname_r}] ...;" \
- + "setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart};" \
- + "run uname_boot;" \
- + "fi;" \
- + "fi;" \
- + "done;" \
- + "fi;\0" \
- +
- +#define EEWIKI_SCSI_BOOT \
- + "scsi_boot=${devtype} reset ; " \
- + "if ${devtype} dev ${mmcdev}; then " \
- + "echo Scanning ${devtype} device ${mmcdev};" \
- + "setenv bootpart ${mmcdev}:1; " \
- + "echo Checking for: /uEnv.txt ...;" \
- + "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /uEnv.txt;" \
- + "echo Checking if uenvcmd is set ...;" \
- + "if test -n ${uenvcmd}; then " \
- + "echo Running uenvcmd ...;" \
- + "run uenvcmd;" \
- + "fi;" \
- + "fi; " \
- + "echo Checking for: /boot/uEnv.txt ...;" \
- + "for i in 1 2 3 4 ; do " \
- + "setenv mmcpart ${i};" \
- + "setenv bootpart ${mmcdev}:${mmcpart};" \
- + "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /boot/uEnv.txt;" \
- + "if test -n ${dtb}; then " \
- + "setenv fdtfile ${dtb};" \
- + "echo debug: [dtb=${fdtfile}] ...;" \
- + "fi;" \
- + "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
- + "if test -n ${uname_r}; then " \
- + "echo debug: [uname_r=${uname_r}] ...;" \
- + "setenv oldroot /dev/sda${mmcpart};" \
- + "run uname_boot;" \
- + "fi;" \
- + "fi;" \
- + "done;" \
- + "fi;\0" \
- +
- +#define EEWIKI_USB_BOOT \
- + "usb_boot=${devtype} reset ; " \
- + "if ${devtype} dev ${mmcdev}; then " \
- + "echo Scanning ${devtype} device ${mmcdev};" \
- + "setenv bootpart ${mmcdev}:1; " \
- + "echo Checking for: /uEnv.txt ...;" \
- + "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /uEnv.txt;" \
- + "echo Checking if uenvcmd is set in /uEnv.txt ...;" \
- + "if test -n ${uenvcmd}; then " \
- + "echo Running uenvcmd ...;" \
- + "run uenvcmd;" \
- + "fi;" \
- + "fi; " \
- + "echo Checking for: /boot/uEnv.txt ...;" \
- + "for i in 1 2 3 4 ; do " \
- + "setenv mmcpart ${i};" \
- + "setenv bootpart ${mmcdev}:${mmcpart};" \
- + "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from /boot/uEnv.txt;" \
- + "if test -n ${dtb}; then " \
- + "setenv fdtfile ${dtb};" \
- + "echo debug: [dtb=${fdtfile}] ...;" \
- + "fi;" \
- + "echo Checking if uname_r is set in /boot/uEnv.txt ...;" \
- + "if test -n ${uname_r}; then " \
- + "echo debug: [uname_r=${uname_r}] ...;" \
- + "setenv oldroot /dev/sda${mmcpart};" \
- + "run uname_boot;" \
- + "fi;" \
- + "fi;" \
- + "done;" \
- + "fi;\0" \
- +
- +#define EEWIKI_UNAME_BOOT \
- + "uname_boot="\
- + "setenv bootdir /boot; " \
- + "setenv bootfile vmlinuz-${uname_r}; " \
- + "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
- + "echo loading ${bootdir}/${bootfile} ...; "\
- + "run loadimage;" \
- + "setenv fdtdir /boot/dtbs/${uname_r}; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /boot/dtb-${uname_r}; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /boot/dtbs; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /boot/dtb; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "setenv fdtdir /boot; " \
- + "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
- + "run loadfdt;" \
- + "else " \
- + "echo; echo unable to find ${fdtfile} ...; echo booting legacy ...;"\
- + "run args_mmc;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr}] ... ;" \
- + "bootz ${loadaddr}; " \
- + "fi;" \
- + "fi;" \
- + "fi;" \
- + "fi;" \
- + "fi;" \
- + "fi;" \
- + "fi; " \
- + "if test -n ${enable_uboot_overlays}; then " \
- + "setenv fdt_buffer 0x60000;" \
- + "if test -n ${uboot_fdt_buffer}; then " \
- + "setenv fdt_buffer ${uboot_fdt_buffer};" \
- + "fi;" \
- + "echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ... ;" \
- + "if test -n ${uboot_overlay_addr0}; then " \
- + "if test -n ${disable_uboot_overlay_addr0}; then " \
- + "echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...;" \
- + "else " \
- + "setenv uboot_overlay ${uboot_overlay_addr0}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr1}; then " \
- + "if test -n ${disable_uboot_overlay_addr1}; then " \
- + "echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...;" \
- + "else " \
- + "setenv uboot_overlay ${uboot_overlay_addr1}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr2}; then " \
- + "if test -n ${disable_uboot_overlay_addr2}; then " \
- + "echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...;" \
- + "else " \
- + "setenv uboot_overlay ${uboot_overlay_addr2}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr3}; then " \
- + "if test -n ${disable_uboot_overlay_addr3}; then " \
- + "echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...;" \
- + "else " \
- + "setenv uboot_overlay ${uboot_overlay_addr3}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr4}; then " \
- + "setenv uboot_overlay ${uboot_overlay_addr4}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr5}; then " \
- + "setenv uboot_overlay ${uboot_overlay_addr5}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr6}; then " \
- + "setenv uboot_overlay ${uboot_overlay_addr6}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_addr7}; then " \
- + "setenv uboot_overlay ${uboot_overlay_addr7}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "if test -n ${uboot_overlay_pru}; then " \
- + "setenv uboot_overlay ${uboot_overlay_pru}; " \
- + "run virtualloadoverlay;" \
- + "fi;" \
- + "else " \
- + "echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...;" \
- + "fi;" \
- + "setenv rdfile initrd.img-${uname_r}; " \
- + "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
- + "echo loading ${bootdir}/${rdfile} ...; "\
- + "run loadrd;" \
- + "if test -n ${netinstall_enable}; then " \
- + "run args_netinstall; run message;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
- + "fi;" \
- + "if test -n ${uenv_root}; then " \
- + "run args_uenv_root;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
- + "fi;" \
- + "if test -n ${uuid}; then " \
- + "run args_mmc_uuid;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
- + "else " \
- + "run args_mmc_old;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
- + "fi;" \
- + "else " \
- + "if test -n ${uenv_root}; then " \
- + "run args_uenv_root;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} - ${fdtaddr}; " \
- + "fi;" \
- + "run args_mmc_old;" \
- + "echo debug: [${bootargs}] ... ;" \
- + "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
- + "bootz ${loadaddr} - ${fdtaddr}; " \
- + "fi;" \
- + "fi;\0" \
- +
- /*
- * The following are general good-enough settings for U-Boot. We set a
- * large malloc pool as we generally have a lot of DDR, and we opt for
- diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
- index de0a6af2fd..0cd2ccea03 100644
- --- a/include/configs/ti_omap5_common.h
- +++ b/include/configs/ti_omap5_common.h
- @@ -64,6 +64,11 @@
- DEFAULT_FIT_TI_ARGS \
- DEFAULT_COMMON_BOOT_TI_ARGS \
- DEFAULT_FDT_TI_ARGS \
- + EEWIKI_USB_BOOT \
- + EEWIKI_SCSI_BOOT \
- + EEWIKI_MMC_BOOT \
- + EEWIKI_UNAME_BOOT \
- + EEPROM_PROGRAMMING \
- DFUARGS \
- NETARGS \
- NANDARGS \
- diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
- index a9d8f28d46..1480b6e3df 100644
- --- a/include/environment/ti/boot.h
- +++ b/include/environment/ti/boot.h
- @@ -132,6 +132,7 @@
- "bootpart=0:2\0" \
- "bootdir=/boot\0" \
- "bootfile=zImage\0" \
- + "board_eeprom_header=undefined\0" \
- "usbtty=cdc_acm\0" \
- "vram=16M\0" \
- AVB_VERIFY_CMD \
- @@ -183,7 +184,14 @@
- "else " \
- "echo $apart partition not found; " \
- "exit; " \
- - "fi;\0"
- + "fi;\0 " \
- + "read_board_eeprom=" \
- + "if test $board_eeprom_header = beagle_x15_revb1_blank; then " \
- + "run eeprom_dump; run eeprom_x15_b1; reset; fi; " \
- + "if test $board_eeprom_header = beagle_x15_revc_blank; then " \
- + "run eeprom_dump; run eeprom_x15_c; reset; fi; " \
- + "if test $board_eeprom_header = bbai_a2_blank; then " \
- + "run eeprom_dump; run eeprom_bbai_a2; reset; fi; \0 "
-
- #ifdef CONFIG_OMAP54XX
-
- @@ -223,19 +231,17 @@
- "echo WARNING: Could not determine device tree to use; fi; \0"
-
- #define CONFIG_BOOTCOMMAND \
- - "if test ${dofastboot} -eq 1; then " \
- - "echo Boot fastboot requested, resetting dofastboot ...;" \
- - "setenv dofastboot 0; saveenv;" \
- - FASTBOOT_CMD \
- - "fi;" \
- - "if test ${boot_fit} -eq 1; then " \
- - "run update_to_fit;" \
- - "fi;" \
- + "run read_board_eeprom; " \
- "run findfdt; " \
- - "run envboot; " \
- - "run mmcboot;" \
- - "run emmc_linux_boot; " \
- - "run emmc_android_boot; " \
- + "setenv mmcdev 0; " \
- + "setenv devtype usb; " \
- + "echo usb_boot is currently disabled;" \
- + "setenv devtype scsi; " \
- + "echo scsi_boot is currently disabled;" \
- + "setenv devtype mmc; " \
- + "run mmc_boot;" \
- + "setenv mmcdev 1; " \
- + "run mmc_boot;" \
- ""
-
- #endif /* CONFIG_OMAP54XX */
- diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h
- index b86c8dc7a4..0ec09f279a 100644
- --- a/include/environment/ti/mmc.h
- +++ b/include/environment/ti/mmc.h
- @@ -11,11 +11,31 @@
- #define DEFAULT_MMC_TI_ARGS \
- "mmcdev=0\0" \
- "mmcrootfstype=ext4 rootwait\0" \
- - "finduuid=part uuid mmc ${bootpart} uuid\0" \
- + "finduuid=part uuid ${devtype} ${bootpart} uuid\0" \
- "args_mmc=run finduuid;setenv bootargs console=${console} " \
- "${optargs} " \
- - "root=PARTUUID=${uuid} rw " \
- - "rootfstype=${mmcrootfstype}\0" \
- + "root=PARTUUID=${uuid} ro " \
- + "rootfstype=${mmcrootfstype} " \
- + "${cmdline}\0" \
- + "args_mmc_old=setenv bootargs console=${console} " \
- + "${optargs} " \
- + "root=${oldroot} ro " \
- + "rootfstype=${mmcrootfstype} " \
- + "${cmdline}\0" \
- + "args_mmc_uuid=setenv bootargs console=${console} " \
- + "${optargs} " \
- + "root=UUID=${uuid} ro " \
- + "rootfstype=${mmcrootfstype} " \
- + "${cmdline}\0" \
- + "args_uenv_root=setenv bootargs console=${console} " \
- + "${optargs} " \
- + "root=${uenv_root} ro " \
- + "rootfstype=${mmcrootfstype} " \
- + "${musb} ${cmdline}\0" \
- + "args_netinstall=setenv bootargs ${netinstall_bootargs} " \
- + "${optargs} " \
- + "root=/dev/ram rw " \
- + "${cmdline}\0" \
- "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
- "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
- "source ${loadaddr}\0" \
- @@ -24,7 +44,28 @@
- "env import -t ${loadaddr} ${filesize}\0" \
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \
- "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
- - "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
- + "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \
- + "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
- + "loadoverlay=echo uboot_overlays: loading ${actual_uboot_overlay} ...; " \
- + "load ${devtype} ${bootpart} ${rdaddr} ${actual_uboot_overlay}; " \
- + "fdt addr ${fdtaddr}; fdt resize ${fdt_buffer}; " \
- + "fdt apply ${rdaddr}; fdt resize ${fdt_buffer};\0" \
- + "virtualloadoverlay=if test -e ${devtype} ${bootpart} ${fdtdir}/overlays/${uboot_overlay}; then " \
- + "setenv actual_uboot_overlay ${fdtdir}/overlays/${uboot_overlay}; " \
- + "run loadoverlay;" \
- + "else " \
- + "if test -e ${devtype} ${bootpart} /lib/firmware/${uboot_overlay}; then " \
- + "setenv actual_uboot_overlay /lib/firmware/${uboot_overlay}; " \
- + "run loadoverlay;" \
- + "else " \
- + "if test -e ${devtype} ${bootpart} ${uboot_overlay}; then " \
- + "setenv actual_uboot_overlay ${uboot_overlay}; " \
- + "run loadoverlay;" \
- + "else " \
- + "echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...;" \
- + "fi;" \
- + "fi;" \
- + "fi;\0" \
- "envboot=mmc dev ${mmcdev}; " \
- "if mmc rescan; then " \
- "echo SD/MMC found on device ${mmcdev};" \
- --
- 2.20.1
|