From 208ad572b5e0ac35a00f680ef4399635c93471e9 Mon Sep 17 00:00:00 2001 From: John Klug Date: Thu, 4 May 2017 18:15:19 -0500 Subject: Slowly working through the feature test macros/configs of u-boot 2016.09.01 --- .../u-boot/u-boot-2016.09.01/mtcdt/config.patch | 28 ++ .../u-boot/u-boot-2016.09.01/mtcdt/i2c.patch | 6 +- .../u-boot/u-boot-2016.09.01/mtcdt/mtcdt.patch | 294 ++++++--------------- .../u-boot/u-boot-2016.09.01/mtcdt/spl.patch | 12 - 4 files changed, 110 insertions(+), 230 deletions(-) create mode 100644 recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/config.patch delete mode 100644 recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/spl.patch (limited to 'recipes-bsp/u-boot') diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/config.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/config.patch new file mode 100644 index 0000000..75dd42b --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/config.patch @@ -0,0 +1,28 @@ +diff -raNu old/configs/at91sam9x5ek_nandflash_defconfig new/configs/at91sam9x5ek_nandflash_defconfig +--- old/configs/at91sam9x5ek_nandflash_defconfig 2017-05-04 14:33:41.143172324 -0500 ++++ new/configs/at91sam9x5ek_nandflash_defconfig 2017-05-04 17:54:27.132377607 -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 +@@ -23,3 +23,12 @@ + CONFIG_USB=y + CONFIG_USB_STORAGE=y + CONFIG_OF_LIBFDT=y ++ ++CONFIG_OF_CONTROL=y ++CONFIG_CMD_TFTPPUT=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_NAND=y ++CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_MII=y ++CONFIG_CMD_I2C=y diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/i2c.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/i2c.patch index af726a3..ba9ca44 100644 --- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/i2c.patch +++ b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/i2c.patch @@ -1,6 +1,6 @@ -diff -raNu git.orig/include/i2c.h git/include/i2c.h ---- git.orig/include/i2c.h 2017-04-28 17:26:27.854898005 -0500 -+++ git/include/i2c.h 2017-05-01 17:27:32.673437788 -0500 +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_ diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/mtcdt.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/mtcdt.patch index b44b925..c33e422 100644 --- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/mtcdt.patch +++ b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/mtcdt.patch @@ -1,209 +1,73 @@ -diff -raNu git.orig/board/atmel/at91sam9x5ek/at91sam9x5ek.c git/board/atmel/at91sam9x5ek/at91sam9x5ek.c ---- git.orig/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2017-04-26 12:52:49.565662228 -0500 -+++ git/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2017-04-27 12:40:44.426149774 -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; - -@@ -283,6 +287,20 @@ - return 0; - } - -+/* 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 dram_init(void) - { - gd->ram_size = get_ram_size((void *) CONFIG_SYS_SDRAM_BASE, -@@ -305,6 +323,48 @@ - #endif - } - -+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; -+} -+ - #include - static void ddr2_conf(struct atmel_mpddrc_config *ddr2) - { -diff -raNu git.orig/include/configs/at91sam9x5ek.h git/include/configs/at91sam9x5ek.h ---- git.orig/include/configs/at91sam9x5ek.h 2017-04-26 10:56:03.169006861 -0500 -+++ git/include/configs/at91sam9x5ek.h 2017-04-28 18:06:58.793553712 -0500 -@@ -11,7 +11,8 @@ - +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-04 18:11:04.366618638 -0500 +@@ -9,9 +9,12 @@ + #ifndef __CONFIG_H__ + #define __CONFIG_H__ + ++#include #include -#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 -@@ -24,6 +25,7 @@ - #define CONFIG_INITRD_TAG - #define CONFIG_SKIP_LOWLEVEL_INIT +@@ -26,6 +29,9 @@ #define CONFIG_BOARD_EARLY_INIT_F -+#define CONFIG_MISC_INIT_R /* enable platform-dependent misc_init_r() */ #define CONFIG_DISPLAY_CPUINFO - #define CONFIG_CMD_BOOTZ -@@ -40,6 +42,8 @@ ++ ++#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 +42,8 @@ #define CONFIG_USART_ID ATMEL_ID_SYS /* LCD */ +/* MTCDT has no LCD */ -+#ifndef MTCDT ++#if !defined(MTCDT) #define CONFIG_LCD #define LCD_BPP LCD_COLOR16 #define LCD_OUTPUT_BPP 24 -@@ -50,8 +54,14 @@ +@@ -46,8 +54,15 @@ #define CONFIG_ATMEL_HLCD #define CONFIG_ATMEL_LCD_RGB565 #define CONFIG_SYS_CONSOLE_IS_IN_ENV -+#endif ++#endif /* !defined(MTCDT) */ + -+/*STATUS LED*/ -+#define BOOT_STATUS_LED AT91_PIN_PA24 - --#define CONFIG_BOOTDELAY 3 -+#define CONFIG_BOOTDELAY 0 +/* check for keypress even if bootdelay is 0 */ +#define CONFIG_ZERO_BOOTDELAY_CHECK + ++/*STATUS LED*/ ++#define BOOT_STATUS_LED AT91_PIN_PA24 ++ /* * BOOTP options -@@ -67,6 +77,23 @@ - /* - * Command line configuration. */ +@@ -59,10 +74,13 @@ + /* no NOR flash */ + #define CONFIG_SYS_NO_FLASH + +-/* +- * Command line configuration. +/* Compat needed or i2c read/write/init is not defined */ +#define CONFIG_DM_I2C_COMPAT ++ +/* Required to prevent conflicting definitions of + * I2C_GET_BUS and I2C_SET_BUS -+ */ + */ +-#define CONFIG_CMD_NAND +#define CONFIG_DM_I2C -+/* COMPAT above requires CONFIG_SYS_I2C or definitions -+ for inline functions like i2c_reg_read are -+ inconsistant. -+ */ -+ -+/* -+ * | include/config_fallbacks.h:96:4: error: #error "Cannot define CONFIG_SYS_I2C when CONFIG_DM_I2C is used" -+ * | # error "Cannot define CONFIG_SYS_I2C when CONFIG_DM_I2C is used" -+ * | ^~~~~ -+ */ -+ - #define CONFIG_CMD_PING - #define CONFIG_CMD_DHCP - #define CONFIG_CMD_NAND -@@ -74,6 +101,41 @@ - #define CONFIG_CMD_MMC - #define CONFIG_CMD_FAT - #define CONFIG_CMD_USB -+#define CONFIG_CMD_I2C -+#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 -+ -+ -+/* Problems: -+ * -+ * ENAME=KBUILD_STR(help)" -D"KBUILD_MODNAME=KBUILD_STR(help)" -c -o cmd/help.o cmd/help.c -+| drivers/i2c/soft_i2c.c:300:34: warning: 'struct i2c_adapter' declared inside parameter list will not be visible outside of this definition or declaration -+| static void soft_i2c_init(struct i2c_adapter *adap, int speed, int slaveaddr) -+| ^~~~~~~~~~~ -+| drivers/i2c/soft_i2c.c:323:34: warning: 'struct i2c_adapter' declared inside parameter list will not be visible outside of this definition or declaration -+| static int soft_i2c_probe(struct i2c_adapter *adap, uint8_t addr) -+| ^~~~~~~~~~~ -+| drivers/i2c/soft_i2c.c:341:34: warning: 'struct i2c_adapter' declared inside parameter list will not be visible outside of this definition or declaration -+| static int soft_i2c_read(struct i2c_adapter *adap, uchar chip, uint addr, -+| ^~~~~~~~~~~ -+| drivers/i2c/soft_i2c.c:416:35: warning: 'struct i2c_adapter' declared inside parameter list will not be visible outside of this definition or declaration -+| static int soft_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, -+| ^~~~~~~~~~~ -+| arm-mlinux-linux-gnueabi-gcc --sysroot=/home/jklug/mlinux_morty/build/tmp/sysroots/mtcdt -Wp,-MD,drivers/input/.input.o.d -nostdinc -isystem /home/jklug/mlinux_morty/build/tmp/sysroots/x86_64-linux/usr/lib/arm-mlinux-linux-gnueabi/gcc/arm-mlinux-linux-gnueabi/6.2.0/include -Iinclude -I./arch/arm/include -+*/ -+ -+/* 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_USB_EHCI to enable USB Hi-Speed (aka 2.0) -@@ -84,7 +146,7 @@ +@@ -72,7 +90,7 @@ /* SDRAM */ #define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_SYS_SDRAM_BASE 0x20000000 @@ -212,7 +76,7 @@ diff -raNu git.orig/include/configs/at91sam9x5ek.h git/include/configs/at91sam9x #define CONFIG_SYS_INIT_SP_ADDR \ (CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE) -@@ -106,13 +168,28 @@ +@@ -94,13 +112,30 @@ /* our CLE is AD22 */ #define CONFIG_SYS_NAND_MASK_CLE (1 << 22) #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PD4 @@ -224,35 +88,47 @@ diff -raNu git.orig/include/configs/at91sam9x5ek.h git/include/configs/at91sam9x #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 is 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 -+ */ +++ * CONFIG_PMECC_INDEX_TABLE_OFFSET has been replaced by: +++ * ATMEL_PMECC_INDEX_OFFSET_512 and +++ * ATMEL_PMECC_INDEX_OFFSET_1024 +++ * +++ * Which is 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 -@@ -142,6 +219,8 @@ - #define CONFIG_RMII - #define CONFIG_NET_RETRY_COUNT 20 - #define CONFIG_MACB_SEARCH_PHY -+/* enable MII command */ -+#define CONFIG_CMD_MII 1 +@@ -147,20 +182,36 @@ + #endif + #endif - /* USB */ - #ifdef CONFIG_CMD_USB -@@ -163,18 +242,17 @@ ++#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 @@ -269,37 +145,26 @@ diff -raNu git.orig/include/configs/at91sam9x5ek.h git/include/configs/at91sam9x -#define CONFIG_BOOTCOMMAND "nand read " \ - "0x22000000 0x200000 0x300000; " \ - "bootm 0x22000000" --#elif defined(CONFIG_SYS_USE_SPIFLASH) +/* MTCDT: read from env variables for boot */ +#define CONFIG_BOOTCOMMAND "nboot.jffs2 ${loadaddr} 0 ${kernel_addr}; bootm ${loadaddr}" -+#elif CONFIG_SYS_USE_SPIFLASH ++ + #elif defined(CONFIG_SYS_USE_SPIFLASH) /* bootstrap + u-boot + env + linux in spi flash */ #define CONFIG_ENV_IS_IN_SPI_FLASH - #define CONFIG_ENV_OFFSET 0x5000 -@@ -204,6 +282,10 @@ - #define CONFIG_ENV_SIZE 0x4000 - #endif - -+#ifdef USE_MTCDT +@@ -197,6 +248,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 - #ifdef CONFIG_SYS_USE_MMC - #define CONFIG_BOOTARGS "mem=128M console=ttyS0,115200 " \ - "mtdparts=atmel_nand:" \ -@@ -218,6 +300,7 @@ - "512k(dtb),6M(kernel)ro,-(rootfs) " \ - "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw" - #endif -+#endif - - #define CONFIG_BAUDRATE 115200 - -@@ -288,4 +371,22 @@ + #else + #define CONFIG_BOOTARGS \ + "console=ttyS0,115200 earlyprintk " \ +@@ -274,4 +328,20 @@ #endif -+ +/* MTCDT defaults */ +#define CONFIG_ENV_OVERWRITE 1 /* Allow Overwrite of serial# & ethaddr */ +#define CONFIG_ETHADDR 00:08:00:87:00:02 @@ -312,7 +177,6 @@ diff -raNu git.orig/include/configs/at91sam9x5ek.h git/include/configs/at91sam9x +/* MTCDT - enable watchdog */ +#define CONFIG_AT91SAM9_WATCHDOG 1 +#define CONFIG_HW_WATCHDOG 1 -+ +#define CONFIG_EXTRA_ENV_SETTINGS \ + "kernel_addr=0x200000\0" \ + "" diff --git a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/spl.patch b/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/spl.patch deleted file mode 100644 index 8c39abf..0000000 --- a/recipes-bsp/u-boot/u-boot-2016.09.01/mtcdt/spl.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -raNu git.orig/configs/at91sam9x5ek_nandflash_defconfig git/configs/at91sam9x5ek_nandflash_defconfig ---- git.orig/configs/at91sam9x5ek_nandflash_defconfig 2017-05-02 17:52:50.369459785 -0500 -+++ git/configs/at91sam9x5ek_nandflash_defconfig 2017-05-02 17:54:16.855261970 -0500 -@@ -1,7 +1,7 @@ - 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_SYS_PROMPT="U-Boot> " - # CONFIG_CMD_IMI is not set -- cgit v1.2.3