U-Boot
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
January 2019
- 214 participants
- 763 discussions
The 'exception' command allows to test exception handling.
This implementation supports ARM, x86, RISC-V and the following exceptions:
* 'breakpoint' - prefetch abort exception (ARM 32bit only)
* 'unaligned' - data abort exception (ARM only)
* 'undefined' - undefined instruction exception
Signed-off-by: Heinrich Schuchardt <xypron.glpk(a)gmx.de>
---
v2:
Split architecture specific code into separate files.
Provide include for common code.
Update MAINTAINERS file.
---
MAINTAINERS | 3 +++
cmd/Kconfig | 6 +++++
cmd/Makefile | 2 ++
cmd/arm/Makefile | 7 +++++
cmd/arm/exception.c | 61 +++++++++++++++++++++++++++++++++++++++++++
cmd/arm/exception64.c | 33 +++++++++++++++++++++++
cmd/riscv/Makefile | 3 +++
cmd/riscv/exception.c | 29 ++++++++++++++++++++
cmd/x86/Makefile | 1 +
cmd/x86/exception.c | 29 ++++++++++++++++++++
include/exception.h | 58 ++++++++++++++++++++++++++++++++++++++++
11 files changed, 232 insertions(+)
create mode 100644 cmd/arm/Makefile
create mode 100644 cmd/arm/exception.c
create mode 100644 cmd/arm/exception64.c
create mode 100644 cmd/riscv/Makefile
create mode 100644 cmd/riscv/exception.c
create mode 100644 cmd/x86/exception.c
create mode 100644 include/exception.h
diff --git a/MAINTAINERS b/MAINTAINERS
index ae825014bd..c26eece24c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -84,6 +84,7 @@ M: Albert Aribaud <albert.u.boot(a)aribaud.net>
S: Maintained
T: git git://git.denx.de/u-boot-arm.git
F: arch/arm/
+F: cmd/arm/
ARM ALTERA SOCFPGA
M: Marek Vasut <marex(a)denx.de>
@@ -624,6 +625,7 @@ M: Rick Chen <rick(a)andestech.com>
S: Maintained
T: git git://git.denx.de/u-boot-riscv.git
F: arch/riscv/
+F: cmd/riscv/
F: tools/prelink-riscv.c
ROCKUSB
@@ -725,6 +727,7 @@ M: Bin Meng <bmeng.cn(a)gmail.com>
S: Maintained
T: git git://git.denx.de/u-boot-x86.git
F: arch/x86/
+F: cmd/x86/
XTENSA
M: Max Filippov <jcmvbkbc(a)gmail.com>
diff --git a/cmd/Kconfig b/cmd/Kconfig
index ea1a325eb3..308e5458b9 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1397,6 +1397,12 @@ config CMD_DISPLAY
displayed on a simple board-specific display. Implement
display_putc() to use it.
+config CMD_EXCEPTION
+ bool "exception - raise exception"
+ depends on ARM || RISCV || X86
+ help
+ Enable the 'exception' command which allows to raise an exception.
+
config CMD_LED
bool "led"
default y if LED
diff --git a/cmd/Makefile b/cmd/Makefile
index 15ae4d250f..bff6be0146 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -170,6 +170,8 @@ obj-$(CONFIG_CMD_BLOB) += blob.o
# Android Verified Boot 2.0
obj-$(CONFIG_CMD_AVB) += avb.o
+obj-$(CONFIG_ARM) += arm/
+obj-$(CONFIG_RISCV) += riscv/
obj-$(CONFIG_X86) += x86/
obj-$(CONFIG_ARCH_MVEBU) += mvebu/
diff --git a/cmd/arm/Makefile b/cmd/arm/Makefile
new file mode 100644
index 0000000000..94367dcb45
--- /dev/null
+++ b/cmd/arm/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+ifdef CONFIG_ARM64
+obj-$(CONFIG_CMD_EXCEPTION) += exception64.o
+else
+obj-$(CONFIG_CMD_EXCEPTION) += exception.o
+endif
diff --git a/cmd/arm/exception.c b/cmd/arm/exception.c
new file mode 100644
index 0000000000..33bc75976f
--- /dev/null
+++ b/cmd/arm/exception.c
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * The 'exception' command can be used for testing exception handling.
+ *
+ * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk(a)gmx.de>
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int do_unaligned(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ /*
+ * The LDRD instruction requires the data source to be four byte aligned
+ * even if strict alignment fault checking is disabled in the system
+ * control register.
+ */
+ asm volatile (
+ "MOV r5, sp\n"
+ "ADD r5, #1\n"
+ "LDRD r6, r7, [r5]\n");
+ return CMD_RET_FAILURE;
+}
+
+static int do_breakpoint(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ asm volatile ("BKPT #123\n");
+ return CMD_RET_FAILURE;
+}
+
+static int do_undefined(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ /*
+ * 0xe7f...f. is undefined in ARM mode
+ * 0xde.. is undefined in Thumb mode
+ */
+ asm volatile (".word 0xe7f7defb\n");
+ return CMD_RET_FAILURE;
+}
+
+static cmd_tbl_t cmd_sub[] = {
+ U_BOOT_CMD_MKENT(breakpoint, CONFIG_SYS_MAXARGS, 1, do_breakpoint,
+ "", ""),
+ U_BOOT_CMD_MKENT(unaligned, CONFIG_SYS_MAXARGS, 1, do_unaligned,
+ "", ""),
+ U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined,
+ "", ""),
+};
+
+static char exception_help_text[] =
+ "<ex>\n"
+ " The following exceptions are available:\n"
+ " breakpoint - prefetch abort\n"
+ " unaligned - data abort\n"
+ " undefined - undefined instruction\n"
+ ;
+
+#include <exception.h>
diff --git a/cmd/arm/exception64.c b/cmd/arm/exception64.c
new file mode 100644
index 0000000000..a363818532
--- /dev/null
+++ b/cmd/arm/exception64.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * The 'exception' command can be used for testing exception handling.
+ *
+ * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk(a)gmx.de>
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int do_undefined(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ /*
+ * 0xe7f...f. is undefined in ARM mode
+ * 0xde.. is undefined in Thumb mode
+ */
+ asm volatile (".word 0xe7f7defb\n");
+ return CMD_RET_FAILURE;
+}
+
+static cmd_tbl_t cmd_sub[] = {
+ U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined,
+ "", ""),
+};
+
+static char exception_help_text[] =
+ "<ex>\n"
+ " The following exceptions are available:\n"
+ " undefined - undefined instruction\n"
+ ;
+
+#include <exception.h>
diff --git a/cmd/riscv/Makefile b/cmd/riscv/Makefile
new file mode 100644
index 0000000000..24df023ece
--- /dev/null
+++ b/cmd/riscv/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-$(CONFIG_CMD_EXCEPTION) += exception.o
diff --git a/cmd/riscv/exception.c b/cmd/riscv/exception.c
new file mode 100644
index 0000000000..547fb7d132
--- /dev/null
+++ b/cmd/riscv/exception.c
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * The 'exception' command can be used for testing exception handling.
+ *
+ * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk(a)gmx.de>
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int do_undefined(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ asm volatile (".word 0xffffffff\n");
+ return CMD_RET_FAILURE;
+}
+
+static cmd_tbl_t cmd_sub[] = {
+ U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined,
+ "", ""),
+};
+
+static char exception_help_text[] =
+ "<ex>\n"
+ " The following exceptions are available:\n"
+ " undefined - undefined instruction\n"
+ ;
+
+#include <exception.h>
diff --git a/cmd/x86/Makefile b/cmd/x86/Makefile
index bcc6d06582..707161440d 100644
--- a/cmd/x86/Makefile
+++ b/cmd/x86/Makefile
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: GPL-2.0+
obj-y += mtrr.o
+obj-$(CONFIG_CMD_EXCEPTION) += exception.o
obj-$(CONFIG_HAVE_FSP) += fsp.o
diff --git a/cmd/x86/exception.c b/cmd/x86/exception.c
new file mode 100644
index 0000000000..ade1e2ea92
--- /dev/null
+++ b/cmd/x86/exception.c
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * The 'exception' command can be used for testing exception handling.
+ *
+ * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk(a)gmx.de>
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int do_undefined(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ asm volatile (".word 0xffff\n");
+ return CMD_RET_FAILURE;
+}
+
+static cmd_tbl_t cmd_sub[] = {
+ U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined,
+ "", ""),
+};
+
+static char exception_help_text[] =
+ "<ex>\n"
+ " The following exceptions are available:\n"
+ " undefined - undefined instruction\n"
+ ;
+
+#include <exception.h>
diff --git a/include/exception.h b/include/exception.h
new file mode 100644
index 0000000000..d65c585341
--- /dev/null
+++ b/include/exception.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * The 'exception' command can be used for testing exception handling.
+ *
+ * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk(a)gmx.de>
+ */
+
+static int do_exception(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
+{
+ cmd_tbl_t *cp;
+
+ if (argc != 2)
+ return CMD_RET_USAGE;
+
+ /* drop sub-command parameter */
+ argc--;
+ argv++;
+
+ cp = find_cmd_tbl(argv[0], cmd_sub, ARRAY_SIZE(cmd_sub));
+
+ if (cp)
+ return cp->cmd(cmdtp, flag, argc, argv);
+
+ return CMD_RET_USAGE;
+}
+
+static int exception_complete(int argc, char * const argv[], char last_char,
+ int maxv, char *cmdv[])
+{
+ int len = 0;
+ int i = 0;
+ cmd_tbl_t *cmdtp;
+
+ switch (argc) {
+ case 1:
+ break;
+ case 2:
+ len = strlen(argv[1]);
+ break;
+ default:
+ return 0;
+ }
+ for (cmdtp = cmd_sub; cmdtp != cmd_sub + ARRAY_SIZE(cmd_sub); cmdtp++) {
+ if (i >= maxv - 1)
+ return i;
+ if (!strncmp(argv[1], cmdtp->name, len))
+ cmdv[i++] = cmdtp->name;
+ }
+ cmdv[i] = NULL;
+ return i;
+}
+
+U_BOOT_CMD_COMPLETE(
+ exception, 2, 0, do_exception,
+ "Forces an exception to occur",
+ exception_help_text, exception_complete
+);
--
2.19.2
4
6

21 Apr '19
This series adds basic support for Bob which is based on RK3399. Quite a
bit of work remains to get this into fully working condition.
This series is based on the rockchip pinctrl drivers series by David Wu.
It is available at u-boot-dm/rk-working
Changes in v2:
- Mention EVB RV1108
- Fix the name of the firefly-rk3399 defconfig
- Use correct printf format for log message
- Add #ifdef guard around variables in rk3399 board_debug_uart_init()
Simon Glass (19):
lib: Allow using display_buffer() in SPL
clk: Improve debug message in clk_set_default_rates()
gpio: Use more command-specific enums values
gpio: Add a simple GPIO API for SPL
rockchip: Add mention of other boards
rockchip: Drop note about supporting other SoCs
rockchip: Bring in device tree files for rk3399-gru
rockchip: Adjust rk3399 device tree to be closer to linux
rockchip: evb_rk3399: Tidy up the README
rockchip: Clarify docs on SPI writing
rockchip: Allow booting from SPI
rockchip: Add settings for Samsung LPDDR3 4GB SDRAM 1866MHz
rockchip: clk: Add mention of four new clocks
rockchip: Tidy up board include-file ordering
rockchip: rk3399: Add ROCKCHIP_DEVICE_SETTINGS to set env
rockchip: Move pull-up/down enum into a common file
rockchip: Implement spl_gpio in the GPIO driver
rockchip: gru: Add extra device-tree settings
rockchip: Add support for chromebook_bob
arch/arm/dts/rk3399-gru-bob.dts | 80 +
arch/arm/dts/rk3399-gru-chromebook.dtsi | 398 +++++
arch/arm/dts/rk3399-gru-kevin.dts | 309 ++++
arch/arm/dts/rk3399-gru.dtsi | 844 +++++++++
arch/arm/dts/rk3399-op1-opp.dtsi | 141 ++
.../rk3399-sdram-lpddr3-samsung-4GB-1866.dtsi | 1542 +++++++++++++++++
arch/arm/dts/rk3399.dtsi | 432 ++++-
arch/arm/include/asm/arch-rockchip/gpio.h | 30 +
.../include/asm/arch-rockchip/grf_rk3288.h | 7 -
.../arm/include/asm/arch-rockchip/sys_proto.h | 3 +
arch/arm/mach-rockchip/rk3036-board.c | 2 +-
arch/arm/mach-rockchip/rk3188-board-spl.c | 2 +-
arch/arm/mach-rockchip/rk3188-board.c | 2 +-
arch/arm/mach-rockchip/rk322x-board.c | 2 +-
arch/arm/mach-rockchip/rk3368-board-spl.c | 2 +-
arch/arm/mach-rockchip/rk3368-board-tpl.c | 4 +-
arch/arm/mach-rockchip/rk3399-board-spl.c | 51 +-
arch/arm/mach-rockchip/rk3399/Kconfig | 10 +
arch/arm/mach-rockchip/spl-boot-order.c | 3 +
board/google/gru/Kconfig | 15 +
board/google/gru/MAINTAINERS | 6 +
board/google/gru/Makefile | 5 +
board/google/gru/gru.c | 16 +
board/rockchip/evb_rk3399/README | 33 +-
cmd/gpio.c | 37 +-
configs/chromebook_bob_defconfig | 100 ++
doc/README.rockchip | 59 +-
drivers/clk/clk-uclass.c | 4 +-
drivers/clk/rockchip/clk_rk3399.c | 12 +
drivers/gpio/rk_gpio.c | 46 +
include/configs/gru.h | 18 +
include/configs/rk3399_common.h | 5 +
include/spl_gpio.h | 62 +
lib/display_options.c | 4 +-
34 files changed, 4163 insertions(+), 123 deletions(-)
create mode 100644 arch/arm/dts/rk3399-gru-bob.dts
create mode 100644 arch/arm/dts/rk3399-gru-chromebook.dtsi
create mode 100644 arch/arm/dts/rk3399-gru-kevin.dts
create mode 100644 arch/arm/dts/rk3399-gru.dtsi
create mode 100644 arch/arm/dts/rk3399-op1-opp.dtsi
create mode 100644 arch/arm/dts/rk3399-sdram-lpddr3-samsung-4GB-1866.dtsi
create mode 100644 board/google/gru/Kconfig
create mode 100644 board/google/gru/MAINTAINERS
create mode 100644 board/google/gru/Makefile
create mode 100644 board/google/gru/gru.c
create mode 100644 configs/chromebook_bob_defconfig
create mode 100644 include/configs/gru.h
create mode 100644 include/spl_gpio.h
--
2.20.1.321.g9e740568ce-goog
3
45

18 Apr '19
Add u-boot.itb BUILD_TARGET for Rockchip platform when SPL_LOAD_FIT
is being used. This can get rid of building itb explicitly with
'make u-boot.itb' all required images will now build just by make.
Signed-off-by: Jagan Teki <jagan(a)amarulasolutions.com>
---
Changes for v2:
- build target type 'u-boot.itb' when SPL_LOAD_FIT being used
Kconfig | 2 +-
board/rockchip/evb_rk3399/README | 1 -
board/theobroma-systems/lion_rk3368/README | 9 ++-------
board/theobroma-systems/puma_rk3399/README | 1 -
board/vamrs/rock960_rk3399/README | 1 -
5 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/Kconfig b/Kconfig
index 15b79259a8..cf175ef33f 100644
--- a/Kconfig
+++ b/Kconfig
@@ -229,7 +229,7 @@ config BUILD_TARGET
default "u-boot-with-spl.sfp" if ARCH_SOCFPGA
default "u-boot-spl.kwb" if ARCH_MVEBU && SPL_BUILD
default "u-boot-elf.srec" if RCAR_GEN3
- default "u-boot.itb" if SPL_LOAD_FIT && ARCH_SUNXI
+ default "u-boot.itb" if SPL_LOAD_FIT && (ARCH_ROCKCHIP || ARCH_SUNXI)
help
Some SoCs need special image types (e.g. U-Boot binary
with a special header) as build targets. By defining
diff --git a/board/rockchip/evb_rk3399/README b/board/rockchip/evb_rk3399/README
index 8321467046..c388f269c1 100644
--- a/board/rockchip/evb_rk3399/README
+++ b/board/rockchip/evb_rk3399/README
@@ -58,7 +58,6 @@ Compile the U-Boot
for firefly-rk3399, use below instead:
> make firefly-rk3399_defconfig
> make
- > make u-boot.itb
Get spl/u-boot-spl.bin and u-boot.itb in this step.
diff --git a/board/theobroma-systems/lion_rk3368/README b/board/theobroma-systems/lion_rk3368/README
index 83e4332984..241d4d9ec8 100644
--- a/board/theobroma-systems/lion_rk3368/README
+++ b/board/theobroma-systems/lion_rk3368/README
@@ -14,18 +14,13 @@ Configure U-Boot
> cd ../u-boot
> make lion-rk3368_defconfig
-Build the TPL/SPL stage
-=======================
+Build the TPL/SPL, U-Boot proper and a FIT image including the ATF
+==================================================================
> make CROSS_COMPILE=aarch64-unknown-elf- ARCH=arm
> tools/mkimage -n rk3368 -T rksd -d tpl/u-boot-tpl.bin spl-3368.img
> cat spl/u-boot-spl-dtb.bin >> spl-3368.img
-Build the full U-Boot and a FIT image including the ATF
-=======================================================
-
- > make CROSS_COMPILE=aarch64-unknown-elf- ARCH=arm u-boot.itb
-
Flash the image
===============
diff --git a/board/theobroma-systems/puma_rk3399/README b/board/theobroma-systems/puma_rk3399/README
index f67dfb451f..c06c9650b8 100644
--- a/board/theobroma-systems/puma_rk3399/README
+++ b/board/theobroma-systems/puma_rk3399/README
@@ -60,7 +60,6 @@ Creating a SPL image for SD-Card/eMMC
Creating a SPL image for SPI-NOR
> tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin spl_nor.img
Create the FIT image containing U-Boot proper, ATF, M0 Firmware, devicetree
- > make CROSS_COMPILE=aarch64-linux-gnu- u-boot.itb
Flash the image
===============
diff --git a/board/vamrs/rock960_rk3399/README b/board/vamrs/rock960_rk3399/README
index d14399090e..c5c675c4ea 100644
--- a/board/vamrs/rock960_rk3399/README
+++ b/board/vamrs/rock960_rk3399/README
@@ -61,7 +61,6 @@ Compile the U-Boot
> export CROSS_COMPILE=aarch64-linux-gnu-
> make rock960-rk3399_defconfig
> make
- > make u-boot.itb
Compile the rkdeveloptool
=========================
--
2.18.0.321.gffc6fa0e3
2
2

[U-Boot] [RFC PATCH] common: fdt_support: Remove fdt_add_mem_rsv in fdt_shrink_to_minimum
by Keerthy 16 Apr '19
by Keerthy 16 Apr '19
16 Apr '19
With introduction of commit:
a156c47e39ad: tftp: prevent overwriting reserved memory
tftp with loadaddr is failing for Images of the size bigger than SPL.
The issue is that SPL image is located at bootaddr
and dtb is allocated at bootaddr + spl_size.
The region where dtb is present is marked reserved.
So when the tftp tries to load the Image it tries to find
a location from loadaddr to the first reserved memory region
which is the dtb base address. The max_size obtained is pretty
less and hence tftp fails with the below error:
TFTP error: trying to overwrite reserved memory...
Signed-off-by: Keerthy <j-keerthy(a)ti.com>
---
I am sure there are better solutions so just wanted to know
if there is one.
common/fdt_support.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 42583e3ed8..2bb101e56e 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -633,11 +633,6 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
/* Change the fdt header to reflect the correct size */
fdt_set_totalsize(blob, actualsize);
- /* Add the new reservation */
- ret = fdt_add_mem_rsv(blob, map_to_sysmem(blob), actualsize);
- if (ret < 0)
- return ret;
-
return actualsize;
}
--
2.17.1
4
4

