From 8ca4d6ca43be69295da3ef85256953b269489b8f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 10 Jul 2018 16:54:10 +0100 Subject: [PATCH] 2018.07 --- sources | 2 +- sunxi-Fix-MMC-driver-crashes.patch | 183 ------------------ ...pdate-CONFIG_SYS_TEXT-to-the-default.patch | 108 ----------- ...-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch | 41 ++++ uboot-tools.spec | 19 +- 5 files changed, 53 insertions(+), 300 deletions(-) delete mode 100644 sunxi-Fix-MMC-driver-crashes.patch delete mode 100644 tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch create mode 100644 tegra-p2771-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch diff --git a/sources b/sources index 171596b..8e2ff7e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (u-boot-2018.07-rc3.tar.bz2) = 29ce3a0f61b624ff685571490cdaf45e58733cd7fbef05fc0aede8921655a1cb537345964204b74931b9ab230f5ffb5c86b670d932a852995f7e13571a14c862 +SHA512 (u-boot-2018.07.tar.bz2) = 70b00904e13f25ab2832bd1cc9fca1fd9888ddded3afca39a0719106c511a3fb72a8b7c2f49e66de72eb319cccd1def122b7c3d48125fd06ff36568204e50297 diff --git a/sunxi-Fix-MMC-driver-crashes.patch b/sunxi-Fix-MMC-driver-crashes.patch deleted file mode 100644 index 6a3fe58..0000000 --- a/sunxi-Fix-MMC-driver-crashes.patch +++ /dev/null @@ -1,183 +0,0 @@ -From patchwork Wed Jun 27 00:42:52 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [U-Boot, 1/2] arm: timer: factor out FSL arch timer erratum workaround -X-Patchwork-Submitter: Andre Przywara -X-Patchwork-Id: 935206 -X-Patchwork-Delegate: jagannadh.teki@gmail.com -Message-Id: <20180627004253.4094-2-andre.przywara@arm.com> -To: Tom Rini , Simon Glass , - Jagan Teki , Maxime Ripard -Cc: Alex Graf , u-boot@lists.denx.de, - linux-sunxi@googlegroups.com, Guillaume Gardet -Date: Wed, 27 Jun 2018 01:42:52 +0100 -From: Andre Przywara -List-Id: U-Boot discussion - -At the moment we have the workaround for the Freescale arch timer -erratum A-008585 merged into the generic timer_read_counter() routine. -Split those two up, so that we can add other errata workaround more -easily. Also add an explaining comment on the way. - -Signed-off-by: Andre Przywara -Tested-by: Jagan Teki ---- - arch/arm/cpu/armv8/generic_timer.c | 31 +++++++++++++++++++++++++------ - 1 file changed, 25 insertions(+), 6 deletions(-) - -diff --git a/arch/arm/cpu/armv8/generic_timer.c b/arch/arm/cpu/armv8/generic_timer.c -index bf07a706a0..3d04fde650 100644 ---- a/arch/arm/cpu/armv8/generic_timer.c -+++ b/arch/arm/cpu/armv8/generic_timer.c -@@ -20,27 +20,46 @@ unsigned long get_tbclk(void) - return cntfrq; - } - -+#ifdef CONFIG_SYS_FSL_ERRATUM_A008585 - /* -- * Generic timer implementation of timer_read_counter() -+ * FSL erratum A-008585 says that the ARM generic timer counter "has the -+ * potential to contain an erroneous value for a small number of core -+ * clock cycles every time the timer value changes". -+ * This sometimes leads to a consecutive counter read returning a lower -+ * value than the previous one, thus reporting the time to go backwards. -+ * The workaround is to read the counter twice and only return when the value -+ * was the same in both reads. -+ * Assumes that the CPU runs in much higher frequency than the timer. - */ - unsigned long timer_read_counter(void) - { - unsigned long cntpct; --#ifdef CONFIG_SYS_FSL_ERRATUM_A008585 -- /* This erratum number needs to be confirmed to match ARM document */ - unsigned long temp; --#endif -+ - isb(); - asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); --#ifdef CONFIG_SYS_FSL_ERRATUM_A008585 - asm volatile("mrs %0, cntpct_el0" : "=r" (temp)); - while (temp != cntpct) { - asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); - asm volatile("mrs %0, cntpct_el0" : "=r" (temp)); - } --#endif -+ - return cntpct; - } -+#else -+/* -+ * timer_read_counter() using the Arm Generic Timer (aka arch timer). -+ */ -+unsigned long timer_read_counter(void) -+{ -+ unsigned long cntpct; -+ -+ isb(); -+ asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); -+ -+ return cntpct; -+} -+#endif - - uint64_t get_ticks(void) - { - -From patchwork Wed Jun 27 00:42:53 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [U-Boot, - 2/2] arm: timer: sunxi: add Allwinner timer erratum workaround -X-Patchwork-Submitter: Andre Przywara -X-Patchwork-Id: 935207 -X-Patchwork-Delegate: jagannadh.teki@gmail.com -Message-Id: <20180627004253.4094-3-andre.przywara@arm.com> -To: Tom Rini , Simon Glass , - Jagan Teki , Maxime Ripard -Cc: Alex Graf , u-boot@lists.denx.de, - linux-sunxi@googlegroups.com, Guillaume Gardet -Date: Wed, 27 Jun 2018 01:42:53 +0100 -From: Andre Przywara -List-Id: U-Boot discussion - -The Allwinner A64 SoCs suffers from an arch timer implementation erratum, -where sometimes the lower 11 bits of the counter value erroneously -become all 0's or all 1's [1]. This leads to sudden jumps, both forwards and -backwards, with the latter one often showing weird behaviour. -Port the workaround proposed for Linux to U-Boot and activate it for all -A64 boards. -This fixes crashes when accessing MMC devices (SD cards), caused by a -recent change to actually use the counter value for timeout checks. - -Fixes: 5ff8e54888e4d26a352453564f7f599d29696dc9 ("sunxi: improve throughput -in the sunxi_mmc driver") - -[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2018-May/576886.html - -Signed-off-by: Andre Przywara -Reviewed-by: Philipp Tomsich -Tested-by: Jagan Teki ---- - arch/arm/cpu/armv8/generic_timer.c | 24 ++++++++++++++++++++++++ - arch/arm/mach-sunxi/Kconfig | 4 ++++ - 2 files changed, 28 insertions(+) - -diff --git a/arch/arm/cpu/armv8/generic_timer.c b/arch/arm/cpu/armv8/generic_timer.c -index 3d04fde650..c1706dcec1 100644 ---- a/arch/arm/cpu/armv8/generic_timer.c -+++ b/arch/arm/cpu/armv8/generic_timer.c -@@ -46,6 +46,30 @@ unsigned long timer_read_counter(void) - - return cntpct; - } -+#elif CONFIG_SUNXI_A64_TIMER_ERRATUM -+/* -+ * This erratum sometimes flips the lower 11 bits of the counter value -+ * to all 0's or all 1's, leading to jumps forwards or backwards. -+ * Backwards jumps might be interpreted all roll-overs and be treated as -+ * huge jumps forward. -+ * The workaround is to check whether the lower 11 bits of the counter are -+ * all 0 or all 1, then discard this value and read again. -+ * This occasionally discards valid values, but will catch all erroneous -+ * reads and fixes the problem reliably. Also this mostly requires only a -+ * single read, so does not have any significant overhead. -+ * The algorithm was conceived by Samuel Holland. -+ */ -+unsigned long timer_read_counter(void) -+{ -+ unsigned long cntpct; -+ -+ isb(); -+ do { -+ asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); -+ } while (((cntpct + 1) & GENMASK(10, 0)) <= 1); -+ -+ return cntpct; -+} - #else - /* - * timer_read_counter() using the Arm Generic Timer (aka arch timer). -diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig -index a3f7723028..3624a03947 100644 ---- a/arch/arm/mach-sunxi/Kconfig -+++ b/arch/arm/mach-sunxi/Kconfig -@@ -84,6 +84,9 @@ config SUNXI_HIGH_SRAM - Chips using the latter setup are supposed to select this option to - adjust the addresses accordingly. - -+config SUNXI_A64_TIMER_ERRATUM -+ bool -+ - # Note only one of these may be selected at a time! But hidden choices are - # not supported by Kconfig - config SUNXI_GEN_SUN4I -@@ -270,6 +273,7 @@ config MACH_SUN50I - select SUNXI_DRAM_DW_32BIT - select FIT - select SPL_LOAD_FIT -+ select SUNXI_A64_TIMER_ERRATUM - - config MACH_SUN50I_H5 - bool "sun50i (Allwinner H5)" diff --git a/tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch b/tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch deleted file mode 100644 index fedc560..0000000 --- a/tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch +++ /dev/null @@ -1,108 +0,0 @@ -From b3133b61450e648cdd5f12c9556378c880932494 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Fri, 8 Jun 2018 04:31:10 +0100 -Subject: [PATCH] tegra: nyan-big: Update CONFIG_SYS_TEXT to the default in - README.chromium - -To build u-boot on a Nyan Big Chromebook the docs outline adjusting the Tegra124 -defined CONFIG_SYS_TEXT_BASE but this has since been moved to individual config -files. We should have the default required for u-boot chain loading on the -chromebook as the default CONFIG_SYS_TEXT_BASE and update the docs to remove -this now non required step. - -Signed-off-by: Peter Robinson ---- - configs/nyan-big_defconfig | 2 +- - doc/README.chromium | 27 +++++++-------------------- - 2 files changed, 8 insertions(+), 21 deletions(-) - -diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig -index 8868d1f9e10..3b64c643716 100644 ---- a/configs/nyan-big_defconfig -+++ b/configs/nyan-big_defconfig -@@ -1,6 +1,6 @@ - CONFIG_ARM=y - CONFIG_TEGRA=y --CONFIG_SYS_TEXT_BASE=0x80110000 -+CONFIG_SYS_TEXT_BASE=0x81000100 - CONFIG_DEBUG_UART_BASE=0x70006000 - CONFIG_DEBUG_UART_CLOCK=408000000 - CONFIG_TEGRA124=y -diff --git a/doc/README.chromium b/doc/README.chromium -index 7bf4d874474..45eaeced2da 100644 ---- a/doc/README.chromium -+++ b/doc/README.chromium -@@ -43,26 +43,13 @@ https://git.collabora.com/cgit/user/tomeu/u-boot.git/commit/?h=nyan-big - https://lists.denx.de/pipermail/u-boot/2017-May/289491.html - https://github.com/chromeos-nvidia-androidtv/gnu-linux-on-acer-chromebook-13#copy-data-to-the-sd-card - --1. Patch U-Boot -- --Open include/configs/tegra124-common.h -- --Change: -- --#define CONFIG_SYS_TEXT_BASE 0x80110000 -- --to: -- --#define CONFIG_SYS_TEXT_BASE 0x81000100 -- -- --2. Build U-Boot -+1. Build U-Boot - - mkdir b - make -j8 O=b/nyan-big CROSS_COMPILE=arm-linux-gnueabi- nyan-big_defconfig all - - --3. Select a .its file -+2. Select a .its file - - Select something from doc/chromium which matches your board, or create your - own. -@@ -72,7 +59,7 @@ used by U-Boot. This is because the Chromebook expects to pass it to the - kernel, and crashes if it is not present. - - --4. Build and sign an image -+3. Build and sign an image - - ./b/nyan-big/tools/mkimage -f doc/chromium/nyan-big.its u-boot-chromium.fit - echo test >dummy.txt -@@ -82,7 +69,7 @@ kernel, and crashes if it is not present. - --bootloader dummy.txt --pack u-boot.kpart - - --5. Prepare an SD card -+4. Prepare an SD card - - DISK=/dev/sdc # Replace with your actual SD card device - sudo cgpt create $DISK -@@ -91,12 +78,12 @@ kernel, and crashes if it is not present. - sudo gdisk $DISK # Enter command 'w' to write a protective MBR to the disk - - --6. Write U-Boot to the SD card -+5. Write U-Boot to the SD card - - sudo dd if=u-boot.kpart of=/dev/sdc1; sync - - --7. Start it up -+6. Start it up - - Reboot the device in dev mode. Make sure that you have USB booting enabled. To - do this, login as root (via Ctrl-Alt-forward_arrow) and type -@@ -115,7 +102,7 @@ mode screen. It should show something like the following on the display: - Tegra124 (Nyan-big) # - - --8. Known problems -+7. Known problems - - On the serial console the word MMC is chopped at the start of the line: - --- -2.17.1 - diff --git a/tegra-p2771-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch b/tegra-p2771-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch new file mode 100644 index 0000000..cf5a8da --- /dev/null +++ b/tegra-p2771-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch @@ -0,0 +1,41 @@ +From 836e1d7534b5d06f9bf17aaa33ce8863eab43530 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Fri, 6 Jul 2018 11:05:52 +0100 +Subject: [PATCH] tegra: p2771: Add CONFIG_EFI_LOADER_BOUNCE_BUFFER + +The Jetson TX2 needs EFI loader bounce buffer enabled otherwise grub doesn't see +the storage when it loads. + +Signed-off-by: Peter Robinson +--- + configs/p2771-0000-000_defconfig | 1 + + configs/p2771-0000-500_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/configs/p2771-0000-000_defconfig b/configs/p2771-0000-000_defconfig +index 29e1edcd68f..7ed036dc4ce 100644 +--- a/configs/p2771-0000-000_defconfig ++++ b/configs/p2771-0000-000_defconfig +@@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80080000 + CONFIG_TEGRA186=y + CONFIG_DEFAULT_DEVICE_TREE="tegra186-p2771-0000-000" + CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_EFI_LOADER_BOUNCE_BUFFER=y + CONFIG_CONSOLE_MUX=y + CONFIG_SYS_STDIO_DEREGISTER=y + CONFIG_SYS_PROMPT="Tegra186 (P2771-0000-000) # " +diff --git a/configs/p2771-0000-500_defconfig b/configs/p2771-0000-500_defconfig +index cc10669608f..9ae61263b5d 100644 +--- a/configs/p2771-0000-500_defconfig ++++ b/configs/p2771-0000-500_defconfig +@@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80080000 + CONFIG_TEGRA186=y + CONFIG_DEFAULT_DEVICE_TREE="tegra186-p2771-0000-500" + CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_EFI_LOADER_BOUNCE_BUFFER=y + CONFIG_CONSOLE_MUX=y + CONFIG_SYS_STDIO_DEREGISTER=y + CONFIG_SYS_PROMPT="Tegra186 (P2771-0000-500) # " +-- +2.17.1 + diff --git a/uboot-tools.spec b/uboot-tools.spec index e9914f3..c7d8d90 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -1,8 +1,8 @@ -%global candidate rc3 +#global candidate rc3 Name: uboot-tools Version: 2018.07 -Release: 0.4%{?candidate:.%{candidate}}%{?dist} +Release: 1%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ URL: http://www.denx.de/wiki/U-Boot @@ -23,12 +23,11 @@ Patch3: usb-kbd-fixes.patch Patch4: usb_kbd-with-DM-enabled.patch # Board fixes and enablement -Patch11: sunxi-Fix-MMC-driver-crashes.patch -Patch13: dragonboard-fixes.patch -Patch14: rockchip-make_fit_atf-fix-warning-unit_address_vs_reg.patch -Patch15: rockchip-make_fit_atf-use-elf-entry-point.patch -Patch16: tegra186-jetson-tx2-disable-onboard-emmc.patch -Patch17: tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch +Patch10: dragonboard-fixes.patch +Patch11: rockchip-make_fit_atf-fix-warning-unit_address_vs_reg.patch +Patch12: rockchip-make_fit_atf-use-elf-entry-point.patch +Patch13: tegra186-jetson-tx2-disable-onboard-emmc.patch +Patch14: tegra-p2771-Add-CONFIG_EFI_LOADER_BOUNCE_BUFFER.patch #Patch19: rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch # Patch99: mvebu-enable-generic-distro-boot-config.patch @@ -39,6 +38,7 @@ BuildRequires: gcc make BuildRequires: flex bison BuildRequires: git-core BuildRequires: openssl-devel +BuildRequires: python-unversioned-command BuildRequires: python2-devel BuildRequires: python2-setuptools BuildRequires: python2-libfdt @@ -293,6 +293,9 @@ cp -p board/warp7/README builds/docs/README.warp7 %endif %changelog +* Mon Jul 9 2018 Peter Robinson 2018.07-1 +- 2018.07 + * Tue Jul 3 2018 Peter Robinson 2018.07-0.4-rc3 - 2018.07 RC3