Fix regression in i.MX6 and omap4 devices, Improve DT detection support on aarch64, uEFI fixes and improvements, ENable Sinovoip BPI devices

This commit is contained in:
Peter Robinson 2017-10-06 07:35:41 +01:00
parent 103f2410f5
commit 262b4144c8
9 changed files with 2187 additions and 512 deletions

49
10-devicetree.install Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
COMMAND="$1"
KERNEL_VERSION="$2"
#BOOT_DIR_ABS="$3"
#KERNEL_IMAGE="$4"
# Setup a /boot/dtb -> /boot/dtb-$newest_kernel_version symlink so that
# u-boot can find the correct dtb to load.
#
# If invoked to 'add' a new kernel, find the newest based on `sort`ing
# the kernel versions dtb. If 'remove', then follow basically the same
# procedure but exclude the version currently being removed.
#
# The theory of operation here is that, while newer kernels may add new
# dtb nodes and fields, as upstreaming hw support for some particular
# device progresses, it should never make backward incompatible changes.
# So it should always be safe to use a newer dtb with an older kernel.
list_dtb_versions() {
excluded_version="$1"
for dtbdir in /boot/dtb-*; do
dtbver=${dtbdir#*-}
if [ "$dtbver" != "$excluded_version" ]; then
echo $dtbver
fi
done
}
setup_dtb_link() {
ver=`list_dtb_versions $1 | sort -r --sort=version | head -1`
if [ -h /boot/dtb ]; then
rm -f /boot/dtb
fi
ln -s dtb-$ver /boot/dtb
}
ret=0
case "$COMMAND" in
add)
setup_dtb_link
ret=$?
;;
remove)
setup_dtb_link $KERNEL_VERSION
ret=$?
;;
esac
exit $ret

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
From patchwork Wed Oct 4 16:29:57 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot] disk: part_dos: Use the original allocation scheme for the
SPL case
X-Patchwork-Submitter: Fabio Estevam <fabio.estevam@nxp.com>
X-Patchwork-Id: 821393
Message-Id: <1507134597-6831-1-git-send-email-fabio.estevam@nxp.com>
To: <trini@konsulko.com>
Cc: u-boot@lists.denx.de, pjones@redhat.com,
Fabio Estevam <fabio.estevam@nxp.com>
Date: Wed, 4 Oct 2017 13:29:57 -0300
From: Fabio Estevam <fabio.estevam@nxp.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
Since commit ff98cb90514d ("part: extract MBR signature from partitions")
SPL boot on i.MX6 starts to fail:
U-Boot SPL 2017.09-00221-g0d6ab32 (Oct 02 2017 - 15:13:19)
Trying to boot from MMC1
(keep in loop)
Use the original allocation scheme for the SPL case, so that MX6 boards
can boot again.
This is a temporary solution to avoid the boot regression.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Rob Clark <robdclark@gmail.com>
---
Hi Tom,
I do not have time this week to further investigate and narrow down
this problem.
Using the old allocation scheme fixes the mx6 SPL boot problem.
disk/part_dos.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/disk/part_dos.c b/disk/part_dos.c
index 1a36be0..6dd2c2d 100644
--- a/disk/part_dos.c
+++ b/disk/part_dos.c
@@ -89,6 +89,7 @@ static int test_block_type(unsigned char *buffer)
static int part_test_dos(struct blk_desc *dev_desc)
{
+#ifndef CONFIG_SPL_BUILD
ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz);
if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)
@@ -102,6 +103,15 @@ static int part_test_dos(struct blk_desc *dev_desc)
dev_desc->sig_type = SIG_TYPE_MBR;
dev_desc->mbr_sig = mbr->unique_mbr_signature;
}
+#else
+ ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz);
+
+ if (blk_dread(dev_desc, 0, 1, (ulong *)buffer) != 1)
+ return -1;
+
+ if (test_block_type(buffer) != DOS_MBR)
+ return -1;
+#endif
return 0;
}

View File

@ -642,51 +642,6 @@ index d9dc639aeb..626dff8dcd 100644
--
2.13.3
From 76fba480e6ee494e2e01c19bb8952f42a3b6a710 Mon Sep 17 00:00:00 2001
From: Rob Clark <robdclark@gmail.com>
Date: Mon, 3 Jul 2017 09:15:44 -0400
Subject: [PATCH 12/23] usb: kbd: don't fail with iomux
stdin might not be set, which would cause iomux_doenv() to fail
therefore causing probe_usb_keyboard() to fail. Furthermore if we do
have iomux enabled, the sensible thing (in terms of user experience)
would be to simply add ourselves to the list of stdin devices.
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
common/usb_kbd.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index d2d29cc98f..703dd748f5 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -517,7 +517,22 @@
stdinname = env_get("stdin");
#if CONFIG_IS_ENABLED(CONSOLE_MUX)
+ char *devname = DEVNAME;
+ /*
+ * stdin might not be set yet.. either way, with console-mux the
+ * sensible thing to do is add ourselves to the list of stdio
+ * devices:
+ */
+ if (stdinname && !strstr(stdinname, DEVNAME)) {
+ char *newstdin = malloc(strlen(stdinname) + strlen(","DEVNAME) + 1);
+ sprintf(newstdin, "%s,"DEVNAME, stdinname);
+ stdinname = newstdin;
+ } else if (!stdinname) {
+ stdinname = devname;
+ }
error = iomux_doenv(stdin, stdinname);
+ if (stdinname != devname)
+ free(stdinname);
if (error)
return error;
#else
--
2.13.3
From 2bf6ff0703fa92755469d8f218a75b07008e9768 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Mon, 18 Sep 2017 09:34:30 +0100

