summaryrefslogtreecommitdiff
path: root/board/ti
diff options
context:
space:
mode:
Diffstat (limited to 'board/ti')
-rw-r--r--board/ti/am57xx/Kconfig12
-rw-r--r--board/ti/am57xx/am57xx.env162
-rw-r--r--board/ti/am57xx/board.c14
-rw-r--r--board/ti/dra7xx/evm.c11
4 files changed, 199 insertions, 0 deletions
diff --git a/board/ti/am57xx/Kconfig b/board/ti/am57xx/Kconfig
index 0c566820158..b6943938391 100644
--- a/board/ti/am57xx/Kconfig
+++ b/board/ti/am57xx/Kconfig
@@ -9,6 +9,18 @@ config SYS_VENDOR
config SYS_CONFIG_NAME
default "am57xx_evm"
+config ENV_SOURCE_FILE
+ default "am57xx"
+
+source "board/ti/common/Kconfig"
+
+endif
+
+if TARGET_DRA7XX_EVM
+
+config ENV_SOURCE_FILE
+ default "am57xx"
+
source "board/ti/common/Kconfig"
endif
diff --git a/board/ti/am57xx/am57xx.env b/board/ti/am57xx/am57xx.env
new file mode 100644
index 00000000000..a7cbbced099
--- /dev/null
+++ b/board/ti/am57xx/am57xx.env
@@ -0,0 +1,162 @@
+#include <env/ti/ti_common.env>
+#include <env/ti/mmc.env>
+#include <env/ti/dfu.env>
+
+bootpart=0:2
+bootdir=/boot
+get_name_kern=
+ if test $boot_fit -eq 1; then
+ setenv bootfile fitImage;
+ else
+ setenv bootfile zImage;
+ fi
+get_fit_config=setexpr name_fit_config gsub "ti/omap/" "" ${fdtfile}
+console=ttyS2,115200n8
+fdtfile=undefined
+finduuid=part uuid mmc 0:2 uuid
+usbtty=cdc_acm
+vram=16M
+
+#if CONFIG_CMD_AVB
+avb_verify=avb init 1; avb verify $slot_suffix;
+#endif
+
+partitions=uuid_disk=${uuid_gpt_disk};
+ name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};
+ name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}
+ partitions_android=
+ uuid_disk=${uuid_gpt_disk};
+ name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};
+ name=bootloader,size=2048K,uuid=${uuid_gpt_bootloader};
+ name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};
+ name=misc,size=128K,uuid=${uuid_gpt_misc};
+ name=boot_a,size=20M,uuid=${uuid_gpt_boot_a};
+ name=boot_b,size=20M,uuid=${uuid_gpt_boot_b};
+ name=dtbo_a,size=8M,uuid=${uuid_gpt_dtbo_a};
+ name=dtbo_b,size=8M,uuid=${uuid_gpt_dtbo_b};
+ name=vbmeta_a,size=64K,uuid=${uuid_gpt_vbmeta_a};
+ name=vbmeta_b,size=64K,uuid=${uuid_gpt_vbmeta_b};
+ name=recovery,size=64M,uuid=${uuid_gpt_recovery};
+ name=super,size=2560M,uuid=${uuid_gpt_super};
+ name=metadata,size=16M,uuid=${uuid_gpt_metadata};
+ name=userdata,size=-,uuid=${uuid_gpt_userdata}
+optargs=
+dofastboot=0
+emmc_android_boot=
+ setenv mmcdev 1;
+ mmc dev $mmcdev;
+ mmc rescan;
+#if CONFIG_CMD_BCB
+#if CONFIG_ANDROID_AB
+ if part number mmc 1 misc control_part_number; then
+ echo "misc partition number:${control_part_number};"
+ bcb ab_select slot_name mmc ${mmcdev}:${control_part_number};
+ else
+ echo "misc partition not found;"
+ exit;
+ fi;
+ setenv slot_suffix _${slot_name};
+#endif
+#endif
+if bcb load CONFIG_FASTBOOT_FLASH_MMC_DEV misc; then
+ setenv ardaddr -;
+ if bcb test command = bootonce-bootloader; then
+ echo "Android: Bootloader boot...";
+ bcb clear command; bcb store;
+ fastboot 1;
+ exit;
+ elif bcb test command = boot-recovery; then
+ echo "Android: Recovery boot...";
+ setenv ardaddr $loadaddr;
+ setenv apart recovery;
+ else
+ echo "Android: Normal boot...";
+ setenv ardaddr $loadaddr;
+ setenv apart boot${slot_suffix};
+ fi;
+else
+ echo "Warning: BCB is corrupted or does not exist";
+ echo "Android: Normal boot...";
+fi;
+setenv eval_bootargs setenv bootargs $bootargs;
+run eval_bootargs;
+setenv machid fe6;
+#if CONFIG_CMD_AVB
+if run avb_verify; then
+ echo "AVB verification OK.";
+ set bootargs $bootargs $avb_bootargs;
+else
+ echo "AVB verification failed.";
+ exit;
+fi;
+#endif
+#if CONFIG_CMD_BCB
+#if CONFIG_ANDROID_AB
+setenv bootargs_ab androidboot.slot_suffix=${slot_suffix};
+echo "A/B cmdline addition: ${bootargs_ab}";
+setenv bootargs ${bootargs} ${bootargs_ab};
+#endif
+#endif
+if part start mmc $mmcdev $apart boot_start; then
+ part size mmc $mmcdev $apart boot_size;
+ mmc read $loadaddr $boot_start $boot_size;
+ echo "Preparing FDT...";
+ if test $board_name = am57xx_evm_reva3; then
+ echo " Reading DTBO partition...";
+ part start mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_start;
+ part size mmc ${mmcdev} dtbo${slot_suffix} p_dtbo_size;
+ mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size};
+ echo " Reading DTB for AM57x EVM RevA3...";
+ abootimg get dtb --index=0 dtb_start dtb_size;
+ cp.b $dtb_start $fdtaddr $dtb_size;
+ fdt addr $fdtaddr 0x80000;
+ echo " Applying DTBOs for AM57x EVM RevA3...";
+ adtimg addr $dtboaddr;
+ adtimg get dt --index=0 dtbo0_addr dtbo0_size;
+ fdt apply $dtbo0_addr;
+ adtimg get dt --index=1 dtbo1_addr dtbo1_size;
+ fdt apply $dtbo1_addr;
+ elif test $board_name = beagle_x15_revc; then
+ echo " Reading DTB for Beagle X15 RevC...";
+ abootimg get dtb --index=0 dtb_start dtb_size;
+ cp.b $dtb_start $fdtaddr $dtb_size;
+ fdt addr $fdtaddr 0x80000;
+ else
+ echo "Error: Android boot is not supported for $board_name";
+ exit;
+ fi;
+ bootm $loadaddr $ardaddr $fdtaddr;
+else
+ echo "$apart partition not found";
+ exit;
+fi;
+get_overlay_mmc=
+ fdt address ${fdtaddr};
+ fdt resize 0x100000;
+ for overlay in $name_overlays;
+ do;
+ load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/${overlay};
+ fdt apply ${dtboaddr};
+ done;
+#if CONFIG_CMD_NET
+static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
+nfsopts=nolock
+rootpath=/export/rootfs
+netloadimage=tftp ${loadaddr} ${bootfile}
+netloadfdt=tftp ${fdtaddr} ${fdtfile}
+netargs=setenv bootargs console=${console} ${optargs}
+ root=/dev/nfs
+ nfsroot=${serverip}:${rootpath},${nfsopts} rw
+ ip=dhcp
+netboot=echo Booting from network ...;
+ setenv autoload no;
+ dhcp;
+ run netloadimage;
+ run netloadfdt;
+ run netargs;
+ bootz ${loadaddr} - ${fdtaddr}
+#endif
+#if CONFIG_MTD_RAW_NAND
+#include <env/ti/nand.env>
+#endif
+dfu_bufsiz=0x10000
diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
index fc0d87daae4..4091601d4f2 100644
--- a/board/ti/am57xx/board.c
+++ b/board/ti/am57xx/board.c
@@ -42,6 +42,7 @@
#include "../common/board_detect.h"
#include "../common/cape_detect.h"
+#include "../common/fdt_ops.h"
#include "mux_data.h"
#ifdef CONFIG_SUPPORT_EMMC_BOOT
@@ -577,6 +578,18 @@ void do_board_detect(void)
"Board: %s REV %s\n", bname, board_ti_get_rev());
}
+static struct ti_fdt_map ti_omap_am57_evm_fdt_map[] = {
+ {"beagle_x15", "ti/omap/am57xx-beagle-x15.dtb"},
+ {"beagle_x15_revb1", "ti/omap/am57xx-beagle-x15-revb1.dtb"},
+ {"beagle_x15_revc", "ti/omap/am57xx-beagle-x15-revc.dtb"},
+ {"am5729_beagleboneai", "ti/omap/am5729-beagleboneai.dtb"},
+ {"am572x_idk", "ti/omap/am572x-idk.dtb"},
+ {"am574x_idk", "ti/omap/am574x-idk.dtb"},
+ {"am57xx_evm", "ti/omap/am57xx-beagle-x15.dtb"},
+ {"am57xx_evm_reva3", "ti/omap/am57xx-beagle-x15.dtb"},
+ {"am571x_idk", "ti/omap/am571x-idk.dtb"},
+};
+
static void setup_board_eeprom_env(void)
{
char *name = "beagle_x15";
@@ -614,6 +627,7 @@ static void setup_board_eeprom_env(void)
invalid_eeprom:
set_board_info_env(name);
+ ti_set_fdt_env(name, ti_omap_am57_evm_fdt_map);
}
#endif /* CONFIG_XPL_BUILD */
diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c
index 98d63e14e29..0966db2bb62 100644
--- a/board/ti/dra7xx/evm.c
+++ b/board/ti/dra7xx/evm.c
@@ -38,6 +38,7 @@
#include "mux_data.h"
#include "../common/board_detect.h"
+#include "../common/fdt_ops.h"
#define board_is_dra76x_evm() board_ti_is("DRA76/7x")
#define board_is_dra74x_evm() board_ti_is("5777xCPU")
@@ -665,6 +666,15 @@ static int device_okay(const char *path)
}
#endif
+static struct ti_fdt_map ti_omap_dra7_evm_fdt_map[] = {
+ {"omap5_uevm", "ti/omap/omap5-uevm.dtb"},
+ {"dra7xx", "ti/omap/dra7-evm.dtb"},
+ {"dra72x-revc", "ti/omap/dra72-evm-revc.dtb"},
+ {"dra72x", "ti/omap/dra72-evm.dtb"},
+ {"dra71x", "ti/omap/dra71-evm.dtb"},
+ {"dra76x_acd", "ti/omap/dra76-evm.dtb"},
+};
+
int board_late_init(void)
{
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
@@ -686,6 +696,7 @@ int board_late_init(void)
}
set_board_info_env(name);
+ ti_set_fdt_env(name, ti_omap_dra7_evm_fdt_map);
/*
* Default FIT boot on HS devices. Non FIT images are not allowed