Merge branch '2020-03-13-master-imports'
- Address the regression with the 'gpio' command
- Fix mcfuart regression
- Other minor fixes
diff --git a/MAINTAINERS b/MAINTAINERS
index 2c43573..92dda40 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -329,8 +329,21 @@
ARM STI
M: Patrice Chotard <patrice.chotard@st.com>
S: Maintained
+T: git https://gitlab.denx.de/u-boot/custodians/u-boot-stm.git
F: arch/arm/mach-sti/
F: arch/arm/include/asm/arch-sti*/
+F: drivers/phy/sti_usb_phy.c
+F: drivers/pinctrl/pinctrl-sti.c
+F: drivers/mmc/sti_sdhci.c
+F: drivers/reset/sti-reset.c
+F: drivers/serial/serial_sti_asc.c
+F: drivers/sysreset/sysreset_sti.c
+F: drivers/timer/sti-timer.c
+F: drivers/usb/host/dwc3-sti-glue.c
+F: include/dwc3-sti-glue.h
+F: include/dt-bindings/clock/stih407-clks.h
+F: include/dt-bindings/clock/stih410-clks.h
+F: include/dt-bindings/reset/stih407-resets.h
ARM STM SPEAR
#M: Vipin Kumar <vipin.kumar@st.com>
diff --git a/Makefile b/Makefile
index 07539ca..fa687f1 100644
--- a/Makefile
+++ b/Makefile
@@ -903,7 +903,7 @@
ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
endif
-ifdef CONFIG_INIT_SP_RELATIVE
+ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy)
ALL-y += init_sp_bss_offset_check
endif
@@ -1208,7 +1208,7 @@
fi \
fi
-ifdef CONFIG_INIT_SP_RELATIVE
+ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy)
ifneq ($(CONFIG_SYS_MALLOC_F_LEN),)
subtract_sys_malloc_f_len = space=$$(($${space} - $(CONFIG_SYS_MALLOC_F_LEN)))
else
diff --git a/cmd/gpio.c b/cmd/gpio.c
index 16c2ceb..408a942 100644
--- a/cmd/gpio.c
+++ b/cmd/gpio.c
@@ -248,7 +248,12 @@
if (ret != -EBUSY)
gpio_free(gpio);
- return CMD_RET_SUCCESS;
+ /*
+ * Whilst wrong, the legacy gpio input command returns the pin
+ * value, or CMD_RET_FAILURE (which is indistinguishable from a
+ * valid pin value).
+ */
+ return (sub_cmd == GPIOC_INPUT) ? value : CMD_RET_SUCCESS;
err:
if (ret != -EBUSY)
diff --git a/common/image-fit.c b/common/image-fit.c
index f3bb00c..4435bc4 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -1011,8 +1011,10 @@
if (external_data) {
debug("External Data\n");
ret = fit_image_get_data_size(fit, noffset, &len);
- *data = fit + offset;
- *size = len;
+ if (!ret) {
+ *data = fit + offset;
+ *size = len;
+ }
} else {
ret = fit_image_get_data(fit, noffset, data, size);
}
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index e26b644..e4a92bb 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -39,7 +39,7 @@
obj-$(CONFIG_CORTINA_UART) += serial_cortina.o
obj-$(CONFIG_EFI_APP) += serial_efi.o
obj-$(CONFIG_LPC32XX_HSUART) += lpc32xx_hsuart.o
-obj-$(CONFIG_MCFUART) += mcfuart.o
+obj-$(CONFIG_MCFUART) += serial_mcf.o
obj-$(CONFIG_SYS_NS16550) += ns16550.o
obj-$(CONFIG_S5P) += serial_s5p.o
obj-$(CONFIG_MXC_UART) += serial_mxc.o
diff --git a/drivers/serial/mcfuart.c b/drivers/serial/serial_mcf.c
similarity index 99%
rename from drivers/serial/mcfuart.c
rename to drivers/serial/serial_mcf.c
index 066e5a1..b599064 100644
--- a/drivers/serial/mcfuart.c
+++ b/drivers/serial/serial_mcf.c
@@ -85,6 +85,8 @@
{
struct coldfire_serial_platdata *plat = dev->platdata;
+ plat->port = dev->seq;
+
return mcf_serial_init_common((uart_t *)plat->base,
plat->port, plat->baudrate);
}
@@ -148,8 +150,6 @@
return -ENODEV;
plat->base = (uint32_t)addr_base;
-
- plat->port = dev->seq;
plat->baudrate = gd->baudrate;
return 0;
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index d24c1e4..cb4da2e 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -24,15 +24,15 @@
config WATCHDOG_RESET_DISABLE
bool "Disable reset watchdog"
help
- Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
- that the watchdog will not be fed in u-boot.
+ Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
+ that the watchdog will not be fed in u-boot.
config IMX_WATCHDOG
bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
select HW_WATCHDOG if !WDT
help
- Select this to enable the IMX and LSCH2 of Layerscape watchdog
- driver.
+ Select this to enable the IMX and LSCH2 of Layerscape watchdog
+ driver.
config OMAP_WATCHDOG
bool "TI OMAP watchdog driver"
@@ -50,8 +50,8 @@
bool "Designware watchdog timer support"
select HW_WATCHDOG if !WDT
help
- Enable this to support Designware Watchdog Timer IP, present e.g.
- on Altera SoCFPGA SoCs.
+ Enable this to support Designware Watchdog Timer IP, present e.g.
+ on Altera SoCFPGA SoCs.
config WDT
bool "Enable driver model for watchdog timer drivers"
@@ -68,10 +68,10 @@
bool "Marvell Armada 37xx watchdog timer support"
depends on WDT && ARMADA_3700
help
- Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
- There are 4 possible clocks which can be used on these SoCs. This
- driver uses the second clock (ID 1), assuming that so will also
- Linux's driver.
+ Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
+ There are 4 possible clocks which can be used on these SoCs. This
+ driver uses the second clock (ID 1), assuming that so will also
+ Linux's driver.
config WDT_ASPEED
bool "Aspeed ast2400/ast2500 watchdog timer support"
@@ -88,8 +88,8 @@
bool "AT91 watchdog timer support"
depends on WDT
help
- Select this to enable Microchip watchdog timer, which can be found on
- some AT91 devices.
+ Select this to enable Microchip watchdog timer, which can be found on
+ some AT91 devices.
config WDT_BCM6345
bool "BCM6345 watchdog timer support"
@@ -105,8 +105,8 @@
depends on WDT
imply WATCHDOG
help
- Select this to enable Cadence watchdog timer, which can be found on some
- Xilinx Microzed Platform.
+ Select this to enable Cadence watchdog timer, which can be found on some
+ Xilinx Microzed Platform.
config WDT_CORTINA
bool "Cortina Access CAxxxx watchdog timer support"
@@ -114,21 +114,21 @@
help
Cortina Access CAxxxx watchdog timer support.
This driver support all CPU ISAs supported by Cortina
- Access CAxxxx SoCs.
+ Access CAxxxx SoCs.
config WDT_MPC8xx
bool "MPC8xx watchdog timer support"
depends on WDT && MPC8xx
select HW_WATCHDOG
help
- Select this to enable mpc8xx watchdog timer
+ Select this to enable mpc8xx watchdog timer
config WDT_MT7621
bool "MediaTek MT7621 watchdog timer support"
depends on WDT && SOC_MT7628
help
- Select this to enable Ralink / Mediatek watchdog timer,
- which can be found on some MediaTek chips.
+ Select this to enable Ralink / Mediatek watchdog timer,
+ which can be found on some MediaTek chips.
config WDT_MTK
bool "MediaTek watchdog timer support"
@@ -139,10 +139,10 @@
It performs full SoC reset.
config WDT_OMAP3
- bool "TI OMAP watchdog timer support"
- depends on WDT && ARCH_OMAP2PLUS
- default y if AM33XX
- help
+ bool "TI OMAP watchdog timer support"
+ depends on WDT && ARCH_OMAP2PLUS
+ default y if AM33XX
+ help
This enables OMAP3+ watchdog timer driver, which can be
found on some TI chipsets and inline with driver model.
@@ -151,8 +151,8 @@
depends on WDT
select CLK
help
- Select this to enable Orion watchdog timer, which can be found on some
- Marvell Armada chips.
+ Select this to enable Orion watchdog timer, which can be found on some
+ Marvell Armada chips.
config WDT_SANDBOX
bool "Enable Watchdog Timer support for Sandbox"
@@ -166,8 +166,8 @@
bool "SP805 watchdog timer support"
depends on WDT
help
- Select this to enable SP805 watchdog timer, which can be found on some
- nxp layerscape chips.
+ Select this to enable SP805 watchdog timer, which can be found on some
+ nxp layerscape chips.
config WDT_STM32MP
bool "IWDG watchdog driver for STM32 MP's family"
@@ -182,8 +182,8 @@
depends on WDT
imply WATCHDOG
help
- Select this to enable Xilinx Axi watchdog timer, which can be found on some
- Xilinx Microblaze Platforms.
+ Select this to enable Xilinx Axi watchdog timer, which can be found on some
+ Xilinx Microblaze Platforms.
config WDT_TANGIER
bool "Intel Tangier watchdog timer support"
diff --git a/test/py/tests/test_gpio.py b/test/py/tests/test_gpio.py
new file mode 100644
index 0000000..8c64f68
--- /dev/null
+++ b/test/py/tests/test_gpio.py
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+import pytest
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_gpio')
+def test_gpio_input(u_boot_console):
+ """Test that gpio input correctly returns the value of a gpio pin."""
+
+ response = u_boot_console.run_command('gpio input 0; echo rc:$?')
+ expected_response = 'rc:0'
+ assert(expected_response in response)
+ response = u_boot_console.run_command('gpio toggle 0; gpio input 0; echo rc:$?')
+ expected_response = 'rc:1'
+ assert(expected_response in response)
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_gpio')
+def test_gpio_exit_statuses(u_boot_console):
+ """Test that non-input gpio commands correctly return the command
+ success/failure status."""
+
+ expected_response = 'rc:0'
+ response = u_boot_console.run_command('gpio clear 0; echo rc:$?')
+ assert(expected_response in response)
+ response = u_boot_console.run_command('gpio set 0; echo rc:$?')
+ assert(expected_response in response)
+ response = u_boot_console.run_command('gpio toggle 0; echo rc:$?')
+ assert(expected_response in response)
+ response = u_boot_console.run_command('gpio status -a; echo rc:$?')
+ assert(expected_response in response)
+
+ expected_response = 'rc:1'
+ response = u_boot_console.run_command('gpio nonexistent-command; echo rc:$?')
+ assert(expected_response in response)
+ response = u_boot_console.run_command('gpio input 200; echo rc:$?')
+ assert(expected_response in response)