[U-Boot] [PATCH v4 00/25] MTD defconfigs/Kconfigs/Makefiles heavy cleanup
by Miquel Raynal 12 Apr '19
by Miquel Raynal 12 Apr '19
12 Apr '19
Hello,
During my last project about SPI-NAND support in U-Boot, I discovered
when modifying Makefiles a confusing organization where:
* Sub-directories/files are compiled from the root Makefile
* Commands are at the root of everything
I sent a fist series a few weeks ago to move Makefile entries in their
respective directories (which needed to be reworked). Since then, I
have been working on clarifying all this for the MTD subsystem and
here are the main points of such re-organization:
* Rename CONFIG_MTD into CONFIG_DM_MTD to reserve CONFIG_MTD to what
is called today CONFIG_MTD_DEVICE.
* Fix build dependencies in defconfigs, like: "UBI and NAND depend on MTD".
* Fix the Kconfig files to reflect these dependencies (as defconfigs
have been updated, nothing should break).
* Simplify the Makefiles: compiling the drivers/mtd/nand/raw/
sub-directory should just depend on MTD being compiled and the NAND
core as well, there is absolutely no logic to make it depend on
CMD_NAND.
New green Travis CI build for the third version of this series:
https://travis-ci.org/miquelraynal/u-boot/builds/463486099
There are three Sandbox tests that are failing, they have not been
break by this series. The following Travis test has been done on the
commit on which has been based the series and shows the same errors:
https://travis-ci.org/miquelraynal/u-boot/builds/463593006
Thanks,
Miquèl
Note: as the number of Cc:'ed people reached 184 with
get_maintainers.pl I decided to trim the list to:
* People interested by the MTD subsystem.
* A few maintainers: I had to tweak some defconfigs after more digging
than with other boards (k2g, bcm11130, M54418TWR). Maintainers of
these platforms are Cc:'ed.
Changes since v3:
=================
* As suggested by Vignesh, SPI_FLASH_MTD depends on MTD. Enforce this
in Kconfig with a new patch. There is no defconfig to fix, all
defconfigs with SPI_FLASH_MTD already use MTD.
* s/coherent Makefile/appropriate Makefile/ in commit title of patch 1.
* s/Kconfig/Makefile in commit message of "mtd: nand: remove
dependency on commands in Kconfig" and "mtd: ubi: remove dependency
on command in Kconfig".
* Add Boris R-b tags.
* Correct typos pointed by Boris.
* Remove the if/endif in cmd/Kconfig about mtdparts, let the "depends
on" that was already present.
* Use an if/endif block to compile legacy-mtd-utils.c (to avoid
failures when both 'sf' and 'nand' commands are compiled-in).
* Merge all Makefile changes in one consistent commit as suggested by
Boris.
Changes since v2:
=================
* Cleanup also applied to the SPL in an additional patch.
* NOR dependency on MTD extracted from the patch adding MTD
dependencies on commands only to do it in a separate change.
* Typo s/copile/compile/ in "rename CONFIG_MTD_DEVICE..." commit log.
* No more MTD depencency on SPI_FLASH, only kept on SPI_FLASH_MTD.
* Same applies to the sf command.
* Avoid compiling the NAND core while it is not needed (not speaking
about the raw NAND core, really what is in drivers/mtd/nand:).
* Last patch dropping CONFIG_MTD_PARTITIONS forgotten. We need them in
order to reduce the final binary size.
* Additional fixes in cmd/Kconfig.
Changes since v1:
=================
* Squashed both patches from the first series and included them in
"mtd: simplify Makefiles".
* Added all other patches.
* Renamed CONFIG_NAND into CONFIG_MTD_RAW_NAND as suggested.
Miquel Raynal (25):
mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND
mtd: rename CONFIG_MTD -> CONFIG_DM_MTD
mtd: rename CONFIG_MTD_DEVICE -> CONFIG_MTD
mtd: ensure MTD is compiled when there is a NOR flash
mtd: ensure MTD/the raw NAND core are compiled when there is a NAND
flash
mtd: ensure MTD is compiled when there is a SPI NOR flash using MTD
mtd: ensure UBI is compiled when using fastmap
mtd: ensure MTD is compiled when UBI is used
mtd: ensure UBI is compiled when CMD_UBI is selected
mtd: ensure UBI is compiled when ENV_IS_IN_UBI is selected
mtd: ensure MTD_RAW_NAND is compiled when ENV_IS_IN_NAND is selected
mtd: ensure MTD and NOR drivers are compiled with ENV_IS_IN_FLASH
mtd: ensure CMD_NAND is compiled when its options are selected
mtd: ensure MTD is compiled when CMD_MTDPARTS is selected
configs: move CONFIG_MTD in defconfigs when set in arch includes
configs: remove raw NAND core from k2g defconfigs
configs: remove MTD support from bcm11130 and M54418TWR defconfigs
mtd: nand: add includes in NAND core to avoid warnings
dfu: add dependency on the raw NAND core
mtd: nor: NOR flashes depend on MTD
mtd: spi: SPI_FLASH_MTD depends on MTD
cmd: mtdparts: Kconfig: join mtdparts command entry with its options
cmd: nand/sf: isolate legacy code
cmd: make MTD commands depend on MTD
mtd: Makefile: deep cleanup
Makefile | 5 -
arch/arm/mach-omap2/mem-common.c | 6 +-
board/BuR/brppt1/board.c | 2 +-
board/BuR/brppt1/mux.c | 6 +-
board/birdland/bav335x/board.c | 2 +-
board/bosch/shc/board.c | 2 +-
board/freescale/ls2080aqds/ls2080aqds.c | 2 +-
board/freescale/t102xrdb/t102xrdb.c | 2 +-
board/phytec/pcm051/mux.c | 4 +-
board/siemens/pxm2/mux.c | 4 +-
board/sunxi/README.nand | 2 +-
board/ti/am335x/board.c | 2 +-
board/ti/am335x/mux.c | 8 +-
board/ti/am43xx/mux.c | 8 +-
board/ti/ti816x/evm.c | 2 +-
board/vscom/baltos/board.c | 2 +-
board/vscom/baltos/mux.c | 2 +-
cmd/Kconfig | 34 ++++---
cmd/Makefile | 3 +
cmd/legacy-mtd-utils.c | 99 +++++++++++++++++++
cmd/legacy-mtd-utils.h | 14 +++
cmd/nand.c | 2 +
cmd/sf.c | 2 +
configs/10m50_defconfig | 2 +-
configs/3c120_defconfig | 1 +
configs/B4420QDS_NAND_defconfig | 3 +-
configs/B4420QDS_SPIFLASH_defconfig | 1 +
configs/B4420QDS_defconfig | 1 +
configs/B4860QDS_NAND_defconfig | 3 +-
configs/B4860QDS_SECURE_BOOT_defconfig | 1 +
configs/B4860QDS_SPIFLASH_defconfig | 1 +
configs/B4860QDS_defconfig | 1 +
configs/BSC9131RDB_NAND_SYSCLK100_defconfig | 3 +-
configs/BSC9131RDB_NAND_defconfig | 3 +-
.../BSC9131RDB_SPIFLASH_SYSCLK100_defconfig | 1 +
configs/BSC9131RDB_SPIFLASH_defconfig | 1 +
...BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig | 2 +
configs/BSC9132QDS_NAND_DDRCLK100_defconfig | 3 +-
...BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig | 2 +
configs/BSC9132QDS_NAND_DDRCLK133_defconfig | 3 +-
.../BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK100_defconfig | 1 +
.../BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_NOR_DDRCLK133_defconfig | 1 +
...C9132QDS_SDCARD_DDRCLK100_SECURE_defconfig | 1 +
configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig | 1 +
...C9132QDS_SDCARD_DDRCLK133_SECURE_defconfig | 1 +
configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig | 1 +
...132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig | 1 +
.../BSC9132QDS_SPIFLASH_DDRCLK100_defconfig | 1 +
...132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig | 1 +
.../BSC9132QDS_SPIFLASH_DDRCLK133_defconfig | 1 +
configs/C29XPCIE_NAND_defconfig | 3 +-
configs/C29XPCIE_NOR_SECBOOT_defconfig | 1 +
configs/C29XPCIE_SPIFLASH_SECBOOT_defconfig | 1 +
configs/C29XPCIE_SPIFLASH_defconfig | 1 +
configs/C29XPCIE_defconfig | 1 +
configs/CHIP_pro_defconfig | 5 +-
configs/M5208EVBE_defconfig | 1 +
configs/M52277EVB_defconfig | 1 +
configs/M52277EVB_stmicro_defconfig | 1 +
configs/M5235EVB_Flash32_defconfig | 1 +
configs/M5235EVB_defconfig | 1 +
configs/M5249EVB_defconfig | 1 +
configs/M5253DEMO_defconfig | 1 +
configs/M5272C3_defconfig | 1 +
configs/M5275EVB_defconfig | 1 +
configs/M5282EVB_defconfig | 1 +
configs/M53017EVB_defconfig | 1 +
configs/M5329AFEE_defconfig | 1 +
configs/M5329BFEE_defconfig | 1 +
configs/M5373EVB_defconfig | 1 +
configs/M54418TWR_nand_mii_defconfig | 1 +
configs/M54418TWR_nand_rmii_defconfig | 1 +
configs/M54418TWR_nand_rmii_lowfreq_defconfig | 1 +
configs/M54451EVB_defconfig | 1 +
configs/M54451EVB_stmicro_defconfig | 1 +
configs/M54455EVB_a66_defconfig | 1 +
configs/M54455EVB_defconfig | 1 +
configs/M54455EVB_i66_defconfig | 1 +
configs/M54455EVB_intel_defconfig | 1 +
configs/M54455EVB_stm33_defconfig | 1 +
configs/M5475AFE_defconfig | 1 +
configs/M5475BFE_defconfig | 1 +
configs/M5475CFE_defconfig | 1 +
configs/M5475DFE_defconfig | 1 +
configs/M5475EFE_defconfig | 1 +
configs/M5475FFE_defconfig | 1 +
configs/M5475GFE_defconfig | 1 +
configs/M5485AFE_defconfig | 1 +
configs/M5485BFE_defconfig | 1 +
configs/M5485CFE_defconfig | 1 +
configs/M5485DFE_defconfig | 1 +
configs/M5485EFE_defconfig | 1 +
configs/M5485FFE_defconfig | 1 +
configs/M5485GFE_defconfig | 1 +
configs/M5485HFE_defconfig | 1 +
configs/MCR3000_defconfig | 1 +
configs/MPC8308RDB_defconfig | 1 +
configs/MPC8313ERDB_33_defconfig | 1 +
configs/MPC8313ERDB_66_defconfig | 1 +
configs/MPC8313ERDB_NAND_33_defconfig | 3 +-
configs/MPC8313ERDB_NAND_66_defconfig | 3 +-
configs/MPC8315ERDB_defconfig | 1 +
configs/MPC8323ERDB_defconfig | 1 +
configs/MPC832XEMDS_ATM_defconfig | 1 +
configs/MPC832XEMDS_HOST_33_defconfig | 1 +
configs/MPC832XEMDS_HOST_66_defconfig | 1 +
configs/MPC832XEMDS_SLAVE_defconfig | 1 +
configs/MPC832XEMDS_defconfig | 1 +
configs/MPC8349EMDS_defconfig | 1 +
configs/MPC8349ITXGP_defconfig | 1 +
configs/MPC8349ITX_LOWBOOT_defconfig | 1 +
configs/MPC8349ITX_defconfig | 1 +
configs/MPC837XEMDS_HOST_defconfig | 1 +
configs/MPC837XEMDS_defconfig | 1 +
configs/MPC837XERDB_defconfig | 1 +
configs/MPC8536DS_36BIT_defconfig | 1 +
configs/MPC8536DS_SDCARD_defconfig | 1 +
configs/MPC8536DS_SPIFLASH_defconfig | 1 +
configs/MPC8536DS_defconfig | 1 +
configs/MPC8541CDS_defconfig | 1 +
configs/MPC8541CDS_legacy_defconfig | 1 +
configs/MPC8544DS_defconfig | 1 +
configs/MPC8548CDS_36BIT_defconfig | 1 +
configs/MPC8548CDS_defconfig | 1 +
configs/MPC8548CDS_legacy_defconfig | 1 +
configs/MPC8555CDS_defconfig | 1 +
configs/MPC8555CDS_legacy_defconfig | 1 +
configs/MPC8568MDS_defconfig | 1 +
configs/MPC8569MDS_ATM_defconfig | 1 +
configs/MPC8569MDS_defconfig | 1 +
configs/MPC8572DS_36BIT_defconfig | 1 +
configs/MPC8572DS_defconfig | 1 +
configs/MPC8610HPCD_defconfig | 1 +
configs/MPC8641HPCN_36BIT_defconfig | 1 +
configs/MPC8641HPCN_defconfig | 1 +
configs/MigoR_defconfig | 1 +
.../Nintendo_NES_Classic_Edition_defconfig | 3 +-
.../P1010RDB-PA_36BIT_NAND_SECBOOT_defconfig | 2 +
configs/P1010RDB-PA_36BIT_NAND_defconfig | 3 +-
.../P1010RDB-PA_36BIT_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_36BIT_NOR_defconfig | 1 +
configs/P1010RDB-PA_36BIT_SDCARD_defconfig | 1 +
...010RDB-PA_36BIT_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig | 1 +
configs/P1010RDB-PA_NAND_SECBOOT_defconfig | 2 +
configs/P1010RDB-PA_NAND_defconfig | 3 +-
configs/P1010RDB-PA_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_NOR_defconfig | 1 +
configs/P1010RDB-PA_SDCARD_defconfig | 1 +
.../P1010RDB-PA_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PA_SPIFLASH_defconfig | 1 +
.../P1010RDB-PB_36BIT_NAND_SECBOOT_defconfig | 2 +
configs/P1010RDB-PB_36BIT_NAND_defconfig | 3 +-
.../P1010RDB-PB_36BIT_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_36BIT_NOR_defconfig | 1 +
configs/P1010RDB-PB_36BIT_SDCARD_defconfig | 1 +
...010RDB-PB_36BIT_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig | 1 +
configs/P1010RDB-PB_NAND_SECBOOT_defconfig | 2 +
configs/P1010RDB-PB_NAND_defconfig | 3 +-
configs/P1010RDB-PB_NOR_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_NOR_defconfig | 1 +
configs/P1010RDB-PB_SDCARD_defconfig | 1 +
.../P1010RDB-PB_SPIFLASH_SECBOOT_defconfig | 1 +
configs/P1010RDB-PB_SPIFLASH_defconfig | 1 +
configs/P1020MBG-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020MBG-PC_36BIT_defconfig | 1 +
configs/P1020MBG-PC_SDCARD_defconfig | 1 +
configs/P1020MBG-PC_defconfig | 1 +
configs/P1020RDB-PC_36BIT_NAND_defconfig | 3 +-
configs/P1020RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PC_36BIT_defconfig | 1 +
configs/P1020RDB-PC_NAND_defconfig | 3 +-
configs/P1020RDB-PC_SDCARD_defconfig | 1 +
configs/P1020RDB-PC_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PC_defconfig | 1 +
configs/P1020RDB-PD_NAND_defconfig | 3 +-
configs/P1020RDB-PD_SDCARD_defconfig | 1 +
configs/P1020RDB-PD_SPIFLASH_defconfig | 1 +
configs/P1020RDB-PD_defconfig | 1 +
configs/P1020UTM-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1020UTM-PC_36BIT_defconfig | 1 +
configs/P1020UTM-PC_SDCARD_defconfig | 1 +
configs/P1020UTM-PC_defconfig | 1 +
configs/P1021RDB-PC_36BIT_NAND_defconfig | 3 +-
configs/P1021RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P1021RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P1021RDB-PC_36BIT_defconfig | 1 +
configs/P1021RDB-PC_NAND_defconfig | 3 +-
configs/P1021RDB-PC_SDCARD_defconfig | 1 +
configs/P1021RDB-PC_SPIFLASH_defconfig | 1 +
configs/P1021RDB-PC_defconfig | 1 +
configs/P1022DS_36BIT_NAND_defconfig | 3 +-
configs/P1022DS_36BIT_SDCARD_defconfig | 1 +
configs/P1022DS_36BIT_SPIFLASH_defconfig | 1 +
configs/P1022DS_36BIT_defconfig | 1 +
configs/P1022DS_NAND_defconfig | 3 +-
configs/P1022DS_SDCARD_defconfig | 1 +
configs/P1022DS_SPIFLASH_defconfig | 1 +
configs/P1022DS_defconfig | 1 +
configs/P1023RDB_defconfig | 1 +
configs/P1024RDB_36BIT_defconfig | 1 +
configs/P1024RDB_NAND_defconfig | 3 +-
configs/P1024RDB_SDCARD_defconfig | 1 +
configs/P1024RDB_SPIFLASH_defconfig | 1 +
configs/P1024RDB_defconfig | 1 +
configs/P1025RDB_36BIT_defconfig | 1 +
configs/P1025RDB_NAND_defconfig | 3 +-
configs/P1025RDB_SDCARD_defconfig | 1 +
configs/P1025RDB_SPIFLASH_defconfig | 1 +
configs/P1025RDB_defconfig | 1 +
configs/P2020RDB-PC_36BIT_NAND_defconfig | 3 +-
configs/P2020RDB-PC_36BIT_SDCARD_defconfig | 1 +
configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig | 1 +
configs/P2020RDB-PC_36BIT_defconfig | 1 +
configs/P2020RDB-PC_NAND_defconfig | 3 +-
configs/P2020RDB-PC_SDCARD_defconfig | 1 +
configs/P2020RDB-PC_SPIFLASH_defconfig | 1 +
configs/P2020RDB-PC_defconfig | 1 +
configs/P2041RDB_NAND_defconfig | 3 +-
configs/P2041RDB_SDCARD_defconfig | 1 +
configs/P2041RDB_SECURE_BOOT_defconfig | 1 +
configs/P2041RDB_SPIFLASH_defconfig | 1 +
configs/P2041RDB_defconfig | 1 +
configs/P3041DS_NAND_SECURE_BOOT_defconfig | 3 +-
configs/P3041DS_NAND_defconfig | 3 +-
configs/P3041DS_SDCARD_defconfig | 1 +
configs/P3041DS_SECURE_BOOT_defconfig | 1 +
configs/P3041DS_SPIFLASH_defconfig | 1 +
configs/P3041DS_defconfig | 1 +
configs/P4080DS_SDCARD_defconfig | 1 +
configs/P4080DS_SECURE_BOOT_defconfig | 1 +
configs/P4080DS_SPIFLASH_defconfig | 1 +
configs/P4080DS_defconfig | 1 +
configs/P5020DS_NAND_SECURE_BOOT_defconfig | 3 +-
configs/P5020DS_NAND_defconfig | 3 +-
configs/P5020DS_SDCARD_defconfig | 1 +
configs/P5020DS_SECURE_BOOT_defconfig | 1 +
configs/P5020DS_SPIFLASH_defconfig | 1 +
configs/P5020DS_defconfig | 1 +
configs/P5040DS_NAND_SECURE_BOOT_defconfig | 3 +-
configs/P5040DS_NAND_defconfig | 3 +-
configs/P5040DS_SDCARD_defconfig | 1 +
configs/P5040DS_SECURE_BOOT_defconfig | 1 +
configs/P5040DS_SPIFLASH_defconfig | 1 +
configs/P5040DS_defconfig | 1 +
configs/T1023RDB_NAND_defconfig | 3 +-
configs/T1023RDB_SDCARD_defconfig | 1 +
configs/T1023RDB_SECURE_BOOT_defconfig | 1 +
configs/T1023RDB_SPIFLASH_defconfig | 1 +
configs/T1023RDB_defconfig | 1 +
configs/T1024QDS_DDR4_SECURE_BOOT_defconfig | 1 +
configs/T1024QDS_DDR4_defconfig | 1 +
configs/T1024QDS_NAND_defconfig | 3 +-
configs/T1024QDS_SDCARD_defconfig | 1 +
configs/T1024QDS_SECURE_BOOT_defconfig | 1 +
configs/T1024QDS_SPIFLASH_defconfig | 1 +
configs/T1024QDS_defconfig | 1 +
configs/T1024RDB_NAND_defconfig | 3 +-
configs/T1024RDB_SDCARD_defconfig | 1 +
configs/T1024RDB_SECURE_BOOT_defconfig | 1 +
configs/T1024RDB_SPIFLASH_defconfig | 1 +
configs/T1024RDB_defconfig | 1 +
configs/T1040D4RDB_NAND_defconfig | 3 +-
configs/T1040D4RDB_SDCARD_defconfig | 1 +
configs/T1040D4RDB_SECURE_BOOT_defconfig | 1 +
configs/T1040D4RDB_SPIFLASH_defconfig | 1 +
configs/T1040D4RDB_defconfig | 1 +
configs/T1040QDS_DDR4_defconfig | 1 +
configs/T1040QDS_SECURE_BOOT_defconfig | 1 +
configs/T1040QDS_defconfig | 1 +
configs/T1040RDB_NAND_defconfig | 3 +-
configs/T1040RDB_SDCARD_defconfig | 1 +
configs/T1040RDB_SECURE_BOOT_defconfig | 1 +
configs/T1040RDB_SPIFLASH_defconfig | 1 +
configs/T1040RDB_defconfig | 1 +
configs/T1042D4RDB_NAND_defconfig | 3 +-
configs/T1042D4RDB_SDCARD_defconfig | 1 +
configs/T1042D4RDB_SECURE_BOOT_defconfig | 1 +
configs/T1042D4RDB_SPIFLASH_defconfig | 1 +
configs/T1042D4RDB_defconfig | 1 +
.../T1042RDB_PI_NAND_SECURE_BOOT_defconfig | 3 +-
configs/T1042RDB_PI_NAND_defconfig | 3 +-
configs/T1042RDB_PI_SDCARD_defconfig | 1 +
configs/T1042RDB_PI_SPIFLASH_defconfig | 1 +
configs/T1042RDB_PI_defconfig | 1 +
configs/T1042RDB_SECURE_BOOT_defconfig | 1 +
configs/T1042RDB_defconfig | 1 +
configs/T2080QDS_NAND_defconfig | 3 +-
configs/T2080QDS_SDCARD_defconfig | 1 +
configs/T2080QDS_SECURE_BOOT_defconfig | 1 +
configs/T2080QDS_SPIFLASH_defconfig | 1 +
configs/T2080QDS_defconfig | 1 +
configs/T2080RDB_NAND_defconfig | 3 +-
configs/T2080RDB_SDCARD_defconfig | 1 +
configs/T2080RDB_SECURE_BOOT_defconfig | 1 +
configs/T2080RDB_SPIFLASH_defconfig | 1 +
configs/T2080RDB_defconfig | 1 +
configs/T2081QDS_NAND_defconfig | 3 +-
configs/T2081QDS_SDCARD_defconfig | 1 +
configs/T2081QDS_SPIFLASH_defconfig | 1 +
configs/T2081QDS_defconfig | 1 +
configs/T4160QDS_NAND_defconfig | 3 +-
configs/T4160QDS_SDCARD_defconfig | 1 +
configs/T4160QDS_SECURE_BOOT_defconfig | 1 +
configs/T4160QDS_defconfig | 1 +
configs/T4160RDB_defconfig | 1 +
configs/T4240QDS_NAND_defconfig | 3 +-
configs/T4240QDS_SDCARD_defconfig | 1 +
configs/T4240QDS_SECURE_BOOT_defconfig | 1 +
configs/T4240QDS_defconfig | 1 +
configs/T4240RDB_SDCARD_defconfig | 1 +
configs/T4240RDB_defconfig | 1 +
configs/TQM834x_defconfig | 2 +-
configs/TWR-P1025_defconfig | 2 +-
configs/UCP1020_SPIFLASH_defconfig | 1 +
configs/UCP1020_defconfig | 1 +
configs/adp-ae3xx_defconfig | 3 +-
configs/adp-ag101p_defconfig | 1 +
configs/alt_defconfig | 2 +-
configs/am335x_baltos_defconfig | 4 +-
configs/am335x_evm_defconfig | 3 +-
configs/am335x_evm_nor_defconfig | 3 +-
configs/am335x_evm_norboot_defconfig | 2 +-
configs/am335x_evm_spiboot_defconfig | 2 +-
configs/am335x_evm_usbspl_defconfig | 3 +-
configs/am335x_hs_evm_defconfig | 3 +-
configs/am335x_hs_evm_uart_defconfig | 3 +-
configs/am335x_igep003x_defconfig | 4 +-
configs/am3517_crane_defconfig | 3 +-
configs/am3517_evm_defconfig | 4 +-
configs/am43xx_evm_defconfig | 3 +-
configs/am43xx_evm_ethboot_defconfig | 3 +-
configs/am43xx_evm_rtconly_defconfig | 3 +-
configs/am43xx_evm_usbhost_boot_defconfig | 3 +-
configs/am43xx_hs_evm_defconfig | 3 +-
configs/amcore_defconfig | 1 +
configs/ap121_defconfig | 1 +
configs/ap143_defconfig | 1 +
configs/ap325rxa_defconfig | 1 +
configs/ap_sh4a_4a_defconfig | 1 +
configs/apf27_defconfig | 5 +-
configs/apx4devkit_defconfig | 4 +-
configs/aristainetos2_defconfig | 5 +-
configs/aristainetos2b_defconfig | 5 +-
configs/aristainetos_defconfig | 5 +-
configs/armadillo-800eva_defconfig | 2 +
configs/astro_mcf5373l_defconfig | 1 +
configs/at91rm9200ek_defconfig | 1 +
configs/at91rm9200ek_ram_defconfig | 1 +
configs/at91sam9260ek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9260ek_dataflash_cs1_defconfig | 3 +-
configs/at91sam9260ek_nandflash_defconfig | 3 +-
configs/at91sam9261ek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9261ek_dataflash_cs3_defconfig | 3 +-
configs/at91sam9261ek_nandflash_defconfig | 3 +-
configs/at91sam9263ek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9263ek_dataflash_defconfig | 3 +-
configs/at91sam9263ek_nandflash_defconfig | 3 +-
configs/at91sam9263ek_norflash_boot_defconfig | 3 +-
configs/at91sam9263ek_norflash_defconfig | 3 +-
configs/at91sam9g10ek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9g10ek_dataflash_cs3_defconfig | 3 +-
configs/at91sam9g10ek_nandflash_defconfig | 3 +-
configs/at91sam9g20ek_2mmc_defconfig | 3 +-
.../at91sam9g20ek_2mmc_nandflash_defconfig | 3 +-
configs/at91sam9g20ek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9g20ek_dataflash_cs1_defconfig | 3 +-
configs/at91sam9g20ek_nandflash_defconfig | 3 +-
configs/at91sam9m10g45ek_mmc_defconfig | 3 +-
configs/at91sam9m10g45ek_nandflash_defconfig | 2 +
configs/at91sam9n12ek_mmc_defconfig | 3 +-
configs/at91sam9n12ek_nandflash_defconfig | 2 +
configs/at91sam9n12ek_spiflash_defconfig | 3 +-
configs/at91sam9rlek_dataflash_defconfig | 3 +-
configs/at91sam9rlek_mmc_defconfig | 3 +-
configs/at91sam9rlek_nandflash_defconfig | 3 +-
configs/at91sam9x5ek_dataflash_defconfig | 4 +-
configs/at91sam9x5ek_mmc_defconfig | 4 +-
configs/at91sam9x5ek_nandflash_defconfig | 3 +
configs/at91sam9x5ek_spiflash_defconfig | 4 +-
configs/at91sam9xeek_dataflash_cs0_defconfig | 3 +-
configs/at91sam9xeek_dataflash_cs1_defconfig | 3 +-
configs/at91sam9xeek_nandflash_defconfig | 3 +-
configs/ax25-ae350_defconfig | 1 +
configs/axm_defconfig | 3 +-
configs/axs101_defconfig | 2 +
configs/axs103_defconfig | 2 +
configs/bcm11130_nand_defconfig | 1 -
configs/bg0900_defconfig | 4 +-
configs/bitmain_antminer_s9_defconfig | 7 +-
configs/bk4r1_defconfig | 4 +
configs/blanche_defconfig | 1 +
configs/boston32r2_defconfig | 1 +
configs/boston32r2el_defconfig | 1 +
configs/boston32r6_defconfig | 1 +
configs/boston32r6el_defconfig | 1 +
configs/boston64r2_defconfig | 1 +
configs/boston64r2el_defconfig | 1 +
configs/boston64r6_defconfig | 1 +
configs/boston64r6el_defconfig | 1 +
configs/brppt1_nand_defconfig | 3 +-
configs/brppt1_spi_defconfig | 2 +-
configs/caddy2_defconfig | 1 +
configs/cairo_defconfig | 3 +-
configs/calimain_defconfig | 1 +
configs/chiliboard_defconfig | 3 +-
configs/clearfog_defconfig | 1 +
configs/cm_fx6_defconfig | 3 +-
configs/cm_t335_defconfig | 3 +-
configs/cm_t3517_defconfig | 3 +-
configs/cm_t35_defconfig | 3 +-
configs/cm_t43_defconfig | 3 +-
configs/cobra5272_defconfig | 1 +
configs/colibri-imx6ull_defconfig | 7 +-
configs/colibri_imx7_defconfig | 5 +-
configs/colibri_pxa270_defconfig | 1 +
configs/colibri_t20_defconfig | 3 +
configs/colibri_vf_defconfig | 3 +
configs/comtrend_ar5315u_ram_defconfig | 1 +
configs/comtrend_ar5387un_ram_defconfig | 1 +
configs/comtrend_ct5361_ram_defconfig | 1 +
configs/comtrend_wap5813n_ram_defconfig | 1 +
configs/corvus_defconfig | 3 +-
configs/da850_am18xxevm_defconfig | 2 +-
configs/da850evm_defconfig | 2 +-
configs/da850evm_direct_nor_defconfig | 1 +
configs/da850evm_nand_defconfig | 3 +-
configs/db-88f6820-amc_defconfig | 3 +-
configs/db-mv784mp-gp_defconfig | 3 +-
configs/devkit3250_defconfig | 3 +-
configs/devkit8000_defconfig | 3 +-
configs/display5_defconfig | 2 +-
configs/display5_factory_defconfig | 2 +-
configs/dns325_defconfig | 3 +
configs/dockstar_defconfig | 3 +
configs/draco_defconfig | 4 +-
configs/ds414_defconfig | 3 +-
configs/ea20_defconfig | 4 +-
configs/eb_cpu5282_defconfig | 1 +
configs/eb_cpu5282_internal_defconfig | 1 +
configs/eco5pk_defconfig | 4 +-
configs/ecovec_defconfig | 1 +
configs/edb9315a_defconfig | 1 +
configs/edminiv2_defconfig | 1 +
configs/espt_defconfig | 1 +
configs/etamin_defconfig | 4 +-
configs/ethernut5_defconfig | 4 +-
configs/evb-rv1108_defconfig | 1 +
configs/flea3_defconfig | 3 +-
...gardena-smart-gateway-mt7688-ram_defconfig | 2 +
.../gardena-smart-gateway-mt7688_defconfig | 2 +
configs/goflexhome_defconfig | 3 +
configs/gose_defconfig | 2 +-
configs/gurnard_defconfig | 3 +-
configs/guruplug_defconfig | 3 +
configs/gwventana_emmc_defconfig | 3 +-
configs/gwventana_gw5904_defconfig | 3 +-
configs/gwventana_nand_defconfig | 5 +-
configs/harmony_defconfig | 3 +
configs/helios4_defconfig | 1 +
configs/hrcon_defconfig | 1 +
configs/hrcon_dh_defconfig | 1 +
configs/huawei_hg556a_ram_defconfig | 1 +
configs/ib62x0_defconfig | 3 +
configs/iconnect_defconfig | 3 +
configs/ids8313_defconfig | 3 +
configs/igep0032_defconfig | 4 +-
configs/igep00x0_defconfig | 4 +-
configs/imx6dl_icore_nand_defconfig | 4 +-
configs/imx6q_icore_nand_defconfig | 4 +-
configs/imx6q_logic_defconfig | 5 +-
configs/imx6qdl_icore_mmc_defconfig | 4 +-
configs/imx6qdl_icore_nand_defconfig | 4 +-
configs/imx6ul_geam_nand_defconfig | 4 +-
configs/imx6ul_isiot_nand_defconfig | 4 +-
configs/integratorap_cm720t_defconfig | 1 +
configs/integratorap_cm920t_defconfig | 1 +
configs/integratorap_cm926ejs_defconfig | 1 +
configs/integratorap_cm946es_defconfig | 1 +
configs/integratorcp_cm1136_defconfig | 1 +
configs/integratorcp_cm920t_defconfig | 1 +
configs/integratorcp_cm926ejs_defconfig | 1 +
configs/integratorcp_cm946es_defconfig | 1 +
configs/ipam390_defconfig | 4 +-
configs/k2e_evm_defconfig | 4 +-
configs/k2e_hs_evm_defconfig | 4 +-
configs/k2g_evm_defconfig | 5 +-
configs/k2g_hs_evm_defconfig | 5 +-
configs/k2hk_evm_defconfig | 4 +-
configs/k2hk_hs_evm_defconfig | 4 +-
configs/k2l_evm_defconfig | 4 +-
configs/k2l_hs_evm_defconfig | 4 +-
configs/khadas-vim2_defconfig | 2 +-
configs/km_kirkwood_128m16_defconfig | 3 +
configs/km_kirkwood_defconfig | 3 +
configs/km_kirkwood_pci_defconfig | 3 +
configs/kmcoge4_defconfig | 2 +
configs/kmcoge5ne_defconfig | 2 +
configs/kmcoge5un_defconfig | 3 +
configs/kmeter1_defconfig | 3 +-
configs/kmlion1_defconfig | 2 +
configs/kmnusa_defconfig | 3 +
configs/kmopti2_defconfig | 3 +-
configs/kmsugp1_defconfig | 3 +
configs/kmsupx5_defconfig | 3 +-
configs/kmsuv31_defconfig | 3 +
configs/kmtegr1_defconfig | 2 +
configs/kmtepr2_defconfig | 3 +-
configs/kmvect1_defconfig | 3 +-
configs/koelsch_defconfig | 2 +-
configs/kzm9g_defconfig | 1 +
configs/lager_defconfig | 2 +-
configs/linkit-smart-7688-ram_defconfig | 1 +
configs/linkit-smart-7688_defconfig | 1 +
configs/lion-rk3368_defconfig | 1 +
configs/ls1021aqds_ddr4_nor_defconfig | 1 +
configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_nand_defconfig | 2 +
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021aqds_nor_defconfig | 1 +
configs/ls1021aqds_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_sdcard_ifc_defconfig | 1 +
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021atwr_nor_defconfig | 1 +
configs/ls1021atwr_nor_lpuart_defconfig | 1 +
...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig | 1 +
configs/ls1021atwr_sdcard_ifc_defconfig | 1 +
configs/ls1043aqds_defconfig | 1 +
configs/ls1043aqds_lpuart_defconfig | 1 +
configs/ls1043aqds_nand_defconfig | 2 +
configs/ls1043aqds_nor_ddr3_defconfig | 1 +
configs/ls1043aqds_sdcard_ifc_defconfig | 1 +
configs/ls1043ardb_SECURE_BOOT_defconfig | 1 +
configs/ls1043ardb_defconfig | 1 +
configs/ls1043ardb_nand_SECURE_BOOT_defconfig | 2 +
configs/ls1043ardb_nand_defconfig | 2 +
.../ls1043ardb_sdcard_SECURE_BOOT_defconfig | 1 +
configs/ls1043ardb_sdcard_defconfig | 1 +
configs/ls1046aqds_SECURE_BOOT_defconfig | 1 +
configs/ls1046aqds_defconfig | 1 +
configs/ls1046aqds_lpuart_defconfig | 1 +
configs/ls1046aqds_nand_defconfig | 2 +
configs/ls1046aqds_sdcard_ifc_defconfig | 1 +
configs/ls1046ardb_emmc_defconfig | 2 +
configs/ls1046ardb_qspi_SECURE_BOOT_defconfig | 2 +
configs/ls1046ardb_qspi_defconfig | 2 +
configs/ls1046ardb_qspi_spl_defconfig | 2 +
.../ls1046ardb_sdcard_SECURE_BOOT_defconfig | 2 +
configs/ls1046ardb_sdcard_defconfig | 2 +
configs/ls1088aqds_defconfig | 2 +
configs/ls1088aqds_qspi_SECURE_BOOT_defconfig | 2 +
configs/ls1088aqds_qspi_defconfig | 2 +
configs/ls1088aqds_sdcard_ifc_defconfig | 2 +
configs/ls1088aqds_sdcard_qspi_defconfig | 2 +
configs/ls1088ardb_qspi_SECURE_BOOT_defconfig | 2 +
configs/ls1088ardb_qspi_defconfig | 2 +
...1088ardb_sdcard_qspi_SECURE_BOOT_defconfig | 2 +
configs/ls1088ardb_sdcard_qspi_defconfig | 2 +
configs/ls2080a_simu_defconfig | 1 +
configs/ls2080aqds_SECURE_BOOT_defconfig | 1 +
configs/ls2080aqds_defconfig | 1 +
configs/ls2080aqds_nand_defconfig | 2 +
configs/ls2080aqds_qspi_defconfig | 2 +
configs/ls2080aqds_sdcard_defconfig | 2 +
configs/ls2080ardb_SECURE_BOOT_defconfig | 1 +
configs/ls2080ardb_defconfig | 1 +
configs/ls2080ardb_nand_defconfig | 2 +
configs/m53menlo_defconfig | 5 +-
configs/malta64_defconfig | 1 +
configs/malta64el_defconfig | 1 +
configs/malta_defconfig | 1 +
configs/maltael_defconfig | 1 +
configs/mccmon6_nor_defconfig | 4 +-
configs/mccmon6_sd_defconfig | 4 +-
configs/mcx_defconfig | 4 +-
configs/medcom-wide_defconfig | 2 +
configs/meesc_defconfig | 3 +-
configs/mgcoge3un_defconfig | 3 +
configs/microblaze-generic_defconfig | 2 +-
configs/mpc8308_p1m_defconfig | 1 +
configs/mpr2_defconfig | 1 +
configs/ms7720se_defconfig | 1 +
configs/ms7722se_defconfig | 1 +
configs/ms7750se_defconfig | 1 +
configs/mt_ventoux_defconfig | 4 +-
configs/mx28evk_auart_console_defconfig | 5 +-
configs/mx28evk_defconfig | 5 +-
configs/mx28evk_nand_defconfig | 5 +-
configs/mx28evk_spi_defconfig | 5 +-
configs/mx31pdk_defconfig | 3 +-
configs/mx35pdk_defconfig | 3 +-
configs/mx53ard_defconfig | 3 +-
configs/mx6sabreauto_defconfig | 4 +-
configs/mx6sxsabreauto_defconfig | 4 +-
configs/nas220_defconfig | 3 +
configs/netgear_cg3100d_ram_defconfig | 1 +
configs/nsa310s_defconfig | 3 +
configs/omap35_logic_defconfig | 4 +-
configs/omap35_logic_somlv_defconfig | 4 +-
configs/omap3_beagle_defconfig | 4 +-
configs/omap3_evm_defconfig | 4 +-
configs/omap3_ha_defconfig | 3 +-
configs/omap3_logic_defconfig | 4 +-
configs/omap3_logic_somlv_defconfig | 4 +-
configs/omap3_overo_defconfig | 4 +-
configs/omap3_pandora_defconfig | 4 +-
configs/omap3_zoom1_defconfig | 3 +-
configs/omapl138_lcdk_defconfig | 4 +-
configs/openrd_base_defconfig | 3 +
configs/openrd_client_defconfig | 3 +
configs/openrd_ultimate_defconfig | 3 +
configs/pcm052_defconfig | 4 +
configs/pcm058_defconfig | 5 +-
configs/pengwyn_defconfig | 3 +-
configs/pfla02_defconfig | 4 +-
configs/platinum_picon_defconfig | 5 +-
configs/platinum_titanium_defconfig | 5 +-
configs/plutux_defconfig | 2 +
configs/pm9261_defconfig | 3 +-
configs/pm9263_defconfig | 3 +-
configs/pm9g45_defconfig | 3 +-
configs/pogo_e02_defconfig | 3 +
configs/porter_defconfig | 2 +-
configs/portl2_defconfig | 3 +
configs/pxm2_defconfig | 4 +-
configs/qemu_mips64_defconfig | 1 +
configs/qemu_mips64el_defconfig | 1 +
configs/qemu_mips_defconfig | 1 +
configs/qemu_mipsel_defconfig | 1 +
configs/r0p7734_defconfig | 1 +
configs/r2dplus_defconfig | 1 +
configs/r7780mp_defconfig | 1 +
configs/r8a77995_draak_defconfig | 2 +-
configs/rastaban_defconfig | 4 +-
configs/rsk7203_defconfig | 1 +
configs/rsk7264_defconfig | 1 +
configs/rsk7269_defconfig | 1 +
configs/rut_defconfig | 4 +-
configs/s5pc210_universal_defconfig | 2 +-
configs/sagem_f@st1704_ram_defconfig | 1 +
configs/sama5d2_ptc_ek_mmc_defconfig | 3 +-
configs/sama5d2_ptc_ek_nandflash_defconfig | 2 +
configs/sama5d36ek_cmp_mmc_defconfig | 3 +-
configs/sama5d36ek_cmp_nandflash_defconfig | 2 +
configs/sama5d36ek_cmp_spiflash_defconfig | 3 +-
configs/sama5d3_xplained_mmc_defconfig | 4 +-
configs/sama5d3_xplained_nandflash_defconfig | 3 +
configs/sama5d3xek_mmc_defconfig | 3 +-
configs/sama5d3xek_nandflash_defconfig | 2 +
configs/sama5d3xek_spiflash_defconfig | 3 +-
configs/sama5d4_xplained_mmc_defconfig | 3 +-
configs/sama5d4_xplained_nandflash_defconfig | 2 +
configs/sama5d4_xplained_spiflash_defconfig | 3 +-
configs/sama5d4ek_mmc_defconfig | 3 +-
configs/sama5d4ek_nandflash_defconfig | 2 +
configs/sama5d4ek_spiflash_defconfig | 3 +-
configs/sandbox64_defconfig | 1 +
configs/sandbox_defconfig | 1 +
configs/sbc8349_PCI_33_defconfig | 1 +
configs/sbc8349_PCI_66_defconfig | 1 +
configs/sbc8349_defconfig | 1 +
configs/sbc8548_PCI_33_PCIE_defconfig | 1 +
configs/sbc8548_PCI_33_defconfig | 1 +
configs/sbc8548_PCI_66_PCIE_defconfig | 1 +
configs/sbc8548_PCI_66_defconfig | 1 +
configs/sbc8548_defconfig | 1 +
configs/sbc8641d_defconfig | 1 +
configs/seaboard_defconfig | 2 +
configs/sfr_nb4-ser_ram_defconfig | 1 +
configs/sh7763rdp_defconfig | 1 +
configs/sh7785lcr_32bit_defconfig | 1 +
configs/sh7785lcr_defconfig | 1 +
configs/sheevaplug_defconfig | 3 +
configs/shmin_defconfig | 1 +
configs/silk_defconfig | 2 +-
configs/smartweb_defconfig | 3 +-
configs/smdkc100_defconfig | 2 +-
configs/snapper9260_defconfig | 3 +-
configs/snapper9g20_defconfig | 3 +-
configs/socfpga_arria10_defconfig | 2 +-
configs/socfpga_arria5_defconfig | 3 +-
configs/socfpga_cyclone5_defconfig | 3 +-
configs/socfpga_dbm_soc1_defconfig | 2 +-
configs/socfpga_de0_nano_soc_defconfig | 3 +-
configs/socfpga_de10_nano_defconfig | 2 +-
configs/socfpga_de1_soc_defconfig | 2 +-
configs/socfpga_is1_defconfig | 3 +-
configs/socfpga_sockit_defconfig | 3 +-
configs/socfpga_socrates_defconfig | 3 +-
configs/socfpga_sr1500_defconfig | 3 +-
configs/socfpga_stratix10_defconfig | 1 +
configs/socfpga_vining_fpga_defconfig | 3 +-
configs/socrates_defconfig | 1 +
configs/spear300_defconfig | 2 +-
configs/spear300_nand_defconfig | 4 +-
configs/spear300_usbtty_defconfig | 2 +-
configs/spear300_usbtty_nand_defconfig | 4 +-
configs/spear310_defconfig | 2 +-
configs/spear310_nand_defconfig | 4 +-
configs/spear310_pnor_defconfig | 2 +-
configs/spear310_usbtty_defconfig | 2 +-
configs/spear310_usbtty_nand_defconfig | 4 +-
configs/spear310_usbtty_pnor_defconfig | 2 +-
configs/spear320_defconfig | 2 +-
configs/spear320_nand_defconfig | 4 +-
configs/spear320_pnor_defconfig | 2 +-
configs/spear320_usbtty_defconfig | 2 +-
configs/spear320_usbtty_nand_defconfig | 4 +-
configs/spear320_usbtty_pnor_defconfig | 2 +-
configs/spear600_defconfig | 2 +-
configs/spear600_nand_defconfig | 4 +-
configs/spear600_usbtty_defconfig | 2 +-
configs/spear600_usbtty_nand_defconfig | 4 +-
configs/stm32f429-discovery_defconfig | 1 +
configs/stm32f429-evaluation_defconfig | 1 +
configs/stm32f469-discovery_defconfig | 1 +
configs/stm32f746-disco_defconfig | 3 +-
configs/stmark2_defconfig | 2 +-
configs/stout_defconfig | 2 +-
configs/strider_con_defconfig | 1 +
configs/strider_con_dp_defconfig | 1 +
configs/strider_cpu_defconfig | 1 +
configs/strider_cpu_dp_defconfig | 1 +
configs/suvd3_defconfig | 3 +-
configs/tao3530_defconfig | 3 +-
configs/taurus_defconfig | 3 +-
configs/tec_defconfig | 2 +
configs/thuban_defconfig | 4 +-
configs/ti816x_evm_defconfig | 3 +-
configs/titanium_defconfig | 5 +-
configs/tplink_wdr4300_defconfig | 1 +
configs/tricorder_defconfig | 4 +-
configs/tricorder_flash_defconfig | 4 +-
configs/tuge1_defconfig | 3 +-
configs/turris_mox_defconfig | 1 +
configs/tuxx1_defconfig | 3 +-
configs/twister_defconfig | 4 +-
configs/uniphier_ld4_sld8_defconfig | 4 +-
configs/uniphier_v7_defconfig | 4 +-
configs/uniphier_v8_defconfig | 4 +-
configs/usb_a9263_dataflash_defconfig | 3 +-
configs/vct_platinum_defconfig | 1 +
configs/vct_platinum_onenand_defconfig | 3 +-
configs/vct_platinum_onenand_small_defconfig | 3 +-
configs/vct_platinum_small_defconfig | 1 +
configs/vct_platinumavc_defconfig | 1 +
configs/vct_platinumavc_onenand_defconfig | 3 +-
.../vct_platinumavc_onenand_small_defconfig | 3 +-
configs/vct_platinumavc_small_defconfig | 1 +
configs/vct_premium_defconfig | 1 +
configs/vct_premium_onenand_defconfig | 3 +-
configs/vct_premium_onenand_small_defconfig | 3 +-
configs/vct_premium_small_defconfig | 1 +
configs/ve8313_defconfig | 1 +
configs/vexpress_aemv8a_dram_defconfig | 1 +
configs/vexpress_aemv8a_juno_defconfig | 1 +
configs/vexpress_aemv8a_semi_defconfig | 1 +
configs/vexpress_ca15_tc2_defconfig | 1 +
configs/vexpress_ca5x2_defconfig | 1 +
configs/vexpress_ca9x4_defconfig | 1 +
configs/vf610twr_defconfig | 4 +
configs/vf610twr_nand_defconfig | 4 +
configs/vme8349_defconfig | 1 +
configs/wb45n_defconfig | 3 +-
configs/wb50n_defconfig | 3 +-
configs/woodburn_defconfig | 3 +-
configs/woodburn_sd_defconfig | 3 +-
configs/work_92105_defconfig | 2 +
configs/x600_defconfig | 3 +
configs/xilinx_zynqmp_mini_nand_defconfig | 3 +-
.../xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 5 +-
.../xilinx_zynqmp_zc1751_xm017_dc3_defconfig | 4 +-
configs/xpedite517x_defconfig | 1 +
configs/xpedite520x_defconfig | 1 +
configs/xpedite537x_defconfig | 1 +
configs/xpedite550x_defconfig | 1 +
configs/xtfpga_defconfig | 1 +
configs/zipitz2_defconfig | 1 +
configs/zmx25_defconfig | 1 +
configs/zynq_cse_nand_defconfig | 4 +-
configs/zynq_cse_nor_defconfig | 1 +
configs/zynq_zc770_xm011_defconfig | 5 +-
configs/zynq_zc770_xm011_x16_defconfig | 5 +-
configs/zynq_zc770_xm012_defconfig | 1 +
drivers/Makefile | 7 +-
drivers/dfu/Kconfig | 1 +
drivers/mtd/Kconfig | 13 +--
drivers/mtd/Makefile | 50 +++++++---
drivers/mtd/mtd_uboot.c | 96 +-----------------
drivers/mtd/nand/Makefile | 5 +
drivers/mtd/nand/bbt.c | 1 +
drivers/mtd/nand/core.c | 1 +
drivers/mtd/nand/raw/Kconfig | 4 +-
drivers/mtd/nand/raw/nand.c | 2 +-
drivers/mtd/onenand/onenand_uboot.c | 2 +-
drivers/mtd/spi/Kconfig | 2 +-
env/Kconfig | 2 +
include/configs/B4860QDS.h | 10 +-
include/configs/BSC9131RDB.h | 4 +-
include/configs/BSC9132QDS.h | 8 +-
include/configs/C29XPCIE.h | 8 +-
include/configs/MPC8313ERDB.h | 14 +--
include/configs/P1010RDB.h | 12 +--
include/configs/P1022DS.h | 10 +-
include/configs/P2041RDB.h | 6 +-
include/configs/T102xQDS.h | 8 +-
include/configs/T102xRDB.h | 8 +-
include/configs/T1040QDS.h | 6 +-
include/configs/T104xRDB.h | 12 +--
include/configs/T208xQDS.h | 8 +-
include/configs/T208xRDB.h | 8 +-
include/configs/T4240QDS.h | 10 +-
include/configs/T4240RDB.h | 6 +-
include/configs/am335x_evm.h | 6 +-
include/configs/am3517_evm.h | 6 +-
include/configs/am43xx_evm.h | 6 +-
include/configs/baltos.h | 6 +-
include/configs/bav335x.h | 8 +-
include/configs/brppt1.h | 16 +--
include/configs/corenet_ds.h | 8 +-
include/configs/da850evm.h | 4 +-
include/configs/dra7xx_evm.h | 4 +-
include/configs/ls2080ardb.h | 2 +-
include/configs/mvebu_armada-37xx.h | 1 -
include/configs/omap3_beagle.h | 10 +-
include/configs/omap3_evm.h | 10 +-
include/configs/omap3_logic.h | 2 +-
include/configs/omap3_overo.h | 6 +-
include/configs/omap3_pandora.h | 2 +-
include/configs/omapl138_lcdk.h | 4 +-
include/configs/p1_p2_rdb_pc.h | 8 +-
include/configs/siemens-am33x-common.h | 2 +-
include/configs/socfpga_stratix10_socdk.h | 1 -
include/configs/ti_armv7_common.h | 2 +-
include/configs/ti_armv7_omap.h | 2 +-
include/configs/ti_omap3_common.h | 2 +-
include/environment.h | 4 +-
include/environment/ti/dfu.h | 2 +-
include/flash.h | 2 +-
include/linux/mtd/mtd.h | 6 --
844 files changed, 1588 insertions(+), 621 deletions(-)
create mode 100644 cmd/legacy-mtd-utils.c
create mode 100644 cmd/legacy-mtd-utils.h
--
2.19.1
4
36

