aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS38
-rw-r--r--Makefile2
-rw-r--r--arch/arm/dts/imx6dl-icore-rqs.dts2
-rw-r--r--arch/arm/dts/imx6qdl-icore-rqs.dtsi37
-rw-r--r--arch/arm/include/asm/mach-imx/hab.h5
-rw-r--r--arch/arm/mach-imx/hab.c6
-rw-r--r--arch/arm/mach-imx/syscounter.c4
-rw-r--r--board/gdsys/a38x/MAINTAINERS4
-rw-r--r--board/gdsys/common/adv7611.c2
-rw-r--r--board/gdsys/common/fanctrl.c2
-rw-r--r--board/gdsys/common/fpga.c2
-rw-r--r--board/gdsys/common/ihs_mdio.c2
-rw-r--r--board/gdsys/common/ioep-fpga.c2
-rw-r--r--board/gdsys/common/miiphybb.c2
-rw-r--r--board/gdsys/common/osd.c2
-rw-r--r--board/gdsys/common/osd.h2
-rw-r--r--board/gdsys/common/phy.c2
-rw-r--r--board/gdsys/mpc8308/MAINTAINERS2
-rw-r--r--board/gdsys/mpc8308/Makefile2
-rw-r--r--board/gdsys/mpc8308/hrcon.c2
-rw-r--r--board/gdsys/mpc8308/mpc8308.c2
-rw-r--r--board/gdsys/mpc8308/strider.c2
-rw-r--r--board/gdsys/p1022/MAINTAINERS2
-rw-r--r--configs/am3517_crane_defconfig1
-rw-r--r--configs/efi-x86_defconfig1
-rw-r--r--configs/imx6qdl_icore_mipi_defconfig2
-rw-r--r--configs/imx6qdl_icore_mmc_defconfig2
-rw-r--r--configs/imx6qdl_icore_nand_defconfig1
-rw-r--r--configs/imx6qdl_icore_rqs_defconfig2
-rw-r--r--configs/omap3_pandora_defconfig2
-rw-r--r--configs/thunderx_88xx_defconfig1
-rw-r--r--configs/vct_platinumavc_defconfig1
-rw-r--r--configs/vct_platinumavc_onenand_defconfig1
-rw-r--r--configs/zynq_zc770_xm011_defconfig1
-rw-r--r--configs/zynq_zc770_xm011_x16_defconfig1
-rw-r--r--doc/README.imx648
-rw-r--r--doc/README.mxc_hab97
-rw-r--r--drivers/gpio/mpc8xxx_gpio.c2
-rw-r--r--drivers/gpio/pca9698.c2
-rw-r--r--drivers/i2c/ihs_i2c.c2
-rw-r--r--drivers/serial/serial_bcm283x_mu.c8
-rw-r--r--drivers/serial/serial_bcm283x_pl011.c25
-rw-r--r--drivers/serial/serial_pl01x.c10
-rw-r--r--drivers/serial/serial_pl01x_internal.h7
-rw-r--r--drivers/tpm/tpm_atmel_twi.c2
-rw-r--r--fs/ext4/ext4_common.c3
-rw-r--r--fs/yaffs2/yaffs_guts.c4
-rw-r--r--fs/yaffs2/yaffsfs.c9
-rw-r--r--include/configs/at91rm9200ek.h1
-rw-r--r--include/configs/at91sam9263ek.h2
-rw-r--r--include/configs/at91sam9rlek.h2
-rw-r--r--include/configs/dbau1x00.h1
-rw-r--r--include/configs/draco.h1
-rw-r--r--include/configs/edb93xx.h1
-rw-r--r--include/configs/exynos5420-common.h2
-rw-r--r--include/configs/h2200.h1
-rw-r--r--include/configs/hrcon.h2
-rw-r--r--include/configs/ipam390.h1
-rw-r--r--include/configs/kzm9g.h1
-rw-r--r--include/configs/omapl138_lcdk.h1
-rw-r--r--include/configs/pb1x00.h1
-rw-r--r--include/configs/picosam9g45.h2
-rw-r--r--include/configs/platinum_picon.h1
-rw-r--r--include/configs/platinum_titanium.h1
-rw-r--r--include/configs/pm9261.h1
-rw-r--r--include/configs/pm9263.h1
-rw-r--r--include/configs/pm9g45.h1
-rw-r--r--include/configs/pxm2.h1
-rw-r--r--include/configs/qemu-arm.h2
-rw-r--r--include/configs/rut.h1
-rw-r--r--include/configs/smdkc100.h1
-rw-r--r--include/configs/smdkv310.h1
-rw-r--r--include/configs/stm32f429-discovery.h2
-rw-r--r--include/configs/stm32f469-discovery.h2
-rw-r--r--include/configs/strider.h2
-rw-r--r--include/configs/stv0991.h2
-rw-r--r--include/gdsys_fpga.h2
-rw-r--r--include/pca9698.h2
-rw-r--r--scripts/coccinelle/null/badzero.cocci241
-rw-r--r--scripts/coccinelle/null/kmerr.cocci75
-rw-r--r--scripts/config_whitelist.txt37
-rw-r--r--tools/fit_image.c6
-rw-r--r--tools/imximage.c5
83 files changed, 534 insertions, 235 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index f42cb220ee9..d5059f611da 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -59,12 +59,6 @@ S: Maintained
T: git git://git.denx.de/u-boot-arc.git
F: arch/arc/
-ARC HSDK CREG GPIO
-M: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
-S: Maintained
-L: uboot-snps-arc@synopsys.com
-F: drivers/gpio/hsdk-creg-gpio.c
-
ARC HSDK CGU CLOCK
M: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
S: Maintained
@@ -73,6 +67,12 @@ F: drivers/clk/clk-hsdk-cgu.c
F: include/dt-bindings/clock/snps,hsdk-cgu.h
F: doc/device-tree-bindings/clock/snps,hsdk-cgu.txt
+ARC HSDK CREG GPIO
+M: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
+S: Maintained
+L: uboot-snps-arc@synopsys.com
+F: drivers/gpio/hsdk-creg-gpio.c
+
ARM
M: Albert Aribaud <albert.u.boot@aribaud.net>
S: Maintained
@@ -185,6 +185,12 @@ M: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
S: Maintained
F: arch/arm/mach-snapdragon/
+ARM STI
+M: Patrice Chotard <patrice.chotard@st.com>
+S: Maintained
+F: arch/arm/mach-sti/
+F: arch/arm/include/asm/arch-sti*/
+
ARM STM SPEAR
#M: Vipin Kumar <vipin.kumar@st.com>
S: Orphaned (Since 2016-02)
@@ -198,12 +204,6 @@ S: Maintained
F: arch/arm/cpu/armv7/stv0991/
F: arch/arm/include/asm/arch-stv0991/
-ARM STI
-M: Patrice Chotard <patrice.chotard@st.com>
-S: Maintained
-F: arch/arm/mach-sti/
-F: arch/arm/include/asm/arch-sti*/
-
ARM SUNXI
M: Jagan Teki <jagan@openedev.com>
M: Maxime Ripard <maxime.ripard@bootlin.com>
@@ -354,13 +354,6 @@ S: Maintained
T: git git://git.denx.de/u-boot-mmc.git
F: drivers/mmc/
-NETWORK
-M: Joe Hershberger <joe.hershberger@ni.com>
-S: Maintained
-T: git git://git.denx.de/u-boot-net.git
-F: drivers/net/
-F: net/
-
NAND FLASH
M: Scott Wood <oss@buserror.net>
S: Maintained
@@ -373,6 +366,13 @@ S: Maintained
T: git git://git.denx.de/u-boot-nds32.git
F: arch/nds32/
+NETWORK
+M: Joe Hershberger <joe.hershberger@ni.com>
+S: Maintained
+T: git git://git.denx.de/u-boot-net.git
+F: drivers/net/
+F: net/
+
NIOS
M: Thomas Chou <thomas@wytron.com.tw>
S: Maintained
diff --git a/Makefile b/Makefile
index c6819d57426..6b2aac6713c 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@
VERSION = 2018
PATCHLEVEL = 03
SUBLEVEL =
-EXTRAVERSION = -rc4
+EXTRAVERSION =
NAME =
# *DOCUMENTATION*
diff --git a/arch/arm/dts/imx6dl-icore-rqs.dts b/arch/arm/dts/imx6dl-icore-rqs.dts
index 0f1de3f18ce..820e66c7249 100644
--- a/arch/arm/dts/imx6dl-icore-rqs.dts
+++ b/arch/arm/dts/imx6dl-icore-rqs.dts
@@ -41,7 +41,7 @@
/dts-v1/;
-#include "imx6q.dtsi"
+#include "imx6dl.dtsi"
#include "imx6qdl-icore-rqs.dtsi"
/ {
diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
index 1623838490f..4f7f10203d3 100644
--- a/arch/arm/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -115,9 +115,13 @@
&usdhc4 {
u-boot,dm-spl;
- pinctrl-names = "default";
+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc4>;
+ pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
+ pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
+ bus-witdh = <8>;
no-1-8-v;
+ non-removable;
status = "okay";
};
@@ -198,4 +202,35 @@
MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17070
>;
};
+
+ pinctrl_usdhc4_100mhz: usdhc4grp_100mhz {
+ fsl,pins = <
+ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x170B1
+ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x100B1
+ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x170B1
+ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x170B1
+ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x170B1
+ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x170B1
+ MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x170B1
+ MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x170B1
+ MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x170B1
+ MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x170B1
+ >;
+ };
+
+ pinctrl_usdhc4_200mhz: usdhc4grp_200mhz {
+ fsl,pins = <
+ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x170F9
+ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x100F9
+ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x170F9
+ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x170F9
+ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x170F9
+ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x170F9
+ MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x170F9
+ MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x170F9
+ MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x170F9
+ MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x170F9
+ >;
+ };
+
};
diff --git a/arch/arm/include/asm/mach-imx/hab.h b/arch/arm/include/asm/mach-imx/hab.h
index 561de9c6f70..ce9a44dacda 100644
--- a/arch/arm/include/asm/mach-imx/hab.h
+++ b/arch/arm/include/asm/mach-imx/hab.h
@@ -9,6 +9,7 @@
#define __SECURE_MX6Q_H__
#include <linux/types.h>
+#include <linux/compiler.h>
/*
* IVT header definitions
@@ -21,11 +22,11 @@
#define IVT_HEADER_V1 0x40
#define IVT_HEADER_V2 0x41
-struct ivt_header {
+struct __packed ivt_header {
uint8_t magic;
uint16_t length;
uint8_t version;
-} __attribute__((packed));
+};
struct ivt {
struct ivt_header hdr; /* IVT header above */
diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c
index c3fc699d023..c730c8f7a91 100644
--- a/arch/arm/mach-imx/hab.c
+++ b/arch/arm/mach-imx/hab.c
@@ -526,10 +526,8 @@ int imx_hab_authenticate_image(uint32_t ddr_start, uint32_t image_size,
}
/* Verify if IVT DCD pointer is NULL */
- if (ivt->dcd) {
- puts("Error: DCD pointer must be NULL\n");
- goto hab_authentication_exit;
- }
+ if (ivt->dcd)
+ puts("Warning: DCD pointer should be NULL\n");
start = ddr_start;
bytes = image_size;
diff --git a/arch/arm/mach-imx/syscounter.c b/arch/arm/mach-imx/syscounter.c
index 9290918dca2..1d4ebfe3439 100644
--- a/arch/arm/mach-imx/syscounter.c
+++ b/arch/arm/mach-imx/syscounter.c
@@ -62,7 +62,7 @@ int timer_init(void)
unsigned long val, freq;
freq = CONFIG_SC_TIMER_CLK;
- asm("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq));
+ asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq));
writel(freq, &sctr->cntfid0);
@@ -82,7 +82,7 @@ unsigned long long get_ticks(void)
{
unsigned long long now;
- asm("mrrc p15, 0, %Q0, %R0, c14" : "=r" (now));
+ asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (now));
gd->arch.tbl = (unsigned long)(now & 0xffffffff);
gd->arch.tbu = (unsigned long)(now >> 32);
diff --git a/board/gdsys/a38x/MAINTAINERS b/board/gdsys/a38x/MAINTAINERS
index 3cb9b63ff0d..d31e675ddce 100644
--- a/board/gdsys/a38x/MAINTAINERS
+++ b/board/gdsys/a38x/MAINTAINERS
@@ -1,6 +1,6 @@
A38X BOARD
-M: Dirk Eibach <eibach@gdsys.cc>
-M: Mario Six <six@gdsys.de>
+M: Dirk Eibach <dirk.eibach@gdsys.cc>
+M: Mario Six <mario.six@gdsys.cc>
S: Maintained
F: board/gdsys/a38x/
F: include/configs/controlcenterdc.h
diff --git a/board/gdsys/common/adv7611.c b/board/gdsys/common/adv7611.c
index b728274cce6..5355292280d 100644
--- a/board/gdsys/common/adv7611.c
+++ b/board/gdsys/common/adv7611.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/fanctrl.c b/board/gdsys/common/fanctrl.c
index 44569bb1aba..52a4f33836d 100644
--- a/board/gdsys/common/fanctrl.c
+++ b/board/gdsys/common/fanctrl.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2015
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/fpga.c b/board/gdsys/common/fpga.c
index e10c105feb1..09c0446f903 100644
--- a/board/gdsys/common/fpga.c
+++ b/board/gdsys/common/fpga.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2013
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/ihs_mdio.c b/board/gdsys/common/ihs_mdio.c
index 262ead55164..822517d4b28 100644
--- a/board/gdsys/common/ihs_mdio.c
+++ b/board/gdsys/common/ihs_mdio.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/ioep-fpga.c b/board/gdsys/common/ioep-fpga.c
index f72a01e5b26..7ebce04a8a2 100644
--- a/board/gdsys/common/ioep-fpga.c
+++ b/board/gdsys/common/ioep-fpga.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/miiphybb.c b/board/gdsys/common/miiphybb.c
index 310562902b2..09b62253cd7 100644
--- a/board/gdsys/common/miiphybb.c
+++ b/board/gdsys/common/miiphybb.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2010
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/osd.c b/board/gdsys/common/osd.c
index add95743698..454468ea3bc 100644
--- a/board/gdsys/common/osd.c
+++ b/board/gdsys/common/osd.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2010
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/osd.h b/board/gdsys/common/osd.h
index 5b3f14bf05e..a3b0e3d5ae8 100644
--- a/board/gdsys/common/osd.h
+++ b/board/gdsys/common/osd.h
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2010
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/common/phy.c b/board/gdsys/common/phy.c
index fb926581788..45d2b81f37c 100644
--- a/board/gdsys/common/phy.c
+++ b/board/gdsys/common/phy.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/mpc8308/MAINTAINERS b/board/gdsys/mpc8308/MAINTAINERS
index 21470bf6b05..755b9a23858 100644
--- a/board/gdsys/mpc8308/MAINTAINERS
+++ b/board/gdsys/mpc8308/MAINTAINERS
@@ -1,5 +1,5 @@
MPC8308 BOARD
-M: Dirk Eibach <eibach@gdsys.de>
+M: Dirk Eibach <dirk.eibach@gdsys.cc>
S: Maintained
F: board/gdsys/mpc8308/
F: include/configs/hrcon.h
diff --git a/board/gdsys/mpc8308/Makefile b/board/gdsys/mpc8308/Makefile
index 42702fb967b..f9671cfbd69 100644
--- a/board/gdsys/mpc8308/Makefile
+++ b/board/gdsys/mpc8308/Makefile
@@ -1,6 +1,6 @@
#
# (C) Copyright 2014
-# Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+# Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
#
# SPDX-License-Identifier: GPL-2.0+
#
diff --git a/board/gdsys/mpc8308/hrcon.c b/board/gdsys/mpc8308/hrcon.c
index 96f60bef95b..ed5cb332794 100644
--- a/board/gdsys/mpc8308/hrcon.c
+++ b/board/gdsys/mpc8308/hrcon.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/mpc8308/mpc8308.c b/board/gdsys/mpc8308/mpc8308.c
index 86b257f4de6..928f75a02f0 100644
--- a/board/gdsys/mpc8308/mpc8308.c
+++ b/board/gdsys/mpc8308/mpc8308.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/mpc8308/strider.c b/board/gdsys/mpc8308/strider.c
index 88211050610..c8ea8a4ae0a 100644
--- a/board/gdsys/mpc8308/strider.c
+++ b/board/gdsys/mpc8308/strider.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/board/gdsys/p1022/MAINTAINERS b/board/gdsys/p1022/MAINTAINERS
index 5119fbb1426..99f1200c098 100644
--- a/board/gdsys/p1022/MAINTAINERS
+++ b/board/gdsys/p1022/MAINTAINERS
@@ -1,5 +1,5 @@
P1022 BOARD
-M: Dirk Eibach <eibach@gdsys.de>
+M: Dirk Eibach <dirk.eibach@gdsys.cc>
S: Maintained
F: board/gdsys/p1022/
F: include/configs/controlcenterd.h
diff --git a/configs/am3517_crane_defconfig b/configs/am3517_crane_defconfig
index b70e54d7140..9d092ef0487 100644
--- a/configs/am3517_crane_defconfig
+++ b/configs/am3517_crane_defconfig
@@ -19,7 +19,6 @@ CONFIG_CMD_NAND=y
CONFIG_CMD_USB=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
-CONFIG_CMD_DHCP=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
CONFIG_CMD_JFFS2=y
diff --git a/configs/efi-x86_defconfig b/configs/efi-x86_defconfig
index 83850d478fb..7d162a8e048 100644
--- a/configs/efi-x86_defconfig
+++ b/configs/efi-x86_defconfig
@@ -16,7 +16,6 @@ CONFIG_CMD_SF=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
# CONFIG_CMD_NET is not set
-CONFIG_CMD_DHCP=y
CONFIG_CMD_PING=y
CONFIG_CMD_TIME=y
CONFIG_CMD_EXT2=y
diff --git a/configs/imx6qdl_icore_mipi_defconfig b/configs/imx6qdl_icore_mipi_defconfig
index 208fc89b7e5..6dc8d2fe13f 100644
--- a/configs/imx6qdl_icore_mipi_defconfig
+++ b/configs/imx6qdl_icore_mipi_defconfig
@@ -15,11 +15,11 @@ CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
CONFIG_BOOTDELAY=3
CONFIG_SUPPORT_RAW_INITRD=y
CONFIG_SPL=y
-CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_OS_BOOT=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="icorem6qdl-mipi> "
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
index d386946df60..a3f5e8fc34f 100644
--- a/configs/imx6qdl_icore_mmc_defconfig
+++ b/configs/imx6qdl_icore_mmc_defconfig
@@ -15,11 +15,11 @@ CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
CONFIG_BOOTDELAY=3
CONFIG_SUPPORT_RAW_INITRD=y
CONFIG_SPL=y
-CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_OS_BOOT=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="icorem6qdl> "
diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig
index 5e142272d6f..2a860592262 100644
--- a/configs/imx6qdl_icore_nand_defconfig
+++ b/configs/imx6qdl_icore_nand_defconfig
@@ -33,7 +33,6 @@ CONFIG_CMD_FS_GENERIC=y
CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:2m(spl),2m(uboot),1m(env),8m(kernel),1m(dtb),-(rootfs)"
CONFIG_CMD_UBI=y
-CONFIG_OF_LIST="imx6q-icore imx6dl-icore"
CONFIG_ENV_IS_IN_NAND=y
CONFIG_SYS_I2C_MXC=y
CONFIG_NAND=y
diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig
index 13f34553697..6c8fb85ca2b 100644
--- a/configs/imx6qdl_icore_rqs_defconfig
+++ b/configs/imx6qdl_icore_rqs_defconfig
@@ -14,11 +14,11 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-icore-rqs"
CONFIG_FIT=y
CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
CONFIG_BOOTDELAY=3
CONFIG_SUPPORT_RAW_INITRD=y
CONFIG_SPL=y
-CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_OS_BOOT=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="icorem6qdl-rqs> "
diff --git a/configs/omap3_pandora_defconfig b/configs/omap3_pandora_defconfig
index 649a57458fd..a004f147441 100644
--- a/configs/omap3_pandora_defconfig
+++ b/configs/omap3_pandora_defconfig
@@ -31,5 +31,5 @@ CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
CONFIG_SYS_NS16550=y
CONFIG_OMAP3_SPI=y
CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
# CONFIG_REGEX is not set
+CONFIG_OF_LIBFDT=y
diff --git a/configs/thunderx_88xx_defconfig b/configs/thunderx_88xx_defconfig
index 4b25c0814c8..891a4173d9c 100644
--- a/configs/thunderx_88xx_defconfig
+++ b/configs/thunderx_88xx_defconfig
@@ -27,4 +27,3 @@ CONFIG_DEBUG_UART_PL011=y
CONFIG_DEBUG_UART_BASE=0x87e024000000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SKIP_INIT=y
-CONFIG_REGEX=y
diff --git a/configs/vct_platinumavc_defconfig b/configs/vct_platinumavc_defconfig
index 57b30779390..174a840f391 100644
--- a/configs/vct_platinumavc_defconfig
+++ b/configs/vct_platinumavc_defconfig
@@ -10,7 +10,6 @@ CONFIG_CMD_EEPROM=y
CONFIG_CMD_I2C=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
-CONFIG_CMD_DHCP=y
# CONFIG_CMD_NFS is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_ENV_IS_IN_FLASH=y
diff --git a/configs/vct_platinumavc_onenand_defconfig b/configs/vct_platinumavc_onenand_defconfig
index de1c1e8589a..c33dc0d4f9f 100644
--- a/configs/vct_platinumavc_onenand_defconfig
+++ b/configs/vct_platinumavc_onenand_defconfig
@@ -12,7 +12,6 @@ CONFIG_CMD_I2C=y
CONFIG_CMD_ONENAND=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
-CONFIG_CMD_DHCP=y
# CONFIG_CMD_NFS is not set
CONFIG_CMD_JFFS2=y
CONFIG_MTDIDS_DEFAULT="onenand0=onenand"
diff --git a/configs/zynq_zc770_xm011_defconfig b/configs/zynq_zc770_xm011_defconfig
index eeff2c8260a..b6ddf986c54 100644
--- a/configs/zynq_zc770_xm011_defconfig
+++ b/configs/zynq_zc770_xm011_defconfig
@@ -42,4 +42,3 @@ CONFIG_DEBUG_UART_BASE=0xe0001000
CONFIG_DEBUG_UART_CLOCK=50000000
CONFIG_DEBUG_UART_ANNOUNCE=y
CONFIG_ZYNQ_SERIAL=y
-CONFIG_REGEX=y
diff --git a/configs/zynq_zc770_xm011_x16_defconfig b/configs/zynq_zc770_xm011_x16_defconfig
index 235d39f49f3..bd0ec7b33b7 100644
--- a/configs/zynq_zc770_xm011_x16_defconfig
+++ b/configs/zynq_zc770_xm011_x16_defconfig
@@ -43,4 +43,3 @@ CONFIG_DEBUG_UART_BASE=0xe0001000
CONFIG_DEBUG_UART_CLOCK=50000000
CONFIG_DEBUG_UART_ANNOUNCE=y
CONFIG_ZYNQ_SERIAL=y
-CONFIG_REGEX=y
diff --git a/doc/README.imx6 b/doc/README.imx6
index 2e8f1d8a8ab..b0644f8491f 100644
--- a/doc/README.imx6
+++ b/doc/README.imx6
@@ -113,51 +113,3 @@ issue the command:
In order to load SPL and u-boot.img via imx_usb_loader tool,
please refer to doc/README.sdp.
-3. Using Secure Boot on i.MX6 machines with SPL support
--------------------------------------------------------
-
-This version of U-Boot is able to build a signable version of the SPL
-as well as a signable version of the U-Boot image. The signature can
-be verified through High Assurance Boot (HAB).
-
-CONFIG_SECURE_BOOT is needed to build those two binaries.
-After building, you need to create a command sequence file and use
-Freescales Code Signing Tool to sign both binaries. After creation,
-the mkimage tool outputs the required information about the HAB Blocks
-parameter for the CSF. During the build, the information is preserved
-in log files named as the binaries. (SPL.log and u-boot-ivt.log).
-
-More information about the CSF and HAB can be found in the AN4581.
-https://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf
-
-We don't want to explain how to create a PKI tree or SRK table as
-this is well explained in the Application Note.
-
-Example Output of the SPL (imximage) creation:
- Image Type: Freescale IMX Boot Image
- Image Ver: 2 (i.MX53/6/7 compatible)
- Mode: DCD
- Data Size: 61440 Bytes = 60.00 kB = 0.06 MB
- Load Address: 00907420
- Entry Point: 00908000
- HAB Blocks: 00907400 00000000 0000cc00
-
-Example Output of the u-boot-ivt.img (firmware_ivt) creation:
- Image Name: U-Boot 2016.11-rc1-31589-g2a4411
- Created: Sat Nov 5 21:53:28 2016
- Image Type: ARM U-Boot Firmware with HABv4 IVT (uncompressed)
- Data Size: 352192 Bytes = 343.94 kB = 0.34 MB
- Load Address: 17800000
- Entry Point: 00000000
- HAB Blocks: 0x177fffc0 0x0000 0x00054020
-
-The CST (Code Signing Tool) can be downloaded from NXP.
-# Compile CSF and create signature
-./cst --o csf-u-boot.bin < command_sequence_uboot.csf
-./cst --o csf-SPL.bin < command_sequence_spl.csf
-# Append compiled CSF to Binary
-cat SPL csf-SPL.bin > SPL-signed
-cat u-boot-ivt.img csf-u-boot.bin > u-boot-signed.img
-
-These two signed binaries can be used on an i.MX6 in closed
-configuration when the according SRK Table Hash has been flashed.
diff --git a/doc/README.mxc_hab b/doc/README.mxc_hab
index 4bd07d31516..75390a505e6 100644
--- a/doc/README.mxc_hab
+++ b/doc/README.mxc_hab
@@ -1,4 +1,5 @@
-High Assurance Boot (HAB) for i.MX6 CPUs
+1. High Assurance Boot (HAB) for i.MX CPUs
+------------------------------------------
To enable the authenticated or encrypted boot mode of U-Boot, it is
required to set the proper configuration for the target board. This
@@ -10,14 +11,22 @@ In addition, the U-Boot image to be programmed into the
boot media needs to be properly constructed, i.e. it must contain a
proper Command Sequence File (CSF).
-The Initial Vector Table contains a pointer to the CSF. Please see
-doc/README.imximage for how to prepare u-boot.imx.
+The CSF itself is generated by the i.MX High Assurance Boot Reference
+Code Signing Tool.
+https://www.nxp.com/webapp/sps/download/license.jsp?colCode=IMX_CST_TOOL
-The CSF itself is being generated by Freescale HAB tools.
+More information about the CSF and HAB can be found in the AN4581.
+https://www.nxp.com/docs/en/application-note/AN4581.pdf
-mkimage will output additional information about "HAB Blocks"
-which can be used in the Freescale tooling to authenticate U-Boot
-(entries in the CSF file).
+We don't want to explain how to create a PKI tree or SRK table as
+this is well explained in the Application Note.
+
+2. Secure Boot on non-SPL targets
+---------------------------------
+
+On non-SPL targets a singe U-Boot binary is generated, mkimage will
+output additional information about "HAB Blocks" which can be used
+in the CST to authenticate the U-Boot image (entries in the CSF file).
Image Type: Freescale IMX Boot Image
Image Ver: 2 (i.MX53/6 compatible)
@@ -33,31 +42,69 @@ HAB Blocks: 177ff400 00000000 0004dc00
|
--------------------------- (3)
-(1) Size of area in file u-boot.imx to sign
+(1) Size of area in file u-boot-dtb.imx to sign
This area should include the IVT, the Boot Data the DCD
and U-Boot itself.
-(2) Start of area in u-boot.imx to sign
+(2) Start of area in u-boot-dtb.imx to sign
(3) Start of area in RAM to authenticate
CONFIG_SECURE_BOOT currently enables only an additional command
'hab_status' in U-Boot to retrieve the HAB status and events. This
can be useful while developing and testing HAB.
-Commands to generate a signed U-Boot using Freescale HAB tools:
-cst --o U-Boot_CSF.bin < U-Boot.CSF
-objcopy -I binary -O binary --pad-to 0x2000 --gap-fill=0x00 \
- U-Boot_CSF.bin U-Boot_CSF_pad.bin
-cat u-boot.imx U-Boot_CSF_pad.bin > u-boot-signed.imx
-
-NOTE: U-Boot_CSF.bin needs to be padded to the value specified in
-the imximage.cfg file.
-
-Setup U-Boot Image for Encrypted Boot
--------------------------------------
+Commands to generate a signed U-Boot using i.MX HAB CST tool:
+# Compile CSF and create signature
+cst --o csf-u-boot.bin --i command_sequence_uboot.csf
+# Append compiled CSF to Binary
+cat u-boot-dtb.imx csf-u-boot.bin > u-boot-signed.imx
+
+3. Secure Boot on SPL targets
+-----------------------------
+
+This version of U-Boot is able to build a signable version of the SPL
+as well as a signable version of the U-Boot image. The signature can
+be verified through High Assurance Boot (HAB).
+
+After building, you need to create a command sequence file and use
+i.MX HAB Code Signing Tool to sign both binaries. After creation,
+the mkimage tool outputs the required information about the HAB Blocks
+parameter for the CSF. During the build, the information is preserved
+in log files named as the binaries. (SPL.log and u-boot-ivt.log).
+
+Example Output of the SPL (imximage) creation:
+ Image Type: Freescale IMX Boot Image
+ Image Ver: 2 (i.MX53/6/7 compatible)
+ Mode: DCD
+ Data Size: 61440 Bytes = 60.00 kB = 0.06 MB
+ Load Address: 00907420
+ Entry Point: 00908000
+ HAB Blocks: 00907400 00000000 0000cc00
+
+Example Output of the u-boot-ivt.img (firmware_ivt) creation:
+ Image Name: U-Boot 2016.11-rc1-31589-g2a4411
+ Created: Sat Nov 5 21:53:28 2016
+ Image Type: ARM U-Boot Firmware with HABv4 IVT (uncompressed)
+ Data Size: 352192 Bytes = 343.94 kB = 0.34 MB
+ Load Address: 17800000
+ Entry Point: 00000000
+ HAB Blocks: 0x177fffc0 0x0000 0x00054020
+
+# Compile CSF and create signature
+cst --o csf-u-boot.bin --i command_sequence_uboot.csf
+cst --o csf-SPL.bin --i command_sequence_spl.csf
+# Append compiled CSF to Binary
+cat SPL csf-SPL.bin > SPL-signed
+cat u-boot-ivt.img csf-u-boot.bin > u-boot-signed.img
+
+These two signed binaries can be used on an i.MX in closed
+configuration when the according SRK Table Hash has been flashed.
+
+4. Setup U-Boot Image for Encrypted Boot
+----------------------------------------
An authenticated U-Boot image is used as starting point for
-Encrypted Boot. The image is encrypted by Freescale's Code
-Signing Tool (CST). The CST replaces only the image data of
-u-boot.imx with the encrypted data. The Initial Vector Table,
+Encrypted Boot. The image is encrypted by i.MX Code Signing
+Tool (CST). The CST replaces only the image data of
+u-boot-dtb.imx with the encrypted data. The Initial Vector Table,
DCD, and Boot data, remains in plaintext.
The image data is encrypted with a Encryption Key (DEK).
@@ -87,9 +134,7 @@ U-Boot image. Note that the blob needs to be transferred back
to the host.Then the following commands are used to construct
the final image.
-objcopy -I binary -O binary --pad-to 0x2000 --gap-fill=0x00 \
- U-Boot_CSF.bin U-Boot_CSF_pad.bin
-cat u-boot.imx U-Boot_CSF_pad.bin > u-boot-signed.imx
+cat u-boot-dtb.imx csf-u-boot.bin > u-boot-signed.imx
objcopy -I binary -O binary --pad-to <blob_dst> --gap-fill=0x00 \
u-boot-signed.imx u-boot-signed-pad.bin
cat u-boot-signed-pad.imx DEK_blob.bin > u-boot-encrypted.imx
diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c
index 326fd1672d0..c7acf116597 100644
--- a/drivers/gpio/mpc8xxx_gpio.c
+++ b/drivers/gpio/mpc8xxx_gpio.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2016
- * Mario Six, Guntermann & Drunck GmbH, six@gdsys.de
+ * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc
*
* based on arch/powerpc/include/asm/mpc85xx_gpio.h, which is
*
diff --git a/drivers/gpio/pca9698.c b/drivers/gpio/pca9698.c
index d2663f7331a..3995c496aee 100644
--- a/drivers/gpio/pca9698.c
+++ b/drivers/gpio/pca9698.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2011
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/drivers/i2c/ihs_i2c.c b/drivers/i2c/ihs_i2c.c
index ee96cd50d5b..92985212200 100644
--- a/drivers/i2c/ihs_i2c.c
+++ b/drivers/i2c/ihs_i2c.c
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2013
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c
index 40029fadbcb..d87b44e9026 100644
--- a/drivers/serial/serial_bcm283x_mu.c
+++ b/drivers/serial/serial_bcm283x_mu.c
@@ -51,6 +51,8 @@ struct bcm283x_mu_priv {
struct bcm283x_mu_regs *regs;
};
+static int bcm283x_mu_serial_getc(struct udevice *dev);
+
static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate)
{
struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev);
@@ -59,13 +61,17 @@ static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate)
u32 divider;
if (plat->skip_init)
- return 0;
+ goto out;
divider = plat->clock / (baudrate * 8);
writel(BCM283X_MU_LCR_DATA_SIZE_8, &regs->lcr);
writel(divider - 1, &regs->baud);
+out:
+ /* Flush the RX queue - all data in there is bogus */
+ while (bcm283x_mu_serial_getc(dev) != -EAGAIN) ;
+
return 0;
}
diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c
index bfd39f84f35..dad72368952 100644
--- a/drivers/serial/serial_bcm283x_pl011.c
+++ b/drivers/serial/serial_bcm283x_pl011.c
@@ -9,6 +9,7 @@
#include <asm/gpio.h>
#include <dm/pinctrl.h>
#include <dm/platform_data/serial_pl01x.h>
+#include <serial.h>
#include "serial_pl01x_internal.h"
/*
@@ -55,6 +56,28 @@ static int bcm283x_pl011_serial_ofdata_to_platdata(struct udevice *dev)
return 0;
}
+static int bcm283x_pl011_serial_setbrg(struct udevice *dev, int baudrate)
+{
+ int r;
+
+ r = pl01x_serial_setbrg(dev, baudrate);
+
+ /*
+ * We may have been muxed to a bogus line before. Drain the RX
+ * queue so we start at a clean slate.
+ */
+ while (pl01x_serial_getc(dev) != -EAGAIN) ;
+
+ return r;
+}
+
+static const struct dm_serial_ops bcm283x_pl011_serial_ops = {
+ .putc = pl01x_serial_putc,
+ .pending = pl01x_serial_pending,
+ .getc = pl01x_serial_getc,
+ .setbrg = bcm283x_pl011_serial_setbrg,
+};
+
static const struct udevice_id bcm283x_pl011_serial_id[] = {
{.compatible = "brcm,bcm2835-pl011", .data = TYPE_PL011},
{}
@@ -67,7 +90,7 @@ U_BOOT_DRIVER(bcm283x_pl011_uart) = {
.ofdata_to_platdata = of_match_ptr(bcm283x_pl011_serial_ofdata_to_platdata),
.platdata_auto_alloc_size = sizeof(struct pl01x_serial_platdata),
.probe = pl01x_serial_probe,
- .ops = &pl01x_serial_ops,
+ .ops = &bcm283x_pl011_serial_ops,
.flags = DM_FLAG_PRE_RELOC,
.priv_auto_alloc_size = sizeof(struct pl01x_priv),
};
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index 23d9d839cbc..45f12827703 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -273,7 +273,7 @@ __weak struct serial_device *default_serial_console(void)
#ifdef CONFIG_DM_SERIAL
-static int pl01x_serial_setbrg(struct udevice *dev, int baudrate)
+int pl01x_serial_setbrg(struct udevice *dev, int baudrate)
{
struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
struct pl01x_priv *priv = dev_get_priv(dev);
@@ -299,21 +299,21 @@ int pl01x_serial_probe(struct udevice *dev)
return 0;
}
-static int pl01x_serial_getc(struct udevice *dev)
+int pl01x_serial_getc(struct udevice *dev)
{
struct pl01x_priv *priv = dev_get_priv(dev);
return pl01x_getc(priv->regs);
}
-static int pl01x_serial_putc(struct udevice *dev, const char ch)
+int pl01x_serial_putc(struct udevice *dev, const char ch)
{
struct pl01x_priv *priv = dev_get_priv(dev);
return pl01x_putc(priv->regs, ch);
}
-static int pl01x_serial_pending(struct udevice *dev, bool input)
+int pl01x_serial_pending(struct udevice *dev, bool input)
{
struct pl01x_priv *priv = dev_get_priv(dev);
unsigned int fr = readl(&priv->regs->fr);
@@ -324,7 +324,7 @@ static int pl01x_serial_pending(struct udevice *dev, bool input)
return fr & UART_PL01x_FR_TXFF ? 0 : 1;
}
-const struct dm_serial_ops pl01x_serial_ops = {
+static const struct dm_serial_ops pl01x_serial_ops = {
.putc = pl01x_serial_putc,
.pending = pl01x_serial_pending,
.getc = pl01x_serial_getc,
diff --git a/drivers/serial/serial_pl01x_internal.h b/drivers/serial/serial_pl01x_internal.h
index c56dd54c7b8..d4605f24a39 100644
--- a/drivers/serial/serial_pl01x_internal.h
+++ b/drivers/serial/serial_pl01x_internal.h
@@ -43,7 +43,12 @@ struct pl01x_regs {
int pl01x_serial_ofdata_to_platdata(struct udevice *dev);
int pl01x_serial_probe(struct udevice *dev);
-extern const struct dm_serial_ops pl01x_serial_ops;
+
+/* Needed for external pl01x_serial_ops drivers */
+int pl01x_serial_putc(struct udevice *dev, const char ch);
+int pl01x_serial_pending(struct udevice *dev, bool input);
+int pl01x_serial_getc(struct udevice *dev);
+int pl01x_serial_setbrg(struct udevice *dev, int baudrate);
struct pl01x_priv {
struct pl01x_regs *regs;
diff --git a/drivers/tpm/tpm_atmel_twi.c b/drivers/tpm/tpm_atmel_twi.c
index 4fd772dc4fc..860848777d8 100644
--- a/drivers/tpm/tpm_atmel_twi.c
+++ b/drivers/tpm/tpm_atmel_twi.c
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2013 Guntermann & Drunck, GmbH
*
- * Written by Dirk Eibach <eibach@gdsys.de>
+ * Written by Dirk Eibach <dirk.eibach@gdsys.cc>
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index dac95453650..e3cc30a1e0a 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -2343,7 +2343,7 @@ int ext4fs_mount(unsigned part_length)
/* Make sure this is an ext2 filesystem. */
if (le16_to_cpu(data->sblock.magic) != EXT2_MAGIC)
- goto fail;
+ goto fail_noerr;
if (le32_to_cpu(data->sblock.revision_level) == 0) {
@@ -2379,6 +2379,7 @@ int ext4fs_mount(unsigned part_length)
return 1;
fail:
printf("Failed to mount ext2 filesystem...\n");
+fail_noerr:
free(data);
ext4fs_root = NULL;
diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c
index bbe0d700fb6..c8b27adda91 100644
--- a/fs/yaffs2/yaffs_guts.c
+++ b/fs/yaffs2/yaffs_guts.c
@@ -1872,8 +1872,8 @@ static int yaffs_new_obj_id(struct yaffs_dev *dev)
n += YAFFS_NOBJECT_BUCKETS;
list_for_each(i, &dev->obj_bucket[bucket].list) {
/* If there is already one in the list */
- if (i && list_entry(i, struct yaffs_obj,
- hash_link)->obj_id == n) {
+ if (list_entry(i, struct yaffs_obj,
+ hash_link)->obj_id == n) {
found = 0;
break;
}
diff --git a/fs/yaffs2/yaffsfs.c b/fs/yaffs2/yaffsfs.c
index ba76a5ccdbd..47abc6bedae 100644
--- a/fs/yaffs2/yaffsfs.c
+++ b/fs/yaffs2/yaffsfs.c
@@ -2847,12 +2847,9 @@ static void yaffsfs_RemoveObjectCallback(struct yaffs_obj *obj)
* the next one to prevent a hanging ptr.
*/
list_for_each(i, &search_contexts) {
- if (i) {
- dsc = list_entry(i, struct yaffsfs_DirSearchContxt,
- others);
- if (dsc->nextReturn == obj)
- yaffsfs_DirAdvance(dsc);
- }
+ dsc = list_entry(i, struct yaffsfs_DirSearchContxt, others);
+ if (dsc->nextReturn == obj)
+ yaffsfs_DirAdvance(dsc);
}
}
diff --git a/include/configs/at91rm9200ek.h b/include/configs/at91rm9200ek.h
index 9ce0a8f9bf5..8c27122c002 100644
--- a/include/configs/at91rm9200ek.h
+++ b/include/configs/at91rm9200ek.h
@@ -44,7 +44,6 @@
/* CPU configuration */
#define CONFIG_AT91RM9200
#define CONFIG_AT91RM9200EK
-#define CONFIG_CPUAT91
#define USE_920T_MMU
#include <asm/hardware.h> /* needed for port definitions */
diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
index b6691feb681..7fe51c2c0b6 100644
--- a/include/configs/at91sam9263ek.h
+++ b/include/configs/at91sam9263ek.h
@@ -21,8 +21,6 @@
#define CONFIG_SYS_AT91_MAIN_CLOCK 16367660 /* 16.367 MHz crystal */
#define CONFIG_SYS_AT91_SLOW_CLOCK 32768
-#define CONFIG_AT91SAM9263EK 1 /* It's an AT91SAM9263EK Board */
-
#define CONFIG_ARCH_CPU_INIT
#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h
index 08c8f48bb58..6f8fd2a035f 100644
--- a/include/configs/at91sam9rlek.h
+++ b/include/configs/at91sam9rlek.h
@@ -17,8 +17,6 @@
#define CONFIG_SYS_AT91_SLOW_CLOCK 32768 /* slow clock xtal */
#define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 /* main clock xtal */
-#define CONFIG_AT91SAM9RLEK 1 /* It's an AT91SAM9RLEK Board */
-
#define CONFIG_ARCH_CPU_INIT
#define CONFIG_SKIP_LOWLEVEL_INIT
diff --git a/include/configs/dbau1x00.h b/include/configs/dbau1x00.h
index ebd2c239608..f00111a8c40 100644
--- a/include/configs/dbau1x00.h
+++ b/include/configs/dbau1x00.h
@@ -12,7 +12,6 @@
#ifndef __CONFIG_H
#define __CONFIG_H
-#define CONFIG_DBAU1X00 1
#define CONFIG_SOC_AU1X00 1 /* alchemy series cpu */
#ifdef CONFIG_DBAU1000
diff --git a/include/configs/draco.h b/include/configs/draco.h
index 3278196b3af..c1816409a98 100644
--- a/include/configs/draco.h
+++ b/include/configs/draco.h
@@ -13,7 +13,6 @@
#ifndef __CONFIG_DRACO_H
#define __CONFIG_DRACO_H
-#define CONFIG_SIEMENS_DRACO
#define CONFIG_SIEMENS_MACH_TYPE MACH_TYPE_DRACO
#include "siemens-am33x-common.h"
diff --git a/include/configs/edb93xx.h b/include/configs/edb93xx.h
index 6e024d1b2fd..18ec6cb7583 100644
--- a/include/configs/edb93xx.h
+++ b/include/configs/edb93xx.h
@@ -34,7 +34,6 @@
#define CONFIG_SYS_LDSCRIPT "board/cirrus/edb93xx/u-boot.lds"
#ifdef CONFIG_EDB9301
-#define CONFIG_EP9301
#define CONFIG_MACH_TYPE MACH_TYPE_EDB9301
#define CONFIG_ENV_SECT_SIZE 0x00020000
#elif defined(CONFIG_EDB9302)
diff --git a/include/configs/exynos5420-common.h b/include/configs/exynos5420-common.h
index ae9ead53f64..e13092515ad 100644
--- a/include/configs/exynos5420-common.h
+++ b/include/configs/exynos5420-common.h
@@ -10,8 +10,6 @@
#define __CONFIG_EXYNOS5420_H
#define CONFIG_EXYNOS5420
-/* A variant of Exynos5420 (Exynos5 Family) */
-#define CONFIG_EXYNOS5800
#define CONFIG_EXYNOS5_DT
diff --git a/include/configs/h2200.h b/include/configs/h2200.h
index 608f5eec32f..4b380beee27 100644
--- a/include/configs/h2200.h
+++ b/include/configs/h2200.h
@@ -12,7 +12,6 @@
#define CONFIG_MACH_TYPE MACH_TYPE_H2200
#define CONFIG_CPU_PXA25X 1
-#define CONFIG_BOARD_H2200
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_1 0xa0000000 /* SDRAM Bank #1 */
diff --git a/include/configs/hrcon.h b/include/configs/hrcon.h
index 44910859cc6..a8afb15ebae 100644
--- a/include/configs/hrcon.h
+++ b/include/configs/hrcon.h
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
*
* SPDX-License-Identifier: GPL-2.0+
diff --git a/include/configs/ipam390.h b/include/configs/ipam390.h
index 82ab24c688b..c8e99513f0a 100644
--- a/include/configs/ipam390.h
+++ b/include/configs/ipam390.h
@@ -19,7 +19,6 @@
* Board
*/
#define CONFIG_DRIVER_TI_EMAC
-#define CONFIG_BARIX_IPAM390
/*
* SoC Configuration
diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h
index 0d8de370dd9..82984f4d17e 100644
--- a/include/configs/kzm9g.h
+++ b/include/configs/kzm9g.h
@@ -11,7 +11,6 @@
#undef DEBUG
#define CONFIG_SH73A0
-#define CONFIG_KZM_A9_GT
#define CONFIG_ARCH_RMOBILE_BOARD_STRING "KMC KZM-A9-GT"
#define CONFIG_MACH_TYPE MACH_TYPE_KZM9G
diff --git a/include/configs/omapl138_lcdk.h b/include/configs/omapl138_lcdk.h
index 837286bd784..ea7bdf133d7 100644
--- a/include/configs/omapl138_lcdk.h
+++ b/include/configs/omapl138_lcdk.h
@@ -23,7 +23,6 @@
* SoC Configuration
*/
#define CONFIG_MACH_OMAPL138_LCDK
-#define CONFIG_ARM926EJS /* arm926ejs CPU core */
#define CONFIG_SYS_CLK_FREQ clk_get(DAVINCI_ARM_CLKID)
#define CONFIG_SYS_OSCIN_FREQ 24000000
#define CONFIG_SYS_TIMERBASE DAVINCI_TIMER0_BASE
diff --git a/include/configs/pb1x00.h b/include/configs/pb1x00.h
index 972c13a6251..8adb7d7cfae 100644
--- a/include/configs/pb1x00.h
+++ b/include/configs/pb1x00.h
@@ -12,7 +12,6 @@
#ifndef __CONFIG_H
#define __CONFIG_H
-#define CONFIG_PB1X00 1
#define CONFIG_SOC_AU1X00 1 /* alchemy series cpu */
#ifdef CONFIG_PB1000
diff --git a/include/configs/picosam9g45.h b/include/configs/picosam9g45.h
index 06ee8e7f9ef..0d4fc119ac6 100644
--- a/include/configs/picosam9g45.h
+++ b/include/configs/picosam9g45.h
@@ -22,8 +22,6 @@
#define CONFIG_SYS_AT91_SLOW_CLOCK 32768
#define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 /* from 12 MHz crystal */
-#define CONFIG_PICOSAM
-
#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_INITRD_TAG
diff --git a/include/configs/platinum_picon.h b/include/configs/platinum_picon.h
index 36795304195..20315546aae 100644
--- a/include/configs/platinum_picon.h
+++ b/include/configs/platinum_picon.h
@@ -7,7 +7,6 @@
#ifndef __PLATINUM_PICON_CONFIG_H__
#define __PLATINUM_PICON_CONFIG_H__
-#define CONFIG_PLATINUM_PICON
#define CONFIG_PLATINUM_BOARD "Barco Picon"
#define CONFIG_PLATINUM_PROJECT "picon"
#define CONFIG_PLATINUM_CPU "imx6dl"
diff --git a/include/configs/platinum_titanium.h b/include/configs/platinum_titanium.h
index 69406a4b65e..09b9bd38ff4 100644
--- a/include/configs/platinum_titanium.h
+++ b/include/configs/platinum_titanium.h
@@ -7,7 +7,6 @@
#ifndef __PLATINUM_TITANIUM_CONFIG_H__
#define __PLATINUM_TITANIUM_CONFIG_H__
-#define CONFIG_PLATINUM_TITANIUM
#define CONFIG_PLATINUM_BOARD "Barco Titanium"
#define CONFIG_PLATINUM_PROJECT "titanium"
#define CONFIG_PLATINUM_CPU "imx6q"
diff --git a/include/configs/pm9261.h b/include/configs/pm9261.h
index d2702b4f2d6..e1e9af07ec3 100644
--- a/include/configs/pm9261.h
+++ b/include/configs/pm9261.h
@@ -27,7 +27,6 @@
#define CONFIG_SYS_AT91_MAIN_CLOCK 18432000
#define CONFIG_SYS_AT91_CPU_NAME "AT91SAM9261"
-#define CONFIG_PM9261 1 /* on a Ronetix PM9261 Board */
#define CONFIG_ARCH_CPU_INIT
#define CONFIG_MACH_TYPE MACH_TYPE_PM9261
diff --git a/include/configs/pm9263.h b/include/configs/pm9263.h
index c4990883af2..880c3f118df 100644
--- a/include/configs/pm9263.h
+++ b/include/configs/pm9263.h
@@ -27,7 +27,6 @@
#define CONFIG_SYS_AT91_SLOW_CLOCK 32768 /* slow clock xtal */
#define CONFIG_SYS_AT91_CPU_NAME "AT91SAM9263"
-#define CONFIG_PM9263 1 /* on a Ronetix PM9263 Board */
#define CONFIG_ARCH_CPU_INIT
#define CONFIG_MACH_TYPE MACH_TYPE_PM9263
diff --git a/include/configs/pm9g45.h b/include/configs/pm9g45.h
index 21c31daadd5..5612f5f358e 100644
--- a/include/configs/pm9g45.h
+++ b/include/configs/pm9g45.h
@@ -22,7 +22,6 @@
*/
#include <asm/hardware.h>
-#define CONFIG_PM9G45 1 /* It's an Ronetix PM9G45 */
#define CONFIG_SYS_AT91_CPU_NAME "AT91SAM9G45"
#define CONFIG_MACH_TYPE MACH_TYPE_PM9G45
diff --git a/include/configs/pxm2.h b/include/configs/pxm2.h
index 157b32a6a43..2ad0c3018e6 100644
--- a/include/configs/pxm2.h
+++ b/include/configs/pxm2.h
@@ -14,7 +14,6 @@
#ifndef __CONFIG_PXM2_H
#define __CONFIG_PXM2_H
-#define CONFIG_SIEMENS_PXM2
#define CONFIG_SIEMENS_MACH_TYPE MACH_TYPE_PXM2
#include "siemens-am33x-common.h"
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index c968aa76ac2..839bc10a184 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -47,4 +47,6 @@
"ramdisk_addr_r=0x44000000\0" \
BOOTENV
+#define CONFIG_SYS_CBSIZE 512
+
#endif /* __CONFIG_H */
diff --git a/include/configs/rut.h b/include/configs/rut.h
index 71078e99806..46f48009dd3 100644
--- a/include/configs/rut.h
+++ b/include/configs/rut.h
@@ -14,7 +14,6 @@
#ifndef __CONFIG_RUT_H
#define __CONFIG_RUT_H
-#define CONFIG_SIEMENS_RUT
#define CONFIG_SIEMENS_MACH_TYPE MACH_TYPE_RUT
#include "siemens-am33x-common.h"
diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
index 8a0718e3de1..5b3be6d5329 100644
--- a/include/configs/smdkc100.h
+++ b/include/configs/smdkc100.h
@@ -19,7 +19,6 @@
#define CONFIG_SAMSUNG 1 /* in a SAMSUNG core */
#define CONFIG_S5P 1 /* which is in a S5P Family */
#define CONFIG_S5PC100 1 /* which is in a S5PC100 */
-#define CONFIG_SMDKC100 1 /* working with SMDKC100 */
#include <asm/arch/cpu.h> /* get chip and board defs */
diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h
index cce7cafdb49..d7e73c33e74 100644
--- a/include/configs/smdkv310.h
+++ b/include/configs/smdkv310.h
@@ -17,7 +17,6 @@
/* High Level Configuration Options */
#define CONFIG_EXYNOS4210 1 /* which is a EXYNOS4210 SoC */
-#define CONFIG_SMDKV310 1 /* working with SMDKV310*/
/* Mach Type */
#define CONFIG_MACH_TYPE MACH_TYPE_SMDKV310
diff --git a/include/configs/stm32f429-discovery.h b/include/configs/stm32f429-discovery.h
index 2f59f52ee15..4c4e72763e1 100644
--- a/include/configs/stm32f429-discovery.h
+++ b/include/configs/stm32f429-discovery.h
@@ -8,8 +8,6 @@
#ifndef __CONFIG_H
#define __CONFIG_H
-#define CONFIG_STM32F4DISCOVERY
-
#define CONFIG_MISC_INIT_R
#define CONFIG_SYS_FLASH_BASE 0x08000000
diff --git a/include/configs/stm32f469-discovery.h b/include/configs/stm32f469-discovery.h
index 3d4ca7ee551..990653beb8f 100644
--- a/include/configs/stm32f469-discovery.h
+++ b/include/configs/stm32f469-discovery.h
@@ -8,8 +8,6 @@
#ifndef __CONFIG_H
#define __CONFIG_H
-#define CONFIG_STM32F4DISCOVERY
-
#define CONFIG_MISC_INIT_R
#define CONFIG_SYS_FLASH_BASE 0x08000000
diff --git a/include/configs/strider.h b/include/configs/strider.h
index 14b03c813b6..9ba52d1303d 100644
--- a/include/configs/strider.h
+++ b/include/configs/strider.h
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2014
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
*
* SPDX-License-Identifier: GPL-2.0+
diff --git a/include/configs/stv0991.h b/include/configs/stv0991.h
index 0c08556d211..2401dbd619a 100644
--- a/include/configs/stv0991.h
+++ b/include/configs/stv0991.h
@@ -10,8 +10,6 @@
#define CONFIG_SYS_DCACHE_OFF
#define CONFIG_SYS_EXCEPTION_VECTORS_HIGH
-#define CONFIG_SYS_CORTEX_R4
-
/* ram memory-related information */
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_1 0x00000000
diff --git a/include/gdsys_fpga.h b/include/gdsys_fpga.h
index bb8e144e049..10290509f50 100644
--- a/include/gdsys_fpga.h
+++ b/include/gdsys_fpga.h
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2010
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/include/pca9698.h b/include/pca9698.h
index 9732be661d2..c7f3ddd50a2 100644
--- a/include/pca9698.h
+++ b/include/pca9698.h
@@ -1,6 +1,6 @@
/*
* (C) Copyright 2011
- * Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
+ * Dirk Eibach, Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
*
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/scripts/coccinelle/null/badzero.cocci b/scripts/coccinelle/null/badzero.cocci
new file mode 100644
index 00000000000..619b058f93f
--- /dev/null
+++ b/scripts/coccinelle/null/badzero.cocci
@@ -0,0 +1,241 @@
+/// Compare pointer-typed values to NULL rather than 0
+///
+//# This makes an effort to choose between !x and x == NULL. !x is used
+//# if it has previously been used with the function used to initialize x.
+//# This relies on type information. More type information can be obtained
+//# using the option -all_includes and the option -I to specify an
+//# include path.
+//
+// Confidence: High
+// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
+// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
+// URL: http://coccinelle.lip6.fr/
+// Requires: 1.0.0
+// Options:
+//
+// SPDX-License-Identifier: GPL-2.0
+//
+
+virtual patch
+virtual context
+virtual org
+virtual report
+
+@initialize:ocaml@
+@@
+let negtable = Hashtbl.create 101
+
+@depends on patch@
+expression *E;
+identifier f;
+@@
+
+(
+ (E = f(...)) ==
+- 0
++ NULL
+|
+ (E = f(...)) !=
+- 0
++ NULL
+|
+- 0
++ NULL
+ == (E = f(...))
+|
+- 0
++ NULL
+ != (E = f(...))
+)
+
+
+@t1 depends on !patch@
+expression *E;
+identifier f;
+position p;
+@@
+
+(
+ (E = f(...)) ==
+* 0@p
+|
+ (E = f(...)) !=
+* 0@p
+|
+* 0@p
+ == (E = f(...))
+|
+* 0@p
+ != (E = f(...))
+)
+
+@script:python depends on org@
+p << t1.p;
+@@
+
+coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
+
+@script:python depends on report@
+p << t1.p;
+@@
+
+coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
+
+// Tests of returned values
+
+@s@
+identifier f;
+expression E,E1;
+@@
+
+ E = f(...)
+ ... when != E = E1
+ !E
+
+@script:ocaml depends on s@
+f << s.f;
+@@
+
+try let _ = Hashtbl.find negtable f in ()
+with Not_found -> Hashtbl.add negtable f ()
+
+@ r disable is_zero,isnt_zero exists @
+expression *E;
+identifier f;
+@@
+
+E = f(...)
+...
+(E == 0
+|E != 0
+|0 == E
+|0 != E
+)
+
+@script:ocaml@
+f << r.f;
+@@
+
+try let _ = Hashtbl.find negtable f in ()
+with Not_found -> include_match false
+
+// This rule may lead to inconsistent path problems, if E is defined in two
+// places
+@ depends on patch disable is_zero,isnt_zero @
+expression *E;
+expression E1;
+identifier r.f;
+@@
+
+E = f(...)
+<...
+(
+- E == 0
++ !E
+|
+- E != 0
++ E
+|
+- 0 == E
++ !E
+|
+- 0 != E
++ E
+)
+...>
+?E = E1
+
+@t2 depends on !patch disable is_zero,isnt_zero @
+expression *E;
+expression E1;
+identifier r.f;
+position p1;
+position p2;
+@@
+
+E = f(...)
+<...
+(
+* E == 0@p1
+|
+* E != 0@p2
+|
+* 0@p1 == E
+|
+* 0@p1 != E
+)
+...>
+?E = E1
+
+@script:python depends on org@
+p << t2.p1;
+@@
+
+coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0, suggest !E")
+
+@script:python depends on org@
+p << t2.p2;
+@@
+
+coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
+
+@script:python depends on report@
+p << t2.p1;
+@@
+
+coccilib.report.print_report(p[0], "WARNING comparing pointer to 0, suggest !E")
+
+@script:python depends on report@
+p << t2.p2;
+@@
+
+coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
+
+@ depends on patch disable is_zero,isnt_zero @
+expression *E;
+@@
+
+(
+ E ==
+- 0
++ NULL
+|
+ E !=
+- 0
++ NULL
+|
+- 0
++ NULL
+ == E
+|
+- 0
++ NULL
+ != E
+)
+
+@ t3 depends on !patch disable is_zero,isnt_zero @
+expression *E;
+position p;
+@@
+
+(
+* E == 0@p
+|
+* E != 0@p
+|
+* 0@p == E
+|
+* 0@p != E
+)
+
+@script:python depends on org@
+p << t3.p;
+@@
+
+coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
+
+@script:python depends on report@
+p << t3.p;
+@@
+
+coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
diff --git a/scripts/coccinelle/null/kmerr.cocci b/scripts/coccinelle/null/kmerr.cocci
new file mode 100644
index 00000000000..a1e75e617d0
--- /dev/null
+++ b/scripts/coccinelle/null/kmerr.cocci
@@ -0,0 +1,75 @@
+/// This semantic patch looks for malloc etc that are not followed by a
+/// NULL check. It only gives a report in the case where there is some
+/// error handling code later in the function, which may be helpful
+/// in determining what the error handling code for the call to malloc etc
+/// should be.
+///
+// Confidence: High
+// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
+// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
+// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
+// URL: http://coccinelle.lip6.fr/
+// Comments:
+// Options: --no-includes --include-headers
+//
+// SPDX-License-Identifier: GPL-2.0
+//
+
+virtual context
+virtual org
+virtual report
+
+@withtest@
+expression x;
+position p;
+identifier f,fld;
+@@
+
+x@p = f(...);
+... when != x->fld
+\(x == NULL \| x != NULL\)
+
+@fixed depends on context && !org && !report@
+expression x,x1;
+position p1 != withtest.p;
+statement S;
+position any withtest.p;
+identifier f;
+@@
+
+*x@p1 = \(malloc\|calloc\)(...);
+...
+*x1@p = f(...);
+if (!x1) S
+
+// ------------------------------------------------------------------------
+
+@rfixed depends on (org || report) && !context exists@
+expression x,x1;
+position p1 != withtest.p;
+position p2;
+statement S;
+position any withtest.p;
+identifier f;
+@@
+
+x@p1 = \(malloc\|calloc\)(...);
+...
+x1@p = f@p2(...);
+if (!x1) S
+
+@script:python depends on org@
+p1 << rfixed.p1;
+p2 << rfixed.p2;
+@@
+
+cocci.print_main("alloc call",p1)
+cocci.print_secs("possible model",p2)
+
+@script:python depends on report@
+p1 << rfixed.p1;
+p2 << rfixed.p2;
+@@
+
+msg = "alloc with no test, possible model on line %s" % (p2[0].line)
+coccilib.report.print_report(p1[0],msg)
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index a42b64d209d..3606585c05c 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -50,7 +50,6 @@ CONFIG_ARCH_USE_BUILTIN_BSWAP
CONFIG_ARC_MMU_VER
CONFIG_ARC_SERIAL
CONFIG_ARIES_M28_V10
-CONFIG_ARM926EJS
CONFIG_ARMADA100
CONFIG_ARMADA100_FEC
CONFIG_ARMADA168
@@ -79,7 +78,6 @@ CONFIG_AT91RM9200
CONFIG_AT91RM9200EK
CONFIG_AT91SAM9260EK
CONFIG_AT91SAM9261EK
-CONFIG_AT91SAM9263EK
CONFIG_AT91SAM9G10
CONFIG_AT91SAM9G10EK
CONFIG_AT91SAM9G20EK
@@ -87,7 +85,6 @@ CONFIG_AT91SAM9G20EK_2MMC
CONFIG_AT91SAM9G45EKES
CONFIG_AT91SAM9G45_LCD_BASE
CONFIG_AT91SAM9M10G45EK
-CONFIG_AT91SAM9RLEK
CONFIG_AT91SAM9_WATCHDOG
CONFIG_AT91_CAN
CONFIG_AT91_EFLASH
@@ -110,7 +107,6 @@ CONFIG_ATMEL_SPI0
CONFIG_AT_TRANS
CONFIG_AUTO_ZRELADDR
CONFIG_BACKSIDE_L2_CACHE
-CONFIG_BARIX_IPAM390
CONFIG_BAT_PAIR
CONFIG_BAT_RW
CONFIG_BCH_CONST_M
@@ -133,7 +129,6 @@ CONFIG_BOARD_AXM
CONFIG_BOARD_COMMON
CONFIG_BOARD_EARLY_INIT_R
CONFIG_BOARD_ECC_SUPPORT
-CONFIG_BOARD_H2200
CONFIG_BOARD_IS_OPENRD_BASE
CONFIG_BOARD_IS_OPENRD_CLIENT
CONFIG_BOARD_IS_OPENRD_ULTIMATE
@@ -272,7 +267,6 @@ CONFIG_CORTINA_FW_LENGTH
CONFIG_CPLD_BR_PRELIM
CONFIG_CPLD_OR_PRELIM
CONFIG_CPM2
-CONFIG_CPUAT91
CONFIG_CPU_ARCHS34
CONFIG_CPU_ARMV8
CONFIG_CPU_CAVIUM_OCTEON
@@ -325,7 +319,6 @@ CONFIG_DA850_AM18X_EVM
CONFIG_DA850_EVM_MAX_CPU_CLK
CONFIG_DA8XX_GPIO
CONFIG_DBAU1000
-CONFIG_DBAU1X00
CONFIG_DBGU
CONFIG_DBG_MONITOR
CONFIG_DB_784MP_GP
@@ -547,7 +540,6 @@ CONFIG_ENV_UBI_MTD
CONFIG_ENV_UBI_VOLUME_REDUND
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
CONFIG_ENV_VERSION
-CONFIG_EP9301
CONFIG_EP9302
CONFIG_EP9307
CONFIG_EP9312
@@ -599,7 +591,6 @@ CONFIG_EXYNOS4210
CONFIG_EXYNOS5
CONFIG_EXYNOS5250
CONFIG_EXYNOS5420
-CONFIG_EXYNOS5800
CONFIG_EXYNOS5_DT
CONFIG_EXYNOS7420
CONFIG_EXYNOS_ACE_SHA
@@ -663,9 +654,7 @@ CONFIG_FORCE_DDR_DATA_BUS_WIDTH_32
CONFIG_FORMIKE
CONFIG_FPGA_COUNT
CONFIG_FPGA_DELAY
-CONFIG_FPGA_SPARTAN3
CONFIG_FPGA_STRATIX_V
-CONFIG_FPGA_ZYNQPL
CONFIG_FSLDMAFEC
CONFIG_FSL_CADMUS
CONFIG_FSL_CORENET
@@ -1169,7 +1158,6 @@ CONFIG_KVM_GUEST
CONFIG_KW88F6192
CONFIG_KW88F6281
CONFIG_KW88F6702
-CONFIG_KZM_A9_GT
CONFIG_L1_INIT_RAM
CONFIG_L2_CACHE
CONFIG_LAN91C96_USE_32_BIT
@@ -1496,7 +1484,6 @@ CONFIG_PARAVIRT
CONFIG_PB1000
CONFIG_PB1100
CONFIG_PB1500
-CONFIG_PB1X00
CONFIG_PCA953X
CONFIG_PCA9698
CONFIG_PCI1
@@ -1566,7 +1553,6 @@ CONFIG_PHY_MAX_ADDR
CONFIG_PHY_MODE_NEED_CHANGE
CONFIG_PHY_RESET
CONFIG_PHY_RESET_DELAY
-CONFIG_PICOSAM
CONFIG_PIGGY_MAC_ADRESS_OFFSET
CONFIG_PIXIS_BRDCFG0_SPI
CONFIG_PIXIS_BRDCFG0_USB2
@@ -1583,15 +1569,10 @@ CONFIG_PL01x_PORTS
CONFIG_PLATFORM_ENV_SETTINGS
CONFIG_PLATINUM_BOARD
CONFIG_PLATINUM_CPU
-CONFIG_PLATINUM_PICON
CONFIG_PLATINUM_PROJECT
-CONFIG_PLATINUM_TITANIUM
CONFIG_PLL1_CLK_FREQ
CONFIG_PLL1_DIV2_CLK_FREQ
CONFIG_PM
-CONFIG_PM9261
-CONFIG_PM9263
-CONFIG_PM9G45
CONFIG_PMC_BR_PRELIM
CONFIG_PMC_OR_PRELIM
CONFIG_PMECC_CAP
@@ -1870,10 +1851,7 @@ CONFIG_SH_SDHI_FREQ
CONFIG_SH_SDRAM_OFFSET
CONFIG_SH_SPI_BASE
CONFIG_SH_TMU_CLK_FREQ
-CONFIG_SIEMENS_DRACO
CONFIG_SIEMENS_MACH_TYPE
-CONFIG_SIEMENS_PXM2
-CONFIG_SIEMENS_RUT
CONFIG_SIMU
CONFIG_SKIP_LOCAL_MAC_RANDOMIZATION
CONFIG_SKIP_LOWLEVEL_INIT
@@ -1888,8 +1866,6 @@ CONFIG_SMC_AUTONEG_TIMEOUT
CONFIG_SMC_USE_32_BIT
CONFIG_SMC_USE_IOFUNCS
CONFIG_SMDK5420
-CONFIG_SMDKC100
-CONFIG_SMDKV310
CONFIG_SMP_PEN_ADDR
CONFIG_SMSC_LPC47M
CONFIG_SMSC_SIO1007
@@ -2077,7 +2053,6 @@ CONFIG_STACKBASE
CONFIG_STANDALONE_LOAD_ADDR
CONFIG_STATIC_BOARD_REV
CONFIG_STD_DEVICES_SETTINGS
-CONFIG_STM32F4DISCOVERY
CONFIG_STM32_FLASH
CONFIG_STM32_HZ
CONFIG_STRIDER
@@ -2257,7 +2232,6 @@ CONFIG_SYS_CMXFCR_VALUE2
CONFIG_SYS_CMXFCR_VALUE3
CONFIG_SYS_CORE_SRAM
CONFIG_SYS_CORE_SRAM_SIZE
-CONFIG_SYS_CORTEX_R4
CONFIG_SYS_CORTINA_FW_IN_MMC
CONFIG_SYS_CORTINA_FW_IN_NAND
CONFIG_SYS_CORTINA_FW_IN_NOR
@@ -3302,9 +3276,6 @@ CONFIG_SYS_I2C_TCA642X_ADDR
CONFIG_SYS_I2C_TCA642X_BUS_NUM
CONFIG_SYS_I2C_TEGRA
CONFIG_SYS_I2C_W83782G_ADDR
-CONFIG_SYS_I2C_ZYNQ
-CONFIG_SYS_I2C_ZYNQ_SLAVE
-CONFIG_SYS_I2C_ZYNQ_SPEED
CONFIG_SYS_IBAT
CONFIG_SYS_IBAT0L
CONFIG_SYS_IBAT0U
@@ -3539,7 +3510,6 @@ CONFIG_SYS_MECR_VAL
CONFIG_SYS_MEMAC_LITTLE_ENDIAN
CONFIG_SYS_MEMORY_BASE
CONFIG_SYS_MEMORY_SIZE
-CONFIG_SYS_MEMORY_TOP
CONFIG_SYS_MEMTEST_END
CONFIG_SYS_MEMTEST_SCRATCH
CONFIG_SYS_MEMTEST_START
@@ -4413,7 +4383,6 @@ CONFIG_SYS_SUPPORT_64BIT_DATA
CONFIG_SYS_SXCNFG_VAL
CONFIG_SYS_TBIPA_VALUE
CONFIG_SYS_TCLK
-CONFIG_SYS_TEXT_ADDR
CONFIG_SYS_TEXT_BASE_NOR
CONFIG_SYS_TEXT_BASE_SPL
CONFIG_SYS_TIMERBASE
@@ -4859,7 +4828,6 @@ CONFIG_X86_MRC_ADDR
CONFIG_X86_REFCODE_ADDR
CONFIG_X86_REFCODE_RUN_ADDR
CONFIG_XGI_XG22_BASE
-CONFIG_XILINX_GPIO
CONFIG_XILINX_SPI_IDLE_VAL
CONFIG_XILINX_TB_WATCHDOG
CONFIG_XR16L2751
@@ -4883,12 +4851,7 @@ CONFIG_ZYNQMP_XHCI_LIST
CONFIG_ZYNQ_EEPROM
CONFIG_ZYNQ_EEPROM_BUS
CONFIG_ZYNQ_GEM_EEPROM_ADDR
-CONFIG_ZYNQ_GEM_I2C_MAC_OFFSET
CONFIG_ZYNQ_HISPD_BROKEN
-CONFIG_ZYNQ_I2C0
-CONFIG_ZYNQ_I2C1
CONFIG_ZYNQ_SDHCI0
CONFIG_ZYNQ_SDHCI1
-CONFIG_ZYNQ_SDHCI_MAX_FREQ
-CONFIG_ZYNQ_SDHCI_MIN_FREQ
CONFIG_eTSEC_MDIO_BUS
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 1db44f47a16..3f5cc20e49a 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -650,9 +650,9 @@ static int fit_handle_file(struct image_tool_params *params)
}
*cmd = '\0';
} else if (params->datafile) {
- /* dtc -I dts -O dtb -p 500 datafile > tmpfile */
- snprintf(cmd, sizeof(cmd), "%s %s \"%s\" > \"%s\"",
- MKIMAGE_DTC, params->dtc, params->datafile, tmpfile);
+ /* dtc -I dts -O dtb -p 500 -o tmpfile datafile */
+ snprintf(cmd, sizeof(cmd), "%s %s -o \"%s\" \"%s\"",
+ MKIMAGE_DTC, params->dtc, tmpfile, params->datafile);
debug("Trying to execute \"%s\"\n", cmd);
} else {
snprintf(cmd, sizeof(cmd), "cp \"%s\" \"%s\"",
diff --git a/tools/imximage.c b/tools/imximage.c
index eb7e682038d..ed9d9359031 100644
--- a/tools/imximage.c
+++ b/tools/imximage.c
@@ -777,11 +777,6 @@ static uint32_t parse_cfg_file(struct imx_header *imxhdr, char *name)
(*set_dcd_rst)(imxhdr, dcd_len, name, lineno);
fclose(fd);
- /* Exit if there is no BOOT_FROM field specifying the flash_offset */
- if (imximage_ivt_offset == FLASH_OFFSET_UNDEFINED) {
- fprintf(stderr, "Error: No BOOT_FROM tag in %s\n", name);
- exit(EXIT_FAILURE);
- }
return dcd_len;
}