Merge patch series "toradex: fix reset and hardware detection regressions"

Francesco Dolcini <francesco.dolcini@toradex.com> says:

This series fixes two regressions affecting multiple Toradex boards
(i.MX, TI and TEGRA based) and targets the current master, e.g. v2024.04
release.

U-Boot `reset` command is broken on all Tordex i.MX6* based SoMs since
v2023.07, this series fixes it enabling the `wdt-reboot` driver.

Since v2024.04-rc1 reading the Toradex configuration block is not working
properly anymore, the serial number and the hardware version are not read
correctly, preventing the board from functioning correctly (wrong mac address,
wrong DT, ...). This is fixed by reading the config block in `EVT_SETTINGS_R`
and adding a toradex sysinfo driver. In addition to that, we now use a random
mac address in case the config block is invalid.

Reported-by: Sahaj Sarup <sahaj.sarup@linaro.org>
Closes: https://lore.kernel.org/all/CAKZ1LvM45MB8N0CqgU+C7i9=Bjb6kqNTxWo2Tv407HKLWtCMkA@mail.gmail.com/
Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Closes: https://lore.kernel.org/all/e40ed93bd8f371ec56b8fc451dcb458f3ce6dcba.camel@toradex.com/
Reported-by: Francesco Dolcini <francesco@dolcini.it>
Closes: https://lore.kernel.org/all/ZY2ZDWAQuTlRjV9H@francesco-nb/
This commit is contained in:
Tom Rini 2024-03-01 09:14:36 -05:00
commit 44a15c3f4e
44 changed files with 285 additions and 196 deletions

View file

@ -3,6 +3,12 @@
* Copyright 2019 Toradex AG
*/
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};
&mu {
bootph-some-ram;
};

View file