12 Apr '19
mtd_oobavail() returns either mtd->oovabail or mtd->oobsize. Both
values are unsigned 32-bit entities, so there is no reason to pretend
returning a signed one.
Signed-off-by: Miquel Raynal <miquel.raynal(a)bootlin.com>
---
include/linux/mtd/mtd.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 68e5915324..0525cfd27c 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -390,7 +390,7 @@ static inline void mtd_set_ooblayout(struct mtd_info *mtd,
mtd->ooblayout = ooblayout;
}
-static inline int mtd_oobavail(struct mtd_info *mtd, struct mtd_oob_ops *ops)
+static inline u32 mtd_oobavail(struct mtd_info *mtd, struct mtd_oob_ops *ops)
{
return ops->mode == MTD_OPS_AUTO_OOB ? mtd->oobavail : mtd->oobsize;
}
--
2.17.1
3
6

[U-Boot] [PATCH] fs: fat: fix reading non-cluster-aligned root directory
by Anssi Hannula 10 Apr '19
by Anssi Hannula 10 Apr '19
10 Apr '19
FAT16 root directory might not start at a cluster boundary (though it
always ends on one).
However, next_dent() always starts reading the directory at the
beginning of the cluster, causing no files to be found (at least if the
beginning of the cluster contains zeroes).
Fix that by skipping to the actual start of the root directory in such a
case.
This is a relatively common case as at least the filesystem formatter on
Win7 seems to create such filesystems by default on 2GB USB sticks
(cluster size 64 sectors, rootdir size 32 sectors).
dosfstools mkfs.vfat does not seem to create such filesystems.
Signed-off-by: Anssi Hannula <anssi.hannula(a)bitwise.fi>
---
fs/fat/fat.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index b08949d370..4a0d4bb8bc 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -782,6 +782,20 @@ static dir_entry *next_dent(fat_itr *itr)
itr->remaining = nbytes / sizeof(dir_entry) - 1;
itr->dent = dent;
+
+ if (itr->fsdata->fatsize != 32 &&
+ itr->clust == itr->fsdata->root_cluster) {
+ /* rootdir might not start at cluster boundary */
+ u32 sect_offset = itr->fsdata->rootdir_sect -
+ clust_to_sect(itr->fsdata,
+ itr->fsdata->root_cluster);
+ u32 dirent_offset = itr->fsdata->sect_size /
+ sizeof(dir_entry) * sect_offset;
+
+ itr->remaining -= dirent_offset;
+ itr->dent += dirent_offset;
+ }
+
} else {
itr->remaining--;
itr->dent++;
--
2.17.1
3
4
From: Stephen Warren <swarren(a)nvidia.com>
When a file contains extents, U-Boot currently reads extent-related data
for each block in the file, even if that data is located in the same
block each time. This significantly slows down loading of files that use
extents. Implement a very dumb cache to prevent repeatedly reading the
same block. Files with extents now load as fast as files without.
Note: There are many cases where read_allocated_block() is called. This
patch only addresses one of those places; all others still read redundant
data in any case they did before. This is a minimal patch to fix the
load command; other cases aren't fixed.
Signed-off-by: Stephen Warren <swarren(a)nvidia.com>
---
fs/ext4/ext4_common.c | 45 ++++++++++++++++++++++---------------
fs/ext4/ext4_journal.c | 22 +++++++++---------
fs/ext4/ext4_write.c | 6 ++---
fs/ext4/ext4fs.c | 51 +++++++++++++++++++++++++++++++++++++-----
include/ext4fs.h | 12 +++++++++-
5 files changed, 99 insertions(+), 37 deletions(-)
diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index 67e2471bd388..29308e3b4474 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -510,7 +510,8 @@ restart:
restart_read:
/* read the block no allocated to a file */
- first_block_no_of_root = read_allocated_block(g_parent_inode, blk_idx);
+ first_block_no_of_root = read_allocated_block(g_parent_inode, blk_idx,
+ NULL);
if (first_block_no_of_root <= 0)
goto fail;
@@ -646,7 +647,7 @@ static int search_dir(struct ext2_inode *parent_inode, char *dirname)
/* get the block no allocated to a file */
for (blk_idx = 0; blk_idx < directory_blocks; blk_idx++) {
- blknr = read_allocated_block(parent_inode, blk_idx);
+ blknr = read_allocated_block(parent_inode, blk_idx, NULL);
if (blknr <= 0)
goto fail;
@@ -943,7 +944,7 @@ int ext4fs_filename_unlink(char *filename)
/* read the block no allocated to a file */
for (blk_idx = 0; blk_idx < directory_blocks; blk_idx++) {
- blknr = read_allocated_block(g_parent_inode, blk_idx);
+ blknr = read_allocated_block(g_parent_inode, blk_idx, NULL);
if (blknr <= 0)
break;
inodeno = unlink_filename(filename, blknr);
@@ -1522,7 +1523,7 @@ void ext4fs_allocate_blocks(struct ext2_inode *file_inode,
#endif
static struct ext4_extent_header *ext4fs_get_extent_block
- (struct ext2_data *data, char *buf,
+ (struct ext2_data *data, struct ext_block_cache *cache,
struct ext4_extent_header *ext_block,
uint32_t fileblock, int log2_blksz)
{
@@ -1551,12 +1552,10 @@ static struct ext4_extent_header *ext4fs_get_extent_block
block = le16_to_cpu(index[i].ei_leaf_hi);
block = (block << 32) + le32_to_cpu(index[i].ei_leaf_lo);
-
- if (ext4fs_devread((lbaint_t)block << log2_blksz, 0, blksz,
- buf))
- ext_block = (struct ext4_extent_header *)buf;
- else
+ block <<= log2_blksz;
+ if (!ext_cache_read(cache, (lbaint_t)block, blksz))
return NULL;
+ ext_block = (struct ext4_extent_header *)cache->buf;
}
}
@@ -1613,7 +1612,8 @@ int ext4fs_read_inode(struct ext2_data *data, int ino, struct ext2_inode *inode)
return 1;
}
-long int read_allocated_block(struct ext2_inode *inode, int fileblock)
+long int read_allocated_block(struct ext2_inode *inode, int fileblock,
+ struct ext_block_cache *cache)
{
long int blknr;
int blksz;
@@ -1630,20 +1630,26 @@ long int read_allocated_block(struct ext2_inode *inode, int fileblock)
if (le32_to_cpu(inode->flags) & EXT4_EXTENTS_FL) {
long int startblock, endblock;
- char *buf = zalloc(blksz);
- if (!buf)
- return -ENOMEM;
+ struct ext_block_cache *c, cd;
struct ext4_extent_header *ext_block;
struct ext4_extent *extent;
int i;
+
+ if (cache) {
+ c = cache;
+ } else {
+ c = &cd;
+ ext_cache_init(c);
+ }
ext_block =
- ext4fs_get_extent_block(ext4fs_root, buf,
+ ext4fs_get_extent_block(ext4fs_root, c,
(struct ext4_extent_header *)
inode->b.blocks.dir_blocks,
fileblock, log2_blksz);
if (!ext_block) {
printf("invalid extent block\n");
- free(buf);
+ if (!cache)
+ ext_cache_fini(c);
return -EINVAL;
}
@@ -1655,19 +1661,22 @@ long int read_allocated_block(struct ext2_inode *inode, int fileblock)
if (startblock > fileblock) {
/* Sparse file */
- free(buf);
+ if (!cache)
+ ext_cache_fini(c);
return 0;
} else if (fileblock < endblock) {
start = le16_to_cpu(extent[i].ee_start_hi);
start = (start << 32) +
le32_to_cpu(extent[i].ee_start_lo);
- free(buf);
+ if (!cache)
+ ext_cache_fini(c);
return (fileblock - startblock) + start;
}
}
- free(buf);
+ if (!cache)
+ ext_cache_fini(c);
return 0;
}
diff --git a/fs/ext4/ext4_journal.c b/fs/ext4/ext4_journal.c
index 148593da7fef..6adbab93a68f 100644
--- a/fs/ext4/ext4_journal.c
+++ b/fs/ext4/ext4_journal.c
@@ -347,7 +347,7 @@ void recover_transaction(int prev_desc_logical_no)
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO,
(struct ext2_inode *)&inode_journal);
blknr = read_allocated_block((struct ext2_inode *)
- &inode_journal, i);
+ &inode_journal, i, NULL);
ext4fs_devread((lbaint_t)blknr * fs->sect_perblk, 0, fs->blksz,
temp_buff);
p_jdb = (char *)temp_buff;
@@ -372,7 +372,7 @@ void recover_transaction(int prev_desc_logical_no)
be32_to_cpu(jdb->h_sequence)) == 0)
continue;
}
- blknr = read_allocated_block(&inode_journal, i);
+ blknr = read_allocated_block(&inode_journal, i, NULL);
ext4fs_devread((lbaint_t)blknr * fs->sect_perblk, 0,
fs->blksz, metadata_buff);
put_ext4((uint64_t)((uint64_t)be32_to_cpu(tag->block) * (uint64_t)fs->blksz),
@@ -419,7 +419,8 @@ int ext4fs_check_journal_state(int recovery_flag)
}
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO, &inode_journal);
- blknr = read_allocated_block(&inode_journal, EXT2_JOURNAL_SUPERBLOCK);
+ blknr = read_allocated_block(&inode_journal, EXT2_JOURNAL_SUPERBLOCK,
+ NULL);
ext4fs_devread((lbaint_t)blknr * fs->sect_perblk, 0, fs->blksz,
temp_buff);
jsb = (struct journal_superblock_t *) temp_buff;
@@ -443,7 +444,7 @@ int ext4fs_check_journal_state(int recovery_flag)
i = be32_to_cpu(jsb->s_first);
while (1) {
- blknr = read_allocated_block(&inode_journal, i);
+ blknr = read_allocated_block(&inode_journal, i, NULL);
memset(temp_buff1, '\0', fs->blksz);
ext4fs_devread((lbaint_t)blknr * fs->sect_perblk,
0, fs->blksz, temp_buff1);
@@ -537,7 +538,7 @@ end:
ext4_read_superblock((char *)fs->sb);
blknr = read_allocated_block(&inode_journal,
- EXT2_JOURNAL_SUPERBLOCK);
+ EXT2_JOURNAL_SUPERBLOCK, NULL);
put_ext4((uint64_t) ((uint64_t)blknr * (uint64_t)fs->blksz),
(struct journal_superblock_t *)temp_buff,
(uint32_t) fs->blksz);
@@ -566,7 +567,7 @@ static void update_descriptor_block(long int blknr)
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO, &inode_journal);
jsb_blknr = read_allocated_block(&inode_journal,
- EXT2_JOURNAL_SUPERBLOCK);
+ EXT2_JOURNAL_SUPERBLOCK, NULL);
ext4fs_devread((lbaint_t)jsb_blknr * fs->sect_perblk, 0, fs->blksz,
temp_buff);
jsb = (struct journal_superblock_t *) temp_buff;
@@ -618,7 +619,7 @@ static void update_commit_block(long int blknr)
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO,
&inode_journal);
jsb_blknr = read_allocated_block(&inode_journal,
- EXT2_JOURNAL_SUPERBLOCK);
+ EXT2_JOURNAL_SUPERBLOCK, NULL);
ext4fs_devread((lbaint_t)jsb_blknr * fs->sect_perblk, 0, fs->blksz,
temp_buff);
jsb = (struct journal_superblock_t *) temp_buff;
@@ -645,16 +646,17 @@ void ext4fs_update_journal(void)
long int blknr;
int i;
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO, &inode_journal);
- blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++);
+ blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++, NULL);
update_descriptor_block(blknr);
for (i = 0; i < MAX_JOURNAL_ENTRIES; i++) {
if (journal_ptr[i]->blknr == -1)
break;
- blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++);
+ blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++,
+ NULL);
put_ext4((uint64_t) ((uint64_t)blknr * (uint64_t)fs->blksz),
journal_ptr[i]->buf, fs->blksz);
}
- blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++);
+ blknr = read_allocated_block(&inode_journal, jrnl_blk_idx++, NULL);
update_commit_block(blknr);
printf("update journal finished\n");
}
diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c
index a7f543f7df7d..861568954296 100644
--- a/fs/ext4/ext4_write.c
+++ b/fs/ext4/ext4_write.c
@@ -479,7 +479,7 @@ static int ext4fs_delete_file(int inodeno)
/* release data blocks */
for (i = 0; i < no_blocks; i++) {
- blknr = read_allocated_block(&inode, i);
+ blknr = read_allocated_block(&inode, i, NULL);
if (blknr == 0)
continue;
if (blknr < 0)
@@ -695,7 +695,7 @@ void ext4fs_deinit(void)
ext4fs_read_inode(ext4fs_root, EXT2_JOURNAL_INO,
&inode_journal);
blknr = read_allocated_block(&inode_journal,
- EXT2_JOURNAL_SUPERBLOCK);
+ EXT2_JOURNAL_SUPERBLOCK, NULL);
ext4fs_devread((lbaint_t)blknr * fs->sect_perblk, 0, fs->blksz,
temp_buff);
jsb = (struct journal_superblock_t *)temp_buff;
@@ -776,7 +776,7 @@ static int ext4fs_write_file(struct ext2_inode *file_inode,
long int blknr;
int blockend = fs->blksz;
int skipfirst = 0;
- blknr = read_allocated_block(file_inode, i);
+ blknr = read_allocated_block(file_inode, i, NULL);
if (blknr <= 0)
return -1;
diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
index 2a28031d14ca..26db677a1f17 100644
--- a/fs/ext4/ext4fs.c
+++ b/fs/ext4/ext4fs.c
@@ -62,6 +62,9 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
lbaint_t delayed_next = 0;
char *delayed_buf = NULL;
short status;
+ struct ext_block_cache cache;
+
+ ext_cache_init(&cache);
if (blocksize <= 0)
return -1;
@@ -77,9 +80,11 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
int blockoff = pos - (blocksize * i);
int blockend = blocksize;
int skipfirst = 0;
- blknr = read_allocated_block(&(node->inode), i);
- if (blknr < 0)
+ blknr = read_allocated_block(&node->inode, i, &cache);
+ if (blknr < 0) {
+ ext_cache_fini(&cache);
return -1;
+ }
blknr = blknr << log2_fs_blocksize;
@@ -109,8 +114,10 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
delayed_skipfirst,
delayed_extent,
delayed_buf);
- if (status == 0)
+ if (status == 0) {
+ ext_cache_fini(&cache);
return -1;
+ }
previous_block_number = blknr;
delayed_start = blknr;
delayed_extent = blockend;
@@ -136,8 +143,10 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
delayed_skipfirst,
delayed_extent,
delayed_buf);
- if (status == 0)
+ if (status == 0) {
+ ext_cache_fini(&cache);
return -1;
+ }
previous_block_number = -1;
}
/* Zero no more than `len' bytes. */
@@ -153,12 +162,15 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
status = ext4fs_devread(delayed_start,
delayed_skipfirst, delayed_extent,
delayed_buf);
- if (status == 0)
+ if (status == 0) {
+ ext_cache_fini(&cache);
return -1;
+ }
previous_block_number = -1;
}
*actread = len;
+ ext_cache_fini(&cache);
return 0;
}
@@ -252,3 +264,32 @@ int ext4fs_uuid(char *uuid_str)
return -ENOSYS;
#endif
}
+
+void ext_cache_init(struct ext_block_cache *cache)
+{
+ memset(cache, 0, sizeof(*cache));
+}
+
+void ext_cache_fini(struct ext_block_cache *cache)
+{
+ free(cache->buf);
+ ext_cache_init(cache);
+}
+
+int ext_cache_read(struct ext_block_cache *cache, lbaint_t block, int size)
+{
+ /* This could be more lenient, but this is simple and enough for now */
+ if (cache->buf && cache->block == block && cache->size == size)
+ return 1;
+ ext_cache_fini(cache);
+ cache->buf = malloc(size);
+ if (!cache->buf)
+ return 0;
+ if (!ext4fs_devread(block, 0, size, cache->buf)) {
+ free(cache->buf);
+ return 0;
+ }
+ cache->block = block;
+ cache->size = size;
+ return 1;
+}
diff --git a/include/ext4fs.h b/include/ext4fs.h
index bb5563910725..bed4bee80ce4 100644
--- a/include/ext4fs.h
+++ b/include/ext4fs.h
@@ -116,6 +116,12 @@ struct ext_filesystem {
struct blk_desc *dev_desc;
};
+struct ext_block_cache {
+ char *buf;
+ lbaint_t block;
+ int size;
+};
+
extern struct ext2_data *ext4fs_root;
extern struct ext2fs_node *ext4fs_file;
@@ -145,11 +151,15 @@ int ext4fs_size(const char *filename, loff_t *size);
void ext4fs_free_node(struct ext2fs_node *node, struct ext2fs_node *currroot);
int ext4fs_devread(lbaint_t sector, int byte_offset, int byte_len, char *buf);
void ext4fs_set_blk_dev(struct blk_desc *rbdd, disk_partition_t *info);
-long int read_allocated_block(struct ext2_inode *inode, int fileblock);
+long int read_allocated_block(struct ext2_inode *inode, int fileblock,
+ struct ext_block_cache *cache);
int ext4fs_probe(struct blk_desc *fs_dev_desc,
disk_partition_t *fs_partition);
int ext4_read_file(const char *filename, void *buf, loff_t offset, loff_t len,
loff_t *actread);
int ext4_read_superblock(char *buffer);
int ext4fs_uuid(char *uuid_str);
+void ext_cache_init(struct ext_block_cache *cache);
+void ext_cache_fini(struct ext_block_cache *cache);
+int ext_cache_read(struct ext_block_cache *cache, lbaint_t block, int size);
#endif
--
2.20.1
2
3