View File

@ -1,330 +0,0 @@
From patchwork Sat Sep 23 02:45:28 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,1/6] mx6sabresd: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817753
Message-Id: <1506134733-30962-1-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:28 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
---
board/freescale/mx6sabresd/mx6sabresd.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 5b50bc8..f14b759 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -620,9 +620,6 @@ int board_ehci_power(int port, int on)
int board_early_init_f(void)
{
setup_iomux_uart();
-#if defined(CONFIG_VIDEO_IPUV3)
- setup_display();
-#endif
return 0;
}
@@ -639,6 +636,9 @@ int board_init(void)
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6q_i2c_pad_info1);
else
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info1);
+#if defined(CONFIG_VIDEO_IPUV3)
+ setup_display();
+#endif
#ifdef CONFIG_USB_EHCI_MX6
setup_usb();
#endif
From patchwork Sat Sep 23 02:45:29 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot, 2/6] cgtqmx6eval: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817755
Message-Id: <1506134733-30962-2-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:29 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
---
board/congatec/cgtqmx6eval/cgtqmx6eval.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/board/congatec/cgtqmx6eval/cgtqmx6eval.c b/board/congatec/cgtqmx6eval/cgtqmx6eval.c
index 2ed66d3..d42cc94 100644
--- a/board/congatec/cgtqmx6eval/cgtqmx6eval.c
+++ b/board/congatec/cgtqmx6eval/cgtqmx6eval.c
@@ -683,8 +683,6 @@ int overwrite_console(void)
int board_early_init_f(void)
{
setup_iomux_uart();
- setup_display();
-
#ifdef CONFIG_MXC_SPI
setup_spi();
#endif
@@ -702,6 +700,8 @@ int board_init(void)
else
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info1);
+ setup_display();
+
#ifdef CONFIG_SATA
setup_sata();
#endif
From patchwork Sat Sep 23 02:45:30 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,3/6] wandboard: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817757
Message-Id: <1506134733-30962-3-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:30 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
---
board/wandboard/wandboard.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index adfcf48..dde4988 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -376,9 +376,6 @@ int board_eth_init(bd_t *bis)
int board_early_init_f(void)
{
setup_iomux_uart();
-#if defined(CONFIG_VIDEO_IPUV3)
- setup_display();
-#endif
#ifdef CONFIG_SATA
/* Only mx6q wandboard has SATA */
if (is_cpu_type(MXC_CPU_MX6Q))
@@ -448,6 +445,8 @@ int board_init(void)
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6q_i2c2_pad_info);
else
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c2_pad_info);
+
+ setup_display();
#endif
return 0;
From patchwork Sat Sep 23 02:45:31 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,4/6] mx6cuboxi: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817756
Message-Id: <1506134733-30962-4-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:31 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
---
board/solidrun/mx6cuboxi/mx6cuboxi.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 1e4da4a..ee9e4f7 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -308,13 +308,8 @@ int board_ehci_hcd_init(int port)
int board_early_init_f(void)
{
- int ret = 0;
setup_iomux_uart();
-#ifdef CONFIG_VIDEO_IPUV3
- ret = setup_display();
-#endif
-
#ifdef CONFIG_CMD_SATA
setup_sata();
#endif
@@ -322,15 +317,21 @@ int board_early_init_f(void)
#ifdef CONFIG_USB_EHCI_MX6
setup_usb();
#endif
- return ret;
+ return 0;
}
int board_init(void)
{
+ int ret = 0;
+
/* address of boot parameters */
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
- return 0;
+#ifdef CONFIG_VIDEO_IPUV3
+ ret = setup_display();
+#endif
+
+ return ret;
}
static bool is_hummingboard(void)
From patchwork Sat Sep 23 02:45:32 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot, 5/6] apalis_imx6: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817754
Message-Id: <1506134733-30962-5-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:32 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Max Krummenacher <max.krummenacher@toradex.com>
---
board/toradex/apalis_imx6/apalis_imx6.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 628a61d..b86dde8 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -756,10 +756,6 @@ int board_early_init_f(void)
#else
setup_iomux_dce_uart();
#endif
-
-#if defined(CONFIG_VIDEO_IPUV3)
- setup_display();
-#endif
return 0;
}
@@ -781,6 +777,10 @@ int board_init(void)
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info_loc);
setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info3);
+#if defined(CONFIG_VIDEO_IPUV3)
+ setup_display();
+#endif
+
#ifdef CONFIG_TDX_CMD_IMX_MFGR
(void) pmic_init();
#endif
From patchwork Sat Sep 23 02:45:33 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,
6/6] colibri_imx6: Avoid calling setup_display() from SPL code
X-Patchwork-Submitter: Fabio Estevam <festevam@gmail.com>
X-Patchwork-Id: 817758
Message-Id: <1506134733-30962-6-git-send-email-festevam@gmail.com>
To: sbabic@denx.de
Cc: Fabio Estevam <fabio.estevam@nxp.com>, u-boot@lists.denx.de,
max.krummenacher@toradex.com
Date: Fri, 22 Sep 2017 23:45:33 -0300
From: Fabio Estevam <festevam@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
From: Fabio Estevam <fabio.estevam@nxp.com>
There is no need call setup_display() from SPL code, so move it to
board_init(), which executes only in U-Boot proper.
Reported-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
---
board/toradex/colibri_imx6/colibri_imx6.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 756e3f3..a2a4214 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -630,9 +630,6 @@ int board_early_init_f(void)
ARRAY_SIZE(pwr_intb_pads));
setup_iomux_uart();
-#if defined(CONFIG_VIDEO_IPUV3)
- setup_display();
-#endif
return 0;
}
@@ -653,6 +650,10 @@ int board_init(void)
setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info_loc);
+#if defined(CONFIG_VIDEO_IPUV3)
+ setup_display();
+#endif
+
#ifdef CONFIG_TDX_CMD_IMX_MFGR
(void) pmic_init();
#endif