@ -3,6 +3,12 @@
* Copyright 2019 Toradex AG
*/
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};
&{/imx8qx-pm} {
bootph-some-ram;

View file

@ -5,13 +5,27 @@
#include "imx6qdl-u-boot.dtsi"
&{/aliases} {
/* U-Boot won't find PMIC otherwise */
i2c0 = &i2c3;
i2c1 = &i2c2;
/* SDHCI instance order: eMMC, 4-bit SD/MMC (U-Boot won't find ConfigBlock otherwise) */
mmc0 = &usdhc3;
mmc1 = &usdhc1;
/ {
aliases {
/* U-Boot won't find PMIC otherwise */
i2c0 = &i2c3;
i2c1 = &i2c2;
/* SDHCI instance order: eMMC, 4-bit SD/MMC
* (U-Boot won't find ConfigBlock otherwise)
*/
mmc0 = &usdhc3;
mmc1 = &usdhc1;
};
sysinfo {
compatible = "toradex,sysinfo";
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdog1>;
bootph-pre-ram;
};
};
&wdog1 {

View file

@ -5,18 +5,30 @@
#include "imx6qdl-u-boot.dtsi"
&{/aliases} {
/* U-Boot won't find PMIC otherwise */
i2c0 = &i2c1;
i2c1 = &i2c2;
i2c2 = &i2c3;
/*
* SDHCI instance order: eMMC, 8-bit SD/MMC, 4-bit SD
* (U-Boot won't find ConfigBlock otherwise)
*/
mmc0 = &usdhc3;
mmc1 = &usdhc1;
mmc2 = &usdhc2;
/ {
aliases {
/* U-Boot won't find PMIC otherwise */
i2c0 = &i2c1;
i2c1 = &i2c2;
i2c2 = &i2c3;
/*
* SDHCI instance order: eMMC, 8-bit SD/MMC, 4-bit SD
* (U-Boot won't find ConfigBlock otherwise)
*/
mmc0 = &usdhc3;
mmc1 = &usdhc1;
mmc2 = &usdhc2;
};
sysinfo {
compatible = "toradex,sysinfo";
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdog1>;
bootph-pre-ram;
};
};
&wdog1 {

View file

@ -9,6 +9,16 @@
usb0 = &usbotg1; /* required for ums */
display0 = &lcdif;
};
sysinfo {
compatible = "toradex,sysinfo";
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdog1>;
bootph-pre-ram;
};
};
&pinctrl_uart1 {
@ -54,3 +64,7 @@
};
};
};
&wdog1 {
bootph-pre-ram;
};

View file

@ -5,10 +5,16 @@
#include "imx7s-u-boot.dtsi"
&{/aliases} {
/* SDHCI instance order: eMMC, SD/MMC */
mmc0 = &usdhc3;
mmc1 = &usdhc1;
/ {
aliases {
/* SDHCI instance order: eMMC, SD/MMC */
mmc0 = &usdhc3;
mmc1 = &usdhc1;
};
sysinfo {
compatible = "toradex,sysinfo";
};
};
&lcdif {

View file

@ -6,6 +6,16 @@
#include "imx8mm-u-boot.dtsi"
/ {
aliases {
eeprom0 = &eeprom_module;
eeprom1 = &eeprom_carrier_board;
eeprom2 = &eeprom_display_adapter;
};
sysinfo {
compatible = "toradex,sysinfo";
};
wdt-reboot {
compatible = "wdt-reboot";
bootph-pre-ram;
@ -13,12 +23,6 @@
};
};
&{/aliases} {
eeprom0 = &eeprom_module;
eeprom1 = &eeprom_carrier_board;
eeprom2 = &eeprom_display_adapter;
};
&{/soc@0/bus@30800000/i2c@30a20000/pmic@25} {
bootph-pre-ram;
};

View file

@ -6,6 +6,16 @@
#include "imx8mp-u-boot.dtsi"
/ {
aliases {
eeprom0 = &eeprom_module;
eeprom1 = &eeprom_carrier_board;
eeprom2 = &eeprom_display_adapter;
};
sysinfo {
compatible = "toradex,sysinfo";
};
wdt-reboot {
compatible = "wdt-reboot";
bootph-pre-ram;
@ -13,12 +23,6 @@
};
};
&{/aliases} {
eeprom0 = &eeprom_module;
eeprom1 = &eeprom_carrier_board;
eeprom2 = &eeprom_display_adapter;
};
&clk {
bootph-all;
bootph-pre-ram;

View file

@ -19,6 +19,10 @@
memory@80000000 {
bootph-all;
};
sysinfo {
compatible = "toradex,sysinfo";
};
};
&main_timer0 {

View file

@ -0,0 +1,12 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*/
#include "tegra124-u-boot.dtsi"
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};

View file

@ -0,0 +1,12 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*/
#include "tegra20-u-boot.dtsi"
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};

View file

@ -0,0 +1,12 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*/
#include "tegra30-u-boot.dtsi"
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};

View file

@ -0,0 +1,12 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2023 Toradex
*/
#include "tegra30-u-boot.dtsi"
/ {
sysinfo {
compatible = "toradex,sysinfo";
};
};

View file

@ -7,6 +7,10 @@
soc {
bootph-all;
};
sysinfo {
compatible = "toradex,sysinfo";
};
};
&aips0 {

View file

@ -208,16 +208,6 @@ void board_preboot_os(void)
gpio_direction_output(BKL1_GPIO, 0);
}
int checkboard(void)
{
puts("Model: Toradex Apalis iMX8\n");
build_info();
print_bootinfo();
return tdx_checkboard();
}
static enum pcb_rev_t get_pcb_revision(void)
{
unsigned int pcb_vers = 0;

View file

@ -91,13 +91,6 @@ int arch_misc_init(void)
return 0;
}
int checkboard(void)
{
puts("Model: Toradex Apalis TK1 2GB\n");
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -716,27 +716,6 @@ int board_late_init(void)
}
#endif /* CONFIG_BOARD_LATE_INIT */
int checkboard(void)
{
char it[] = " IT";
int minc, maxc;
switch (get_cpu_temp_grade(&minc, &maxc)) {
case TEMP_AUTOMOTIVE:
case TEMP_INDUSTRIAL:
break;
case TEMP_EXTCOMMERCIAL:
default:
it[0] = 0;
};
printf("Model: Toradex Apalis iMX6 %s %s%s\n",
is_cpu_type(MXC_CPU_MX6D) ? "Dual" : "Quad",
(gd->ram_size == 0x80000000) ? "2GB" :
(gd->ram_size == 0x40000000) ? "1GB" : "512MB", it);
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -45,14 +45,6 @@ int arch_misc_init(void)
return 0;
}
int checkboard(void)
{
printf("Model: Toradex Apalis T30 %dGB\n",
(gd->ram_size == 0x40000000) ? 1 : 2);
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -205,13 +205,6 @@ int board_late_init(void)
return 0;
}
int checkboard(void)
{
printf("Model: Toradex Colibri iMX6ULL\n");
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -114,16 +114,6 @@ int board_phy_config(struct phy_device *phydev)
}
#endif
int checkboard(void)
{
puts("Model: Toradex Colibri iMX8X\n");
build_info();
print_bootinfo();
return tdx_checkboard();
}
static void select_dt_from_module_version(void)
{
/*

View file

@ -636,26 +636,6 @@ int board_late_init(void)
}
#endif /* CONFIG_BOARD_LATE_INIT */
int checkboard(void)
{
char it[] = " IT";
int minc, maxc;
switch (get_cpu_temp_grade(&minc, &maxc)) {
case TEMP_AUTOMOTIVE:
case TEMP_INDUSTRIAL:
break;
case TEMP_EXTCOMMERCIAL:
default:
it[0] = 0;
};
printf("Model: Toradex Colibri iMX6 %s %sMB%s\n",
is_cpu_type(MXC_CPU_MX6DL) ? "DualLite" : "Solo",
(gd->ram_size == 0x20000000) ? "512" : "256", it);
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -273,14 +273,6 @@ void reset_cpu(void)
}
#endif
int checkboard(void)
{
printf("Model: Toradex Colibri iMX7%c\n",
is_cpu_type(MXC_CPU_MX7D) ? 'D' : 'S');
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -70,16 +70,6 @@ int arch_misc_init(void)
return 0;
}
int checkboard(void)
{
printf("Model: Toradex Colibri T20 %dMB V%s\n",
(gd->ram_size == 0x10000000) ? 256 : 512,
(get_nand_dev_by_index(0)->erasesize >> 10 == 512) ?
((gd->ram_size == 0x10000000) ? "1.1B" : "1.1C") : "1.2A");
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -28,13 +28,6 @@ int arch_misc_init(void)
return 0;
}
int checkboard(void)
{
puts("Model: Toradex Colibri T30 1GB\n");
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -366,16 +366,6 @@ int board_init(void)
return 0;
}
int checkboard(void)
{
if (is_colibri_vf61())
puts("Model: Toradex Colibri VF61\n");
else
puts("Model: Toradex Colibri VF50\n");
return tdx_checkboard();
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd)
{

View file

@ -4,6 +4,7 @@
menuconfig TDX_CFG_BLOCK
bool "Enable Toradex config block support"
select OF_BOARD_SETUP
select SYSINFO
help
The Toradex config block stored production data on the on-module
flash device (NAND, NOR or eMMC). The area is normally preserved by

View file

@ -3,15 +3,16 @@
* Copyright (c) 2016 Toradex, Inc.
*/
#include <dm.h>
#include <common.h>
#include <env.h>
#include <g_dnl.h>
#include <init.h>
#include <linux/libfdt.h>
#include <sysinfo.h>
#ifdef CONFIG_VIDEO
#include <bmp_logo.h>
#include <dm.h>
#include <splash.h>
#include <video.h>
#endif
@ -96,55 +97,70 @@ static const char *get_board_assembly(u16 ver_assembly)
return ver_name;
}
int tdx_checkboard(void)
__weak int print_bootinfo(void)
{
return 0;
}
int checkboard(void)
{
if (valid_cfgblock)
printf("Serial#: %s\n", tdx_serial_str);
#ifdef CONFIG_TDX_CFG_BLOCK_EXTRA
if (tdx_carrier_board_name)
printf("Carrier: Toradex %s %s, Serial# %s\n",
tdx_carrier_board_name,
tdx_car_rev_str,
tdx_car_serial_str);
#endif
print_bootinfo();
return 0;
}
static int settings_r(void)
{
unsigned char ethaddr[6];
if (read_tdx_cfg_block()) {
printf("MISSING TORADEX CONFIG BLOCK\n");
get_mac_from_serial(tdx_serial, &tdx_eth_addr);
checkboard();
} else {
snprintf(tdx_serial_str, sizeof(tdx_serial_str),
"%08u", tdx_serial);
snprintf(tdx_board_rev_str, sizeof(tdx_board_rev_str),
"V%1d.%1d%s",
tdx_hw_tag.ver_major,
tdx_hw_tag.ver_minor,
get_board_assembly(tdx_hw_tag.ver_assembly));
env_set("serial#", tdx_serial_str);
printf("Model: Toradex %04d %s %s\n",
tdx_hw_tag.prodid,
toradex_modules[tdx_hw_tag.prodid].name,
tdx_board_rev_str);
printf("Serial#: %s\n", tdx_serial_str);
#ifdef CONFIG_TDX_CFG_BLOCK_EXTRA
if (read_tdx_cfg_block_carrier()) {
printf("MISSING TORADEX CARRIER CONFIG BLOCKS\n");
try_migrate_tdx_cfg_block_carrier();
} else {
tdx_carrier_board_name =
get_toradex_carrier_boards(tdx_car_hw_tag.prodid);
snprintf(tdx_car_serial_str, sizeof(tdx_car_serial_str),
"%08u", tdx_car_serial);
snprintf(tdx_car_rev_str, sizeof(tdx_car_rev_str),
"V%1d.%1d%s",
tdx_car_hw_tag.ver_major,
tdx_car_hw_tag.ver_minor,
get_board_assembly(tdx_car_hw_tag.ver_assembly));
env_set("carrier_serial#", tdx_car_serial_str);
printf("Carrier: Toradex %s %s, Serial# %s\n",
tdx_carrier_board_name,
tdx_car_rev_str,
tdx_car_serial_str);
}
#endif
/* Board can run even if config block is not present */
return 0;
}
snprintf(tdx_serial_str, sizeof(tdx_serial_str),
"%08u", tdx_serial);
snprintf(tdx_board_rev_str, sizeof(tdx_board_rev_str),
"V%1d.%1d%s",
tdx_hw_tag.ver_major,
tdx_hw_tag.ver_minor,
get_board_assembly(tdx_hw_tag.ver_assembly));
env_set("serial#", tdx_serial_str);
#ifdef CONFIG_TDX_CFG_BLOCK_EXTRA
if (read_tdx_cfg_block_carrier()) {
printf("MISSING TORADEX CARRIER CONFIG BLOCKS\n");
try_migrate_tdx_cfg_block_carrier();
} else {
tdx_carrier_board_name =
get_toradex_carrier_boards(tdx_car_hw_tag.prodid);
snprintf(tdx_car_serial_str, sizeof(tdx_car_serial_str),
"%08u", tdx_car_serial);
snprintf(tdx_car_rev_str, sizeof(tdx_car_rev_str),
"V%1d.%1d%s",
tdx_car_hw_tag.ver_major,
tdx_car_hw_tag.ver_minor,
get_board_assembly(tdx_car_hw_tag.ver_assembly));
env_set("carrier_serial#", tdx_car_serial_str);
}
#endif
/*
* Check if environment contains a valid MAC address,
* set the one from config block if not
@ -165,6 +181,47 @@ int tdx_checkboard(void)
return 0;
}
EVENT_SPY_SIMPLE(EVT_SETTINGS_R, settings_r);
static int tdx_detect(struct udevice *dev)
{
return valid_cfgblock ? 0 : -EINVAL;
}
static int tdx_get_str(struct udevice *dev, int id, size_t size, char *val)
{
int ret = -ENOTSUPP;
switch (id) {
case SYSINFO_ID_BOARD_MODEL:
snprintf(val, size,
"Toradex %04d %s %s",
tdx_hw_tag.prodid,
toradex_modules[tdx_hw_tag.prodid].name,
tdx_board_rev_str);
ret = 0;
}
return ret;
}
static const struct udevice_id sysinfo_tdx_ids[] = {
{ .compatible = "toradex,sysinfo" },
{ /* sentinel */ }
};
static const struct sysinfo_ops sysinfo_tdx_ops = {
.detect = tdx_detect,
.get_str = tdx_get_str,
};
U_BOOT_DRIVER(sysinfo_toradex) = {
.name = "sysinfo_toradex",
.id = UCLASS_SYSINFO,
.of_match = sysinfo_tdx_ids,
.ops = &sysinfo_tdx_ops,
};
#ifdef CONFIG_TDX_CFG_BLOCK_USB_GADGET_PID
int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)

