summaryrefslogtreecommitdiff
path: root/recipes-bsp/u-boot/u-boot-2016.09.01
diff options
context:
space:
mode:
authorAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-13 14:42:23 +0300
committerAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-13 14:42:23 +0300
commit6e609b4721c4816050f0d201cad5f063adcff867 (patch)
tree5787dd6104539175cb9670587a7bb8c64b4d6c60 /recipes-bsp/u-boot/u-boot-2016.09.01
parent87ba31c96fdfa7ba092d21395aa6489cd85c005c (diff)
downloadmeta-multitech-6e609b4721c4816050f0d201cad5f063adcff867.tar.gz
meta-multitech-6e609b4721c4816050f0d201cad5f063adcff867.tar.bz2
meta-multitech-6e609b4721c4816050f0d201cad5f063adcff867.zip
Initial meta-multitech-common based on meta-multitech (branch master)
Diffstat (limited to 'recipes-bsp/u-boot/u-boot-2016.09.01')
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/config.patch42
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/hide_uboot_version.patch11
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/i2c.patch114
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/kconfig_common.patch65
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/macb.patch54
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt.patch292
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt_flush_console_autoboot.patch43
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/mtpwd.patch300
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/mtr.patch272
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/mtrv1.patch261
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/printeepromcrc.patch56
-rw-r--r--recipes-bsp/u-boot/u-boot-2016.09.01/tftpput.patch28
12 files changed, 0 insertions, 1538 deletions
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/config.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/config.patch
deleted file mode 100644
index 658fdec..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/config.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Naru old/configs/at91sam9x5ek_nandflash_defconfig new/configs/at91sam9x5ek_nandflash_defconfig
---- old/configs/at91sam9x5ek_nandflash_defconfig 2019-04-09 18:00:13.342337484 -0500
-+++ new/configs/at91sam9x5ek_nandflash_defconfig 2019-04-15 12:06:49.171618119 -0500
-@@ -1,9 +1,9 @@
- CONFIG_ARM=y
- CONFIG_ARCH_AT91=y
- CONFIG_TARGET_AT91SAM9X5EK=y
--CONFIG_SPL=y
-+CONFIG_SPL=n
- CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9X5,SYS_USE_NANDFLASH"
--CONFIG_BOOTDELAY=3
-+CONFIG_BOOTDELAY=0
- CONFIG_HUSH_PARSER=y
- CONFIG_SYS_PROMPT="U-Boot> "
- CONFIG_CMD_BOOTZ=y
-@@ -12,7 +12,7 @@
- # CONFIG_CMD_FLASH is not set
- CONFIG_CMD_MMC=y
- CONFIG_CMD_SF=y
--CONFIG_CMD_USB=y
-+CONFIG_CMD_USB=n
- # CONFIG_CMD_FPGA is not set
- # CONFIG_CMD_SETEXPR is not set
- CONFIG_CMD_DHCP=y
-@@ -23,3 +23,17 @@
- CONFIG_USB=y
- CONFIG_USB_STORAGE=y
- CONFIG_OF_LIBFDT=y
-+
-+CONFIG_OF_CONTROL=n
-+CONFIG_CMD_TFTPPUT=y
-+CONFIG_CMD_FAT=y
-+CONFIG_CMD_NAND=y
-+CONFIG_CMD_BOOTZ=y
-+CONFIG_CMD_MII=y
-+CONFIG_CMD_I2C=y
-+
-+# The config option CONFIG_SILENT_CONSOLE can be used to quiet messages
-+# on the console. If the option has been enabled, the output can be
-+# silenced by setting the environment variable "silent"
-+CONFIG_SILENT_CONSOLE=y
-+CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/hide_uboot_version.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/hide_uboot_version.patch
deleted file mode 100644
index a59dcc1..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/hide_uboot_version.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -raNu old/lib/display_options.c new/lib/display_options.c
---- old/lib/display_options.c 2016-09-19 17:45:12.000000000 +0300
-+++ new/lib/display_options.c 2019-02-08 15:40:16.566717983 +0200
-@@ -15,6 +15,7 @@
-
- int display_options (void)
- {
-+ return 0;
- #if defined(BUILD_TAG)
- printf ("\n\n%s, Build: %s\n\n", version_string, BUILD_TAG);
- #else
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/i2c.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/i2c.patch
deleted file mode 100644
index a5087ea..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/i2c.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-diff -raNu old/include/i2c.h new/include/i2c.h
---- old/include/i2c.h 2017-04-28 17:26:27.854898005 -0500
-+++ new/include/i2c.h 2017-05-01 17:27:32.673437788 -0500
-@@ -17,6 +17,27 @@
- #ifndef _I2C_H_
- #define _I2C_H_
-
-+#define U_BOOT_I2C_MKENT_COMPLETE(_init, _probe, _read, _write, \
-+ _set_speed, _speed, _slaveaddr, _hwadapnr, _name) \
-+ { \
-+ .init = _init, \
-+ .probe = _probe, \
-+ .read = _read, \
-+ .write = _write, \
-+ .set_bus_speed = _set_speed, \
-+ .speed = _speed, \
-+ .slaveaddr = _slaveaddr, \
-+ .init_done = 0, \
-+ .hwadapnr = _hwadapnr, \
-+ .name = #_name \
-+};
-+
-+#define U_BOOT_I2C_ADAP_COMPLETE(_name, _init, _probe, _read, _write, \
-+ _set_speed, _speed, _slaveaddr, _hwadapnr) \
-+ ll_entry_declare(struct i2c_adapter, _name, i2c) = \
-+ U_BOOT_I2C_MKENT_COMPLETE(_init, _probe, _read, _write, \
-+ _set_speed, _speed, _slaveaddr, _hwadapnr, _name);
-+
- /*
- * For now there are essentially two parts to this file - driver model
- * here at the top, and the older code below (with CONFIG_SYS_I2C being
-@@ -538,6 +559,26 @@
- */
- void i2c_dump_msgs(struct i2c_msg *msg, int nmsgs);
-
-+
-+struct i2c_adapter {
-+ void (*init)(struct i2c_adapter *adap, int speed,
-+ int slaveaddr);
-+ int (*probe)(struct i2c_adapter *adap, uint8_t chip);
-+ int (*read)(struct i2c_adapter *adap, uint8_t chip,
-+ uint addr, int alen, uint8_t *buffer,
-+ int len);
-+ int (*write)(struct i2c_adapter *adap, uint8_t chip,
-+ uint addr, int alen, uint8_t *buffer,
-+ int len);
-+ uint (*set_bus_speed)(struct i2c_adapter *adap,
-+ uint speed);
-+ int speed;
-+ int waitdelay;
-+ int slaveaddr;
-+ int init_done;
-+ int hwadapnr;
-+ char *name;
-+};
- #ifndef CONFIG_DM_I2C
-
- /*
-@@ -578,46 +619,6 @@
- #define CONFIG_SYS_SPD_BUS_NUM 0
- #endif
-
--struct i2c_adapter {
-- void (*init)(struct i2c_adapter *adap, int speed,
-- int slaveaddr);
-- int (*probe)(struct i2c_adapter *adap, uint8_t chip);
-- int (*read)(struct i2c_adapter *adap, uint8_t chip,
-- uint addr, int alen, uint8_t *buffer,
-- int len);
-- int (*write)(struct i2c_adapter *adap, uint8_t chip,
-- uint addr, int alen, uint8_t *buffer,
-- int len);
-- uint (*set_bus_speed)(struct i2c_adapter *adap,
-- uint speed);
-- int speed;
-- int waitdelay;
-- int slaveaddr;
-- int init_done;
-- int hwadapnr;
-- char *name;
--};
--
--#define U_BOOT_I2C_MKENT_COMPLETE(_init, _probe, _read, _write, \
-- _set_speed, _speed, _slaveaddr, _hwadapnr, _name) \
-- { \
-- .init = _init, \
-- .probe = _probe, \
-- .read = _read, \
-- .write = _write, \
-- .set_bus_speed = _set_speed, \
-- .speed = _speed, \
-- .slaveaddr = _slaveaddr, \
-- .init_done = 0, \
-- .hwadapnr = _hwadapnr, \
-- .name = #_name \
--};
--
--#define U_BOOT_I2C_ADAP_COMPLETE(_name, _init, _probe, _read, _write, \
-- _set_speed, _speed, _slaveaddr, _hwadapnr) \
-- ll_entry_declare(struct i2c_adapter, _name, i2c) = \
-- U_BOOT_I2C_MKENT_COMPLETE(_init, _probe, _read, _write, \
-- _set_speed, _speed, _slaveaddr, _hwadapnr, _name);
-
- struct i2c_adapter *i2c_get_adapter(int index);
-
-@@ -803,7 +804,7 @@
- void i2c_soft_scl(int bit);
- void i2c_soft_delay(void);
- #endif
--#else
-+#elif !defined(CONFIG_DM_I2C_COMPAT)
-
- /*
- * Probe the given I2C chip address. Returns 0 if a chip responded,
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/kconfig_common.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/kconfig_common.patch
deleted file mode 100644
index db6773a..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/kconfig_common.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# MD: based on the following change:
-#
-# http://git.denx.de/?p=u-boot.git;a=commit;h=98af87997670af840ef178f76b4d6888534a6700
-# author Simon Glass <sjg@chromium.org>
-# Tue, 18 Oct 2016 04:12:35 +0200 (20:12 -0600)
-# committer Tom Rini <trini@konsulko.com>
-# Mon, 24 Oct 2016 00:33:18 +0200 (18:33 -0400)
-#
-# Convert SILENT_CONSOLE options to Kconfig
-#
-# Move these option to Kconfig and tidy up existing uses.
-#
-# The Power PC boards don't have a suitable common element: the common header
-# files don't appear to line up with the Kconfig files as far as I can tell.
-# This results in a lot of defconfig changes.
-#
-diff -raNu old/common/Kconfig new/common/Kconfig
---- old/common/Kconfig 2016-09-19 17:45:12.000000000 +0300
-+++ new/common/Kconfig 2019-02-08 13:41:54.925466228 +0200
-@@ -213,3 +213,44 @@
- version as printed by the "version" command.
- Any change to this variable will be reverted at the
- next reset.
-+
-+config SILENT_CONSOLE
-+ bool "Support a silent console"
-+ help
-+ This option allows the console to be silenced, meaning that no
-+ output will appear on the console devices. This is controlled by
-+ setting the environment variable 'silent' to a non-empty value.
-+ Note this also silences the console when booting Linux.
-+
-+ When the console is set up, the variable is checked, and the
-+ GD_FLG_SILENT flag is set. Changing the environment variable later
-+ will update the flag.
-+
-+config SILENT_U_BOOT_ONLY
-+ bool "Only silence the U-Boot console"
-+ depends on SILENT_CONSOLE
-+ help
-+ Normally when the U-Boot console is silenced, Linux's console is
-+ also silenced (assuming the board boots into Linux). This option
-+ allows the linux console to operate normally, even if U-Boot's
-+ is silenced.
-+
-+config SILENT_CONSOLE_UPDATE_ON_SET
-+ bool "Changes to the 'silent' environment variable update immediately"
-+ depends on SILENT_CONSOLE
-+ default y if SILENT_CONSOLE
-+ help
-+ When the 'silent' environment variable is changed, update the
-+ console silence flag immediately. This allows 'setenv' to be used
-+ to silence or un-silence the console.
-+
-+ The effect is that any change to the variable will affect the
-+ GD_FLG_SILENT flag.
-+
-+config SILENT_CONSOLE_UPDATE_ON_RELOC
-+ bool "Allow flags to take effect on relocation"
-+ depends on SILENT_CONSOLE
-+ help
-+ In some cases the environment is not available until relocation
-+ (e.g. NAND). This option makes the value of the 'silent'
-+ environment variable take effect at relocation.
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/macb.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/macb.patch
deleted file mode 100644
index 5869628..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/macb.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -raNu old/drivers/net/macb.c new/drivers/net/macb.c
---- old/drivers/net/macb.c 2017-05-11 16:08:48.747255895 -0500
-+++ new/drivers/net/macb.c 2017-05-12 09:55:17.331129433 -0500
-@@ -49,7 +49,7 @@
- #define MACB_RX_RING_SIZE (MACB_RX_BUFFER_SIZE / 128)
- #define MACB_TX_RING_SIZE 16
- #define MACB_TX_TIMEOUT 1000
--#define MACB_AUTONEG_TIMEOUT 5000000
-+#define MACB_AUTONEG_TIMEOUT 3000000
-
- struct macb_dma_desc {
- u32 addr;
-@@ -419,7 +419,8 @@
- static void macb_phy_reset(struct macb_device *macb, const char *name)
- {
- int i;
-- u16 status, adv;
-+ u16 status = 0;
-+ u16 adv;
-
- adv = ADVERTISE_CSMA | ADVERTISE_ALL;
- macb_mdio_write(macb, MII_ADVERTISE, adv);
-@@ -439,6 +440,7 @@
- else
- printf("%s: Autonegotiation timed out (status=0x%04x)\n",
- name, status);
-+
- }
-
- #ifdef CONFIG_MACB_SEARCH_PHY
-@@ -479,7 +481,6 @@
- u32 ncfgr;
- u16 phy_id, status, adv, lpa;
- int media, speed, duplex;
-- int i;
-
- arch_get_mdio_control(name);
- #ifdef CONFIG_MACB_SEARCH_PHY
-@@ -515,14 +516,7 @@
- status = macb_mdio_read(macb, MII_BMSR);
- if (!(status & BMSR_LSTATUS)) {
- /* Try to re-negotiate if we don't have link already. */
-- macb_phy_reset(macb, name);
--
-- for (i = 0; i < MACB_AUTONEG_TIMEOUT / 100; i++) {
-- status = macb_mdio_read(macb, MII_BMSR);
-- if (status & BMSR_LSTATUS)
-- break;
-- udelay(100);
-- }
-+ macb_phy_reset(macb,name);
- }
-
- if (!(status & BMSR_LSTATUS)) {
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt.patch
deleted file mode 100644
index 4f265df..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-diff -raNu old/include/configs/at91sam9x5ek.h new/include/configs/at91sam9x5ek.h
---- old/include/configs/at91sam9x5ek.h 2017-05-04 13:59:37.381346896 -0500
-+++ new/include/configs/at91sam9x5ek.h 2017-05-11 08:31:30.258358272 -0500
-@@ -9,9 +9,11 @@
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
-
-+#include <linux/kconfig.h>
- #include <asm/hardware.h>
-
--#define CONFIG_SYS_TEXT_BASE 0x26f00000
-+#define USE_MTCDT
-+#define CONFIG_SYS_TEXT_BASE 0x2ef00000
-
- /* ARM asynchronous clock */
- #define CONFIG_SYS_AT91_SLOW_CLOCK 32768
-@@ -26,6 +28,8 @@
- #define CONFIG_BOARD_EARLY_INIT_F
- #define CONFIG_DISPLAY_CPUINFO
-
-+#define CONFIG_MISC_INIT_R /* enable platform-dependent misc_init_r() */
-+
- /* general purpose I/O */
- #define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
- #define CONFIG_AT91_GPIO
-@@ -36,6 +40,8 @@
- #define CONFIG_USART_ID ATMEL_ID_SYS
-
- /* LCD */
-+/* MTCDT has no LCD */
-+#if !defined(MTCDT)
- #define CONFIG_LCD
- #define LCD_BPP LCD_COLOR16
- #define LCD_OUTPUT_BPP 24
-@@ -46,7 +52,13 @@
- #define CONFIG_ATMEL_HLCD
- #define CONFIG_ATMEL_LCD_RGB565
- #define CONFIG_SYS_CONSOLE_IS_IN_ENV
-+#endif /* !defined(MTCDT) */
-+
-+/* check for keypress even if bootdelay is 0 */
-+#define CONFIG_ZERO_BOOTDELAY_CHECK
-
-+/*STATUS LED*/
-+#define BOOT_STATUS_LED AT91_PIN_PA24
-
- /*
- * BOOTP options
-@@ -60,10 +72,10 @@
- #define CONFIG_SYS_NO_FLASH
-
- /*
-- * Command line configuration.
-+ * Defined by .config (configs/at91sam9x5ek)
-+ * #define CONFIG_CMD_I2C
- */
--#define CONFIG_CMD_NAND
--
-+#define CONFIG_SYS_I2C
- /*
- * define CONFIG_USB_EHCI to enable USB Hi-Speed (aka 2.0)
- * NB: in this case, USB 1.1 devices won't be recognized.
-@@ -72,7 +84,7 @@
- /* SDRAM */
- #define CONFIG_NR_DRAM_BANKS 1
- #define CONFIG_SYS_SDRAM_BASE 0x20000000
--#define CONFIG_SYS_SDRAM_SIZE 0x08000000 /* 128 megs */
-+#define CONFIG_SYS_SDRAM_SIZE 0x10000000 /* 256 megs */
-
- #define CONFIG_SYS_INIT_SP_ADDR \
- (CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
-@@ -94,13 +106,30 @@
- /* our CLE is AD22 */
- #define CONFIG_SYS_NAND_MASK_CLE (1 << 22)
- #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PD4
--#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PD5
-+/* MTCDT nand ready is PC31 */
-+#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC31
-
- /* PMECC & PMERRLOC */
- #define CONFIG_ATMEL_NAND_HWECC 1
- #define CONFIG_ATMEL_NAND_HW_PMECC 1
--#define CONFIG_PMECC_CAP 2
-+
-+/* MTCDT: 4-bit PMECC */
-+#define CONFIG_PMECC_CAP 4
- #define CONFIG_PMECC_SECTOR_SIZE 512
-+/*
-+ * CONFIG_PMECC_INDEX_TABLE_OFFSET has been replaced by:
-+ * ATMEL_PMECC_INDEX_OFFSET_512 and
-+ * ATMEL_PMECC_INDEX_OFFSET_1024
-+ *
-+ * Which as used depends on:
-+ * host->pmecc_sector_size == 512
-+ *
-+ * 2012.10:
-+ * #define CONFIG_PMECC_INDEX_TABLE_OFFSET 0x8000
-+ * 2016.03 (at91sam9x5.h):
-+ * 182:#define ATMEL_PMECC_INDEX_OFFSET_512 0x8000
-+ */
-+
-
- #define CONFIG_CMD_NAND_TRIMFFS
-
-@@ -147,20 +176,36 @@
- #endif
- #endif
-
-+#define CONFIG_SYS_I2C_SOFT
-+#define CONFIG_SOFT_I2C
-+#define CONFIG_SOFT_I2C_GPIO_SCL AT91_PIN_PA31
-+#define CONFIG_SOFT_I2C_GPIO_SDA AT91_PIN_PA30
-+#define CONFIG_SYS_I2C_SOFT_SPEED 50000
-+#define CONFIG_SYS_I2C_SPEED CONFIG_SYS_I2C_SOFT_SPEED
-+/* Values from previous levels of Conduit U-Boot */
-+#define CONFIG_SYS_I2C_SLAVE 0xfe
-+#define I2C_RXTX_LEN 128
-+
-+/* I2C eeprom support */
-+#define CONFIG_CMD_EEPROM
-+#define CONFIG_SYS_I2C_EEPROM_ADDR 0x56 /* at24c04 */
-+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address */
-+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
-+
- #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
-
- #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
--#define CONFIG_SYS_MEMTEST_END 0x26e00000
-+#define CONFIG_SYS_MEMTEST_END 0x2ee00000
-
- #ifdef CONFIG_SYS_USE_NANDFLASH
- /* bootstrap + u-boot + env + linux in nandflash */
- #define CONFIG_ENV_IS_IN_NAND
- #define CONFIG_ENV_OFFSET 0xc0000
--#define CONFIG_ENV_OFFSET_REDUND 0x100000
-+#define CONFIG_ENV_OFFSET_REDUND 0x160000
- #define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
--#define CONFIG_BOOTCOMMAND "nand read " \
-- "0x22000000 0x200000 0x300000; " \
-- "bootm 0x22000000"
-+/* MTCDT: read from env variables for boot */
-+#define CONFIG_BOOTCOMMAND "nboot.jffs2 ${loadaddr} 0 ${kernel_addr}; bootm ${loadaddr}"
-+
- #elif defined(CONFIG_SYS_USE_SPIFLASH)
- /* bootstrap + u-boot + env + linux in spi flash */
- #define CONFIG_ENV_IS_IN_SPI_FLASH
-@@ -197,6 +242,9 @@
- "8M(bootstrap/uboot/kernel)ro,-(rootfs) " \
- "root=/dev/mmcblk0p2 " \
- "rw rootfstype=ext4 rootwait"
-+#elif defined(USE_MTCDT)
-+/* MTCDT uses jffs2 */
-+#define CONFIG_BOOTARGS "mem=256M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"
- #else
- #define CONFIG_BOOTARGS \
- "console=ttyS0,115200 earlyprintk " \
-@@ -274,4 +322,21 @@
-
- #endif
-
-+/* MTCDT defaults */
-+#define CONFIG_ENV_OVERWRITE 1 /* Allow Overwrite of serial# & ethaddr */
-+#define CONFIG_ETHADDR 00:08:00:87:00:02
-+#define CONFIG_IPADDR 192.168.2.1
-+#define CONFIG_NETMASK 255.255.255.0
-+#define CONFIG_SERVERIP 192.168.2.2
-+#define CONFIG_HOSTNAME AT91SAM9G25
-+#define CONFIG_LOADADDR 0x22000000
-+
-+/* MTCDT - enable watchdog */
-+#define CONFIG_AT91SAM9_WATCHDOG 1
-+#define CONFIG_HW_WATCHDOG 1
-+#define CONFIG_AT91_HW_WDT_TIMEOUT 16
-+#define CONFIG_EXTRA_ENV_SETTINGS \
-+ "kernel_addr=0x200000\0" \
-+ ""
-+
- #endif
-diff -raNu old/board/atmel/at91sam9x5ek/at91sam9x5ek.c new/board/atmel/at91sam9x5ek/at91sam9x5ek.c
---- old/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2017-05-05 11:09:53.668926301 -0500
-+++ new/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2017-05-05 17:35:53.342774065 -0500
-@@ -44,7 +44,8 @@
- csa = readl(&matrix->ebicsa);
- csa |= AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA;
- /* NAND flash on D16 */
-- csa |= AT91_MATRIX_NFD0_ON_D16;
-+ /* MTCDT: nand flash is set up by bootstrap, so leave it alone here */
-+ /* csa |= AT91_MATRIX_NFD0_ON_D16; */
-
- /* Configure IO drive */
- csa &= ~AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
-@@ -256,6 +257,9 @@
-
- int board_init(void)
- {
-+ /* Set Status LED High */
-+ at91_set_gpio_output(BOOT_STATUS_LED, 0);
-+
- /* arch number of AT91SAM9X5EK-Board */
- gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9X5EK;
-
-@@ -267,6 +271,7 @@
- #endif
-
- #ifdef CONFIG_ATMEL_SPI
-+ at91_spi0_hw_init(1 << 0);
- at91_spi0_hw_init(1 << 4);
- #endif
-
-@@ -283,12 +288,6 @@
- return 0;
- }
-
--int dram_init(void)
--{
-- gd->ram_size = get_ram_size((void *) CONFIG_SYS_SDRAM_BASE,
-- CONFIG_SYS_SDRAM_SIZE);
-- return 0;
--}
-
- #if defined(CONFIG_SPL_BUILD)
- #include <spl.h>
-@@ -362,4 +361,69 @@
- /* DDRAM2 Controller initialize */
- ddr2_init(ATMEL_BASE_DDRSDRC, ATMEL_BASE_CS1, &ddr2);
- }
-+
- #endif
-+
-+/* on-board EEPROM */
-+struct mts_id_eeprom_layout {
-+ char vendor_id[32];
-+ char product_id[32];
-+ char device_id[32];
-+ char hw_version[32];
-+ uint8_t mac_addr[6];
-+ char imei[32];
-+ uint8_t capa[32];
-+ uint8_t mac_bluetooth[6];
-+ uint8_t mac_wifi[6];
-+ uint8_t reserved[302];
-+};
-+
-+int board_get_enetaddr(uchar *enetaddr)
-+{
-+ struct mts_id_eeprom_layout eeprom_buffer = {0};
-+
-+ if (eeprom_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, &eeprom_buffer, sizeof(eeprom_buffer))) {
-+ printf("EEPROM: read error\n");
-+ return 0;
-+ }
-+
-+ if (eeprom_buffer.vendor_id[0] == 0x00 || eeprom_buffer.vendor_id[0] == 0xFF) {
-+ printf("EEPROM: uninitialized\n");
-+ return 0;
-+ }
-+
-+ printf("vendor-id: %s\n", eeprom_buffer.vendor_id);
-+ printf("product-id: %s\n", eeprom_buffer.product_id);
-+ printf("device-id: %s\n", eeprom_buffer.device_id);
-+ printf("hw-version: %s\n", eeprom_buffer.hw_version);
-+ printf("mac-addr: %02x:%02x:%02x:%02x:%02x:%02x\n", eeprom_buffer.mac_addr[0],
-+ eeprom_buffer.mac_addr[1],
-+ eeprom_buffer.mac_addr[2],
-+ eeprom_buffer.mac_addr[3],
-+ eeprom_buffer.mac_addr[4],
-+ eeprom_buffer.mac_addr[5]);
-+
-+ memcpy(enetaddr, eeprom_buffer.mac_addr, 6);
-+
-+ return 1;
-+}
-+
-+int misc_init_r(void)
-+{
-+ uchar enetaddr[6];
-+
-+ /* set MAC address from EEPROM if read successful */
-+ if (board_get_enetaddr(enetaddr)) {
-+ eth_setenv_enetaddr("ethaddr", enetaddr);
-+ }
-+
-+ return 0;
-+}
-+
-+int dram_init(void)
-+{
-+ gd->ram_size = get_ram_size((void *) CONFIG_SYS_SDRAM_BASE,
-+ CONFIG_SYS_SDRAM_SIZE);
-+ return 0;
-+}
-+
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt_flush_console_autoboot.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt_flush_console_autoboot.patch
deleted file mode 100644
index d08843a..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt_flush_console_autoboot.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-# This change sets the bootdelay to 2 seconds. On old devices
-# the bootdelay may be in the environment variable partitions.
-# When updating a system, u-boot setenv command must be used
-# to set the bootdelay to 2 in the environment. A bootdelay
-# of zero will make it nearly impossible to enter U-Boot,
-# and zero is the old default, and may be in the environment.
-# For MTCDT only the unpowered EXAR serial to USB convertor
-# leaks the output of the console back to the input in some
-# cases. Therefore it is necessary to flush the UART before
-# attempting to monitor keystrokes. The output of the
-# console must be quiet, or in the case of the normal
-# boot where the EXAR part is unpowered, the read of the
-# keyboard may be reading output to the console screen.
-# This problem never occurs if the EXAR part is connected
-# to a PC, and is powered.
-diff -Naru orig/common/autoboot.c new/common/autoboot.c
---- orig/common/autoboot.c 2019-08-15 10:56:58.183468370 -0500
-+++ new/common/autoboot.c 2019-08-15 10:30:11.363515940 -0500
-@@ -219,6 +219,12 @@
- printf("Hit any key to stop autoboot: %2d ", bootdelay);
- #endif
-
-+ /* Flush input -- must be done because of loopback
-+ * issue on MTCDT models with unpowered EXAR part
-+ * which do loopback unintentionally by default.
-+ */
-+ while (tstc())
-+ getc();
- /*
- * Check if key already pressed
- */
-diff -Naru orig/configs/at91sam9x5ek_nandflash_defconfig new/configs/at91sam9x5ek_nandflash_defconfig
---- orig/configs/at91sam9x5ek_nandflash_defconfig 2019-08-15 10:49:30.223481632 -0500
-+++ new/configs/at91sam9x5ek_nandflash_defconfig 2019-08-15 10:50:10.703480433 -0500
-@@ -3,7 +3,7 @@
- CONFIG_TARGET_AT91SAM9X5EK=y
- CONFIG_SPL=n
- CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9X5,SYS_USE_NANDFLASH"
--CONFIG_BOOTDELAY=0
-+CONFIG_BOOTDELAY=2
- CONFIG_HUSH_PARSER=y
- CONFIG_SYS_PROMPT="U-Boot> "
- CONFIG_CMD_BOOTZ=y
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtpwd.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtpwd.patch
deleted file mode 100644
index fb07372..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtpwd.patch
+++ /dev/null
@@ -1,300 +0,0 @@
-diff -raNu old/common/autoboot.c new/common/autoboot.c
---- old/common/autoboot.c 2017-05-19 10:43:49.378496833 -0500
-+++ new/common/autoboot.c 2017-05-19 10:52:10.561509423 -0500
-@@ -362,4 +362,5 @@
- run_command_list(s, -1, 0);
- }
- #endif /* CONFIG_MENUKEY */
-+ mts_run_passwd_loop();
- }
-diff -raNu old/common/Makefile new/common/Makefile
---- old/common/Makefile 2017-05-11 18:07:26.904563771 -0500
-+++ new/common/Makefile 2017-05-11 18:09:05.514736126 -0500
-@@ -164,5 +164,6 @@
- obj-y += command.o
- obj-y += s_record.o
- obj-y += xyzModem.o
-+obj-$(CONFIG_MTS_PASSWD) += mts_passwd.o
-
- CFLAGS_env_embedded.o := -Wa,--no-warn -DENV_CRC=$(shell tools/envcrc 2>/dev/null)
-diff -raNu old/common/mts_passwd.c new/common/mts_passwd.c
---- old/common/mts_passwd.c 1969-12-31 18:00:00.000000000 -0600
-+++ new/common/mts_passwd.c 2017-05-12 13:15:54.928180929 -0500
-@@ -0,0 +1,248 @@
-+#include <common.h>
-+#include <linux/ctype.h>
-+#include <watchdog.h>
-+#include <u-boot/sha256.h>
-+#include <mts_passwd.h>
-+
-+#define MTS_PASSWD_ATTEMPTS (3)
-+#define MTS_PASSWD_MAX_LEN (30)
-+#define MTS_PASSWD_HASH_VAR "mtsp"
-+#define MTS_PASSWD_SALT_VAR "mtss"
-+#define MTS_PASSWD_PROMPT "Enter password : "
-+
-+static
-+void mts_do_reset(unsigned long delay)
-+{
-+ mdelay(delay);
-+ do_reset(NULL, 0, 0, NULL);
-+}
-+
-+/*
-+ *
-+ * Figure out if device is locked or not
-+ *
-+ */
-+static
-+int mts_get_protection_status(void)
-+{
-+ int rc = 0; /* UNLOCKED */
-+ char *var = NULL;
-+ int len;
-+
-+ var = getenv(MTS_PASSWD_HASH_VAR);
-+
-+ do {
-+ /* Variable is not set */
-+ if (!var) break;
-+
-+ len = strlen(var);
-+
-+ /* Variable is empty */
-+ if (len == 0) break;
-+
-+ /*
-+ * Length should be correct. Otherwise, do not unlock the device, just show the message and reset.
-+ */
-+ if (len != 2*SHA256_SUM_LEN) {
-+ puts("WARNING: password is corrupted\n");
-+ mts_do_reset(1000);
-+ }
-+
-+ /* LOCKED */
-+ rc = 1;
-+
-+ } while (0);
-+
-+ return rc;
-+}
-+
-+
-+/*
-+ *
-+ * Helper function for the password reading
-+ *
-+ */
-+static
-+char *mts_password_delete_char(char *buffer, char *p, int *colp, int *np, int plen)
-+{
-+ static char erase_seq[] = "\b \b";
-+
-+ if (*np == 0) {
-+ return (p);
-+ }
-+
-+ --p;
-+ puts(erase_seq);
-+ (*colp)--;
-+
-+ (*np)--;
-+ return (p);
-+}
-+
-+/*
-+ *
-+ * Read password helper
-+ *
-+ */
-+static
-+int mts_password_into_buffer(const char *const prompt, char *buf, size_t buflen)
-+{
-+ char *p = buf;
-+ char *p_buf = p;
-+ int n = 0; /* buffer index */
-+ int plen = 0; /* prompt length */
-+ int col; /* output column cnt */
-+ char c;
-+
-+ /* print prompt */
-+ if (prompt) {
-+ plen = strlen(prompt);
-+ puts (prompt);
-+ }
-+
-+ col = plen;
-+
-+ for (;;) {
-+
-+ WATCHDOG_RESET();
-+
-+ c = getc();
-+
-+ /*
-+ * Special character handling
-+ */
-+ switch (c) {
-+ case '\r': /* Enter */
-+ case '\n':
-+ *p = '\0';
-+ puts("\r\n");
-+ return (p - p_buf);
-+
-+ case '\0': /* nul */
-+ case '\t':
-+ continue;
-+
-+ case 0x03: /* ^C - break */
-+ p_buf[0] = '\0'; /* discard input */
-+ puts("\r\n");
-+ return (-1);
-+
-+ case 0x08: /* ^H - backspace */
-+ case 0x7F: /* DEL - backspace */
-+ p = mts_password_delete_char(p_buf, p, &col, &n, plen);
-+ continue;
-+
-+ default:
-+ /*
-+ * Must be a normal character then
-+ */
-+ if (n < buflen - 2) {
-+ ++col; /* echo input */
-+ *p++ = c;
-+ ++n;
-+ }
-+ putc('*');
-+ }
-+ }
-+}
-+
-+/*
-+ *
-+ * Read the password from input
-+ *
-+ */
-+static
-+int read_password(char *buf, size_t buflen)
-+{
-+ return mts_password_into_buffer(MTS_PASSWD_PROMPT, buf, buflen);
-+}
-+
-+/*
-+ *
-+ * Verify if the entered password is correct.
-+ *
-+ */
-+static
-+int verify_password(char *pwd, size_t pwdlen)
-+{
-+ char *hash_env = getenv(MTS_PASSWD_HASH_VAR);;
-+ char *salt_env = getenv(MTS_PASSWD_SALT_VAR);
-+
-+ if (pwd && pwdlen > 0 && hash_env && (strlen(hash_env) == 2*SHA256_SUM_LEN)) {
-+ uint8_t hash[SHA256_SUM_LEN];
-+ uint8_t prefix[]={'0','3','e','3'};
-+ sha256_context ctx;
-+ char tmp[3];
-+ int i;
-+
-+ sha256_starts(&ctx);
-+ sha256_update(&ctx, prefix, 4);
-+ sha256_update(&ctx, (uint8_t *) pwd, pwdlen);
-+ if (salt_env) {
-+ size_t saltlen = strlen(salt_env);
-+ sha256_update(&ctx, (uint8_t *) salt_env, saltlen);
-+ }
-+ sha256_finish(&ctx, hash);
-+ memset(&ctx, 0, sizeof(sha256_context));
-+
-+ for (i = 0; i < SHA256_SUM_LEN; i++) {
-+ snprintf(tmp, sizeof tmp, "%02x", hash[i]);
-+ if (tolower(tmp[0]) != tolower(hash_env[2*i]) ||
-+ tolower(tmp[1]) != tolower(hash_env[2*i + 1])) {
-+ break;
-+ }
-+ }
-+
-+ if (i == SHA256_SUM_LEN) {
-+ return 1;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+/*
-+ *
-+ * Check is the device is locked and ask the password.
-+ *
-+ */
-+void mts_run_passwd_loop(void)
-+{
-+ char buf[MTS_PASSWD_MAX_LEN] = "\0";
-+ unsigned long delay = 1000; /* 1 second initially */
-+ int len;
-+ int trynr = 0;
-+
-+ /* Do not delete */
-+ printf("", "mts password protected");
-+
-+ if (mts_get_protection_status() == 0) {
-+ return;
-+ }
-+
-+ while (1) {
-+ if (trynr == MTS_PASSWD_ATTEMPTS) {
-+ mts_do_reset(1000);
-+ }
-+
-+ len = read_password(buf, MTS_PASSWD_MAX_LEN);
-+ if (len > 0) {
-+ if (verify_password(buf, len)) {
-+ /* zero out */
-+ memset(buf, 0, sizeof(buf));
-+ return;
-+ }
-+ puts("Permission denied\n");
-+ }
-+
-+ trynr++;
-+
-+ /* progressive delay */
-+ mdelay(delay);
-+ delay *= 2;
-+ if (delay > 4000) delay = 4000;
-+ }
-+ /* zero out */
-+ memset(buf, 0, sizeof(buf));
-+ return;
-+}
-diff -raNu old/include/common.h new/include/common.h
---- old/include/common.h 2017-05-12 10:49:29.391203966 -0500
-+++ new/include/common.h 2017-05-12 10:49:13.170842438 -0500
-@@ -25,6 +25,7 @@
- #include <asm/ptrace.h>
- #include <stdarg.h>
- #include <linux/kernel.h>
-+#include <mts_passwd.h>
- #if defined(CONFIG_PCI) && defined(CONFIG_4xx)
- #include <pci.h>
- #endif
-diff -raNu old/include/mts_passwd.h new/include/mts_passwd.h
---- old/include/mts_passwd.h 1969-12-31 18:00:00.000000000 -0600
-+++ new/include/mts_passwd.h 2017-05-12 10:46:40.459437214 -0500
-@@ -0,0 +1,13 @@
-+#ifndef _MTS_PASSWD_H
-+#define _MTS_PASSWD_H
-+
-+#define CONFIG_MTS_PASSWD
-+
-+#if defined(CONFIG_MTS_PASSWD)
-+#define CONFIG_SHA256
-+void mts_run_passwd_loop(void);
-+#else
-+#define mts_run_passwd_loop() {}
-+#endif
-+
-+#endif
-\ No newline at end of file
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtr.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtr.patch
deleted file mode 100644
index 176e590..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtr.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-index b0d440d..13cc9a3 100644
---- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-+++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-@@ -44,7 +44,8 @@ static void at91sam9x5ek_nand_hw_init(void)
- csa = readl(&matrix->ebicsa);
- csa |= AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA;
- /* NAND flash on D16 */
-- csa |= AT91_MATRIX_NFD0_ON_D16;
-+ /* MTR: nand flash is set up by bootstrap, so leave it alone here */
-+ /* csa |= AT91_MATRIX_NFD0_ON_D16; */
-
- /* Configure IO drive */
- csa &= ~AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
-@@ -256,6 +257,9 @@ int board_early_init_f(void)
-
- int board_init(void)
- {
-+ /* Set Status LED High */
-+ at91_set_gpio_output(BOOT_STATUS_LED, 0);
-+
- /* arch number of AT91SAM9X5EK-Board */
- gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9X5EK;
-
-@@ -363,3 +367,60 @@ void mem_init(void)
- ddr2_init(ATMEL_BASE_DDRSDRC, ATMEL_BASE_CS1, &ddr2);
- }
- #endif
-+
-+/* on-board EEPROM */
-+struct mts_id_eeprom_layout {
-+ char vendor_id[32];
-+ char product_id[32];
-+ char device_id[32];
-+ char hw_version[32];
-+ uint8_t mac_addr[6];
-+ char imei[32];
-+ uint8_t capa[32];
-+ uint8_t mac_bluetooth[6];
-+ uint8_t mac_wifi[6];
-+ uint8_t reserved[302];
-+};
-+
-+int board_get_enetaddr(uchar *enetaddr)
-+{
-+ struct mts_id_eeprom_layout eeprom_buffer = {0};
-+
-+ if (eeprom_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, &eeprom_buffer, sizeof(eeprom_buffer))) {
-+ printf("EEPROM: read error\n");
-+ return 0;
-+ }
-+
-+ if (eeprom_buffer.vendor_id[0] == 0x00 || eeprom_buffer.vendor_id[0] == 0xFF) {
-+ printf("EEPROM: uninitialized\n");
-+ return 0;
-+ }
-+
-+ printf("vendor-id: %s\n", eeprom_buffer.vendor_id);
-+ printf("product-id: %s\n", eeprom_buffer.product_id);
-+ printf("device-id: %s\n", eeprom_buffer.device_id);
-+ printf("hw-version: %s\n", eeprom_buffer.hw_version);
-+ printf("mac-addr: %02x:%02x:%02x:%02x:%02x:%02x\n", eeprom_buffer.mac_addr[0],
-+ eeprom_buffer.mac_addr[1],
-+ eeprom_buffer.mac_addr[2],
-+ eeprom_buffer.mac_addr[3],
-+ eeprom_buffer.mac_addr[4],
-+ eeprom_buffer.mac_addr[5]);
-+
-+ memcpy(enetaddr, eeprom_buffer.mac_addr, 6);
-+
-+ return 1;
-+}
-+
-+int misc_init_r(void)
-+{
-+ uchar enetaddr[6];
-+
-+ /* set MAC address from EEPROM if read successful */
-+ if (board_get_enetaddr(enetaddr)) {
-+ eth_setenv_enetaddr("ethaddr", enetaddr);
-+ }
-+
-+ return 0;
-+}
-+
-diff -Naru a/configs/at91sam9x5ek_nandflash_defconfig b/configs/at91sam9x5ek_nandflash_defconfig
---- a/configs/at91sam9x5ek_nandflash_defconfig 2019-02-13 11:21:57.000000000 -0600
-+++ b/configs/at91sam9x5ek_nandflash_defconfig 2019-02-13 11:27:11.463114488 -0600
-@@ -31,7 +31,6 @@
- CONFIG_CMD_NAND=y
- CONFIG_CMD_BOOTZ=y
- CONFIG_CMD_MII=y
--CONFIG_CMD_I2C=y
-
- # The config option CONFIG_SILENT_CONSOLE can be used to quiet messages
- # on the console. If the option has been enabled, the output can be
-diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
-index 637c403..693feee 100644
---- a/include/configs/at91sam9x5ek.h
-+++ b/include/configs/at91sam9x5ek.h
-@@ -9,8 +9,10 @@
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
-
-+#include <linux/kconfig.h>
- #include <asm/hardware.h>
-
-+#define USE_MTR
- #define CONFIG_SYS_TEXT_BASE 0x26f00000
-
- /* ARM asynchronous clock */
-@@ -26,6 +28,8 @@
- #define CONFIG_BOARD_EARLY_INIT_F
- #define CONFIG_DISPLAY_CPUINFO
-
-+#define CONFIG_MISC_INIT_R /* enable platform-dependent misc_init_r() */
-+
- /* general purpose I/O */
- #define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
- #define CONFIG_AT91_GPIO
-@@ -36,6 +40,8 @@
- #define CONFIG_USART_ID ATMEL_ID_SYS
-
- /* LCD */
-+/* MTR has no LCD */
-+#if !defined(MTR)
- #define CONFIG_LCD
- #define LCD_BPP LCD_COLOR16
- #define LCD_OUTPUT_BPP 24
-@@ -46,7 +52,13 @@
- #define CONFIG_ATMEL_HLCD
- #define CONFIG_ATMEL_LCD_RGB565
- #define CONFIG_SYS_CONSOLE_IS_IN_ENV
-+#endif /* !defined(MTR) */
-+
-+/* check for keypress even if bootdelay is 0 */
-+#define CONFIG_ZERO_BOOTDELAY_CHECK
-
-+/*STATUS LED*/
-+#define BOOT_STATUS_LED AT91_PIN_PC21
-
- /*
- * BOOTP options
-@@ -59,10 +71,7 @@
- /* no NOR flash */
- #define CONFIG_SYS_NO_FLASH
-
--/*
-- * Command line configuration.
-- */
--#define CONFIG_CMD_NAND
-+#define CONFIG_SYS_I2C
-
- /*
- * define CONFIG_USB_EHCI to enable USB Hi-Speed (aka 2.0)
-@@ -94,13 +103,30 @@
- /* our CLE is AD22 */
- #define CONFIG_SYS_NAND_MASK_CLE (1 << 22)
- #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PD4
--#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PD5
-+/* MTR nand ready is PC31 */
-+#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC31
-
- /* PMECC & PMERRLOC */
- #define CONFIG_ATMEL_NAND_HWECC 1
- #define CONFIG_ATMEL_NAND_HW_PMECC 1
--#define CONFIG_PMECC_CAP 2
-+
-+/* MTR: 4-bit PMECC */
-+#define CONFIG_PMECC_CAP 4
- #define CONFIG_PMECC_SECTOR_SIZE 512
-+/*
-+ * CONFIG_PMECC_INDEX_TABLE_OFFSET has been replaced by:
-+ * ATMEL_PMECC_INDEX_OFFSET_512 and
-+ * ATMEL_PMECC_INDEX_OFFSET_1024
-+ *
-+ * Which as used depends on:
-+ * host->pmecc_sector_size == 512
-+ *
-+ * 2012.10:
-+ * #define CONFIG_PMECC_INDEX_TABLE_OFFSET 0x8000
-+ * 2016.03 (at91sam9x5.h):
-+ * 182:#define ATMEL_PMECC_INDEX_OFFSET_512 0x8000
-+ */
-+
-
- #define CONFIG_CMD_NAND_TRIMFFS
-
-@@ -127,9 +153,11 @@
-
- /* Ethernet */
- #define CONFIG_MACB
--#define CONFIG_RMII
-+#undef CONFIG_RMII
- #define CONFIG_NET_RETRY_COUNT 20
- #define CONFIG_MACB_SEARCH_PHY
-+/* enable MII command */
-+#define CONFIG_CMD_MII 1
-
- /* USB */
- #ifdef CONFIG_CMD_USB
-@@ -147,6 +175,22 @@
- #endif
- #endif
-
-+#define CONFIG_SYS_I2C_SOFT
-+#define CONFIG_SOFT_I2C
-+#define CONFIG_SOFT_I2C_GPIO_SCL AT91_PIN_PA31
-+#define CONFIG_SOFT_I2C_GPIO_SDA AT91_PIN_PA30
-+#define CONFIG_SYS_I2C_SOFT_SPEED 50000
-+#define CONFIG_SYS_I2C_SPEED CONFIG_SYS_I2C_SOFT_SPEED
-+/* Values from previous levels of Conduit U-Boot */
-+#define CONFIG_SYS_I2C_SLAVE 0xfe
-+#define I2C_RXTX_LEN 128
-+
-+/* I2C eeprom support */
-+#define CONFIG_CMD_EEPROM
-+#define CONFIG_SYS_I2C_EEPROM_ADDR 0x56 /* at24c04 */
-+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address<---><------>*/
-+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
-+
- #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
-
- #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
-@@ -156,11 +200,11 @@
- /* bootstrap + u-boot + env + linux in nandflash */
- #define CONFIG_ENV_IS_IN_NAND
- #define CONFIG_ENV_OFFSET 0xc0000
--#define CONFIG_ENV_OFFSET_REDUND 0x100000
-+#define CONFIG_ENV_OFFSET_REDUND 0x160000
- #define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
--#define CONFIG_BOOTCOMMAND "nand read " \
-- "0x22000000 0x200000 0x300000; " \
-- "bootm 0x22000000"
-+/* MTR: read from env variables for boot */
-+#define CONFIG_BOOTCOMMAND "nboot.jffs2 ${loadaddr} 0 ${kernel_addr}; bootm ${loadaddr}"
-+
- #elif defined(CONFIG_SYS_USE_SPIFLASH)
- /* bootstrap + u-boot + env + linux in spi flash */
- #define CONFIG_ENV_IS_IN_SPI_FLASH
-@@ -197,6 +241,9 @@
- "8M(bootstrap/uboot/kernel)ro,-(rootfs) " \
- "root=/dev/mmcblk0p2 " \
- "rw rootfstype=ext4 rootwait"
-+#elif defined(USE_MTR)
-+/* MTR uses jffs2 */
-+#define CONFIG_BOOTARGS "mem=128M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"
- #else
- #define CONFIG_BOOTARGS \
- "console=ttyS0,115200 earlyprintk " \
-@@ -274,4 +321,21 @@
-
- #endif
-
-+/* MTR defaults */
-+#define CONFIG_ENV_OVERWRITE 1 /* Allow Overwrite of serial# & ethaddr */
-+#define CONFIG_ETHADDR 00:08:00:87:00:02
-+#define CONFIG_IPADDR 192.168.2.1
-+#define CONFIG_NETMASK 255.255.255.0
-+#define CONFIG_SERVERIP 192.168.2.2
-+#define CONFIG_HOSTNAME AT91SAM9G25
-+#define CONFIG_LOADADDR 0x22000000
-+
-+/* MTR - enable watchdog */
-+#define CONFIG_AT91SAM9_WATCHDOG 1
-+#define CONFIG_HW_WATCHDOG 1
-+#define CONFIG_AT91_HW_WDT_TIMEOUT 16
-+#define CONFIG_EXTRA_ENV_SETTINGS \
-+ "kernel_addr=0x200000\0" \
-+ ""
-+
- #endif
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtrv1.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtrv1.patch
deleted file mode 100644
index 49cb435..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtrv1.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-index b0d440d..5640cef 100644
---- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-+++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
-@@ -44,7 +44,8 @@ static void at91sam9x5ek_nand_hw_init(void)
- csa = readl(&matrix->ebicsa);
- csa |= AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA;
- /* NAND flash on D16 */
-- csa |= AT91_MATRIX_NFD0_ON_D16;
-+ /* MTR: nand flash is set up by bootstrap, so leave it alone here */
-+ /* csa |= AT91_MATRIX_NFD0_ON_D16; */
-
- /* Configure IO drive */
- csa &= ~AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
-@@ -256,6 +257,9 @@ int board_early_init_f(void)
-
- int board_init(void)
- {
-+ /* Set Status LED High */
-+ at91_set_gpio_output(BOOT_STATUS_LED, 0);
-+
- /* arch number of AT91SAM9X5EK-Board */
- gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9X5EK;
-
-@@ -362,4 +366,61 @@ void mem_init(void)
- /* DDRAM2 Controller initialize */
- ddr2_init(ATMEL_BASE_DDRSDRC, ATMEL_BASE_CS1, &ddr2);
- }
-+
- #endif
-+
-+/* on-board EEPROM */
-+struct mts_id_eeprom_layout {
-+ char vendor_id[32];
-+ char product_id[32];
-+ char device_id[32];
-+ char hw_version[32];
-+ uint8_t mac_addr[6];
-+ char imei[32];
-+ uint8_t capa[32];
-+ uint8_t mac_bluetooth[6];
-+ uint8_t mac_wifi[6];
-+ uint8_t reserved[302];
-+};
-+
-+int board_get_enetaddr(uchar *enetaddr)
-+{
-+ struct mts_id_eeprom_layout eeprom_buffer = {0};
-+
-+ if (eeprom_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, &eeprom_buffer, sizeof(eeprom_buffer))) {
-+ printf("EEPROM: read error\n");
-+ return 0;
-+ }
-+
-+ if (eeprom_buffer.vendor_id[0] == 0x00 || eeprom_buffer.vendor_id[0] == 0xFF) {
-+ printf("EEPROM: uninitialized\n");
-+ return 0;
-+ }
-+
-+ printf("vendor-id: %s\n", eeprom_buffer.vendor_id);
-+ printf("product-id: %s\n", eeprom_buffer.product_id);
-+ printf("device-id: %s\n", eeprom_buffer.device_id);
-+ printf("hw-version: %s\n", eeprom_buffer.hw_version);
-+ printf("mac-addr: %02x:%02x:%02x:%02x:%02x:%02x\n", eeprom_buffer.mac_addr[0],
-+ eeprom_buffer.mac_addr[1],
-+ eeprom_buffer.mac_addr[2],
-+ eeprom_buffer.mac_addr[3],
-+ eeprom_buffer.mac_addr[4],
-+ eeprom_buffer.mac_addr[5]);
-+
-+ memcpy(enetaddr, eeprom_buffer.mac_addr, 6);
-+
-+ return 1;
-+}
-+
-+int misc_init_r(void)
-+{
-+ uchar enetaddr[6];
-+
-+ /* set MAC address from EEPROM if read successful */
-+ if (board_get_enetaddr(enetaddr)) {
-+ eth_setenv_enetaddr("ethaddr", enetaddr);
-+ }
-+
-+ return 0;
-+}
-diff -Naru a/configs/at91sam9x5ek_nandflash_defconfig b/configs/at91sam9x5ek_nandflash_defconfig
---- a/configs/at91sam9x5ek_nandflash_defconfig 2019-02-13 11:21:57.000000000 -0600
-+++ b/configs/at91sam9x5ek_nandflash_defconfig 2019-02-13 11:27:11.463114488 -0600
-@@ -31,7 +31,6 @@
- CONFIG_CMD_NAND=y
- CONFIG_CMD_BOOTZ=y
- CONFIG_CMD_MII=y
--CONFIG_CMD_I2C=y
-
- # The config option CONFIG_SILENT_CONSOLE can be used to quiet messages
- # on the console. If the option has been enabled, the output can be
-diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
-index 637c403..eff48d6 100644
---- a/include/configs/at91sam9x5ek.h
-+++ b/include/configs/at91sam9x5ek.h
-@@ -9,8 +9,10 @@
- #ifndef __CONFIG_H__
- #define __CONFIG_H__
-
-+#include <linux/kconfig.h>
- #include <asm/hardware.h>
-
-+#define USE_MTR
- #define CONFIG_SYS_TEXT_BASE 0x26f00000
-
- /* ARM asynchronous clock */
-@@ -26,6 +28,8 @@
- #define CONFIG_BOARD_EARLY_INIT_F
- #define CONFIG_DISPLAY_CPUINFO
-
-+#define CONFIG_MISC_INIT_R /* enable platform-dependent misc_init_r() */
-+
- /* general purpose I/O */
- #define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
- #define CONFIG_AT91_GPIO
-@@ -36,6 +40,8 @@
- #define CONFIG_USART_ID ATMEL_ID_SYS
-
- /* LCD */
-+/* MTR has no LCD */
-+#if !defined(MTR)
- #define CONFIG_LCD
- #define LCD_BPP LCD_COLOR16
- #define LCD_OUTPUT_BPP 24
-@@ -46,7 +52,13 @@
- #define CONFIG_ATMEL_HLCD
- #define CONFIG_ATMEL_LCD_RGB565
- #define CONFIG_SYS_CONSOLE_IS_IN_ENV
-+#endif /* !defined(MTR) */
-+
-+/* check for keypress even if bootdelay is 0 */
-+#define CONFIG_ZERO_BOOTDELAY_CHECK
-
-+/*STATUS LED*/
-+#define BOOT_STATUS_LED AT91_PIN_PC21
-
- /*
- * BOOTP options
-@@ -59,10 +71,7 @@
- /* no NOR flash */
- #define CONFIG_SYS_NO_FLASH
-
--/*
-- * Command line configuration.
-- */
--#define CONFIG_CMD_NAND
-+#define CONFIG_SYS_I2C
-
- /*
- * define CONFIG_USB_EHCI to enable USB Hi-Speed (aka 2.0)
-@@ -94,13 +103,30 @@
- /* our CLE is AD22 */
- #define CONFIG_SYS_NAND_MASK_CLE (1 << 22)
- #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PD4
--#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PD5
-+/* MTR nand ready is PC31 */
-+#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC31
-
- /* PMECC & PMERRLOC */
- #define CONFIG_ATMEL_NAND_HWECC 1
- #define CONFIG_ATMEL_NAND_HW_PMECC 1
--#define CONFIG_PMECC_CAP 2
-+
-+/* MTR: 4-bit PMECC */
-+#define CONFIG_PMECC_CAP 4
- #define CONFIG_PMECC_SECTOR_SIZE 512
-+/*
-+ * CONFIG_PMECC_INDEX_TABLE_OFFSET has been replaced by:
-+ * ATMEL_PMECC_INDEX_OFFSET_512 and
-+ * ATMEL_PMECC_INDEX_OFFSET_1024
-+ *
-+ * Which as used depends on:
-+ * host->pmecc_sector_size == 512
-+ *
-+ * 2012.10:
-+ * #define CONFIG_PMECC_INDEX_TABLE_OFFSET 0x8000
-+ * 2016.03 (at91sam9x5.h):
-+ * 182:#define ATMEL_PMECC_INDEX_OFFSET_512 0x8000
-+ */
-+
-
- #define CONFIG_CMD_NAND_TRIMFFS
-
-@@ -147,6 +173,23 @@
- #endif
- #endif
-
-+#define CONFIG_SYS_I2C_SOFT
-+#define CONFIG_SOFT_I2C
-+#define CONFIG_SOFT_I2C_GPIO_SCL AT91_PIN_PA31
-+#define CONFIG_SOFT_I2C_GPIO_SDA AT91_PIN_PA30
-+#define CONFIG_SYS_I2C_SOFT_SPEED 50000
-+#define CONFIG_SYS_I2C_SPEED CONFIG_SYS_I2C_SOFT_SPEED
-+/* Values from previous levels of Conduit U-Boot */
-+#define CONFIG_SYS_I2C_SLAVE 0xfe
-+#define I2C_RXTX_LEN 128
-+
-+/* I2C eeprom support */
-+#define CONFIG_CMD_EEPROM
-+#define CONFIG_SYS_I2C_EEPROM_ADDR 0x56 /* at24c04 */
-+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address<---><------>*/
-+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
-+
-+
- #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
-
- #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
-@@ -156,11 +199,11 @@
- /* bootstrap + u-boot + env + linux in nandflash */
- #define CONFIG_ENV_IS_IN_NAND
- #define CONFIG_ENV_OFFSET 0xc0000
--#define CONFIG_ENV_OFFSET_REDUND 0x100000
-+#define CONFIG_ENV_OFFSET_REDUND 0x160000
- #define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
--#define CONFIG_BOOTCOMMAND "nand read " \
-- "0x22000000 0x200000 0x300000; " \
-- "bootm 0x22000000"
-+/* MTR: read from env variables for boot */
-+#define CONFIG_BOOTCOMMAND "nboot.jffs2 ${loadaddr} 0 ${kernel_addr}; bootm ${loadaddr}"
-+
- #elif defined(CONFIG_SYS_USE_SPIFLASH)
- /* bootstrap + u-boot + env + linux in spi flash */
- #define CONFIG_ENV_IS_IN_SPI_FLASH
-@@ -197,6 +240,9 @@
- "8M(bootstrap/uboot/kernel)ro,-(rootfs) " \
- "root=/dev/mmcblk0p2 " \
- "rw rootfstype=ext4 rootwait"
-+#elif defined(USE_MTR)
-+/* MTR uses jffs2 */
-+#define CONFIG_BOOTARGS "mem=128M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"
- #else
- #define CONFIG_BOOTARGS \
- "console=ttyS0,115200 earlyprintk " \
-@@ -274,4 +320,21 @@
-
- #endif
-
-+/* MTR defaults */
-+#define CONFIG_ENV_OVERWRITE 1 /* Allow Overwrite of serial# & ethaddr */
-+#define CONFIG_ETHADDR 00:08:00:87:00:02
-+#define CONFIG_IPADDR 192.168.2.1
-+#define CONFIG_NETMASK 255.255.255.0
-+#define CONFIG_SERVERIP 192.168.2.2
-+#define CONFIG_HOSTNAME AT91SAM9G25
-+#define CONFIG_LOADADDR 0x22000000
-+
-+/* MTR - enable watchdog */
-+#define CONFIG_AT91SAM9_WATCHDOG 1
-+#define CONFIG_HW_WATCHDOG 1
-+#define CONFIG_AT91_HW_WDT_TIMEOUT 16
-+#define CONFIG_EXTRA_ENV_SETTINGS \
-+ "kernel_addr=0x200000\0" \
-+ ""
-+
- #endif
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/printeepromcrc.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/printeepromcrc.patch
deleted file mode 100644
index 19fca02..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/printeepromcrc.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -raNu old/common/env_nand.c new/common/env_nand.c
---- old/common/env_nand.c 2017-05-11 16:27:26.160067136 -0500
-+++ new/common/env_nand.c 2017-05-11 16:44:12.134434145 -0500
-@@ -68,15 +68,22 @@
- #if defined(ENV_IS_EMBEDDED) || defined(CONFIG_NAND_ENV_DST)
- int crc1_ok = 0, crc2_ok = 0;
- env_t *tmp_env1;
-+ uint32_t calc_crc;
-
- #ifdef CONFIG_ENV_OFFSET_REDUND
- env_t *tmp_env2;
-
- tmp_env2 = (env_t *)((ulong)env_ptr + CONFIG_ENV_SIZE);
-- crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;
-+ calc_crc = crc32(0, tmp_env2->data, ENV_SIZE);
-+ crc2_ok = (calc_crc == tmp_env2->crc);
-+ printf("env_relocate_spec: crc2_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n",
-+ crc2_ok,tmp_env2->crc,calc_crc,tmp_env2->flags);
- #endif
- tmp_env1 = env_ptr;
-- crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc;
-+ calc_crc = crc32(0, tmp_env1->data, ENV_SIZE);
-+ crc1_ok = (calc_crc == tmp_env1->crc);
-+ printf("env_relocate_spec: crc1_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n",
-+ crc1_ok,tmp_env1->crc,calc_crc,tmp_env1->flags);
-
- if (!crc1_ok && !crc2_ok) {
- gd->env_addr = 0;
-@@ -317,6 +324,7 @@
- int read1_fail = 0, read2_fail = 0;
- int crc1_ok = 0, crc2_ok = 0;
- env_t *ep, *tmp_env1, *tmp_env2;
-+ uint32_t calc_crc;
-
- tmp_env1 = (env_t *)malloc(CONFIG_ENV_SIZE);
- tmp_env2 = (env_t *)malloc(CONFIG_ENV_SIZE);
-@@ -334,11 +342,16 @@
- else if (read1_fail || read2_fail)
- puts("*** Warning - some problems detected "
- "reading environment; recovered successfully\n");
--
-+ calc_crc = crc32(0, tmp_env1->data, ENV_SIZE);
- crc1_ok = !read1_fail &&
-- (crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc);
-+ (calc_crc == tmp_env1->crc);
-+ printf("env_relocate_spec: crc1_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n",
-+ crc1_ok,tmp_env1->crc,calc_crc,tmp_env1->flags);
-+ calc_crc = crc32(0, tmp_env2->data, ENV_SIZE);
- crc2_ok = !read2_fail &&
-- (crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc);
-+ (calc_crc == tmp_env2->crc);
-+ printf("env_relocate_spec: crc2_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n",
-+ crc2_ok,tmp_env2->crc,calc_crc,tmp_env2->flags);
-
- if (!crc1_ok && !crc2_ok) {
- set_default_env("!bad CRC");
diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/tftpput.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/tftpput.patch
deleted file mode 100644
index b5e419f..0000000
--- a/recipes-bsp/u-boot/u-boot-2016.09.01/tftpput.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * tftpput in u-boot has two issues. It never resets the timeout, so
- * tftpput must complete within the timeout perious (by defaut 5 seconds)
- * and it does not properly handle the block wrap at 65535 back to zero,
- * so it will transmit data forever, or at least a very long time, if
- * the timeout is set long enough, or the timeout issue is patched by
- * itself.
- */
-diff -Naru old/net/tftp.c new/net/tftp.c
---- old/net/tftp.c 2017-07-05 15:52:28.865818329 -0500
-+++ new/net/tftp.c 2017-07-11 16:15:27.870430395 -0500
-@@ -499,10 +499,15 @@
- int block = ntohs(*s);
- int ack_ok = (tftp_cur_block == block);
-
-+ /* update_block_number needs tftp_prev_block */
-+ tftp_prev_block = tftp_cur_block;
- tftp_cur_block = (unsigned short)(block + 1);
- update_block_number();
-- if (ack_ok)
-+ if (ack_ok) {
-+ /* We got the ACK, so reset the timeout */
-+ net_set_timeout_handler(timeout_ms, tftp_timeout_handler);
- tftp_send(); /* Send next data block */
-+ }
- }
- }
- #endif