View File

@ -0,0 +1,541 @@
From patchwork Fri Sep 22 07:26:27 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,1/9] sunxi: rename Bananapi M3 dts file name
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817346
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-2-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:27 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The upstream (Linux) device tree file for the Bananapi M3 follows the
convention of using the well known brand name, instead of the vendor
name, for naming. The file was recently added to upstream in commit
359b5a1e1c2d ("ARM: sun8i: a83t: Add device tree for Sinovoip Bananapi
BPI-M3")
Rename the device tree file in U-boot to match.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
arch/arm/dts/Makefile | 4 ++--
.../{sun8i-a83t-sinovoip-bpi-m3.dts => sun8i-a83t-bananapi-m3.dts} | 0
configs/Sinovoip_BPI_M3_defconfig | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
rename arch/arm/dts/{sun8i-a83t-sinovoip-bpi-m3.dts => sun8i-a83t-bananapi-m3.dts} (100%)
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 762429c463d1..b7550104c340 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -307,8 +307,8 @@ dtb-$(CONFIG_MACH_SUN8I_A33) += \
sun8i-r16-parrot.dtb
dtb-$(CONFIG_MACH_SUN8I_A83T) += \
sun8i-a83t-allwinner-h8homlet-v2.dtb \
- sun8i-a83t-cubietruck-plus.dtb \
- sun8i-a83t-sinovoip-bpi-m3.dtb
+ sun8i-a83t-bananapi-m3.dtb \
+ sun8i-a83t-cubietruck-plus.dtb
dtb-$(CONFIG_MACH_SUN8I_H3) += \
sun8i-h2-plus-orangepi-zero.dtb \
sun8i-h3-bananapi-m2-plus.dtb \
diff --git a/arch/arm/dts/sun8i-a83t-sinovoip-bpi-m3.dts b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts
similarity index 100%
rename from arch/arm/dts/sun8i-a83t-sinovoip-bpi-m3.dts
rename to arch/arm/dts/sun8i-a83t-bananapi-m3.dts
diff --git a/configs/Sinovoip_BPI_M3_defconfig b/configs/Sinovoip_BPI_M3_defconfig
index 04d81693ebd8..f321d94e04eb 100644
--- a/configs/Sinovoip_BPI_M3_defconfig
+++ b/configs/Sinovoip_BPI_M3_defconfig
@@ -13,7 +13,7 @@ CONFIG_USB0_ID_DET="PH11"
CONFIG_USB1_VBUS_PIN="PD24"
CONFIG_AXP_GPIO=y
CONFIG_SATAPWR="PD25"
-CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-sinovoip-bpi-m3"
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-bananapi-m3"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_CONSOLE_MUX=y
CONFIG_SPL=y
From patchwork Fri Sep 22 07:26:28 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,2/9] sunxi: Enable eMMC on Cubietruck Plus
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817342
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-3-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:28 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
Set CONFIG_MMC_SUNXI_SLOT_EXTRA=2 to enable the eMMC controller to
access eMMC on the board.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
configs/Cubietruck_plus_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/configs/Cubietruck_plus_defconfig b/configs/Cubietruck_plus_defconfig
index 34444ec0bd09..3d999192cbc1 100644
--- a/configs/Cubietruck_plus_defconfig
+++ b/configs/Cubietruck_plus_defconfig
@@ -4,6 +4,7 @@ CONFIG_MACH_SUN8I_A83T=y
CONFIG_DRAM_CLK=672
CONFIG_DRAM_ZQ=15355
CONFIG_DRAM_ODT_EN=y
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE"
CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
CONFIG_USB0_ID_DET="PH11"
From patchwork Fri Sep 22 07:26:29 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,3/9] sunxi: Fix USB PHY control register offset for A83T
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817341
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-4-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:29 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
It was recently discovered that the USB PHY control register offset on
the A83T is 0x410 like on the A33, not 0x404. Fix it.
Fixes: 0c935acb9e5d ("sunxi: usb_phy: Add support for A83T USB PHYs")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
arch/arm/mach-sunxi/usb_phy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-sunxi/usb_phy.c b/arch/arm/mach-sunxi/usb_phy.c
index 9bf0b5633d4a..3fbef0050e3f 100644
--- a/arch/arm/mach-sunxi/usb_phy.c
+++ b/arch/arm/mach-sunxi/usb_phy.c
@@ -19,7 +19,7 @@
#include <errno.h>
#define SUNXI_USB_PMU_IRQ_ENABLE 0x800
-#ifdef CONFIG_MACH_SUN8I_A33
+#if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T
#define SUNXI_USB_CSR 0x410
#else
#define SUNXI_USB_CSR 0x404
From patchwork Fri Sep 22 07:26:30 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,4/9] sunxi: Switch MUSB to gadget mode on the Bananapi M3
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817348
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-5-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:30 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The Bananapi M3 has a micro-USB OTG port. It supports both host and
gadget mode. Having the OTG port operate in gadget mode is more useful,
as we can use it for fastboot or Ethernet over USB.
The board has 2 other USB host ports that are supported. These can be
used for connecting peripherals.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
configs/Sinovoip_BPI_M3_defconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configs/Sinovoip_BPI_M3_defconfig b/configs/Sinovoip_BPI_M3_defconfig
index f321d94e04eb..e48983fc3310 100644
--- a/configs/Sinovoip_BPI_M3_defconfig
+++ b/configs/Sinovoip_BPI_M3_defconfig
@@ -27,5 +27,5 @@ CONFIG_AXP_DCDC5_VOLT=1200
CONFIG_AXP_DLDO3_VOLT=2500
CONFIG_AXP_SW_ON=y
CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_MUSB_HOST=y
+CONFIG_USB_MUSB_GADGET=y
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
From patchwork Fri Sep 22 07:26:31 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot, 5/9] sunxi: Switch MUSB to gadget mode on the Cubietruck Plus
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817344
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-6-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:31 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The Cubietruck Plus has a micro-USB OTG port. It supports both host and
gadget mode. Having the OTG port operate in gadget mode is more useful,
as we can use it for fastboot or Ethernet over USB.
The board has 2 other USB host ports that are supported. These can be
used for connecting peripherals.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
configs/Cubietruck_plus_defconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configs/Cubietruck_plus_defconfig b/configs/Cubietruck_plus_defconfig
index 3d999192cbc1..3aefcc58413c 100644
--- a/configs/Cubietruck_plus_defconfig
+++ b/configs/Cubietruck_plus_defconfig
@@ -26,5 +26,5 @@ CONFIG_AXP_DLDO3_VOLT=2500
CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_AXP_FLDO1_VOLT=1200
CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_MUSB_HOST=y
+CONFIG_USB_MUSB_GADGET=y
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
From patchwork Fri Sep 22 07:26:32 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,6/9] net: sun8i_emac: Support RX/TX delay chains
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817350
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-7-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:32 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The EMAC syscon has configurable RX/TX delay chains for use with RGMII
PHYs.
This adds support for configuring them via device tree properties. The
property names and format were defined in Linux's dwmac-sun8i binding
that was merged at one point.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/net/sun8i_emac.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index 09bbb2cdb5ca..5fa1b4c170d7 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -56,6 +56,10 @@
#define H3_EPHY_SELECT BIT(15) /* 1: internal PHY, 0: external PHY */
#define SC_RMII_EN BIT(13)
+#define SC_TXDC_SHIFT 10
+#define SC_TXDC_MASK GENMASK(2, 0)
+#define SC_RXDC_SHIFT 5
+#define SC_RXDC_MASK GENMASK(4, 0)
#define SC_EPIT BIT(2) /* 1: RGMII, 0: MII */
#define SC_ETCS_MASK GENMASK(1, 0)
#define SC_ETCS_EXT_GMII 0x1
@@ -125,6 +129,8 @@ struct emac_eth_dev {
u32 addr;
u32 tx_slot;
bool use_internal_phy;
+ u32 tx_delay;
+ u32 rx_delay;
enum emac_variant variant;
void *mac_reg;
@@ -290,6 +296,12 @@ static int sun8i_emac_set_syscon(struct emac_eth_dev *priv)
if (priv->variant == H3_EMAC || priv->variant == A64_EMAC)
reg &= ~SC_RMII_EN;
+ /* Configure RX/TX delay chains */
+ reg &= ~(SC_RXDC_MASK << SC_RXDC_SHIFT);
+ reg &= ~(SC_TXDC_MASK << SC_TXDC_SHIFT);
+ reg |= (priv->rx_delay & SC_RXDC_MASK) << SC_RXDC_SHIFT;
+ reg |= (priv->tx_delay & SC_TXDC_MASK) << SC_TXDC_SHIFT;
+
switch (priv->interface) {
case PHY_INTERFACE_MODE_MII:
/* default */
@@ -836,6 +848,19 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
}
#endif
+ /* Get RX/TX delays for RGMII */
+ priv->rx_delay = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
+ "allwinner,rx-delay-ps", 0);
+ if (priv->rx_delay % 100 || priv->rx_delay > 3100)
+ debug("%s: invalid rx delay value\n", __func__);
+ priv->rx_delay /= 100;
+
+ priv->tx_delay = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
+ "allwinner,tx-delay-ps", 0);
+ if (priv->tx_delay % 100 || priv->tx_delay > 800)
+ debug("%s: invalid tx delay value\n", __func__);
+ priv->tx_delay /= 100;
+
return 0;
}
From patchwork Fri Sep 22 07:26:33 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,7/9] net: sun8i_emac: Fix build for non-H3/H5 SoCs
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817349
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-8-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:33 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
Only the H3/H5 SoCs have an internal PHY and its related clock and
reset controls.
Use an #ifdef to guard the internal PHY control code block so it
can be built for other SoCs, such as the A83T or A64.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
---
drivers/net/sun8i_emac.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index 5fa1b4c170d7..0a98a04967da 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -616,6 +616,8 @@ static void sun8i_emac_board_setup(struct emac_eth_dev *priv)
{
struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
+#ifdef CONFIG_MACH_SUNXI_H3_H5
+ /* Only H3/H5 have clock controls for internal EPHY */
if (priv->use_internal_phy) {
/* Set clock gating for ephy */
setbits_le32(&ccm->bus_gate4, BIT(AHB_GATE_OFFSET_EPHY));
@@ -623,6 +625,7 @@ static void sun8i_emac_board_setup(struct emac_eth_dev *priv)
/* Deassert EPHY */
setbits_le32(&ccm->ahb_reset2_cfg, BIT(AHB_RESET_OFFSET_EPHY));
}
+#endif
/* Set clock gating for emac */
setbits_le32(&ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_GMAC));
From patchwork Fri Sep 22 07:26:34 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,8/9] sunxi: Enable EMAC on the Cubietruck Plus
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817345
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-9-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:34 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The Cubietruck Plus has an RTL8211E PHY connected to the EMAC using
RGMII. The PHY is powered by DLDO4 @ 3.3V, while the I/O pins are
powered by DLDO3 @ 2.5V.
This patch adds a U-boot specific dtsi file for the board adding
an enabled EMAC node, and enables the EMAC driver in the defconfig.
The binding used here is the old revision currently supported in
U-boot. There is no stable binding nor support in upstream Linux
at this time.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
.../arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi | 39 ++++++++++++++++++++++
configs/Cubietruck_plus_defconfig | 1 +
2 files changed, 40 insertions(+)
create mode 100644 arch/arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi
diff --git a/arch/arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi b/arch/arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi
new file mode 100644
index 000000000000..b4e216c14264
--- /dev/null
+++ b/arch/arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi
@@ -0,0 +1,39 @@
+#include "sunxi-u-boot.dtsi"
+
+/ {
+ aliases {
+ ethernet0 = &emac;
+ };
+
+ soc {
+ emac: ethernet@01c30000 {
+ compatible = "allwinner,sun8i-a83t-emac";
+ reg = <0x01c30000 0x2000>, <0x01c00030 0x4>;
+ reg-names = "emac", "syscon";
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii_pins>;
+ phy-mode = "rgmii";
+ phy = <&phy1>;
+ status = "okay";
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+ };
+};
+
+&pio {
+ rgmii_pins: rgmii_pins {
+ allwinner,pins = "PD8", "PD9", "PD10", "PD11",
+ "PD12", "PD13", "PD15",
+ "PD16", "PD17", "PD18", "PD19",
+ "PD20", "PD21", "PD22", "PD23";
+ allwinner,function = "emac";
+ allwinner,drive = <3>;
+ allwinner,pull = <0>;
+ };
+};
diff --git a/configs/Cubietruck_plus_defconfig b/configs/Cubietruck_plus_defconfig
index 3aefcc58413c..ee8b901d0d08 100644
--- a/configs/Cubietruck_plus_defconfig
+++ b/configs/Cubietruck_plus_defconfig
@@ -22,6 +22,7 @@ CONFIG_SPL=y
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_ISO_PARTITION is not set
# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SUN8I_EMAC=y
CONFIG_AXP_DLDO3_VOLT=2500
CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_AXP_FLDO1_VOLT=1200
From patchwork Fri Sep 22 07:26:35 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,9/9] sunxi: Enable EMAC on the Bananapi M3
X-Patchwork-Submitter: Chen-Yu Tsai <wens@csie.org>
X-Patchwork-Id: 817347
X-Patchwork-Delegate: jagannadh.teki@gmail.com
Message-Id: <20170922072635.32105-10-wens@csie.org>
To: u-boot@lists.denx.de
Cc: Joe Hershberger <joe.hershberger@ni.com>, Jagan Teki <jagan@openedev.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Fri, 22 Sep 2017 15:26:35 +0800
From: Chen-Yu Tsai <wens@csie.org>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
The Bananapi M3 has an RTL8211E PHY connected to the EMAC using
RGMII. The PHY is powered by DCDC1 through SW @ 3.3V.
This patch adds a U-boot specific dtsi file for the board adding
an enabled EMAC node, and enables the EMAC driver in the defconfig.
The binding used here is the old revision currently supported in
U-boot. There is no stable binding nor support in upstream Linux
at this time.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi | 41 +++++++++++++++++++++++++
configs/Sinovoip_BPI_M3_defconfig | 1 +
2 files changed, 42 insertions(+)
create mode 100644 arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi
diff --git a/arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi b/arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi
new file mode 100644
index 000000000000..9c7977e67b92
--- /dev/null
+++ b/arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi
@@ -0,0 +1,41 @@
+#include "sunxi-u-boot.dtsi"
+
+/ {
+ aliases {
+ ethernet0 = &emac;
+ };
+
+ soc {
+ emac: ethernet@01c30000 {
+ compatible = "allwinner,sun8i-a83t-emac";
+ reg = <0x01c30000 0x2000>, <0x01c00030 0x4>;
+ reg-names = "emac", "syscon";
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii_pins>;
+ phy-mode = "rgmii";
+ phy = <&phy1>;
+ allwinner,rx-delay-ps = <700>;
+ allwinner,tx-delay-ps = <700>;
+ status = "okay";
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+ };
+};
+
+&pio {
+ rgmii_pins: rgmii_pins {
+ allwinner,pins = "PD8", "PD9", "PD10", "PD11",
+ "PD12", "PD13", "PD15",
+ "PD16", "PD17", "PD18", "PD19",
+ "PD20", "PD21", "PD22", "PD23";
+ allwinner,function = "emac";
+ allwinner,drive = <3>;
+ allwinner,pull = <0>;
+ };
+};
diff --git a/configs/Sinovoip_BPI_M3_defconfig b/configs/Sinovoip_BPI_M3_defconfig
index e48983fc3310..efdf3c7396fd 100644
--- a/configs/Sinovoip_BPI_M3_defconfig
+++ b/configs/Sinovoip_BPI_M3_defconfig
@@ -23,6 +23,7 @@ CONFIG_SPL=y
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_ISO_PARTITION is not set
# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SUN8I_EMAC=y
CONFIG_AXP_DCDC5_VOLT=1200
CONFIG_AXP_DLDO3_VOLT=2500
CONFIG_AXP_SW_ON=y

View File

@ -2,7 +2,7 @@
Name: uboot-tools
Version: 2017.09
Release: 2%{?candidate:.%{candidate}}%{?dist}
Release: 3%{?candidate:.%{candidate}}%{?dist}
Summary: U-Boot utilities
License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+
URL: http://www.denx.de/wiki/U-Boot
@ -12,6 +12,7 @@ Source1: arm-boards
Source2: arm-chromebooks
Source3: aarch64-boards
Source4: aarch64-chromebooks
Source5: 10-devicetree.install
# Fedoraisms patches, general fixes
Patch1: uefi-vsprintf.patch
@ -19,12 +20,16 @@ Patch2: uefi-improve-fat.patch
Patch3: uefi-efi_loader-enough-UEFI-for-standard-distro-boot.patch
Patch4: uefi-use-Fedora-specific-path-name.patch
Patch5: dm-video-enhancements-for-Shell.efi.patch
Patch6: usb-kbd-fixes.patch
Patch7: disk-part_dos-Use-the-original-allocation-scheme-for-the-SPL-case.patch
Patch8: uefi-distro-load-FDT-from-any-partition-on-boot-device.patch
# Board fixes and enablement
Patch10: dragonboard-fixes.patch
Patch11: qemu-machine-virt-ARM.patch
Patch12: sti-STiH410-B2260-support.patch
Patch13: mx6-Avoid-calling-setup_display-from-SPL-code.patch
Patch13: bcm283x-device-tree-sources-to-Linux-4.14-state.patch
Patch14: sunxi-A83T-improvements.patch
# Patch14: mvebu-enable-generic-distro-boot-config.patch
# Patch15: mx6-Initial-Hummingboard-2-support.patch
@ -46,6 +51,7 @@ BuildRequires: arm-trusted-firmware-armv8
%endif
Requires: dtc
Requires: systemd
%description
This package contains a few U-Boot utilities - mkimage for creating boot images
@ -233,6 +239,10 @@ install -p -m 0755 builds/tools/env/fw_printenv $RPM_BUILD_ROOT%{_bindir}
install -p -m 0644 tools/env/fw_env.config $RPM_BUILD_ROOT%{_sysconfdir}
# systemd kernel-install script for device tree
mkdir -p $RPM_BUILD_ROOT/lib/kernel/install.d/
install -p -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/lib/kernel/install.d/
# Copy sone useful docs over
mkdir -p builds/docs
cp -p board/amlogic/odroid-c2/README builds/docs/README.odroid-c2
@ -257,6 +267,7 @@ cp -p board/warp7/README builds/docs/README.warp7
%doc doc/README.chromium builds/docs/*
%{_bindir}/*
%{_mandir}/man1/mkimage.1*
/lib/kernel/install.d/10-devicetree.install
%dir %{_datadir}/uboot/
%config(noreplace) %{_sysconfdir}/fw_env.config
@ -278,6 +289,12 @@ cp -p board/warp7/README builds/docs/README.warp7
%endif
%changelog
* Thu Oct 5 2017 Peter Robinson <pbrobinson@fedoraproject.org> 2017.09-3
- Fix regression in i.MX6 and omap4 devices
- Improve DT detection support on aarch64
- uEFI fixes and improvements
- ENable Sinovoip BPI devices
* Wed Sep 27 2017 Peter Robinson <pbrobinson@fedoraproject.org> 2017.09-2
- Add patch to fix some uEFI console output
- Minor other tweaks
@ -393,138 +410,3 @@ cp -p board/warp7/README builds/docs/README.warp7
* Tue Jan 10 2017 Peter Robinson <pbrobinson@fedoraproject.org> 2017.01-1
- 2017.01
* Tue Jan 3 2017 Peter Robinson <pbrobinson@fedoraproject.org> 2017.01-0.4.rc3
- Enable new devices
* Tue Jan 3 2017 Peter Robinson <pbrobinson@fedoraproject.org> 2017.01-0.3.rc3
- 2017.01 RC3
* Tue Dec 20 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2017.01-0.2.rc2
- 2017.01 RC2
* Wed Dec 7 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2017.01-0.1.rc1
- 2017.01 RC1
* Tue Nov 29 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.11-2
- Add upstream patch to support UDOO Neo
* Mon Nov 14 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.11-1
- Update to 2016.11 GA
* Mon Oct 31 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.11-0.3.rc3
- 2016.11 RC3
* Tue Oct 18 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.11-0.2.rc2
- 2016.11 RC2
* Sat Oct 8 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.11-0.1.rc1
- 2016.11 RC1
* Tue Sep 20 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.09.01-1
- Update to 2016.09.01 GA
* Mon Sep 12 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.09-3
- Update to 2016.09 GA
- Add qemu elf binaries to new subpackage
* Tue Aug 23 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.09-2rc2
- 2016.09 RC2
* Wed Jul 27 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.09-1rc1
- 2016.09 RC1
* Tue Jul 12 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.07-1
- Update to 2016.07 GA
* Thu Jul 7 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.07-0.4rc3
- Minor updates and cleanups
* Tue Jul 5 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.07-0.3rc3
- 2016.07 RC3
* Tue Jun 21 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.07-0.2rc2
- 2016.07 RC2
* Tue Jun 7 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.07-0.1rc1
- 2016.07 RC1
- Build new aarch64 devices: odroid-c2
- Build new ARMv7 devices: chromebook-jerry
* Mon May 23 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-3
- Ship SPL for rockchips devices
* Thu May 19 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-2
- Fix distro boot on clearfog
- arm64 EFI boot fixes
* Mon May 16 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-1
- Update to 2016.05 GA
* Thu May 12 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-0.5rc3
- Add USB storage support to CHIP
- Enhanced PINE64 support
* Thu Apr 28 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-0.4rc3
- Upstream fix for i.MX6 breakage
- Rebase mvebu distro boot patch
* Wed Apr 27 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-0.3rc3
- Add work around for imx6 and renable devices
* Tue Apr 26 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-0.2rc3
- 2016.05 RC3
- Add some useful device READMEs that contain locations of needed firmware blobs etc
- Enable Jetson TX1
- i.MX6 still disabled
* Thu Apr 21 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-0.1rc1
- 2016.05 RC1
- Build aarch64 u-boot for HiKey, DragonBoard, PINE64
- Build new ARMv7 devices
- Temp disable some i.MX6 devices as build broken
* Tue Apr 19 2016 Dennis Gilmore <dennis@ausil.us> - 2016.03-6
- drop using the fedora logos for now rhbz#1328505
* Sat Apr 9 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-5
- Add upstream fix for ARMv7 cache issues preventing some devices from booting
* Tue Mar 22 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-4
- Add a better fix for network issue which caused follow on issues
* Mon Mar 21 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-3
- Add a work around for ggc6 issue on some ARMv7 devices
- Add fixes for AllWinner USB and some fixes for OrangePi devices
* Fri Mar 18 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-2
- Add upstream patches to fix some issues on some AllWinner devices
* Mon Mar 14 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-1
- Update to 2016.03 GA
* Sun Mar 6 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-0.4rc3
- Minor cleanups and new devices
* Tue Mar 1 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-0.3rc3
- Update to 2016.03 RC3
* Tue Feb 16 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-0.2rc2
- Update to 2016.03 RC2
- Enable SolidRun Clearfog
* Wed Feb 3 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.03-0.1rc1
- Update to 2016.03 RC1
* Wed Jan 20 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.01-3
- Fix PXE boot on Wandboard (rhbz #1299957)
* Tue Jan 19 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.01-2
- Add patch to fix PCI-e on Jetson TK1
- Add patch fo serial junk on BeagleBone
* Tue Jan 12 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.01-1
- Update to 2016.01 GA
* Sun Jan 10 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.01-0.4rc4
- Update to 2016.01 RC4

View File

@ -0,0 +1,82 @@
From 0e68eb4f6fe96edcde4a39ba6e99ac330529b039 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Thu, 5 Oct 2017 08:40:22 +0100
Subject: [PATCH] distro: load FDT from any partition on boot device
In the EFI_LOADER boot path, we were only checking the FAT partition
containing the EFI payload for dtb files. But this is somewhat of a
fiction. In reality there will be one small (V)FAT partition containing
grub (or whatever the payload may be), and a second boot partition
containing kernel/initrd/fdt (typically ext4). It is this second
partition where we should be looking for a FDT to load.
So instead scan all the partitions of the disk containing the EFI
payload. This matches where grub looks for kernel/initrd (barring
custom grub.cfg, in which case the user can use grub's 'devicetree'
command to load the correct FDT).
The other option is somehow passing the ${fdtfile} to grub so that it
can load the FDT based on selected kernel version location (which grub
knows) and SoC/board specific ${fdtfile} (which grub does not know).
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
include/config_distro_bootcmd.h | 34 +++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 18da4ff737..63c7bbe29c 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -126,25 +126,37 @@
"fi\0" \
\
"load_efi_dtb=" \
- "load ${devtype} ${devnum}:${distro_bootpart} " \
- "${fdt_addr_r} ${prefix}${efi_fdtfile}\0" \
+ "load ${devtype} ${devnum}:${dtb_devp} " \
+ "${fdt_addr_r} ${prefix}${efi_fdtfile} && " \
+ "run boot_efi_binary\0" \
\
"efi_dtb_prefixes=/ /dtb/ /dtb/current/\0" \
- "scan_dev_for_efi=" \
+ "scan_dev_for_dtb=" \
"setenv efi_fdtfile ${fdtfile}; " \
BOOTENV_EFI_SET_FDTFILE_FALLBACK \
- "for prefix in ${efi_dtb_prefixes}; do " \
- "if test -e ${devtype} " \
- "${devnum}:${distro_bootpart} " \
- "${prefix}${efi_fdtfile}; then " \
- "run load_efi_dtb; " \
- "fi;" \
- "done;" \
+ "part list ${devtype} ${devnum} dtb_devplist; " \
+ "env exists dtb_devplist || setenv dtb_devplist " \
+ "${distro_bootpart}; " \
+ "for dtb_devp in ${dtb_devplist}; do " \
+ "for prefix in ${efi_dtb_prefixes}; do " \
+ "if test -e ${devtype} " \
+ "${devnum}:${dtb_devp} " \
+ "${prefix}${efi_fdtfile};"\
+ " then " \
+ "echo Found DTB ${devtype} " \
+ "${devnum}:${dtb_devp} " \
+ "${prefix}${efi_fdtfile};"\
+ "run load_efi_dtb; " \
+ "fi;" \
+ "done; " \
+ "done; " \
+ "run boot_efi_binary\0" \
+ "scan_dev_for_efi=" \
"if test -e ${devtype} ${devnum}:${distro_bootpart} " \
"efi/fedora/"BOOTEFI_NAME"; then " \
"echo Found EFI removable media binary " \
"efi/fedora/"BOOTEFI_NAME"; " \
- "run boot_efi_binary; " \
+ "run scan_dev_for_dtb; " \
"echo EFI LOAD FAILED: continuing...; " \
"fi; " \
"setenv efi_fdtfile\0"
--
2.14.2

184
usb-kbd-fixes.patch Normal file
View File

@ -0,0 +1,184 @@
From patchwork Wed Sep 27 01:19:37 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot] usb: kbd: Don't fail with iomux
X-Patchwork-Submitter: Rob Clark <robdclark@gmail.com>
X-Patchwork-Id: 818881
X-Patchwork-Delegate: marek.vasut@gmail.com
Message-Id: <20170927011939.6610-1-robdclark@gmail.com>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Date: Tue, 26 Sep 2017 21:19:37 -0400
From: Rob Clark <robdclark@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
stdin might not be set, which would cause iomux_doenv() to fail
therefore causing probe_usb_keyboard() to fail. Furthermore if we do
have iomux enabled, the sensible thing (in terms of user experience)
would be to simply add ourselves to the list of stdin devices.
This fixes an issue with usbkbd on dragonboard410c with distro-
bootcmd, where stdin is not set (so stdinname is null).
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
Somehow this patch was dropped on the floor. I don't remember
which version # this is up to, search the list if you care. But
this is the latest. I only noticed it was missing because u-boot
crashes when you boot with usb-keyboard plugged in (at least on
db410c) without it. So someone please apply this patch before it
gets lost again.
common/usb_kbd.c | 46 +++++++++++++++++++++++++++++++---------------
include/console.h | 2 --
2 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index a323d72a36..4c3ad95fca 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -516,23 +516,39 @@ static int probe_usb_keyboard(struct usb_device *dev)
return error;
stdinname = env_get("stdin");
-#if CONFIG_IS_ENABLED(CONSOLE_MUX)
- error = iomux_doenv(stdin, stdinname);
- if (error)
- return error;
-#else
- /* Check if this is the standard input device. */
- if (strcmp(stdinname, DEVNAME))
- return 1;
+ if (CONFIG_IS_ENABLED(CONSOLE_MUX)) {
+ char *devname = DEVNAME;
+ char *newstdin = NULL;
+ /*
+ * stdin might not be set yet.. either way, with console-
+ * mux the sensible thing to do is add ourselves to the
+ * list of stdio devices:
+ */
+ if (stdinname && !strstr(stdinname, DEVNAME)) {
+ newstdin = malloc(strlen(stdinname) +
+ strlen(","DEVNAME) + 1);
+ sprintf(newstdin, "%s,"DEVNAME, stdinname);
+ stdinname = newstdin;
+ } else if (!stdinname) {
+ stdinname = devname;
+ }
+ error = iomux_doenv(stdin, stdinname);
+ free(newstdin);
+ if (error)
+ return error;
+ } else {
+ /* Check if this is the standard input device. */
+ if (strcmp(stdinname, DEVNAME))
+ return 1;
- /* Reassign the console */
- if (overwrite_console())
- return 1;
+ /* Reassign the console */
+ if (overwrite_console())
+ return 1;
- error = console_assign(stdin, DEVNAME);
- if (error)
- return error;
-#endif
+ error = console_assign(stdin, DEVNAME);
+ if (error)
+ return error;
+ }
return 0;
}
diff --git a/include/console.h b/include/console.h
index cea29ed6dc..7dfd36d7d1 100644
--- a/include/console.h
+++ b/include/console.h
@@ -57,8 +57,6 @@ int console_announce_r(void);
/*
* CONSOLE multiplexing.
*/
-#ifdef CONFIG_CONSOLE_MUX
#include <iomux.h>
-#endif
#endif
From patchwork Tue Oct 3 17:31:14 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot] usb: kbd: Fix dangling pointers on probe fail
X-Patchwork-Submitter: Rob Clark <robdclark@gmail.com>
X-Patchwork-Id: 820970
Message-Id: <20171003173118.32645-1-robdclark@gmail.com>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Date: Tue, 3 Oct 2017 13:31:14 -0400
From: Rob Clark <robdclark@gmail.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
If probe fails, we should unregister the stdio device, else we leave
dangling pointers to the parent 'struct usb_device'.
Signed-off-by: Rob Clark <robdclark@gmail.com>
---
I finally got around to debugging why things explode so badly without
fixing usb_kbd vs. iomux[1] (which this patch applies on top of).
[1] https://patchwork.ozlabs.org/patch/818881/
common/usb_kbd.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 4c3ad95fca..82ad93f6ca 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -535,22 +535,40 @@ static int probe_usb_keyboard(struct usb_device *dev)
error = iomux_doenv(stdin, stdinname);
free(newstdin);
if (error)
- return error;
+ goto unregister_stdio;
} else {
/* Check if this is the standard input device. */
- if (strcmp(stdinname, DEVNAME))
- return 1;
+ if (strcmp(stdinname, DEVNAME)) {
+ error = -1;
+ goto unregister_stdio;
+ }
/* Reassign the console */
- if (overwrite_console())
- return 1;
+ if (overwrite_console()) {
+ error = -1;
+ goto unregister_stdio;
+ }
error = console_assign(stdin, DEVNAME);
if (error)
- return error;
+ goto unregister_stdio;
}
return 0;
+
+unregister_stdio:
+ /*
+ * If probe fails, the device will be removed.. leaving dangling
+ * pointers if the stdio device is not unregistered. If u-boot
+ * is built without stdio_deregister(), just pretend to succeed
+ * in order to avoid dangling pointers.
+ */
+#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
+ stdio_deregister(DEVNAME, 1);
+ return error;
+#else
+ return 0;
+#endif
}
#ifndef CONFIG_DM_USB