View file

@ -11,6 +11,5 @@
int ft_common_board_setup(void *blob, struct bd_info *bd);
u32 get_board_revision(void);
int tdx_checkboard(void);
#endif /* _TDX_COMMON_H */

View file

@ -51,6 +51,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_TFTP_TSIZE=y

View file

@ -52,6 +52,7 @@ CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_TFTP_TSIZE=y

View file

@ -75,6 +75,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_USE_IPADDR=y
@ -95,6 +96,8 @@ CONFIG_DM_I2C=y
CONFIG_SPL_SYS_I2C_LEGACY=y
CONFIG_SYS_I2C_MXC=y
CONFIG_SYS_MXC_I2C3_SPEED=400000
CONFIG_SYSRESET=y
CONFIG_SYSRESET_WATCHDOG=y
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_FSL_USDHC=y
CONFIG_PHYLIB=y
@ -112,6 +115,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_SCSI=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_IMX_WATCHDOG=y
CONFIG_USB=y
CONFIG_SPL_USB_HOST=y
CONFIG_USB_MAX_CONTROLLER_COUNT=2

View file

@ -45,6 +45,7 @@ CONFIG_OF_LIVE=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_TFTP_TSIZE=y

View file

@ -51,6 +51,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_TFTP_TSIZE=y
@ -68,6 +69,8 @@ CONFIG_FASTBOOT_BUF_ADDR=0x81100000
CONFIG_FASTBOOT_UUU_SUPPORT=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_MXC=y
CONFIG_SYSRESET=y
CONFIG_SYSRESET_WATCHDOG=y
CONFIG_SUPPORT_EMMC_BOOT=y
CONFIG_FSL_USDHC=y
CONFIG_PHYLIB=y
@ -82,6 +85,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_SERIAL=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_IMX_WATCHDOG=y
CONFIG_USB=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Toradex"

