From e37941d681e71fa3f78093cb297918b052223ab0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 6 Mar 2017 12:22:38 +0000 Subject: [PATCH] SATA on Cubox-i and Hummingboard, Hummingboard 2 (Gate/Edge) support, Marvell ESPRESSOBin board support --- armv8-boards | 1 + mvebu-ESPRESSOBin-board.patch | 1763 ++++++++++++++++++++++++++ mx6cuboxi-Add-support-for-sata.patch | 74 ++ uboot-tools.spec | 12 +- 4 files changed, 1848 insertions(+), 2 deletions(-) create mode 100644 mvebu-ESPRESSOBin-board.patch create mode 100644 mx6cuboxi-Add-support-for-sata.patch diff --git a/armv8-boards b/armv8-boards index d5d9edb..1b58fd3 100644 --- a/armv8-boards +++ b/armv8-boards @@ -2,6 +2,7 @@ dragonboard410c espresso7420 evb-rk3399 hikey +mvebu_espressobin-88f3720 odroid-c2 p2371-2180 pine64_plus diff --git a/mvebu-ESPRESSOBin-board.patch b/mvebu-ESPRESSOBin-board.patch new file mode 100644 index 0000000..bc8c2a8 --- /dev/null +++ b/mvebu-ESPRESSOBin-board.patch @@ -0,0 +1,1763 @@ +From patchwork Thu Feb 16 11:52:22 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 01/12] arm64: mvebu: Rename the db-88f3720 to armada-37xx platform +From: Kostya Porotchkin +X-Patchwork-Id: 728686 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-2-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:22 +0200 + +From: Konstantin Porotchkin + +Modify the file names and deifinitions relater to Marvell +db-77f3720 board support. Convert these names to more generic +armada-37xx platform for future addition of more boards +based on the same SoC family. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- This patch was missing in the v1 + + arch/arm/mach-mvebu/Kconfig | 10 +-- + board/Marvell/mvebu_armada-37xx/MAINTAINERS | 6 ++ + board/Marvell/mvebu_armada-37xx/Makefile | 7 ++ + board/Marvell/mvebu_armada-37xx/board.c | 134 ++++++++++++++++++++++++++++ + board/Marvell/mvebu_db-88f3720/MAINTAINERS | 6 -- + board/Marvell/mvebu_db-88f3720/Makefile | 7 -- + board/Marvell/mvebu_db-88f3720/board.c | 134 ---------------------------- + configs/mvebu_db-88f3720_defconfig | 2 +- + include/configs/mvebu_armada-37xx.h | 130 +++++++++++++++++++++++++++ + include/configs/mvebu_db-88f3720.h | 130 --------------------------- + 10 files changed, 283 insertions(+), 283 deletions(-) + create mode 100644 board/Marvell/mvebu_armada-37xx/MAINTAINERS + create mode 100644 board/Marvell/mvebu_armada-37xx/Makefile + create mode 100644 board/Marvell/mvebu_armada-37xx/board.c + delete mode 100644 board/Marvell/mvebu_db-88f3720/MAINTAINERS + delete mode 100644 board/Marvell/mvebu_db-88f3720/Makefile + delete mode 100644 board/Marvell/mvebu_db-88f3720/board.c + create mode 100644 include/configs/mvebu_armada-37xx.h + delete mode 100644 include/configs/mvebu_db-88f3720.h + +diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig +index 412bda4..a256c2f 100644 +--- a/arch/arm/mach-mvebu/Kconfig ++++ b/arch/arm/mach-mvebu/Kconfig +@@ -74,8 +74,8 @@ config TARGET_CLEARFOG + bool "Support ClearFog" + select 88F6820 + +-config TARGET_MVEBU_DB_88F3720 +- bool "Support DB-88F3720 Armada 3720" ++config TARGET_MVEBU_ARMADA_37XX ++ bool "Support Armada 37xx platforms" + select ARMADA_3700 + + config TARGET_DB_88F6720 +@@ -116,7 +116,7 @@ endchoice + + config SYS_BOARD + default "clearfog" if TARGET_CLEARFOG +- default "mvebu_db-88f3720" if TARGET_MVEBU_DB_88F3720 ++ default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX + default "db-88f6720" if TARGET_DB_88F6720 + default "db-88f6820-gp" if TARGET_DB_88F6820_GP + default "db-88f6820-amc" if TARGET_DB_88F6820_AMC +@@ -128,7 +128,7 @@ config SYS_BOARD + + config SYS_CONFIG_NAME + default "clearfog" if TARGET_CLEARFOG +- default "mvebu_db-88f3720" if TARGET_MVEBU_DB_88F3720 ++ default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX + default "db-88f6720" if TARGET_DB_88F6720 + default "db-88f6820-gp" if TARGET_DB_88F6820_GP + default "db-88f6820-amc" if TARGET_DB_88F6820_AMC +@@ -140,7 +140,7 @@ config SYS_CONFIG_NAME + + config SYS_VENDOR + default "Marvell" if TARGET_DB_MV784MP_GP +- default "Marvell" if TARGET_MVEBU_DB_88F3720 ++ default "Marvell" if TARGET_MVEBU_ARMADA_37XX + default "Marvell" if TARGET_DB_88F6720 + default "Marvell" if TARGET_DB_88F6820_GP + default "Marvell" if TARGET_DB_88F6820_AMC +diff --git a/board/Marvell/mvebu_armada-37xx/MAINTAINERS b/board/Marvell/mvebu_armada-37xx/MAINTAINERS +new file mode 100644 +index 0000000..52a3869 +--- /dev/null ++++ b/board/Marvell/mvebu_armada-37xx/MAINTAINERS +@@ -0,0 +1,6 @@ ++MVEBU_DB_88F3720 BOARD ++M: Stefan Roese ++S: Maintained ++F: board/Marvell/mvebu_armada-37xx/ ++F: include/configs/mvebu_armada-37xx.h ++F: configs/mvebu_db-88f3720_defconfig +diff --git a/board/Marvell/mvebu_armada-37xx/Makefile b/board/Marvell/mvebu_armada-37xx/Makefile +new file mode 100644 +index 0000000..ed39738 +--- /dev/null ++++ b/board/Marvell/mvebu_armada-37xx/Makefile +@@ -0,0 +1,7 @@ ++# ++# Copyright (C) 2016 Stefan Roese ++# ++# SPDX-License-Identifier: GPL-2.0+ ++# ++ ++obj-y := board.o +diff --git a/board/Marvell/mvebu_armada-37xx/board.c b/board/Marvell/mvebu_armada-37xx/board.c +new file mode 100644 +index 0000000..edf88c7 +--- /dev/null ++++ b/board/Marvell/mvebu_armada-37xx/board.c +@@ -0,0 +1,134 @@ ++/* ++ * Copyright (C) 2016 Stefan Roese ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++/* IO expander I2C device */ ++#define I2C_IO_EXP_ADDR 0x22 ++#define I2C_IO_CFG_REG_0 0x6 ++#define I2C_IO_DATA_OUT_REG_0 0x2 ++#define I2C_IO_REG_0_SATA_OFF 2 ++#define I2C_IO_REG_0_USB_H_OFF 1 ++ ++int board_early_init_f(void) ++{ ++ /* Nothing to do (yet), perhaps later some pin-muxing etc */ ++ ++ return 0; ++} ++ ++int board_init(void) ++{ ++ /* adress of boot parameters */ ++ gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; ++ ++ return 0; ++} ++ ++/* Board specific AHCI / SATA enable code */ ++int board_ahci_enable(void) ++{ ++ struct udevice *dev; ++ int ret; ++ u8 buf[8]; ++ ++ /* Configure IO exander PCA9555: 7bit address 0x22 */ ++ ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); ++ if (ret) { ++ printf("Cannot find PCA9555: %d\n", ret); ++ return 0; ++ } ++ ++ ret = dm_i2c_read(dev, I2C_IO_CFG_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to read IO expander value via I2C\n"); ++ return -EIO; ++ } ++ ++ /* ++ * Enable SATA power via IO expander connected via I2C by setting ++ * the corresponding bit to output mode to enable power for SATA ++ */ ++ buf[0] &= ~(1 << I2C_IO_REG_0_SATA_OFF); ++ ret = dm_i2c_write(dev, I2C_IO_CFG_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to set IO expander via I2C\n"); ++ return -EIO; ++ } ++ ++ return 0; ++} ++ ++/* Board specific xHCI enable code */ ++int board_xhci_enable(void) ++{ ++ struct udevice *dev; ++ int ret; ++ u8 buf[8]; ++ ++ /* Configure IO exander PCA9555: 7bit address 0x22 */ ++ ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); ++ if (ret) { ++ printf("Cannot find PCA9555: %d\n", ret); ++ return 0; ++ } ++ ++ printf("Enable USB VBUS\n"); ++ ++ /* ++ * Read configuration (direction) and set VBUS pin as output ++ * (reset pin = output) ++ */ ++ ret = dm_i2c_read(dev, I2C_IO_CFG_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to read IO expander value via I2C\n"); ++ return -EIO; ++ } ++ buf[0] &= ~(1 << I2C_IO_REG_0_USB_H_OFF); ++ ret = dm_i2c_write(dev, I2C_IO_CFG_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to set IO expander via I2C\n"); ++ return -EIO; ++ } ++ ++ /* Read VBUS output value and disable it */ ++ ret = dm_i2c_read(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to read IO expander value via I2C\n"); ++ return -EIO; ++ } ++ buf[0] &= ~(1 << I2C_IO_REG_0_USB_H_OFF); ++ ret = dm_i2c_write(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to set IO expander via I2C\n"); ++ return -EIO; ++ } ++ ++ /* ++ * Required delay for configuration to settle - must wait for ++ * power on port is disabled in case VBUS signal was high, ++ * required 3 seconds delay to let VBUS signal fully settle down ++ */ ++ mdelay(3000); ++ ++ /* Enable VBUS power: Set output value of VBUS pin as enabled */ ++ buf[0] |= (1 << I2C_IO_REG_0_USB_H_OFF); ++ ret = dm_i2c_write(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); ++ if (ret) { ++ printf("Failed to set IO expander via I2C\n"); ++ return -EIO; ++ } ++ ++ mdelay(500); /* required delay to let output value settle */ ++ ++ return 0; ++} +diff --git a/board/Marvell/mvebu_db-88f3720/MAINTAINERS b/board/Marvell/mvebu_db-88f3720/MAINTAINERS +deleted file mode 100644 +index 4e80917..0000000 +--- a/board/Marvell/mvebu_db-88f3720/MAINTAINERS ++++ /dev/null +@@ -1,6 +0,0 @@ +-MVEBU_DB_88F3720 BOARD +-M: Stefan Roese +-S: Maintained +-F: board/Marvell/mvebu_db-88f3720/ +-F: include/configs/mvebu_db-88f3720.h +-F: configs/mvebu_db-88f3720_defconfig +diff --git a/board/Marvell/mvebu_db-88f3720/Makefile b/board/Marvell/mvebu_db-88f3720/Makefile +deleted file mode 100644 +index ed39738..0000000 +--- a/board/Marvell/mvebu_db-88f3720/Makefile ++++ /dev/null +@@ -1,7 +0,0 @@ +-# +-# Copyright (C) 2016 Stefan Roese +-# +-# SPDX-License-Identifier: GPL-2.0+ +-# +- +-obj-y := board.o +diff --git a/board/Marvell/mvebu_db-88f3720/board.c b/board/Marvell/mvebu_db-88f3720/board.c +deleted file mode 100644 +index edf88c7..0000000 +--- a/board/Marvell/mvebu_db-88f3720/board.c ++++ /dev/null +@@ -1,134 +0,0 @@ +-/* +- * Copyright (C) 2016 Stefan Roese +- * +- * SPDX-License-Identifier: GPL-2.0+ +- */ +- +-#include +-#include +-#include +-#include +-#include +- +-DECLARE_GLOBAL_DATA_PTR; +- +-/* IO expander I2C device */ +-#define I2C_IO_EXP_ADDR 0x22 +-#define I2C_IO_CFG_REG_0 0x6 +-#define I2C_IO_DATA_OUT_REG_0 0x2 +-#define I2C_IO_REG_0_SATA_OFF 2 +-#define I2C_IO_REG_0_USB_H_OFF 1 +- +-int board_early_init_f(void) +-{ +- /* Nothing to do (yet), perhaps later some pin-muxing etc */ +- +- return 0; +-} +- +-int board_init(void) +-{ +- /* adress of boot parameters */ +- gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; +- +- return 0; +-} +- +-/* Board specific AHCI / SATA enable code */ +-int board_ahci_enable(void) +-{ +- struct udevice *dev; +- int ret; +- u8 buf[8]; +- +- /* Configure IO exander PCA9555: 7bit address 0x22 */ +- ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); +- if (ret) { +- printf("Cannot find PCA9555: %d\n", ret); +- return 0; +- } +- +- ret = dm_i2c_read(dev, I2C_IO_CFG_REG_0, buf, 1); +- if (ret) { +- printf("Failed to read IO expander value via I2C\n"); +- return -EIO; +- } +- +- /* +- * Enable SATA power via IO expander connected via I2C by setting +- * the corresponding bit to output mode to enable power for SATA +- */ +- buf[0] &= ~(1 << I2C_IO_REG_0_SATA_OFF); +- ret = dm_i2c_write(dev, I2C_IO_CFG_REG_0, buf, 1); +- if (ret) { +- printf("Failed to set IO expander via I2C\n"); +- return -EIO; +- } +- +- return 0; +-} +- +-/* Board specific xHCI enable code */ +-int board_xhci_enable(void) +-{ +- struct udevice *dev; +- int ret; +- u8 buf[8]; +- +- /* Configure IO exander PCA9555: 7bit address 0x22 */ +- ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); +- if (ret) { +- printf("Cannot find PCA9555: %d\n", ret); +- return 0; +- } +- +- printf("Enable USB VBUS\n"); +- +- /* +- * Read configuration (direction) and set VBUS pin as output +- * (reset pin = output) +- */ +- ret = dm_i2c_read(dev, I2C_IO_CFG_REG_0, buf, 1); +- if (ret) { +- printf("Failed to read IO expander value via I2C\n"); +- return -EIO; +- } +- buf[0] &= ~(1 << I2C_IO_REG_0_USB_H_OFF); +- ret = dm_i2c_write(dev, I2C_IO_CFG_REG_0, buf, 1); +- if (ret) { +- printf("Failed to set IO expander via I2C\n"); +- return -EIO; +- } +- +- /* Read VBUS output value and disable it */ +- ret = dm_i2c_read(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); +- if (ret) { +- printf("Failed to read IO expander value via I2C\n"); +- return -EIO; +- } +- buf[0] &= ~(1 << I2C_IO_REG_0_USB_H_OFF); +- ret = dm_i2c_write(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); +- if (ret) { +- printf("Failed to set IO expander via I2C\n"); +- return -EIO; +- } +- +- /* +- * Required delay for configuration to settle - must wait for +- * power on port is disabled in case VBUS signal was high, +- * required 3 seconds delay to let VBUS signal fully settle down +- */ +- mdelay(3000); +- +- /* Enable VBUS power: Set output value of VBUS pin as enabled */ +- buf[0] |= (1 << I2C_IO_REG_0_USB_H_OFF); +- ret = dm_i2c_write(dev, I2C_IO_DATA_OUT_REG_0, buf, 1); +- if (ret) { +- printf("Failed to set IO expander via I2C\n"); +- return -EIO; +- } +- +- mdelay(500); /* required delay to let output value settle */ +- +- return 0; +-} +diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig +index 80f2599..4286695 100644 +--- a/configs/mvebu_db-88f3720_defconfig ++++ b/configs/mvebu_db-88f3720_defconfig +@@ -1,7 +1,7 @@ + CONFIG_ARM=y + CONFIG_ARCH_MVEBU=y + CONFIG_SYS_MALLOC_F_LEN=0x2000 +-CONFIG_TARGET_MVEBU_DB_88F3720=y ++CONFIG_TARGET_MVEBU_ARMADA_37XX=y + CONFIG_DEFAULT_DEVICE_TREE="armada-3720-db" + CONFIG_AHCI=y + # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set +diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h +new file mode 100644 +index 0000000..f5adfef +--- /dev/null ++++ b/include/configs/mvebu_armada-37xx.h +@@ -0,0 +1,130 @@ ++/* ++ * Copyright (C) 2016 Stefan Roese ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++ ++#ifndef _CONFIG_MVEBU_ARMADA_37XX_H ++#define _CONFIG_MVEBU_ARMADA_37XX_H ++ ++/* ++ * High Level Configuration Options (easy to change) ++ */ ++#define CONFIG_DISPLAY_BOARDINFO_LATE ++ ++#define CONFIG_SYS_TEXT_BASE 0x00000000 ++ ++/* additions for new ARM relocation support */ ++#define CONFIG_SYS_SDRAM_BASE 0x00000000 ++ ++#define CONFIG_NR_DRAM_BANKS 1 ++ ++/* auto boot */ ++#define CONFIG_PREBOOT ++ ++#define CONFIG_BAUDRATE 115200 ++#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \ ++ 115200, 230400, 460800, 921600 } ++ ++/* ++ * For booting Linux, the board info and command line data ++ * have to be in the first 8 MB of memory, since this is ++ * the maximum mapped by the Linux kernel during initialization. ++ */ ++#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */ ++#define CONFIG_INITRD_TAG /* enable INITRD tag */ ++#define CONFIG_SETUP_MEMORY_TAGS /* enable memory tag */ ++ ++#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */ ++#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \ ++ +sizeof(CONFIG_SYS_PROMPT) + 16) /* Print Buff */ ++ ++/* ++ * Size of malloc() pool ++ */ ++#define CONFIG_SYS_MALLOC_LEN (4 << 20) /* 4MiB for malloc() */ ++ ++/* ++ * Other required minimal configurations ++ */ ++#define CONFIG_SYS_LONGHELP ++#define CONFIG_AUTO_COMPLETE ++#define CONFIG_CMDLINE_EDITING ++#define CONFIG_ARCH_CPU_INIT /* call arch_cpu_init() */ ++#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load adr- 8M */ ++#define CONFIG_SYS_MEMTEST_START 0x00800000 /* 8M */ ++#define CONFIG_SYS_MEMTEST_END 0x00ffffff /*(_16M -1) */ ++#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */ ++#define CONFIG_SYS_MAXARGS 32 /* max number of command args */ ++ ++#define CONFIG_SYS_ALT_MEMTEST ++ ++/* End of 16M scrubbed by training in bootrom */ ++#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0xFF0000) ++ ++/* ++ * I2C ++ */ ++#define CONFIG_I2C_MV ++#define CONFIG_SYS_I2C_SLAVE 0x0 ++ ++/* ++ * SPI Flash configuration ++ */ ++#define CONFIG_ENV_SPI_BUS 0 ++#define CONFIG_ENV_SPI_CS 0 ++ ++/* SPI NOR flash default params, used by sf commands */ ++#define CONFIG_SF_DEFAULT_SPEED 1000000 ++#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 ++#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE ++ ++/* Environment in SPI NOR flash */ ++#define CONFIG_ENV_IS_IN_SPI_FLASH ++#define CONFIG_ENV_OFFSET 0x180000 /* as Marvell U-Boot version */ ++#define CONFIG_ENV_SIZE (64 << 10) /* 64KiB */ ++#define CONFIG_ENV_SECT_SIZE (64 << 10) /* 64KiB sectors */ ++ ++/* ++ * Ethernet Driver configuration ++ */ ++#define CONFIG_MVNETA /* Enable Marvell Gbe Controller Driver */ ++#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ ++#define CONFIG_PHY_GIGE /* GbE speed/duplex detect */ ++#define CONFIG_ARP_TIMEOUT 200 ++#define CONFIG_NET_RETRY_COUNT 50 ++ ++/* USB 2.0 */ ++#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3 ++ ++/* USB 3.0 */ ++#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 3 ++ ++#define CONFIG_USB_MAX_CONTROLLER_COUNT (CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS + \ ++ CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) ++ ++/* USB ethernet */ ++#define CONFIG_USB_HOST_ETHER ++#define CONFIG_USB_ETHER_ASIX ++#define CONFIG_USB_ETHER_MCS7830 ++#define CONFIG_USB_ETHER_RTL8152 ++#define CONFIG_USB_ETHER_SMSC95XX ++ ++/* ++ * SATA/SCSI/AHCI configuration ++ */ ++#define CONFIG_SCSI ++#define CONFIG_SCSI_AHCI ++#define CONFIG_SCSI_AHCI_PLAT ++#define CONFIG_LIBATA ++#define CONFIG_LBA48 ++#define CONFIG_SYS_64BIT_LBA ++ ++#define CONFIG_SYS_SCSI_MAX_SCSI_ID 2 ++#define CONFIG_SYS_SCSI_MAX_LUN 1 ++#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ ++ CONFIG_SYS_SCSI_MAX_LUN) ++ ++#define CONFIG_SUPPORT_VFAT ++ ++#endif /* _CONFIG_MVEBU_ARMADA_37XX_H */ +diff --git a/include/configs/mvebu_db-88f3720.h b/include/configs/mvebu_db-88f3720.h +deleted file mode 100644 +index 753ed1e..0000000 +--- a/include/configs/mvebu_db-88f3720.h ++++ /dev/null +@@ -1,130 +0,0 @@ +-/* +- * Copyright (C) 2016 Stefan Roese +- * +- * SPDX-License-Identifier: GPL-2.0+ +- */ +- +-#ifndef _CONFIG_MVEBU_DB_88F3720_H +-#define _CONFIG_MVEBU_DB_88F3720_H +- +-/* +- * High Level Configuration Options (easy to change) +- */ +-#define CONFIG_DISPLAY_BOARDINFO_LATE +- +-#define CONFIG_SYS_TEXT_BASE 0x00000000 +- +-/* additions for new ARM relocation support */ +-#define CONFIG_SYS_SDRAM_BASE 0x00000000 +- +-#define CONFIG_NR_DRAM_BANKS 1 +- +-/* auto boot */ +-#define CONFIG_PREBOOT +- +-#define CONFIG_BAUDRATE 115200 +-#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \ +- 115200, 230400, 460800, 921600 } +- +-/* +- * For booting Linux, the board info and command line data +- * have to be in the first 8 MB of memory, since this is +- * the maximum mapped by the Linux kernel during initialization. +- */ +-#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */ +-#define CONFIG_INITRD_TAG /* enable INITRD tag */ +-#define CONFIG_SETUP_MEMORY_TAGS /* enable memory tag */ +- +-#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */ +-#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \ +- +sizeof(CONFIG_SYS_PROMPT) + 16) /* Print Buff */ +- +-/* +- * Size of malloc() pool +- */ +-#define CONFIG_SYS_MALLOC_LEN (4 << 20) /* 4MiB for malloc() */ +- +-/* +- * Other required minimal configurations +- */ +-#define CONFIG_SYS_LONGHELP +-#define CONFIG_AUTO_COMPLETE +-#define CONFIG_CMDLINE_EDITING +-#define CONFIG_ARCH_CPU_INIT /* call arch_cpu_init() */ +-#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load adr- 8M */ +-#define CONFIG_SYS_MEMTEST_START 0x00800000 /* 8M */ +-#define CONFIG_SYS_MEMTEST_END 0x00ffffff /*(_16M -1) */ +-#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */ +-#define CONFIG_SYS_MAXARGS 32 /* max number of command args */ +- +-#define CONFIG_SYS_ALT_MEMTEST +- +-/* End of 16M scrubbed by training in bootrom */ +-#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0xFF0000) +- +-/* +- * I2C +- */ +-#define CONFIG_I2C_MV +-#define CONFIG_SYS_I2C_SLAVE 0x0 +- +-/* +- * SPI Flash configuration +- */ +-#define CONFIG_ENV_SPI_BUS 0 +-#define CONFIG_ENV_SPI_CS 0 +- +-/* SPI NOR flash default params, used by sf commands */ +-#define CONFIG_SF_DEFAULT_SPEED 1000000 +-#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 +-#define CONFIG_ENV_SPI_MODE CONFIG_SF_DEFAULT_MODE +- +-/* Environment in SPI NOR flash */ +-#define CONFIG_ENV_IS_IN_SPI_FLASH +-#define CONFIG_ENV_OFFSET 0x180000 /* as Marvell U-Boot version */ +-#define CONFIG_ENV_SIZE (64 << 10) /* 64KiB */ +-#define CONFIG_ENV_SECT_SIZE (64 << 10) /* 64KiB sectors */ +- +-/* +- * Ethernet Driver configuration +- */ +-#define CONFIG_MVNETA /* Enable Marvell Gbe Controller Driver */ +-#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ +-#define CONFIG_PHY_GIGE /* GbE speed/duplex detect */ +-#define CONFIG_ARP_TIMEOUT 200 +-#define CONFIG_NET_RETRY_COUNT 50 +- +-/* USB 2.0 */ +-#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3 +- +-/* USB 3.0 */ +-#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 3 +- +-#define CONFIG_USB_MAX_CONTROLLER_COUNT (CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS + \ +- CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) +- +-/* USB ethernet */ +-#define CONFIG_USB_HOST_ETHER +-#define CONFIG_USB_ETHER_ASIX +-#define CONFIG_USB_ETHER_MCS7830 +-#define CONFIG_USB_ETHER_RTL8152 +-#define CONFIG_USB_ETHER_SMSC95XX +- +-/* +- * SATA/SCSI/AHCI configuration +- */ +-#define CONFIG_SCSI +-#define CONFIG_SCSI_AHCI +-#define CONFIG_SCSI_AHCI_PLAT +-#define CONFIG_LIBATA +-#define CONFIG_LBA48 +-#define CONFIG_SYS_64BIT_LBA +- +-#define CONFIG_SYS_SCSI_MAX_SCSI_ID 2 +-#define CONFIG_SYS_SCSI_MAX_LUN 1 +-#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ +- CONFIG_SYS_SCSI_MAX_LUN) +- +-#define CONFIG_SUPPORT_VFAT +- +-#endif /* _CONFIG_MVEBU_DB_88F3720_H */ +From patchwork Thu Feb 16 11:52:23 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot,v2,02/12] arm64: a37xx: Enable Marvell ETH PHY support +From: Kostya Porotchkin +X-Patchwork-Id: 728685 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-3-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:23 +0200 + +From: Konstantin Porotchkin + +Enable support for Marvell Ethernet PHYs on A37xx platforms + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes, rebased on top of new platform file + + include/configs/mvebu_armada-37xx.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h +index f5adfef..fd2ae8e 100644 +--- a/include/configs/mvebu_armada-37xx.h ++++ b/include/configs/mvebu_armada-37xx.h +@@ -93,6 +93,7 @@ + #define CONFIG_PHY_GIGE /* GbE speed/duplex detect */ + #define CONFIG_ARP_TIMEOUT 200 + #define CONFIG_NET_RETRY_COUNT 50 ++#define CONFIG_PHY_MARVELL + + /* USB 2.0 */ + #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3 +From patchwork Thu Feb 16 11:52:24 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 03/12] arm64: a37xx: Enable bubt command support on A3720-DB +From: Kostya Porotchkin +X-Patchwork-Id: 728681 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-4-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:24 +0200 + +From: Konstantin Porotchkin + +Enable mvebu bubt command support on A3720 DB + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes + + configs/mvebu_db-88f3720_defconfig | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig +index 4286695..bdb96e9 100644 +--- a/configs/mvebu_db-88f3720_defconfig ++++ b/configs/mvebu_db-88f3720_defconfig +@@ -33,6 +33,9 @@ CONFIG_CMD_FS_GENERIC=y + CONFIG_MAC_PARTITION=y + CONFIG_ISO_PARTITION=y + CONFIG_EFI_PARTITION=y ++CONFIG_CMD_MVEBU_BUBT=y ++CONFIG_SHA1=y ++CONFIG_SHA256=y + CONFIG_BLOCK_CACHE=y + CONFIG_DM_I2C=y + CONFIG_DM_I2C_COMPAT=y +From patchwork Thu Feb 16 11:52:25 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot,v2,04/12] arm64: a37xx: dts: Add pin control nodes to DT +From: Kostya Porotchkin +X-Patchwork-Id: 728682 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-5-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:25 +0200 + +From: Konstantin Porotchkin + +Add pin control nodes for North and South bridges to +Armada-37xx DT + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- + arch/arm/dts/armada-37xx.dtsi | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) +Changes for v2: +- No changes, rebased on top of new platform files + +diff --git a/arch/arm/dts/armada-37xx.dtsi b/arch/arm/dts/armada-37xx.dtsi +index 062f2a6..5bea63b 100644 +--- a/arch/arm/dts/armada-37xx.dtsi ++++ b/arch/arm/dts/armada-37xx.dtsi +@@ -193,6 +193,20 @@ + status = "disabled"; + }; + ++ pinctl0: pinctl@13830 { /* north bridge */ ++ compatible = "marvell,armada-3700-pinctl"; ++ bank-name = "armada-3700-nb"; ++ reg = <0x13830 0x4>; ++ pin-count = <36>; ++ }; ++ ++ pinctl1: pinctl@18830 { /* south bridge */ ++ compatible = "marvell,armada-3700-pinctl"; ++ bank-name = "armada-3700-sb"; ++ reg = <0x18830 0x4>; ++ pin-count = <30>; ++ }; ++ + comphy: comphy@18300 { + compatible = "marvell,mvebu-comphy", "marvell,comphy-armada-3700"; + reg = <0x18300 0x28>, +From patchwork Thu Feb 16 11:52:26 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 05/12] arm64: a37xx: Handle pin controls in early board init +From: Kostya Porotchkin +X-Patchwork-Id: 728676 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-6-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:26 +0200 + +From: Konstantin Porotchkin + +Fix the default pin control values in a board-specific +function on early board init stage. +This fix allows the NETA driver to work in RGMII +mode until the full-featured pin control driver gets +introduced. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes, rebased on top of new platform files + + board/Marvell/mvebu_armada-37xx/board.c | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/board/Marvell/mvebu_armada-37xx/board.c b/board/Marvell/mvebu_armada-37xx/board.c +index edf88c7..3337f3f 100644 +--- a/board/Marvell/mvebu_armada-37xx/board.c ++++ b/board/Marvell/mvebu_armada-37xx/board.c +@@ -19,9 +19,33 @@ DECLARE_GLOBAL_DATA_PTR; + #define I2C_IO_REG_0_SATA_OFF 2 + #define I2C_IO_REG_0_USB_H_OFF 1 + ++#define PINCTRL_NB_REG_VALUE 0x000173fa ++#define PINCTRL_SB_REG_VALUE 0x00007a23 ++ + int board_early_init_f(void) + { +- /* Nothing to do (yet), perhaps later some pin-muxing etc */ ++ const void *blob = gd->fdt_blob; ++ const char *bank_name; ++ const char *compat = "marvell,armada-3700-pinctl"; ++ int off, len; ++ void __iomem *addr; ++ ++ /* FIXME ++ * Temporary WA for setting correct pin control values ++ * until the real pin control driver is awailable. ++ */ ++ off = fdt_node_offset_by_compatible(blob, -1, compat); ++ while (off != -FDT_ERR_NOTFOUND) { ++ bank_name = fdt_getprop(blob, off, "bank-name", &len); ++ addr = (void __iomem *)fdtdec_get_addr_size_auto_noparent( ++ blob, off, "reg", 0, NULL, true); ++ if (!strncmp(bank_name, "armada-3700-nb", len)) ++ writel(PINCTRL_NB_REG_VALUE, addr); ++ else if (!strncmp(bank_name, "armada-3700-sb", len)) ++ writel(PINCTRL_SB_REG_VALUE, addr); ++ ++ off = fdt_node_offset_by_compatible(blob, off, compat); ++ } + + return 0; + } +From patchwork Thu Feb 16 11:52:27 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot,v2,06/12] mvebu: neta: Add support for board init function +From: Kostya Porotchkin +X-Patchwork-Id: 728683 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-7-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:27 +0200 + +From: Konstantin Porotchkin + +Add ability to use board-specific initialization flow +to NETA driver (for instance Ethernet switch bring-up) + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes + + drivers/net/mvneta.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c +index 674075f..a1e2136 100644 +--- a/drivers/net/mvneta.c ++++ b/drivers/net/mvneta.c +@@ -404,6 +404,15 @@ static struct buffer_location buffer_loc; + */ + #define BD_SPACE (1 << 20) + ++/* ++ * Dummy implementation that can be overwritten by a board ++ * specific function ++ */ ++__weak int board_network_enable(struct mii_dev *bus) ++{ ++ return 0; ++} ++ + /* Utility/helper methods */ + + /* Write helper method */ +@@ -1615,6 +1624,7 @@ static int mvneta_probe(struct udevice *dev) + struct mii_dev *bus; + unsigned long addr; + void *bd_space; ++ int ret; + + /* + * Allocate buffer area for descs and rx_buffers. This is only +@@ -1664,7 +1674,11 @@ static int mvneta_probe(struct udevice *dev) + bus->priv = (void *)pp; + pp->bus = bus; + +- return mdio_register(bus); ++ ret = mdio_register(bus); ++ if (ret) ++ return ret; ++ ++ return board_network_enable(bus); + } + + static void mvneta_stop(struct udevice *dev) +From patchwork Thu Feb 16 11:52:28 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 07/12] mvebu: neta: a37xx: Add fixed link support to neta driver +From: Kostya Porotchkin +X-Patchwork-Id: 728572 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-8-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Terry Zhou , + Stefan Roese , Igal Liberman +Date: Thu, 16 Feb 2017 13:52:28 +0200 + +From: Konstantin Porotchkin + +Add support for fixed link to NETA driver. +This feature requreed for proper support of SFP modules +and onboard connected devices like Ethernet switches + +Signed-off-by: Konstantin Porotchkin +Signed-off-by: Terry Zhou +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes + + drivers/net/mvneta.c | 109 ++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 82 insertions(+), 27 deletions(-) + +diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c +index a1e2136..8881cc7 100644 +--- a/drivers/net/mvneta.c ++++ b/drivers/net/mvneta.c +@@ -191,11 +191,16 @@ DECLARE_GLOBAL_DATA_PTR; + #define MVNETA_GMAC_AUTONEG_CONFIG 0x2c0c + #define MVNETA_GMAC_FORCE_LINK_DOWN BIT(0) + #define MVNETA_GMAC_FORCE_LINK_PASS BIT(1) ++#define MVNETA_GMAC_FORCE_LINK_UP (BIT(0) | BIT(1)) ++#define MVNETA_GMAC_IB_BYPASS_AN_EN BIT(3) + #define MVNETA_GMAC_CONFIG_MII_SPEED BIT(5) + #define MVNETA_GMAC_CONFIG_GMII_SPEED BIT(6) + #define MVNETA_GMAC_AN_SPEED_EN BIT(7) ++#define MVNETA_GMAC_SET_FC_EN BIT(8) ++#define MVNETA_GMAC_ADVERT_FC_EN BIT(9) + #define MVNETA_GMAC_CONFIG_FULL_DUPLEX BIT(12) + #define MVNETA_GMAC_AN_DUPLEX_EN BIT(13) ++#define MVNETA_GMAC_SAMPLE_TX_CFG_EN BIT(15) + #define MVNETA_MIB_COUNTERS_BASE 0x3080 + #define MVNETA_MIB_LATE_COLLISION 0x7c + #define MVNETA_DA_FILT_SPEC_MCAST 0x3400 +@@ -566,6 +571,13 @@ static void mvneta_rxq_buf_size_set(struct mvneta_port *pp, + mvreg_write(pp, MVNETA_RXQ_SIZE_REG(rxq->id), val); + } + ++static int mvneta_port_is_fixed_link(struct mvneta_port *pp) ++{ ++ /* phy_addr is set to invalid value for fixed link */ ++ return pp->phyaddr > PHY_MAX_ADDR; ++} ++ ++ + /* Start the Ethernet port RX and TX activity */ + static void mvneta_port_up(struct mvneta_port *pp) + { +@@ -816,10 +828,12 @@ static void mvneta_defaults_set(struct mvneta_port *pp) + /* Assign port SDMA configuration */ + mvreg_write(pp, MVNETA_SDMA_CONFIG, val); + +- /* Enable PHY polling in hardware for U-Boot */ +- val = mvreg_read(pp, MVNETA_UNIT_CONTROL); +- val |= MVNETA_PHY_POLLING_ENABLE; +- mvreg_write(pp, MVNETA_UNIT_CONTROL, val); ++ /* Enable PHY polling in hardware if not in fixed-link mode */ ++ if (!mvneta_port_is_fixed_link(pp)) { ++ val = mvreg_read(pp, MVNETA_UNIT_CONTROL); ++ val |= MVNETA_PHY_POLLING_ENABLE; ++ mvreg_write(pp, MVNETA_UNIT_CONTROL, val); ++ } + + mvneta_set_ucast_table(pp, -1); + mvneta_set_special_mcast_table(pp, -1); +@@ -1137,6 +1151,11 @@ static void mvneta_adjust_link(struct udevice *dev) + struct phy_device *phydev = pp->phydev; + int status_change = 0; + ++ if (mvneta_port_is_fixed_link(pp)) { ++ debug("Using fixed link, skip link adjust\n"); ++ return; ++ } ++ + if (phydev->link) { + if ((pp->speed != phydev->speed) || + (pp->duplex != phydev->duplex)) { +@@ -1507,28 +1526,54 @@ static int mvneta_start(struct udevice *dev) + mvneta_port_power_up(pp, pp->phy_interface); + + if (!pp->init || pp->link == 0) { +- /* Set phy address of the port */ +- mvreg_write(pp, MVNETA_PHY_ADDR, pp->phyaddr); +- phydev = phy_connect(pp->bus, pp->phyaddr, dev, +- pp->phy_interface); +- +- pp->phydev = phydev; +- phy_config(phydev); +- phy_startup(phydev); +- if (!phydev->link) { +- printf("%s: No link.\n", phydev->dev->name); +- return -1; +- } ++ if (mvneta_port_is_fixed_link(pp)) { ++ u32 val; + +- /* Full init on first call */ +- mvneta_init(dev); +- pp->init = 1; +- } else { +- /* Upon all following calls, this is enough */ +- mvneta_port_up(pp); +- mvneta_port_enable(pp); ++ pp->init = 1; ++ pp->link = 1; ++ mvneta_init(dev); ++ ++ val = MVNETA_GMAC_FORCE_LINK_UP | ++ MVNETA_GMAC_IB_BYPASS_AN_EN | ++ MVNETA_GMAC_SET_FC_EN | ++ MVNETA_GMAC_ADVERT_FC_EN | ++ MVNETA_GMAC_SAMPLE_TX_CFG_EN; ++ ++ if (pp->duplex) ++ val |= MVNETA_GMAC_CONFIG_FULL_DUPLEX; ++ ++ if (pp->speed == SPEED_1000) ++ val |= MVNETA_GMAC_CONFIG_GMII_SPEED; ++ else if (pp->speed == SPEED_100) ++ val |= MVNETA_GMAC_CONFIG_MII_SPEED; ++ ++ mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); ++ } else { ++ /* Set phy address of the port */ ++ mvreg_write(pp, MVNETA_PHY_ADDR, pp->phyaddr); ++ ++ phydev = phy_connect(pp->bus, pp->phyaddr, dev, ++ pp->phy_interface); ++ ++ pp->phydev = phydev; ++ phy_config(phydev); ++ phy_startup(phydev); ++ if (!phydev->link) { ++ printf("%s: No link.\n", phydev->dev->name); ++ return -1; ++ } ++ ++ /* Full init on first call */ ++ mvneta_init(dev); ++ pp->init = 1; ++ return 0; ++ } + } + ++ /* Upon all following calls, this is enough */ ++ mvneta_port_up(pp); ++ mvneta_port_enable(pp); ++ + return 0; + } + +@@ -1625,6 +1670,7 @@ static int mvneta_probe(struct udevice *dev) + unsigned long addr; + void *bd_space; + int ret; ++ int fl_node; + + /* + * Allocate buffer area for descs and rx_buffers. This is only +@@ -1657,10 +1703,19 @@ static int mvneta_probe(struct udevice *dev) + /* PHY interface is already decoded in mvneta_ofdata_to_platdata() */ + pp->phy_interface = pdata->phy_interface; + +- /* Now read phyaddr from DT */ +- addr = fdtdec_get_int(blob, node, "phy", 0); +- addr = fdt_node_offset_by_phandle(blob, addr); +- pp->phyaddr = fdtdec_get_int(blob, addr, "reg", 0); ++ /* fetch 'fixed-link' property from 'neta' node */ ++ fl_node = fdt_subnode_offset(blob, node, "fixed-link"); ++ if (fl_node != -FDT_ERR_NOTFOUND) { ++ /* set phy_addr to invalid value for fixed link */ ++ pp->phyaddr = PHY_MAX_ADDR + 1; ++ pp->duplex = fdtdec_get_bool(blob, fl_node, "full-duplex"); ++ pp->speed = fdtdec_get_int(blob, fl_node, "speed", 0); ++ } else { ++ /* Now read phyaddr from DT */ ++ addr = fdtdec_get_int(blob, node, "phy", 0); ++ addr = fdt_node_offset_by_phandle(blob, addr); ++ pp->phyaddr = fdtdec_get_int(blob, addr, "reg", 0); ++ } + + bus = mdio_alloc(); + if (!bus) { +From patchwork Thu Feb 16 11:52:29 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot,v2,08/12] mvebu: a37xx: Add init for ESPRESSBin Topaz switch +From: Kostya Porotchkin +X-Patchwork-Id: 728687 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-9-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman , Joe Hershberger +Date: Thu, 16 Feb 2017 13:52:29 +0200 + +From: Konstantin Porotchkin + +Implement the board-specific network init function for +ESPRESSOBin community board, setting the on-board Topaz +switch port to forward mode and allow network connection +through any of the available Etherenet ports. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +Cc: Joe Hershberger +--- +Changes for v2: +- Change SMI registers from numeric values to symbols for better readability +- Add missing include + + board/Marvell/mvebu_armada-37xx/board.c | 91 +++++++++++++++++++++++++++++++++ + 1 file changed, 91 insertions(+) + +diff --git a/board/Marvell/mvebu_armada-37xx/board.c b/board/Marvell/mvebu_armada-37xx/board.c +index 3337f3f..b9878bf 100644 +--- a/board/Marvell/mvebu_armada-37xx/board.c ++++ b/board/Marvell/mvebu_armada-37xx/board.c +@@ -5,7 +5,9 @@ + */ + + #include ++#include + #include ++#include + #include + #include + #include +@@ -22,6 +24,29 @@ DECLARE_GLOBAL_DATA_PTR; + #define PINCTRL_NB_REG_VALUE 0x000173fa + #define PINCTRL_SB_REG_VALUE 0x00007a23 + ++/* Ethernet switch registers */ ++/* SMI addresses for multi-chip mode */ ++#define MVEBU_PORT_CTRL_SMI_ADDR(p) (16 + (p)) ++#define MVEBU_SW_G2_SMI_ADDR (28) ++ ++/* Multi-chip mode */ ++#define MVEBU_SW_SMI_DATA_REG (1) ++#define MVEBU_SW_SMI_CMD_REG (0) ++ #define SW_SMI_CMD_REG_ADDR_OFF 0 ++ #define SW_SMI_CMD_DEV_ADDR_OFF 5 ++ #define SW_SMI_CMD_SMI_OP_OFF 10 ++ #define SW_SMI_CMD_SMI_MODE_OFF 12 ++ #define SW_SMI_CMD_SMI_BUSY_OFF 15 ++ ++/* Single-chip mode */ ++/* Switch Port Registers */ ++#define MVEBU_SW_LINK_CTRL_REG (1) ++#define MVEBU_SW_PORT_CTRL_REG (4) ++ ++/* Global 2 Registers */ ++#define MVEBU_G2_SMI_PHY_CMD_REG (24) ++#define MVEBU_G2_SMI_PHY_DATA_REG (25) ++ + int board_early_init_f(void) + { + const void *blob = gd->fdt_blob; +@@ -156,3 +181,69 @@ int board_xhci_enable(void) + + return 0; + } ++ ++/* Helper function for accessing switch devices in multi-chip connection mode */ ++static int mii_multi_chip_mode_write(struct mii_dev *bus, int dev_smi_addr, ++ int smi_addr, int reg, u16 value) ++{ ++ u16 smi_cmd = 0; ++ ++ if (bus->write(bus, dev_smi_addr, 0, ++ MVEBU_SW_SMI_DATA_REG, value) != 0) { ++ printf("Error writing to the PHY addr=%02x reg=%02x\n", ++ smi_addr, reg); ++ return -EFAULT; ++ } ++ ++ smi_cmd = (1 << SW_SMI_CMD_SMI_BUSY_OFF) | ++ (1 << SW_SMI_CMD_SMI_MODE_OFF) | ++ (1 << SW_SMI_CMD_SMI_OP_OFF) | ++ (smi_addr << SW_SMI_CMD_DEV_ADDR_OFF) | ++ (reg << SW_SMI_CMD_REG_ADDR_OFF); ++ if (bus->write(bus, dev_smi_addr, 0, ++ MVEBU_SW_SMI_CMD_REG, smi_cmd) != 0) { ++ printf("Error writing to the PHY addr=%02x reg=%02x\n", ++ smi_addr, reg); ++ return -EFAULT; ++ } ++ ++ return 0; ++} ++ ++/* Bring-up board-specific network stuff */ ++int board_network_enable(struct mii_dev *bus) ++{ ++ if (!of_machine_is_compatible("marvell,armada-3720-espressobin")) ++ return 0; ++ ++ /* ++ * FIXME: remove this code once Topaz driver gets available ++ * A3720 Community Board Only ++ * Configure Topaz switch (88E6341) ++ * Set port 0,1,2,3 to forwarding Mode (through Switch Port registers) ++ */ ++ mii_multi_chip_mode_write(bus, 1, MVEBU_PORT_CTRL_SMI_ADDR(0), ++ MVEBU_SW_PORT_CTRL_REG, 0x7f); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_PORT_CTRL_SMI_ADDR(1), ++ MVEBU_SW_PORT_CTRL_REG, 0x7f); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_PORT_CTRL_SMI_ADDR(2), ++ MVEBU_SW_PORT_CTRL_REG, 0x7f); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_PORT_CTRL_SMI_ADDR(3), ++ MVEBU_SW_PORT_CTRL_REG, 0x7f); ++ ++ /* RGMII Delay on Port 0 (CPU port), force link to 1000Mbps */ ++ mii_multi_chip_mode_write(bus, 1, MVEBU_PORT_CTRL_SMI_ADDR(0), ++ MVEBU_SW_LINK_CTRL_REG, 0xe002); ++ ++ /* Power up PHY 1, 2, 3 (through Global 2 registers) */ ++ mii_multi_chip_mode_write(bus, 1, MVEBU_SW_G2_SMI_ADDR, ++ MVEBU_G2_SMI_PHY_DATA_REG, 0x1140); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_SW_G2_SMI_ADDR, ++ MVEBU_G2_SMI_PHY_CMD_REG, 0x9620); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_SW_G2_SMI_ADDR, ++ MVEBU_G2_SMI_PHY_CMD_REG, 0x9640); ++ mii_multi_chip_mode_write(bus, 1, MVEBU_SW_G2_SMI_ADDR, ++ MVEBU_G2_SMI_PHY_CMD_REG, 0x9660); ++ ++ return 0; ++} +From patchwork Thu Feb 16 11:52:30 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot,v2,09/12] arm64: dts: Add device tree for ESPRESSOBin board +From: Kostya Porotchkin +X-Patchwork-Id: 728678 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-10-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:30 +0200 + +From: Konstantin Porotchkin + +Initial DTS file for Marvell ESPRESSOBin comunity board +based on Armada-3720 SoC. +The Marvell ESPRESSOBin is a tiny board made by Globalscale +and available on KickStarter site. It has dual core Armv8 +Marvell SoC (Armada-3720) with 512MB/1GB/2GB DDR3 RAM, +mini-PCIe 2.0 slot, single SATA-3 port, USB 2.0 and USB 3.0 +interfaces, Gigabit Ethernet switch with 3 ports, micro-SD +socket and two 46-pin GPIO connectors. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- No changes + + arch/arm/dts/Makefile | 1 + + arch/arm/dts/armada-3720-espressobin.dts | 135 +++++++++++++++++++++++++++++++ + 2 files changed, 136 insertions(+) + create mode 100644 arch/arm/dts/armada-3720-espressobin.dts + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index eb68c20..d85210c 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -70,6 +70,7 @@ dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \ + + dtb-$(CONFIG_ARCH_MVEBU) += \ + armada-3720-db.dtb \ ++ armada-3720-espressobin.dtb \ + armada-375-db.dtb \ + armada-388-clearfog.dtb \ + armada-388-gp.dtb \ +diff --git a/arch/arm/dts/armada-3720-espressobin.dts b/arch/arm/dts/armada-3720-espressobin.dts +new file mode 100644 +index 0000000..aa6587a +--- /dev/null ++++ b/arch/arm/dts/armada-3720-espressobin.dts +@@ -0,0 +1,135 @@ ++/* ++ * Device Tree file for Marvell Armada 3720 community board ++ * (ESPRESSOBin) ++ * Copyright (C) 2016 Marvell ++ * ++ * Gregory CLEMENT ++ * Konstantin Porotchkin ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++ ++#include "armada-372x.dtsi" ++ ++/ { ++ model = "Marvell Armada 3720 Community Board ESPRESSOBin"; ++ compatible = "marvell,armada-3720-espressobin", "marvell,armada3720", "marvell,armada3710"; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ aliases { ++ ethernet0 = ð0; ++ i2c0 = &i2c0; ++ spi0 = &spi0; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x00000000 0x00000000 0x00000000 0x20000000>; ++ }; ++}; ++ ++&comphy { ++ max-lanes = <3>; ++ phy0 { ++ phy-type = ; ++ phy-speed = ; ++ }; ++ ++ phy1 { ++ phy-type = ; ++ phy-speed = ; ++ }; ++ ++ phy2 { ++ phy-type = ; ++ phy-speed = ; ++ }; ++}; ++ ++ð0 { ++ status = "okay"; ++ phy-mode = "rgmii"; ++ phy_addr = <0x1>; ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++}; ++ ++&i2c0 { ++ status = "okay"; ++}; ++ ++/* CON3 */ ++&sata { ++ status = "okay"; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ spi-flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p128", "spi-flash"; ++ reg = <0>; /* Chip select 0 */ ++ spi-max-frequency = <50000000>; ++ m25p,fast-read; ++ }; ++}; ++ ++/* Exported on the micro USB connector CON32 through an FTDI */ ++&uart0 { ++ status = "okay"; ++}; ++ ++/* CON29 */ ++&usb2 { ++ status = "okay"; ++}; ++ ++/* CON31 */ ++&usb3 { ++ status = "okay"; ++}; +From patchwork Thu Feb 16 11:52:31 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 10/12] arm64: mvebu: Add default config for ESPRESSOBin board +From: Kostya Porotchkin +X-Patchwork-Id: 728679 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-11-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:31 +0200 + +From: Konstantin Porotchkin + +Add initial default configuration for Marvell ESPRESSOBin +community board based on Aramda-3720 SoC + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- Use the new target name TARGET_MVEBU_ARMADA_37XX + + configs/mvebu_espressobin-88f3720_defconfig | 67 +++++++++++++++++++++++++++++ + 1 file changed, 67 insertions(+) + create mode 100644 configs/mvebu_espressobin-88f3720_defconfig + +diff --git a/configs/mvebu_espressobin-88f3720_defconfig b/configs/mvebu_espressobin-88f3720_defconfig +new file mode 100644 +index 0000000..d1749bc +--- /dev/null ++++ b/configs/mvebu_espressobin-88f3720_defconfig +@@ -0,0 +1,67 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_MVEBU=y ++CONFIG_SYS_MALLOC_F_LEN=0x2000 ++CONFIG_TARGET_MVEBU_ARMADA_37XX=y ++CONFIG_DEFAULT_DEVICE_TREE="armada-3720-espressobin" ++CONFIG_AHCI=y ++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set ++CONFIG_SYS_CONSOLE_INFO_QUIET=y ++# CONFIG_DISPLAY_CPUINFO is not set ++# CONFIG_DISPLAY_BOARDINFO is not set ++CONFIG_ARCH_EARLY_INIT_R=y ++CONFIG_BOARD_EARLY_INIT_F=y ++# CONFIG_CMD_IMLS is not set ++# CONFIG_CMD_FLASH is not set ++CONFIG_CMD_MMC=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_SF=y ++CONFIG_CMD_SPI=y ++CONFIG_CMD_I2C=y ++CONFIG_CMD_USB=y ++# CONFIG_CMD_FPGA is not set ++# CONFIG_CMD_SETEXPR is not set ++CONFIG_CMD_TFTPPUT=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_MII=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_TIME=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_EXT4_WRITE=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_MAC_PARTITION=y ++CONFIG_ISO_PARTITION=y ++CONFIG_EFI_PARTITION=y ++CONFIG_CMD_MVEBU_BUBT=y ++CONFIG_SHA1=y ++CONFIG_SHA256=y ++CONFIG_BLOCK_CACHE=y ++CONFIG_DM_I2C=y ++CONFIG_DM_I2C_COMPAT=y ++CONFIG_MISC=y ++CONFIG_DM_MMC=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_SDMA=y ++CONFIG_MMC_SDHCI_XENON=y ++CONFIG_SPI_FLASH=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_SPI_FLASH_SPANSION=y ++CONFIG_SPI_FLASH_STMICRO=y ++CONFIG_SPI_FLASH_WINBOND=y ++CONFIG_PHYLIB=y ++CONFIG_MVEBU_COMPHY_SUPPORT=y ++# CONFIG_SPL_SERIAL_PRESENT is not set ++CONFIG_DEBUG_UART=y ++CONFIG_DEBUG_MVEBU_A3700_UART=y ++CONFIG_DEBUG_UART_BASE=0xd0012000 ++CONFIG_DEBUG_UART_CLOCK=25804800 ++CONFIG_DEBUG_UART_SHIFT=2 ++CONFIG_DEBUG_UART_ANNOUNCE=y ++CONFIG_MVEBU_A3700_UART=y ++CONFIG_MVEBU_A3700_SPI=y ++CONFIG_USB=y ++CONFIG_DM_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_STORAGE=y +From patchwork Thu Feb 16 11:52:32 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 11/12] arm64: a37xx: Disable DB configurations on ESPRESSOBin board +From: Kostya Porotchkin +X-Patchwork-Id: 728688 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-12-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:32 +0200 + +From: Konstantin Porotchkin + +Bypass XHCI and AHCi board configuration flow on ESPRESSOBin +community board. +The community board does not have i2c expander and USB VBUS +is always on, so the scan for AHCi and USB devices can be +faster without unneded configurations. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- Check if the mashine is NOT compatible with DB + instead of checking that if machine is compatible with ESPRESSOBin:wq + + board/Marvell/mvebu_armada-37xx/board.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/board/Marvell/mvebu_armada-37xx/board.c b/board/Marvell/mvebu_armada-37xx/board.c +index b9878bf..8dc1f46 100644 +--- a/board/Marvell/mvebu_armada-37xx/board.c ++++ b/board/Marvell/mvebu_armada-37xx/board.c +@@ -21,6 +21,7 @@ DECLARE_GLOBAL_DATA_PTR; + #define I2C_IO_REG_0_SATA_OFF 2 + #define I2C_IO_REG_0_USB_H_OFF 1 + ++/* The pin control values are the same for DB and Espressobin */ + #define PINCTRL_NB_REG_VALUE 0x000173fa + #define PINCTRL_SB_REG_VALUE 0x00007a23 + +@@ -90,6 +91,10 @@ int board_ahci_enable(void) + int ret; + u8 buf[8]; + ++ /* Only DB requres this configuration */ ++ if (!of_machine_is_compatible("marvell,armada-3720-db")) ++ return 0; ++ + /* Configure IO exander PCA9555: 7bit address 0x22 */ + ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); + if (ret) { +@@ -124,6 +129,10 @@ int board_xhci_enable(void) + int ret; + u8 buf[8]; + ++ /* Only DB requres this configuration */ ++ if (!of_machine_is_compatible("marvell,armada-3720-db")) ++ return 0; ++ + /* Configure IO exander PCA9555: 7bit address 0x22 */ + ret = i2c_get_chip_for_busnum(0, I2C_IO_EXP_ADDR, 1, &dev); + if (ret) { +From patchwork Thu Feb 16 11:52:33 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot, v2, + 12/12] arm64: a37xx: Remove DM_I2C_COMPAT from the board config +From: Kostya Porotchkin +X-Patchwork-Id: 728689 +X-Patchwork-Delegate: sr@denx.de +Message-Id: <1487245953-15100-13-git-send-email-kostap@marvell.com> +To: +Cc: Nadav Haklai , Stefan Roese , + Igal Liberman +Date: Thu, 16 Feb 2017 13:52:33 +0200 + +From: Konstantin Porotchkin + +Remove DM_I2C_COMPAT from the board configurations for +Armada 37xx platform boards for supressing the buid tim +warning. + +Signed-off-by: Konstantin Porotchkin +Cc: Stefan Roese +Cc: Igal Liberman +Cc: Nadav Haklai +--- +Changes for v2: +- This patch was missing in v1 + + configs/mvebu_db-88f3720_defconfig | 1 - + configs/mvebu_espressobin-88f3720_defconfig | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig +index bdb96e9..3e548a8 100644 +--- a/configs/mvebu_db-88f3720_defconfig ++++ b/configs/mvebu_db-88f3720_defconfig +@@ -38,7 +38,6 @@ CONFIG_SHA1=y + CONFIG_SHA256=y + CONFIG_BLOCK_CACHE=y + CONFIG_DM_I2C=y +-CONFIG_DM_I2C_COMPAT=y + CONFIG_MISC=y + CONFIG_DM_MMC=y + CONFIG_MMC_SDHCI=y +diff --git a/configs/mvebu_espressobin-88f3720_defconfig b/configs/mvebu_espressobin-88f3720_defconfig +index d1749bc..f02ae64 100644 +--- a/configs/mvebu_espressobin-88f3720_defconfig ++++ b/configs/mvebu_espressobin-88f3720_defconfig +@@ -38,7 +38,6 @@ CONFIG_SHA1=y + CONFIG_SHA256=y + CONFIG_BLOCK_CACHE=y + CONFIG_DM_I2C=y +-CONFIG_DM_I2C_COMPAT=y + CONFIG_MISC=y + CONFIG_DM_MMC=y + CONFIG_MMC_SDHCI=y diff --git a/mx6cuboxi-Add-support-for-sata.patch b/mx6cuboxi-Add-support-for-sata.patch new file mode 100644 index 0000000..f9a4425 --- /dev/null +++ b/mx6cuboxi-Add-support-for-sata.patch @@ -0,0 +1,74 @@ +From ee16d90048ee985df6199c987e64daeac3378777 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sat, 4 Mar 2017 14:26:19 +0000 +Subject: [PATCH] v2 mx6cuboxi: Add support for sata + +The Cubox-i and Hummingboard series of devices have an option of +SATA on board, and depending on how the fuses are blown even the +option to boot SPL from SATA. So enable support for it so it can +be used to boot the OS from if people desire. + +Signed-off-by: Peter Robinson +--- + board/solidrun/mx6cuboxi/mx6cuboxi.c | 7 +++++++ + include/configs/mx6cuboxi.h | 12 ++++++++++++ + 2 files changed, 19 insertions(+) + +diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c +index 285588d..59a78df 100644 +--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c ++++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -314,6 +315,12 @@ int board_early_init_f(void) + ret = setup_display(); + #endif + ++#ifdef CONFIG_CMD_SATA ++ /* Only mx6q/mx6q has SATA */ ++ if (is_mx6dq()) ++ setup_sata(); ++#endif ++ + #ifdef CONFIG_USB_EHCI_MX6 + setup_usb(); + #endif +diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h +index 2782911..cec626a 100644 +--- a/include/configs/mx6cuboxi.h ++++ b/include/configs/mx6cuboxi.h +@@ -21,6 +21,17 @@ + /* MMC Configs */ + #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR + ++/* SATA Configuration */ ++#define CONFIG_CMD_SATA ++#ifdef CONFIG_CMD_SATA ++#define CONFIG_DWC_AHSATA ++#define CONFIG_SYS_SATA_MAX_DEVICE 1 ++#define CONFIG_DWC_AHSATA_PORT_ID 0 ++#define CONFIG_DWC_AHSATA_BASE_ADDR SATA_ARB_BASE_ADDR ++#define CONFIG_LBA48 ++#define CONFIG_LIBATA ++#endif ++ + /* Ethernet Configuration */ + #define CONFIG_FEC_MXC + #define CONFIG_MII +@@ -119,6 +130,7 @@ + + #define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ ++ func(SATA, sata, 0) \ + func(USB, usb, 0) \ + func(PXE, pxe, na) \ + func(DHCP, dhcp, na) +-- +2.9.3 + diff --git a/uboot-tools.spec b/uboot-tools.spec index 8c0def5..568b095 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -2,7 +2,7 @@ Name: uboot-tools Version: 2017.03 -Release: 0.6%{?candidate:.%{candidate}}%{?dist} +Release: 0.7%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities Group: Development/Tools @@ -16,8 +16,11 @@ Patch1: add-BOOTENV_INIT_COMMAND-for-commands-that-may-be-ne.patch Patch2: U-Boot-1-2-rsa-Fix-build-with-OpenSSL-1.1.x.patch Patch3: U-Boot-2-2-rsa-Fix-deprecated-warnings-for-OpenSSL-1.1.x.patch Patch4: tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch +Patch5: mx6cuboxi-Add-support-for-sata.patch +Patch6: mx6-Initial-Hummingboard-2-support.patch +Patch7: mvebu-ESPRESSOBin-board.patch -# Patch5: 0001-arm-mvebu-enable-generic-distro-boot-config.patch +# Patch9: 0001-arm-mvebu-enable-generic-distro-boot-config.patch BuildRequires: bc BuildRequires: dtc @@ -252,6 +255,11 @@ cp -p board/rockchip/evb_rk3399/README doc/README.evb_rk3399 %endif %changelog +* Mon Mar 6 2017 Peter Robinson 2017.03-0.7.rc3 +- Add support for SATA on Cubox-i and Hummingboard +- Add initial Hummingboard 2 (Gate/Edge) support +- Add initial Marvell ESPRESSOBin board support + * Tue Feb 28 2017 Peter Robinson 2017.03-0.6.rc3 - 2017.03 RC3