09 Apr '19
Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt(a)gmail.com>
---
u-boot-config/domain-map | 1 +
1 file changed, 1 insertion(+)
diff --git a/u-boot-config/domain-map b/u-boot-config/domain-map
index f2abba9..74c1538 100644
--- a/u-boot-config/domain-map
+++ b/u-boot-config/domain-map
@@ -262,6 +262,7 @@ parallels.com Parallels
pasemi.com PA Semi Corporation
pcs.de PCS Systemtechnik
pengutronix.de Pengutronix
+pepperl-fuchs.com Pepperl+Fuchs
pheonix.com Phoeonix
philosys.de Philosys Software
phytec.de Phytec
--
2.17.1
2
5
At present one of the regmap tests takes 5 seconds to run since it waits
for a timeout. This should be handled using sandbox_timer_add_offset()
which advances time for test purposes.
This requires a little change to make the regmap_read_poll_timeout()
testable.
Update the macro and the test.
Fixes: ebe3497c9c ("test: regmap: add regmap_read_poll_timeout test")
Signed-off-by: Simon Glass <sjg(a)chromium.org>
---
include/regmap.h | 14 +++++++++++++-
test/dm/regmap.c | 7 ++++---
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/include/regmap.h b/include/regmap.h
index a3afb72df51..8359c511d25 100644
--- a/include/regmap.h
+++ b/include/regmap.h
@@ -248,6 +248,8 @@ int regmap_raw_read_range(struct regmap *map, uint range_num, uint offset,
* @cond: Break condition (usually involving @val)
* @sleep_us: Maximum time to sleep between reads in us (0 tight-loops).
* @timeout_ms: Timeout in ms, 0 means never timeout
+ * @test_add_time: Used for sandbox testing - amount of time to add after
+ * starting the loop (0 if not testing)
*
* Returns 0 on success and -ETIMEDOUT upon a timeout or the regmap_read
* error return value in case of a error read. In the two former cases,
@@ -256,8 +258,12 @@ int regmap_raw_read_range(struct regmap *map, uint range_num, uint offset,
*
* This is modelled after the regmap_read_poll_timeout macros in linux but
* with millisecond timeout.
+ *
+ * The _test version is for sandbox testing only. Do not use this in normal
+ * code as it advances the timer.
*/
-#define regmap_read_poll_timeout(map, addr, val, cond, sleep_us, timeout_ms) \
+#define regmap_read_poll_timeout_test(map, addr, val, cond, sleep_us, \
+ timeout_ms, test_add_time) \
({ \
unsigned long __start = get_timer(0); \
int __ret; \
@@ -267,6 +273,8 @@ int regmap_raw_read_range(struct regmap *map, uint range_num, uint offset,
break; \
if (cond) \
break; \
+ if (IS_ENABLED(CONFIG_SANDBOX) && test_add_time) \
+ sandbox_timer_add_offset(test_add_time); \
if ((timeout_ms) && get_timer(__start) > (timeout_ms)) { \
__ret = regmap_read((map), (addr), &(val)); \
break; \
@@ -277,6 +285,10 @@ int regmap_raw_read_range(struct regmap *map, uint range_num, uint offset,
__ret ?: ((cond) ? 0 : -ETIMEDOUT); \
})
+#define regmap_read_poll_timeout(map, addr, val, cond, sleep_us, timeout_ms) \
+ regmap_read_poll_timeout_test(map, addr, val, cond, sleep_us, \
+ timeout_ms, 0) \
+
/**
* regmap_update_bits() - Perform a read/modify/write using a mask
*
diff --git a/test/dm/regmap.c b/test/dm/regmap.c
index 9a70c159ddb..82de295cb8f 100644
--- a/test/dm/regmap.c
+++ b/test/dm/regmap.c
@@ -160,9 +160,10 @@ static int dm_test_regmap_poll(struct unit_test_state *uts)
start = get_timer(0);
ut_asserteq(-ETIMEDOUT,
- regmap_read_poll_timeout(map, 0, reg,
- (reg == 0xcacafafa),
- 1, 5 * CONFIG_SYS_HZ));
+ regmap_read_poll_timeout_test(map, 0, reg,
+ (reg == 0xcacafafa),
+ 1, 5 * CONFIG_SYS_HZ,
+ 5 * CONFIG_SYS_HZ));
ut_assert(get_timer(start) > (5 * CONFIG_SYS_HZ));
--
2.20.0.rc2.403.gdbc3b29805-goog
4
4