View file

@ -60,6 +60,7 @@ CONFIG_ENV_RANGE=0x80000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_TFTP_TSIZE=y
@ -79,6 +80,8 @@ CONFIG_FASTBOOT_BUF_ADDR=0x81100000
CONFIG_FASTBOOT_UUU_SUPPORT=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_MXC=y
CONFIG_SYSRESET=y
CONFIG_SYSRESET_WATCHDOG=y
CONFIG_FSL_USDHC=y
CONFIG_MTD=y
CONFIG_DM_MTD=y
@ -99,6 +102,7 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_SERIAL=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_IMX_WATCHDOG=y
CONFIG_USB=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Toradex"

View file

@ -51,6 +51,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_TFTP_TSIZE=y

View file

@ -22,6 +22,8 @@ CONFIG_SYS_MONITOR_LEN=409600
CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL=y
CONFIG_SYSRESET=y
CONFIG_SYSRESET_WATCHDOG=y
CONFIG_CMD_HDMIDETECT=y
CONFIG_SYS_LOAD_ADDR=0x14200000
CONFIG_SYS_MEMTEST_START=0x10000000
@ -74,6 +76,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_USE_IPADDR=y
@ -108,6 +111,7 @@ CONFIG_DM_REGULATOR_PFUZE100=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_IMX_WATCHDOG=y
CONFIG_USB=y
CONFIG_SPL_USB_HOST=y
CONFIG_USB_MAX_CONTROLLER_COUNT=2

View file

@ -60,6 +60,7 @@ CONFIG_ENV_IS_IN_NAND=y
CONFIG_ENV_RANGE=0x80000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_USE_IPADDR=y

View file

@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_USE_IPADDR=y

View file

@ -49,6 +49,7 @@ CONFIG_OF_LIVE=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_NAND=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=1536
CONFIG_TFTP_TSIZE=y

View file

@ -43,6 +43,7 @@ CONFIG_OF_LIVE=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=1
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=16352
CONFIG_TFTP_TSIZE=y

View file

@ -65,6 +65,7 @@ CONFIG_ENV_RANGE=0x80000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_USE_IPADDR=y
CONFIG_IPADDR="192.168.10.2"
CONFIG_USE_NETMASK=y

View file

@ -103,6 +103,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eth0"
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_SPL_DM=y

View file

@ -88,6 +88,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eth0"
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_SPL_DM=y

View file

@ -98,6 +98,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eth0"
CONFIG_VERSION_VARIABLE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_SPL_DM=y