summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boards/animeo_ip/init.c2
-rw-r--r--arch/arm/boards/at91rm9200ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9261ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9263ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9m10g45ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9m10ihd/init.c2
-rw-r--r--arch/arm/boards/at91sam9n12ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9x5ek/init.c2
-rw-r--r--arch/arm/boards/dmo-mx6-realq7/board.c1
-rw-r--r--arch/arm/boards/dss11/init.c2
-rw-r--r--arch/arm/boards/efika-mx-smartbook/board.c1
-rw-r--r--arch/arm/boards/freescale-mx51-pdk/board.c1
-rw-r--r--arch/arm/boards/freescale-mx53-loco/board.c1
-rw-r--r--arch/arm/boards/gk802/board.c1
-rw-r--r--arch/arm/boards/mmccpu/init.c2
-rw-r--r--arch/arm/boards/pm9261/init.c2
-rw-r--r--arch/arm/boards/pm9263/init.c2
-rw-r--r--arch/arm/boards/pm9g45/init.c2
-rw-r--r--arch/arm/boards/qil-a926x/init.c2
-rw-r--r--arch/arm/boards/sama5d3xek/init.c2
-rw-r--r--arch/arm/boards/tny-a926x/init.c2
-rw-r--r--arch/arm/boards/tqma6x/board.c1
-rw-r--r--arch/arm/boards/usb-a926x/init.c2
-rw-r--r--arch/arm/cpu/start.c1
-rw-r--r--arch/arm/dts/imx6q-phytec-pfla02.dtsi11
-rw-r--r--arch/arm/include/asm/hardware.h18
-rw-r--r--arch/arm/mach-at91/Kconfig1
-rw-r--r--arch/arm/mach-at91/at91rm9200.c2
-rw-r--r--arch/arm/mach-at91/at91sam9260.c2
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9261.c2
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam926x_time.c2
-rw-r--r--arch/arm/mach-at91/at91sam9g45_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9n12.c2
-rw-r--r--arch/arm/mach-at91/at91sam9n12_devices.c2
-rw-r--r--arch/arm/mach-at91/at91sam9x5.c2
-rw-r--r--arch/arm/mach-at91/at91sam9x5_devices.c2
-rw-r--r--arch/arm/mach-at91/gpio.c4
-rw-r--r--arch/arm/mach-at91/sama5d3.c2
-rw-r--r--arch/arm/mach-at91/sama5d3_devices.c2
-rw-r--r--arch/arm/mach-imx/Kconfig7
-rw-r--r--arch/arm/mach-imx/clk-imx5.c1
-rw-r--r--arch/arm/mach-imx/clk-imx6.c1
-rw-r--r--arch/arm/mach-imx/clocksource.c1
-rw-r--r--arch/arm/mach-imx/esdctl.c1
-rw-r--r--arch/arm/mach-imx/iim.c2
-rw-r--r--arch/arm/mach-imx/imx-bbu-internal.c3
-rw-r--r--arch/arm/mach-imx/imx.c1
-rw-r--r--arch/arm/mach-imx/include/mach/bbu.h1
-rw-r--r--arch/arm/mach-imx/ocotp.c1
-rw-r--r--arch/arm/mach-mxs/bcb.c8
-rw-r--r--arch/arm/mach-mxs/include/mach/mci.h1
-rw-r--r--arch/arm/mach-mxs/iomux-imx.c2
-rw-r--r--arch/arm/mach-nomadik/8815.c2
-rw-r--r--arch/arm/mach-omap/Kconfig4
-rw-r--r--arch/ppc/mach-mpc85xx/Kconfig8
-rw-r--r--commands/crc.c63
-rw-r--r--commands/detect.c1
-rw-r--r--commands/filetype.c2
-rw-r--r--commands/loadenv.c1
-rw-r--r--commands/nandtest.c4
-rw-r--r--common/Kconfig20
-rw-r--r--common/console.c1
-rw-r--r--common/globalvar.c1
-rw-r--r--common/memory_display.c1
-rw-r--r--common/memtest.c1
-rw-r--r--common/misc.c1
-rw-r--r--common/partitions/dos.c92
-rw-r--r--common/startup.c1
-rw-r--r--crypto/crc32.c60
-rw-r--r--drivers/ata/ahci.c3
-rw-r--r--drivers/ata/ide-sff.c1
-rw-r--r--drivers/ata/pata-imx.c1
-rw-r--r--drivers/ata/sata-imx.c1
-rw-r--r--drivers/base/bus.c1
-rw-r--r--drivers/base/driver.c1
-rw-r--r--drivers/base/platform.c1
-rw-r--r--drivers/eeprom/at24.c2
-rw-r--r--drivers/gpio/gpio-imx.c1
-rw-r--r--drivers/i2c/busses/i2c-imx.c1
-rw-r--r--drivers/i2c/i2c.c1
-rw-r--r--drivers/mci/imx-esdhc.c1
-rw-r--r--drivers/mci/mci-core.c3
-rw-r--r--drivers/mci/mxs.c1
-rw-r--r--drivers/mfd/mc13xxx.c1
-rw-r--r--drivers/mfd/stmpe-i2c.c1
-rw-r--r--drivers/mtd/core.c1
-rw-r--r--drivers/mtd/devices/m25p80.c1
-rw-r--r--drivers/mtd/devices/mtd_dataflash.c1
-rw-r--r--drivers/net/Kconfig2
-rw-r--r--drivers/net/altera_tse.c2
-rw-r--r--drivers/net/netx_eth.c2
-rw-r--r--drivers/net/phy/mdio_bus.c2
-rw-r--r--drivers/net/phy/phy.c8
-rw-r--r--drivers/pinctrl/imx-iomux-v3.c1
-rw-r--r--drivers/pinctrl/pinctrl.c2
-rw-r--r--drivers/serial/serial_imx.c1
-rw-r--r--drivers/spi/imx_spi.c1
-rw-r--r--drivers/usb/gadget/dfu.c2
-rw-r--r--drivers/usb/imx/chipidea-imx.c2
-rw-r--r--drivers/usb/imx/imx-usb-misc.c2
-rw-r--r--drivers/usb/imx/imx-usb-phy.c2
-rw-r--r--drivers/watchdog/imxwd.c1
-rw-r--r--include/common.h2
-rw-r--r--include/linux/mtd/mtd.h1
-rw-r--r--include/mci.h2
-rw-r--r--lib/gui/bmp.c4
-rw-r--r--lib/gui/png_pico.c2
-rw-r--r--lib/math.c1
-rw-r--r--lib/unlink-recursive.c1
-rw-r--r--net/dns.c2
-rw-r--r--net/eth.c1
-rw-r--r--net/net.c2
-rw-r--r--scripts/.gitignore2
-rw-r--r--scripts/Makefile2
-rw-r--r--scripts/bareboxcrc32.c60
-rw-r--r--scripts/bareboxenv.c19
-rw-r--r--scripts/compiler.h25
-rw-r--r--scripts/imx/imx-usb-loader.c8
-rw-r--r--scripts/kwbimage.c16
-rw-r--r--scripts/kwboot.c1
124 files changed, 413 insertions, 190 deletions
diff --git a/arch/arm/boards/animeo_ip/init.c b/arch/arm/boards/animeo_ip/init.c
index 2fee1ff616..13dd948670 100644
--- a/arch/arm/boards/animeo_ip/init.c
+++ b/arch/arm/boards/animeo_ip/init.c
@@ -15,7 +15,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91rm9200ek/init.c b/arch/arm/boards/at91rm9200ek/init.c
index 2c8bf0e932..b63b1f7682 100644
--- a/arch/arm/boards/at91rm9200ek/init.c
+++ b/arch/arm/boards/at91rm9200ek/init.c
@@ -26,7 +26,7 @@
#include <fcntl.h>
#include <io.h>
#include <sizes.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/board.h>
#include <mach/iomux.h>
diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c
index 00fc745c07..a0d81fc74c 100644
--- a/arch/arm/boards/at91sam9261ek/init.c
+++ b/arch/arm/boards/at91sam9261ek/init.c
@@ -24,7 +24,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91sam9263ek/init.c b/arch/arm/boards/at91sam9263ek/init.c
index a889b5a4a3..ec59f7226f 100644
--- a/arch/arm/boards/at91sam9263ek/init.c
+++ b/arch/arm/boards/at91sam9263ek/init.c
@@ -26,7 +26,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91sam9m10g45ek/init.c b/arch/arm/boards/at91sam9m10g45ek/init.c
index 0ffbec2951..d0a37a6810 100644
--- a/arch/arm/boards/at91sam9m10g45ek/init.c
+++ b/arch/arm/boards/at91sam9m10g45ek/init.c
@@ -28,7 +28,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91sam9m10ihd/init.c b/arch/arm/boards/at91sam9m10ihd/init.c
index b75c51de31..92b88740d9 100644
--- a/arch/arm/boards/at91sam9m10ihd/init.c
+++ b/arch/arm/boards/at91sam9m10ihd/init.c
@@ -15,7 +15,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91sam9n12ek/init.c b/arch/arm/boards/at91sam9n12ek/init.c
index 779e4f7ead..1912a1d1c1 100644
--- a/arch/arm/boards/at91sam9n12ek/init.c
+++ b/arch/arm/boards/at91sam9n12ek/init.c
@@ -25,7 +25,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/at91sam9x5ek/init.c b/arch/arm/boards/at91sam9x5ek/init.c
index c677e4d401..87a401c316 100644
--- a/arch/arm/boards/at91sam9x5ek/init.c
+++ b/arch/arm/boards/at91sam9x5ek/init.c
@@ -25,7 +25,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/dmo-mx6-realq7/board.c b/arch/arm/boards/dmo-mx6-realq7/board.c
index a456389503..1753bddd51 100644
--- a/arch/arm/boards/dmo-mx6-realq7/board.c
+++ b/arch/arm/boards/dmo-mx6-realq7/board.c
@@ -27,6 +27,7 @@
#include <init.h>
#include <gpio.h>
#include <fec.h>
+#include <of.h>
#include <linux/micrel_phy.h>
#include <mfd/stmpe-i2c.h>
diff --git a/arch/arm/boards/dss11/init.c b/arch/arm/boards/dss11/init.c
index 8e992f446d..51b01c36a3 100644
--- a/arch/arm/boards/dss11/init.c
+++ b/arch/arm/boards/dss11/init.c
@@ -24,7 +24,7 @@
#include <fs.h>
#include <fcntl.h>
#include <asm/io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <linux/mtd/nand.h>
#include <mach/board.h>
diff --git a/arch/arm/boards/efika-mx-smartbook/board.c b/arch/arm/boards/efika-mx-smartbook/board.c
index 4469f975fb..0293c3e474 100644
--- a/arch/arm/boards/efika-mx-smartbook/board.c
+++ b/arch/arm/boards/efika-mx-smartbook/board.c
@@ -23,6 +23,7 @@
#include <led.h>
#include <fs.h>
#include <io.h>
+#include <of.h>
#include <spi/spi.h>
#include <mfd/mc13xxx.h>
diff --git a/arch/arm/boards/freescale-mx51-pdk/board.c b/arch/arm/boards/freescale-mx51-pdk/board.c
index ad09781ccd..379313edc6 100644
--- a/arch/arm/boards/freescale-mx51-pdk/board.c
+++ b/arch/arm/boards/freescale-mx51-pdk/board.c
@@ -24,6 +24,7 @@
#include <generated/mach-types.h>
#include <partition.h>
#include <fs.h>
+#include <of.h>
#include <fcntl.h>
#include <mach/bbu.h>
#include <nand.h>
diff --git a/arch/arm/boards/freescale-mx53-loco/board.c b/arch/arm/boards/freescale-mx53-loco/board.c
index 15dc591aae..1f00ec046a 100644
--- a/arch/arm/boards/freescale-mx53-loco/board.c
+++ b/arch/arm/boards/freescale-mx53-loco/board.c
@@ -22,6 +22,7 @@
#include <init.h>
#include <fs.h>
#include <io.h>
+#include <of.h>
#include <mfd/mc13xxx.h>
#include <i2c/i2c.h>
diff --git a/arch/arm/boards/gk802/board.c b/arch/arm/boards/gk802/board.c
index fa5f320fdb..a4be03f149 100644
--- a/arch/arm/boards/gk802/board.c
+++ b/arch/arm/boards/gk802/board.c
@@ -25,6 +25,7 @@
#include <mach/imx6.h>
#include <mfd/imx6q-iomuxc-gpr.h>
#include <sizes.h>
+#include <of.h>
#define GK802_GPIO_RECOVERY_BTN IMX_GPIO_NR(3, 16) /* recovery button */
#define GK802_GPIO_RTL8192_PDN IMX_GPIO_NR(2, 0) /* RTL8192CU powerdown */
diff --git a/arch/arm/boards/mmccpu/init.c b/arch/arm/boards/mmccpu/init.c
index a666b9d609..506f42001e 100644
--- a/arch/arm/boards/mmccpu/init.c
+++ b/arch/arm/boards/mmccpu/init.c
@@ -26,7 +26,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <linux/mtd/nand.h>
#include <mach/at91_pmc.h>
diff --git a/arch/arm/boards/pm9261/init.c b/arch/arm/boards/pm9261/init.c
index 8c039b77c6..e5dc99512c 100644
--- a/arch/arm/boards/pm9261/init.c
+++ b/arch/arm/boards/pm9261/init.c
@@ -27,7 +27,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <linux/mtd/nand.h>
#include <mach/at91_pmc.h>
diff --git a/arch/arm/boards/pm9263/init.c b/arch/arm/boards/pm9263/init.c
index 3bc22f3af2..9d4cf38d1f 100644
--- a/arch/arm/boards/pm9263/init.c
+++ b/arch/arm/boards/pm9263/init.c
@@ -28,7 +28,7 @@
#include <gpio.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <linux/mtd/nand.h>
#include <mach/at91_pmc.h>
diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c
index 75fd8a4be7..9df98ab20c 100644
--- a/arch/arm/boards/pm9g45/init.c
+++ b/arch/arm/boards/pm9g45/init.c
@@ -27,7 +27,7 @@
#include <fcntl.h>
#include <gpio.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <linux/mtd/nand.h>
#include <mach/at91_pmc.h>
diff --git a/arch/arm/boards/qil-a926x/init.c b/arch/arm/boards/qil-a926x/init.c
index 4192923e37..6eb9e12c92 100644
--- a/arch/arm/boards/qil-a926x/init.c
+++ b/arch/arm/boards/qil-a926x/init.c
@@ -15,7 +15,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/sama5d3xek/init.c b/arch/arm/boards/sama5d3xek/init.c
index 482c74a41b..f56ec54dcd 100644
--- a/arch/arm/boards/sama5d3xek/init.c
+++ b/arch/arm/boards/sama5d3xek/init.c
@@ -24,7 +24,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/tny-a926x/init.c b/arch/arm/boards/tny-a926x/init.c
index e3dd784c5a..82a1c4a47e 100644
--- a/arch/arm/boards/tny-a926x/init.c
+++ b/arch/arm/boards/tny-a926x/init.c
@@ -24,7 +24,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/boards/tqma6x/board.c b/arch/arm/boards/tqma6x/board.c
index 3e051a5535..a870bf290f 100644
--- a/arch/arm/boards/tqma6x/board.c
+++ b/arch/arm/boards/tqma6x/board.c
@@ -27,6 +27,7 @@
#include <init.h>
#include <gpio.h>
#include <fec.h>
+#include <of.h>
#include <linux/micrel_phy.h>
#include <mfd/stmpe-i2c.h>
diff --git a/arch/arm/boards/usb-a926x/init.c b/arch/arm/boards/usb-a926x/init.c
index fd2603fc1c..b57e289a13 100644
--- a/arch/arm/boards/usb-a926x/init.c
+++ b/arch/arm/boards/usb-a926x/init.c
@@ -24,7 +24,7 @@
#include <fs.h>
#include <fcntl.h>
#include <io.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <nand.h>
#include <sizes.h>
#include <linux/mtd/nand.h>
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c
index 21c63c0cc5..399e6b8330 100644
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -20,6 +20,7 @@
#include <common.h>
#include <init.h>
#include <sizes.h>
+#include <of.h>
#include <asm/barebox-arm.h>
#include <asm/barebox-arm-head.h>
#include <asm-generic/memory_layout.h>
diff --git a/arch/arm/dts/imx6q-phytec-pfla02.dtsi b/arch/arm/dts/imx6q-phytec-pfla02.dtsi
index 9410065d3c..d113f7fa7d 100644
--- a/arch/arm/dts/imx6q-phytec-pfla02.dtsi
+++ b/arch/arm/dts/imx6q-phytec-pfla02.dtsi
@@ -34,6 +34,17 @@
};
};
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1_1>;
+
+ eeprom: m24c32@50 {
+ compatible = "st,24c32", "at24";
+ reg = <0x50>;
+ };
+};
+
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
diff --git a/arch/arm/include/asm/hardware.h b/arch/arm/include/asm/hardware.h
deleted file mode 100644
index c71c2aeab2..0000000000
--- a/arch/arm/include/asm/hardware.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * linux/include/asm-arm/hardware.h
- *
- * Copyright (C) 1996 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Common hardware definitions
- */
-
-#ifndef __ASM_HARDWARE_H
-#define __ASM_HARDWARE_H
-
-#include <mach/hardware.h>
-
-#endif
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 6ab374e59e..e3eeb2cd97 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -342,7 +342,6 @@ config MACH_QIL_A9G20
Select this if you are using a Calao Systems QIL-A9G20 Board.
<http://www.calao-systems.com>
-
endchoice
endif
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index d740463745..d12e8d97bf 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include "soc.h"
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index e3c2996f7d..fbd7884141 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include "soc.h"
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index bf2b5b7402..ed6f9c4b96 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/board.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9260_matrix.h>
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index c992f71eda..37a65ecd3d 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include "soc.h"
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index 9ac9f20b84..ce539e97cb 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9261_matrix.h>
#include <mach/at91sam9_sdramc.h>
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index db4a7052b8..35d187b4b5 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include "soc.h"
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index 6860ad09d3..1c9366a28f 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9263_matrix.h>
#include <mach/at91sam9_sdramc.h>
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
index e18458ac96..644dc34766 100644
--- a/arch/arm/mach-at91/at91sam926x_time.c
+++ b/arch/arm/mach-at91/at91sam926x_time.c
@@ -28,7 +28,7 @@
#include <common.h>
#include <init.h>
#include <clock.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pit.h>
#include <mach/io.h>
#include <io.h>
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
index bd7ab9333b..5af8761532 100644
--- a/arch/arm/mach-at91/at91sam9g45_devices.c
+++ b/arch/arm/mach-at91/at91sam9g45_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9g45_matrix.h>
#include <mach/at91sam9_ddrsdr.h>
diff --git a/arch/arm/mach-at91/at91sam9n12.c b/arch/arm/mach-at91/at91sam9n12.c
index 2a825b4369..c551f9a744 100644
--- a/arch/arm/mach-at91/at91sam9n12.c
+++ b/arch/arm/mach-at91/at91sam9n12.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/io.h>
#include <mach/cpu.h>
diff --git a/arch/arm/mach-at91/at91sam9n12_devices.c b/arch/arm/mach-at91/at91sam9n12_devices.c
index 3616801349..2d9ea4caed 100644
--- a/arch/arm/mach-at91/at91sam9n12_devices.c
+++ b/arch/arm/mach-at91/at91sam9n12_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/board.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9n12_matrix.h>
diff --git a/arch/arm/mach-at91/at91sam9x5.c b/arch/arm/mach-at91/at91sam9x5.c
index 9ddd592b93..000b7483b2 100644
--- a/arch/arm/mach-at91/at91sam9x5.c
+++ b/arch/arm/mach-at91/at91sam9x5.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/io.h>
#include <mach/cpu.h>
diff --git a/arch/arm/mach-at91/at91sam9x5_devices.c b/arch/arm/mach-at91/at91sam9x5_devices.c
index f80c1af021..2d05e94058 100644
--- a/arch/arm/mach-at91/at91sam9x5_devices.c
+++ b/arch/arm/mach-at91/at91sam9x5_devices.c
@@ -13,7 +13,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/board.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9x5_matrix.h>
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index b111373823..91de85d989 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -438,7 +438,7 @@ static void at91mux_dump_pio_config(unsigned bank, unsigned pin)
void __iomem *pio = at91_gpio->regbase;
u32 div;
- printf("pio%c%d configuration\n\n", bank + 'A', pin);
+ printf("pio%c%u configuration\n\n", bank + 'A', pin);
at91mux_printf_mode(bank, pin);
printf("\n");
@@ -499,7 +499,7 @@ static int do_at91mux(int argc, char *argv[])
}
if (pin >= 32) {
- printf("pin %d >= supported %d pins\n", pin, 32);
+ printf("pin %u >= supported %d pins\n", pin, 32);
return 1;
}
diff --git a/arch/arm/mach-at91/sama5d3.c b/arch/arm/mach-at91/sama5d3.c
index aa681aa1d6..1bfae14f63 100644
--- a/arch/arm/mach-at91/sama5d3.c
+++ b/arch/arm/mach-at91/sama5d3.c
@@ -1,7 +1,7 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/at91_pmc.h>
#include <mach/io.h>
#include <mach/cpu.h>
diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c
index 9cbc8c1804..1938c053f9 100644
--- a/arch/arm/mach-at91/sama5d3_devices.c
+++ b/arch/arm/mach-at91/sama5d3_devices.c
@@ -14,7 +14,7 @@
#include <sizes.h>
#include <gpio.h>
#include <asm/armlinux.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/board.h>
#include <mach/at91_pmc.h>
#include <mach/at91sam9x5_matrix.h>
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index c405b2703d..3a1089f0ed 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -185,8 +185,6 @@ if IMX_MULTI_BOARDS
config MACH_EFIKA_MX_SMARTBOOK
bool "Efika MX smartbook"
select ARCH_IMX51
- select HAVE_DEFAULT_ENVIRONMENT_NEW
- select HAVE_PBL_MULTI_IMAGES
help
Choose this to compile barebox for the Efika MX Smartbook
@@ -216,8 +214,6 @@ config MACH_DFI_FS700_M60
config MACH_REALQ7
bool "DataModul i.MX6Q Real Qseven Board"
select ARCH_IMX6
- select HAVE_DEFAULT_ENVIRONMENT_NEW
- select HAVE_PBL_MULTI_IMAGES
config MACH_GK802
bool "Zealz GK802 Mini PC"
@@ -266,7 +262,6 @@ config MACH_IMX21ADS
Say Y here if you are using the Freescale i.MX21ads board equipped
with a Freescale i.MX21 Processor
-
# ----------------------------------------------------------
comment "i.MX25 Boards"
@@ -580,7 +575,7 @@ config ARCH_IMX_USBLOADER
config IMX_IIM
tristate "IIM fusebox device"
- depends on !ARCH_IMX21 && !ARCH_IMX21
+ depends on !ARCH_IMX21
help
Device driver for the IC Identification Module (IIM) fusebox. Use the
regular md/mw commands to program and read the fusebox.
diff --git a/arch/arm/mach-imx/clk-imx5.c b/arch/arm/mach-imx/clk-imx5.c
index 8c7ed1cbe5..f389653315 100644
--- a/arch/arm/mach-imx/clk-imx5.c
+++ b/arch/arm/mach-imx/clk-imx5.c
@@ -11,6 +11,7 @@
#include <driver.h>
#include <linux/clk.h>
#include <io.h>
+#include <of.h>
#include <linux/clkdev.h>
#include <linux/err.h>
#include <mach/imx51-regs.h>
diff --git a/arch/arm/mach-imx/clk-imx6.c b/arch/arm/mach-imx/clk-imx6.c
index 4639c0b71b..c32b6ccb56 100644
--- a/arch/arm/mach-imx/clk-imx6.c
+++ b/arch/arm/mach-imx/clk-imx6.c
@@ -15,6 +15,7 @@
#include <driver.h>
#include <linux/clk.h>
#include <io.h>
+#include <of.h>
#include <linux/clkdev.h>
#include <linux/err.h>
#include <mach/imx6-regs.h>
diff --git a/arch/arm/mach-imx/clocksource.c b/arch/arm/mach-imx/clocksource.c
index c04af630c3..dc29d200c0 100644
--- a/arch/arm/mach-imx/clocksource.c
+++ b/arch/arm/mach-imx/clocksource.c
@@ -29,6 +29,7 @@
#include <init.h>
#include <clock.h>
#include <errno.h>
+#include <of.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <notifier.h>
diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c
index e2025b3327..3ac4075a48 100644
--- a/arch/arm/mach-imx/esdctl.c
+++ b/arch/arm/mach-imx/esdctl.c
@@ -18,6 +18,7 @@
#include <common.h>
#include <io.h>
+#include <errno.h>
#include <sizes.h>
#include <init.h>
#include <asm/barebox-arm.h>
diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c
index 938c3f377d..dccaaa9e9a 100644
--- a/arch/arm/mach-imx/iim.c
+++ b/arch/arm/mach-imx/iim.c
@@ -24,7 +24,7 @@
#include <param.h>
#include <fcntl.h>
#include <malloc.h>
-
+#include <of.h>
#include <io.h>
#include <mach/iim.h>
diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c
index a96b11044e..9861c0782b 100644
--- a/arch/arm/mach-imx/imx-bbu-internal.c
+++ b/arch/arm/mach-imx/imx-bbu-internal.c
@@ -360,7 +360,8 @@ static void imx_bbu_internal_v2_init_flash_header(struct bbu_handler *handler, s
flash_header->self = imx_handler->app_dest + flash_header_offset;
flash_header->boot_data.start = imx_handler->app_dest;
- flash_header->boot_data.size = ALIGN(imx_pre_image_size + data->len, 4096);;
+ flash_header->boot_data.size = ALIGN(imx_pre_image_size +
+ data->len, 4096);
if (imx_handler->dcdsize) {
flash_header->dcd.header.tag = DCD_HEADER_TAG;
diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c
index be44339f7d..07d7ba1be7 100644
--- a/arch/arm/mach-imx/imx.c
+++ b/arch/arm/mach-imx/imx.c
@@ -12,6 +12,7 @@
*/
#include <common.h>
+#include <of.h>
#include <init.h>
#include <mach/revision.h>
#include <mach/generic.h>
diff --git a/arch/arm/mach-imx/include/mach/bbu.h b/arch/arm/mach-imx/include/mach/bbu.h
index 077133a352..3cd3b1e4cf 100644
--- a/arch/arm/mach-imx/include/mach/bbu.h
+++ b/arch/arm/mach-imx/include/mach/bbu.h
@@ -2,6 +2,7 @@
#define __MACH_BBU_H
#include <bbu.h>
+#include <errno.h>
struct imx_dcd_entry;
struct imx_dcd_v2_entry;
diff --git a/arch/arm/mach-imx/ocotp.c b/arch/arm/mach-imx/ocotp.c
index 04feb84731..e36b484e27 100644
--- a/arch/arm/mach-imx/ocotp.c
+++ b/arch/arm/mach-imx/ocotp.c
@@ -24,6 +24,7 @@
#include <init.h>
#include <net.h>
#include <io.h>
+#include <of.h>
/*
* a single MAC address reference has the form
diff --git a/arch/arm/mach-mxs/bcb.c b/arch/arm/mach-mxs/bcb.c
index b5d793effc..a7f4ba9bdf 100644
--- a/arch/arm/mach-mxs/bcb.c
+++ b/arch/arm/mach-mxs/bcb.c
@@ -179,7 +179,7 @@ static int calc_bb_offset(struct mtd_info *mtd, struct mx28_fcb *fcb)
bb_mark_chunk = bb_mark_offset / chunk_total_size;
bb_mark_chunk_offs = bb_mark_offset - (bb_mark_chunk * chunk_total_size);
if (bb_mark_chunk_offs > chunk_data_size) {
- printf("Unsupported ECC layout; BB mark resides in ECC data: %u\n",
+ printf("Unsupported ECC layout; BB mark resides in ECC data: %i\n",
bb_mark_chunk_offs);
return -EINVAL;
}
@@ -267,12 +267,12 @@ static int find_fcb(struct mtd_info *mtd, void *ref, int page)
chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page);
ret = chip->ecc.read_page_raw(mtd, chip, buf, 1, page);
if (ret) {
- printf("Failed to read FCB from page %u: %d\n", page, ret);
+ printf("Failed to read FCB from page %i: %d\n", page, ret);
return ret;
}
chip->select_chip(mtd, -1);
if (memcmp(buf, ref, mtd->writesize) == 0) {
- printf("%s: Found FCB in page %u (%08x)\n", __func__,
+ printf("%s: Found FCB in page %i (%08x)\n", __func__,
page, page * mtd->writesize);
ret = 1;
}
@@ -376,7 +376,7 @@ int update_bcb(int argc, char *argv[])
ret = write_fcb(mtd, buf, block);
if (ret) {
- printf("Failed to write FCB to block %u\n", block);
+ printf("Failed to write FCB to block %i\n", block);
return ret;
}
diff --git a/arch/arm/mach-mxs/include/mach/mci.h b/arch/arm/mach-mxs/include/mach/mci.h
index 4faab37dab..c47c24cba8 100644
--- a/arch/arm/mach-mxs/include/mach/mci.h
+++ b/arch/arm/mach-mxs/include/mach/mci.h
@@ -15,6 +15,7 @@
#define __MACH_MMC_H
struct mxs_mci_platform_data {
+ const char *devname;
unsigned caps; /**< supported operating modes (MMC_MODE_*) */
unsigned voltages; /**< supported voltage range (MMC_VDD_*) */
unsigned f_min; /**< min operating frequency in Hz (0 -> no limit) */
diff --git a/arch/arm/mach-mxs/iomux-imx.c b/arch/arm/mach-mxs/iomux-imx.c
index b8b69b31ee..24295c5d78 100644
--- a/arch/arm/mach-mxs/iomux-imx.c
+++ b/arch/arm/mach-mxs/iomux-imx.c
@@ -99,7 +99,7 @@ void imx_gpio_mode(uint32_t m)
/* some pins are disabled when configured for GPIO */
if ((gpio_pin > MAX_GPIO_NO) && (GET_FUNC(m) == IS_GPIO)) {
- printf("Cannot configure pad %d to GPIO\n", gpio_pin);
+ printf("Cannot configure pad %u to GPIO\n", gpio_pin);
return;
}
diff --git a/arch/arm/mach-nomadik/8815.c b/arch/arm/mach-nomadik/8815.c
index c5cac580d2..af32c9ccb4 100644
--- a/arch/arm/mach-nomadik/8815.c
+++ b/arch/arm/mach-nomadik/8815.c
@@ -17,7 +17,7 @@
#include <common.h>
#include <init.h>
#include <linux/clkdev.h>
-#include <asm/hardware.h>
+#include <mach/hardware.h>
#include <mach/hardware.h>
#include <asm/armlinux.h>
#include <generated/mach-types.h>
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index b2eec30b9a..42ff384c09 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -95,8 +95,8 @@ config BAREBOX_UPDATE_AM33XX_SPI_NOR_MLO
bool
depends on BAREBOX_UPDATE
help
- Say Y for barebox update SPI NOR MLO handler.
- AM35xx, AM33xx chips use big endian MLO for SPI NOR flash.
+ Say Y for barebox update SPI NOR MLO handler.
+ AM35xx, AM33xx chips use big endian MLO for SPI NOR flash.
config ARCH_TEXT_BASE
hex
diff --git a/arch/ppc/mach-mpc85xx/Kconfig b/arch/ppc/mach-mpc85xx/Kconfig
index 80cb0d9e08..dc5708cb56 100644
--- a/arch/ppc/mach-mpc85xx/Kconfig
+++ b/arch/ppc/mach-mpc85xx/Kconfig
@@ -48,10 +48,10 @@ config MPC8544
default y
config DDR_SPD
- bool
- default y
+ bool
+ default y
config FSL_DDR2
- bool
- default y
+ bool
+ default y
endif
diff --git a/commands/crc.c b/commands/crc.c
index ee8dacff0b..824dda4c7d 100644
--- a/commands/crc.c
+++ b/commands/crc.c
@@ -21,66 +21,8 @@
#include <command.h>
#include <fs.h>
#include <getopt.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <xfuncs.h>
#include <malloc.h>
-#include <linux/ctype.h>
-
-static int file_crc(char* filename, ulong start, ulong size, ulong *crc,
- ulong *total)
-{
- int fd, now;
- int ret = 0;
- char *buf;
-
- *total = 0;
- *crc = 0;
-
- fd = open(filename, O_RDONLY);
- if (fd < 0) {
- printf("open %s: %s\n", filename, errno_str());
- return fd;
- }
-
- if (start > 0) {
- off_t lseek_ret;
- errno = 0;
- lseek_ret = lseek(fd, start, SEEK_SET);
- if (lseek_ret == (off_t)-1 && errno) {
- perror("lseek");
- ret = -1;
- goto out;
- }
- }
-
- buf = xmalloc(4096);
-
- while (size) {
- now = min((ulong)4096, size);
- now = read(fd, buf, now);
- if (now < 0) {
- ret = now;
- perror("read");
- goto out_free;
- }
- if (!now)
- break;
- *crc = crc32(*crc, buf, now);
- size -= now;
- *total += now;
- }
-
- printf ("CRC32 for %s 0x%08lx ... 0x%08lx ==> 0x%08lx",
- filename, start, start + *total - 1, *crc);
-
-out_free:
- free(buf);
-out:
- close(fd);
-
- return ret;
-}
+#include <environment.h>
static int crc_from_file(const char* file, ulong *crc)
{
@@ -143,6 +85,9 @@ static int do_crc(int argc, char *argv[])
if (file_crc(filename, start, size, &crc, &total) < 0)
return 1;
+ printf("CRC32 for %s 0x%08lx ... 0x%08lx ==> 0x%08lx",
+ filename, (ulong)start, (ulong)start + total - 1, crc);
+
#ifdef CONFIG_CMD_CRC_CMP
if (vfilename) {
size = total;
diff --git a/commands/detect.c b/commands/detect.c
index 15055e78bc..499994ba78 100644
--- a/commands/detect.c
+++ b/commands/detect.c
@@ -21,6 +21,7 @@
#include <complete.h>
#include <driver.h>
#include <getopt.h>
+#include <errno.h>
static int do_detect(int argc, char *argv[])
{
diff --git a/commands/filetype.c b/commands/filetype.c
index 20d335bd6d..f82a4616b1 100644
--- a/commands/filetype.c
+++ b/commands/filetype.c
@@ -12,7 +12,7 @@
#include <magicvar.h>
#include <getopt.h>
#include <linux/stat.h>
-#include <fs.h>
+#include <errno.h>
static int do_filetype(int argc, char *argv[])
{
diff --git a/commands/loadenv.c b/commands/loadenv.c
index 14b964340b..df0df27a9d 100644
--- a/commands/loadenv.c
+++ b/commands/loadenv.c
@@ -24,6 +24,7 @@
#include <getopt.h>
#include <command.h>
#include <envfs.h>
+#include <errno.h>
#include <fs.h>
static int do_loadenv(int argc, char *argv[])
diff --git a/commands/nandtest.c b/commands/nandtest.c
index f6e8f99892..0da5444c02 100644
--- a/commands/nandtest.c
+++ b/commands/nandtest.c
@@ -163,8 +163,8 @@ static void print_stats(int nr_passes, int length)
for (i = 0; i < MAX_ECC_BITS; i++)
printf("ECC %d bit error(s) : %d\n", i + 1, ecc_stats[i]);
- printf("ECC >%d bit error(s) : %d\n", MAX_ECC_BITS, ecc_stats_over);
- printf("ECC corrections failed : %d\n", ecc_failed_cnt);
+ printf("ECC >%d bit error(s) : %u\n", MAX_ECC_BITS, ecc_stats_over);
+ printf("ECC corrections failed : %u\n", ecc_failed_cnt);
printf("-------------------------\n");
}
diff --git a/common/Kconfig b/common/Kconfig
index 06edbc2ba4..99a24a0f8f 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -285,6 +285,7 @@ config SIMPLE_READLINE
config LONGHELP
bool
+ depends on !SHELL_NONE
prompt "Enable long help texts"
config CBSIZE
@@ -292,11 +293,6 @@ config CBSIZE
prompt "Buffer size for input from the Console"
default 1024
-config MAXARGS
- int
- prompt "max. Number of arguments accepted for monitor commands"
- default 16
-
choice
prompt "Select your shell"
@@ -328,6 +324,12 @@ choice
at the end of the barebox startup process.
endchoice
+config MAXARGS
+ int
+ depends on SHELL_SIMPLE
+ prompt "max. Number of arguments accepted for monitor commands"
+ default 16
+
config GLOB
bool
prompt "hush globbing support"
@@ -364,6 +366,7 @@ config HUSH_GETOPT
This enables a getopt function builtin to hush.
config CMDLINE_EDITING
+ depends on !SHELL_NONE
bool
prompt "Enable command line editing"
@@ -617,6 +620,13 @@ config BAREBOXENV_TARGET
'bareboxenv' is a tool to access the barebox environment from a running Linux
system. Say yes here to build it for the target.
+config BAREBOXCRC32_TARGET
+ bool
+ prompt "build bareboxcrc32 tool for target"
+ help
+ 'bareboxcrc32' is a userspacetool to generate the crc32 checksums the same way
+ barebox does. Say yes here to build it for the target.
+
config POLLER
bool "generic polling infrastructure"
diff --git a/common/console.c b/common/console.c
index 56bc864ad1..329bc72493 100644
--- a/common/console.c
+++ b/common/console.c
@@ -25,6 +25,7 @@
#include <console.h>
#include <driver.h>
#include <fs.h>
+#include <of.h>
#include <init.h>
#include <clock.h>
#include <kfifo.h>
diff --git a/common/globalvar.c b/common/globalvar.c
index 41ce06e468..1f9b0cc1ee 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -1,6 +1,7 @@
#include <common.h>
#include <malloc.h>
#include <globalvar.h>
+#include <errno.h>
#include <init.h>
#include <environment.h>
#include <magicvar.h>
diff --git a/common/memory_display.c b/common/memory_display.c
index 7e4f4da622..c8ae57a594 100644
--- a/common/memory_display.c
+++ b/common/memory_display.c
@@ -1,4 +1,5 @@
#include <common.h>
+#include <errno.h>
#define DISP_LINE_LEN 16
diff --git a/common/memtest.c b/common/memtest.c
index 22178cfea2..5303c92f62 100644
--- a/common/memtest.c
+++ b/common/memtest.c
@@ -25,6 +25,7 @@
#include <memory.h>
#include <types.h>
#include <sizes.h>
+#include <errno.h>
#include <memtest.h>
static const resource_size_t bitpattern[] = {
diff --git a/common/misc.c b/common/misc.c
index f73f4cfe99..65f3306bee 100644
--- a/common/misc.c
+++ b/common/misc.c
@@ -22,6 +22,7 @@
#include <magicvar.h>
#include <globalvar.h>
#include <environment.h>
+#include <of.h>
int errno;
EXPORT_SYMBOL(errno);
diff --git a/common/partitions/dos.c b/common/partitions/dos.c
index 31b1ed60d1..37addfd2ef 100644
--- a/common/partitions/dos.c
+++ b/common/partitions/dos.c
@@ -27,19 +27,23 @@
* @param table partition table
* @return sector count
*/
-static int disk_guess_size(struct device_d *dev, struct partition_entry *table)
+static uint64_t disk_guess_size(struct device_d *dev,
+ struct partition_entry *table)
{
uint64_t size = 0;
int i;
for (i = 0; i < 4; i++) {
- if (table[i].partition_start != 0) {
- size += get_unaligned_le32(&table[i].partition_start) - size;
- size += get_unaligned_le32(&table[i].partition_size);
+ if (get_unaligned_le32(&table[i].partition_start) != 0) {
+ uint64_t part_end = get_unaligned_le32(&table[i].partition_start) +
+ get_unaligned_le32(&table[i].partition_size);
+
+ if (size < part_end)
+ size = part_end;
}
}
- return (int)size;
+ return size;
}
static void *read_mbr(struct block_device *blk)
@@ -105,19 +109,71 @@ static int dos_get_disk_signature(struct param_d *p, void *_priv)
if (!buf)
return -EIO;
- priv->signature = le32_to_cpup((__le32 *)(buf + 0x1b8));
+ priv->signature = get_unaligned_le32(buf + 0x1b8);
free(buf);
return 0;
}
+static void dos_extended_partition(struct block_device *blk, struct partition_desc *pd,
+ struct partition *partition)
+{
+ uint8_t *buf = dma_alloc(SECTOR_SIZE);
+ uint32_t ebr_sector = partition->first_sec;
+ struct partition_entry *table = (struct partition_entry *)&buf[0x1be];
+
+ while (pd->used_entries < ARRAY_SIZE(pd->parts)) {
+ int rc, i;
+ int n = pd->used_entries;
+
+ dev_dbg(blk->dev, "expect EBR in sector %x\n", ebr_sector);
+
+ rc = block_read(blk, buf, ebr_sector, 1);
+ if (rc != 0) {
+ dev_err(blk->dev, "Cannot read EBR partition table\n");
+ goto out;
+ }
+
+ /* sanity checks */
+ if (buf[0x1fe] != 0x55 || buf[0x1ff] != 0xaa) {
+ dev_err(blk->dev, "sector %x doesn't contain an EBR signature\n", ebr_sector);
+ goto out;
+ }
+
+ for (i = 0x1de; i < 0x1fe; ++i)
+ if (buf[i]) {
+ dev_err(blk->dev, "EBR's third or fourth partition non-empty\n");
+ goto out;
+ }
+ /* /sanity checks */
+
+ /* the first entry defines the extended partition */
+ pd->parts[n].first_sec = ebr_sector +
+ get_unaligned_le32(&table[0].partition_start);
+ pd->parts[n].size = get_unaligned_le32(&table[0].partition_size);
+ pd->parts[n].dos_partition_type = table[0].type;
+ pd->used_entries++;
+
+ /* the second entry defines the start of the next ebr if != 0 */
+ if (get_unaligned_le32(&table[1].partition_start))
+ ebr_sector = partition->first_sec +
+ get_unaligned_le32(&table[1].partition_start);
+ else
+ break;
+ }
+
+out:
+ dma_free(buf);
+ return;
+}
+
/**
* Check if a DOS like partition describes this block device
* @param blk Block device to register to
* @param pd Where to store the partition information
*
- * It seems at least on ARM this routine canot use temp. stack space for the
+ * It seems at least on ARM this routine cannot use temp. stack space for the
* sector. So, keep the malloc/free.
*/
static void dos_partition(void *buf, struct block_device *blk,
@@ -125,6 +181,7 @@ static void dos_partition(void *buf, struct block_device *blk,
{
struct partition_entry *table;
struct partition pentry;
+ struct partition *extended_partition = NULL;
uint8_t *buffer = buf;
int i;
struct disk_signature_priv *dsp;
@@ -146,11 +203,32 @@ static void dos_partition(void *buf, struct block_device *blk,
pd->parts[n].size = pentry.size;
pd->parts[n].dos_partition_type = pentry.dos_partition_type;
pd->used_entries++;
+ /*
+ * Partitions of type 0x05 and 0x0f (and some more)
+ * contain extended partitions. Only check for type 0x0f
+ * here as this is the easiest to parse and common
+ * enough.
+ */
+ if (pentry.dos_partition_type == 0x0f) {
+ if (!extended_partition)
+ extended_partition = &pd->parts[n];
+ else
+ /*
+ * An DOS MBR must only contain a single
+ * extended partition. Just ignore all
+ * but the first.
+ */
+ dev_warn(blk->dev, "Skipping additional extended partition\n");
+ }
+
} else {
dev_dbg(blk->dev, "Skipping empty partition %d\n", i);
}
}
+ if (extended_partition)
+ dos_extended_partition(blk, pd, extended_partition);
+
dsp = xzalloc(sizeof(*dsp));
dsp->blk = blk;
diff --git a/common/startup.c b/common/startup.c
index 2e0a4ba3dc..74c7735e31 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -35,6 +35,7 @@
#include <malloc.h>
#include <debug_ll.h>
#include <fs.h>
+#include <errno.h>
#include <linux/stat.h>
#include <envfs.h>
#include <asm/sections.h>
diff --git a/crypto/crc32.c b/crypto/crc32.c
index 275edb4c52..e7b1bd76b6 100644
--- a/crypto/crc32.c
+++ b/crypto/crc32.c
@@ -10,6 +10,12 @@
#ifdef __BAREBOX__ /* Shut down "ANSI does not permit..." warnings */
#include <common.h>
+#include <xfuncs.h>
+#include <fs.h>
+#include <fcntl.h>
+#include <malloc.h>
+#include <linux/ctype.h>
+#include <errno.h>
#endif
#ifdef CONFIG_DYNAMIC_CRC_TABLE
@@ -178,3 +184,57 @@ uint32_t crc32_no_comp(uint32_t crc, const void *_buf, unsigned int len)
return crc;
}
+int file_crc(char *filename, ulong start, ulong size, ulong *crc,
+ ulong *total)
+{
+ int fd, now;
+ int ret = 0;
+ char *buf;
+
+ *total = 0;
+ *crc = 0;
+
+ fd = open(filename, O_RDONLY);
+ if (fd < 0) {
+ printf("open %s: %s\n", filename, strerror(errno));
+ return fd;
+ }
+
+ if (start > 0) {
+ off_t lseek_ret;
+ errno = 0;
+ lseek_ret = lseek(fd, start, SEEK_SET);
+ if (lseek_ret == (off_t)-1 && errno) {
+ perror("lseek");
+ ret = -1;
+ goto out;
+ }
+ }
+
+ buf = xmalloc(4096);
+
+ while (size) {
+ now = min((ulong)4096, size);
+ now = read(fd, buf, now);
+ if (now < 0) {
+ ret = now;
+ perror("read");
+ goto out_free;
+ }
+ if (!now)
+ break;
+ *crc = crc32(*crc, buf, now);
+ size -= now;
+ *total += now;
+ }
+
+out_free:
+ free(buf);
+out:
+ close(fd);
+
+ return ret;
+}
+#ifdef __BAREBOX__
+EXPORT_SYMBOL(file_crc);
+#endif
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index f9cf2d1436..9ba18a3c6e 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -29,6 +29,7 @@
#include <init.h>
#include <errno.h>
#include <io.h>
+#include <of.h>
#include <malloc.h>
#include <scsi.h>
#include <linux/ctype.h>
@@ -375,7 +376,7 @@ static int ahci_init_port(struct ahci_port *ahci_port)
ret = wait_on_timeout(WAIT_LINKUP,
(ahci_port_read(ahci_port, PORT_SCR_STAT) & 0xf) == 0x3);
if (ret) {
- ahci_port_info(ahci_port, "SATA link timeout\n");;
+ ahci_port_info(ahci_port, "SATA link timeout\n");
ret = -ETIMEDOUT;
goto err_init;
}
diff --git a/drivers/ata/ide-sff.c b/drivers/ata/ide-sff.c
index a7f2647afd..3d5932e278 100644
--- a/drivers/ata/ide-sff.c
+++ b/drivers/ata/ide-sff.c
@@ -1,6 +1,7 @@
#include <common.h>
#include <ata_drive.h>
#include <io.h>
+#include <errno.h>
#include <clock.h>
#include <disks.h>
#include <malloc.h>
diff --git a/drivers/ata/pata-imx.c b/drivers/ata/pata-imx.c
index 0e348069fe..7f9e39b503 100644
--- a/drivers/ata/pata-imx.c
+++ b/drivers/ata/pata-imx.c
@@ -30,6 +30,7 @@
#include <ata_drive.h>
#include <platform_ide.h>
#include <io.h>
+#include <of.h>
#include <linux/err.h>
#include <linux/clk.h>
diff --git a/drivers/ata/sata-imx.c b/drivers/ata/sata-imx.c
index ef7989e610..b7bd1107cc 100644
--- a/drivers/ata/sata-imx.c
+++ b/drivers/ata/sata-imx.c
@@ -1,6 +1,7 @@
#include <common.h>
#include <ata_drive.h>
#include <io.h>
+#include <of.h>
#include <clock.h>
#include <disks.h>
#include <driver.h>
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 4357020241..b383d09c3e 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -7,6 +7,7 @@
#include <common.h>
#include <driver.h>
#include <errno.h>
+#include <of.h>
LIST_HEAD(bus_list);
EXPORT_SYMBOL(bus_list);
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 80e0ea882f..4250fb0912 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -30,6 +30,7 @@
#include <linux/ctype.h>
#include <errno.h>
#include <fs.h>
+#include <of.h>
#include <linux/list.h>
#include <complete.h>
#include <pinctrl.h>
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 34a79b2caa..e053ec7bbc 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -20,6 +20,7 @@
#include <driver.h>
#include <errno.h>
#include <init.h>
+#include <of.h>
static int platform_probe(struct device_d *dev)
{
diff --git a/drivers/eeprom/at24.c b/drivers/eeprom/at24.c
index 4b2afc4775..5e5b359d94 100644
--- a/drivers/eeprom/at24.c
+++ b/drivers/eeprom/at24.c
@@ -435,6 +435,8 @@ static int at24_probe(struct device_d *dev)
devfs_create(&at24->cdev);
+ of_parse_partitions(&at24->cdev, dev->device_node);
+
return 0;
err_clients:
diff --git a/drivers/gpio/gpio-imx.c b/drivers/gpio/gpio-imx.c
index 063a81c896..a71492a3c3 100644
--- a/drivers/gpio/gpio-imx.c
+++ b/drivers/gpio/gpio-imx.c
@@ -23,6 +23,7 @@
#include <common.h>
#include <errno.h>
#include <io.h>
+#include <of.h>
#include <gpio.h>
#include <init.h>
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index c607bcba1a..f657c287f7 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -34,6 +34,7 @@
#include <common.h>
#include <driver.h>
#include <init.h>
+#include <of.h>
#include <malloc.h>
#include <types.h>
#include <xfuncs.h>
diff --git a/drivers/i2c/i2c.c b/drivers/i2c/i2c.c
index ccc484480f..3b9f601f68 100644
--- a/drivers/i2c/i2c.c
+++ b/drivers/i2c/i2c.c
@@ -22,6 +22,7 @@
#include <malloc.h>
#include <xfuncs.h>
#include <init.h>
+#include <of.h>
#include <i2c/i2c.h>
diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c
index 8da7097c43..7664e7be4c 100644
--- a/drivers/mci/imx-esdhc.c
+++ b/drivers/mci/imx-esdhc.c
@@ -24,6 +24,7 @@
#include <common.h>
#include <driver.h>
#include <init.h>
+#include <of.h>
#include <malloc.h>
#include <mci.h>
#include <clock.h>
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index cfae91b2ea..a232679571 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -34,6 +34,7 @@
#include <asm/byteorder.h>
#include <block.h>
#include <disks.h>
+#include <of.h>
#include <linux/err.h>
#define MAX_BUFFER_NUMBER 0xffffffff
@@ -831,7 +832,7 @@ static void mci_extract_card_capacity_from_csd(struct mci *mci)
mci->capacity = (csize + 1) << (cmult + 2);
}
- mci->capacity *= 1 << UNSTUFF_BITS(mci->csd, 80, 4);;
+ mci->capacity *= 1 << UNSTUFF_BITS(mci->csd, 80, 4);
dev_dbg(&mci->dev, "Capacity: %u MiB\n", (unsigned)(mci->capacity >> 20));
}
diff --git a/drivers/mci/mxs.c b/drivers/mci/mxs.c
index 1b935f7ce6..bf928e80ff 100644
--- a/drivers/mci/mxs.c
+++ b/drivers/mci/mxs.c
@@ -570,6 +570,7 @@ static int mxs_mci_probe(struct device_d *hw_dev)
/* feed forward the platform specific values */
host->voltages = pd->voltages;
host->host_caps = pd->caps;
+ host->devname = pd->devname;
mxs_mci->clk = clk_get(hw_dev, NULL);
if (IS_ERR(mxs_mci->clk))
diff --git a/drivers/mfd/mc13xxx.c b/drivers/mfd/mc13xxx.c
index cf4c02aa05..bfbd328323 100644
--- a/drivers/mfd/mc13xxx.c
+++ b/drivers/mfd/mc13xxx.c
@@ -21,6 +21,7 @@
#include <xfuncs.h>
#include <errno.h>
#include <malloc.h>
+#include <of.h>
#include <i2c/i2c.h>
#include <spi/spi.h>
diff --git a/drivers/mfd/stmpe-i2c.c b/drivers/mfd/stmpe-i2c.c
index 3a2db923fd..c1e7d9ece4 100644
--- a/drivers/mfd/stmpe-i2c.c
+++ b/drivers/mfd/stmpe-i2c.c
@@ -19,6 +19,7 @@
#include <driver.h>
#include <xfuncs.h>
#include <errno.h>
+#include <of.h>
#include <i2c/i2c.h>
#include <mfd/stmpe-i2c.h>
diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c
index f63b10e9cd..33f900e732 100644
--- a/drivers/mtd/core.c
+++ b/drivers/mtd/core.c
@@ -25,6 +25,7 @@
#include <ioctl.h>
#include <nand.h>
#include <errno.h>
+#include <of.h>
#include "mtd.h"
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 1e3bc936f1..959401138d 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -17,6 +17,7 @@
#include <common.h>
#include <init.h>
#include <driver.h>
+#include <of.h>
#include <spi/spi.h>
#include <spi/flash.h>
#include <xfuncs.h>
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
index d785e33dae..cdc0120c53 100644
--- a/drivers/mtd/devices/mtd_dataflash.c
+++ b/drivers/mtd/devices/mtd_dataflash.c
@@ -17,6 +17,7 @@
#include <linux/err.h>
#include <errno.h>
#include <io.h>
+#include <of.h>
#include <clock.h>
#include <spi/spi.h>
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 5d7d20f08d..c62641684e 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -62,7 +62,7 @@ config DRIVER_NET_SMC91111
config DRIVER_NET_DAVINCI_EMAC
bool "TI Davinci/OMAP EMAC ethernet driver"
- depends on ARCH_DAVINCI || ARCH_OMAP3
+ depends on ARCH_OMAP3
select PHYLIB
config DRIVER_NET_DM9K
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index 1a442781a9..6978e2a2ea 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -376,7 +376,7 @@ static int tse_eth_send(struct eth_device *edev, void *packet, int length)
alt_sgdma_do_sync_transfer(tx_sgdma, tx_desc_cur);
- return 0;;
+ return 0;
}
static void tse_eth_halt(struct eth_device *edev)
diff --git a/drivers/net/netx_eth.c b/drivers/net/netx_eth.c
index 9ca9bce1f8..309f4cb738 100644
--- a/drivers/net/netx_eth.c
+++ b/drivers/net/netx_eth.c
@@ -86,7 +86,7 @@ static int netx_eth_send (struct eth_device *edev,
#endif
val = PFIFO_REG( PFIFO_BASE(CON_FIFO_PORT_LO(xcno)) );
if((val & FIFO_PTR_ERROR_MASK) & 0x8)
- printf("error sending frame: %d\n",val);
+ printf("error sending frame: %u\n", val);
return 0;
}
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 6163a50652..87072be289 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -82,7 +82,7 @@ struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr)
return bus->phy_map[addr];
phydev = get_phy_device(bus, addr);
- if (IS_ERR(phydev) || phydev == NULL)
+ if (IS_ERR(phydev))
return phydev;
bus->phy_map[addr] = phydev;
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index db00e38bbc..2a33054589 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -217,7 +217,7 @@ struct phy_device *get_phy_device(struct mii_bus *bus, int addr)
/* If the phy_id is mostly Fs, there is no device there */
if ((phy_id & 0x1fffffff) == 0x1fffffff)
- return NULL;
+ return ERR_PTR(-ENODEV);
dev = phy_device_create(bus, addr, phy_id);
@@ -254,7 +254,7 @@ int phy_device_connect(struct eth_device *edev, struct mii_bus *bus, int addr,
if (!edev->phydev) {
if (addr >= 0) {
dev = mdiobus_scan(bus, addr);
- if (!dev) {
+ if (IS_ERR(dev)) {
ret = -EIO;
goto fail;
}
@@ -273,7 +273,7 @@ int phy_device_connect(struct eth_device *edev, struct mii_bus *bus, int addr,
continue;
dev = mdiobus_scan(bus, i);
- if (!dev || dev->attached_dev)
+ if (IS_ERR(dev) || dev->attached_dev)
continue;
dev->attached_dev = edev;
@@ -304,7 +304,7 @@ int phy_device_connect(struct eth_device *edev, struct mii_bus *bus, int addr,
return 0;
fail:
- if (dev)
+ if (!IS_ERR(dev))
dev->attached_dev = NULL;
puts("Unable to find a PHY (unknown ID?)\n");
return ret;
diff --git a/drivers/pinctrl/imx-iomux-v3.c b/drivers/pinctrl/imx-iomux-v3.c
index 1223c02730..7fcbb98d03 100644
--- a/drivers/pinctrl/imx-iomux-v3.c
+++ b/drivers/pinctrl/imx-iomux-v3.c
@@ -20,6 +20,7 @@
#include <common.h>
#include <init.h>
#include <io.h>
+#include <of.h>
#include <pinctrl.h>
#include <malloc.h>
#include <mach/iomux-v3.h>
diff --git a/drivers/pinctrl/pinctrl.c b/drivers/pinctrl/pinctrl.c
index 7c797d35bc..7f76d5a681 100644
--- a/drivers/pinctrl/pinctrl.c
+++ b/drivers/pinctrl/pinctrl.c
@@ -19,6 +19,8 @@
#include <common.h>
#include <malloc.h>
#include <pinctrl.h>
+#include <errno.h>
+#include <of.h>
static LIST_HEAD(pinctrl_list);
diff --git a/drivers/serial/serial_imx.c b/drivers/serial/serial_imx.c
index 01c7cc7fea..8468fa0adc 100644
--- a/drivers/serial/serial_imx.c
+++ b/drivers/serial/serial_imx.c
@@ -20,6 +20,7 @@
#include <malloc.h>
#include <notifier.h>
#include <io.h>
+#include <of.h>
#include <linux/err.h>
#include <linux/clk.h>
diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c
index 1c6b68448b..c0c2ed7c49 100644
--- a/drivers/spi/imx_spi.c
+++ b/drivers/spi/imx_spi.c
@@ -20,6 +20,7 @@
#include <spi/spi.h>
#include <xfuncs.h>
#include <io.h>
+#include <of.h>
#include <errno.h>
#include <malloc.h>
#include <gpio.h>
diff --git a/drivers/usb/gadget/dfu.c b/drivers/usb/gadget/dfu.c
index e05187900b..e15fc41b82 100644
--- a/drivers/usb/gadget/dfu.c
+++ b/drivers/usb/gadget/dfu.c
@@ -61,7 +61,7 @@
#define DFU_TEMPFILE "/dfu_temp"
static int dfualt;
-static int dfufd = -EINVAL;;
+static int dfufd = -EINVAL;
static struct usb_dfu_dev *dfu_devs;
static int dfu_num_alt;
static int dfudetach;
diff --git a/drivers/usb/imx/chipidea-imx.c b/drivers/usb/imx/chipidea-imx.c
index a0dab70337..d8209d174b 100644
--- a/drivers/usb/imx/chipidea-imx.c
+++ b/drivers/usb/imx/chipidea-imx.c
@@ -15,6 +15,8 @@
#include <common.h>
#include <init.h>
#include <io.h>
+#include <of.h>
+#include <errno.h>
#include <driver.h>
#include <usb/usb.h>
#include <usb/ehci.h>
diff --git a/drivers/usb/imx/imx-usb-misc.c b/drivers/usb/imx/imx-usb-misc.c
index 68c8c4bebd..ed44d78b0f 100644
--- a/drivers/usb/imx/imx-usb-misc.c
+++ b/drivers/usb/imx/imx-usb-misc.c
@@ -16,6 +16,8 @@
#include <common.h>
#include <init.h>
#include <io.h>
+#include <of.h>
+#include <errno.h>
#include <usb/chipidea-imx.h>
#include <mach/imx6-regs.h>
#include <mach/iomux-mx6.h>
diff --git a/drivers/usb/imx/imx-usb-phy.c b/drivers/usb/imx/imx-usb-phy.c
index 776bfe5167..a573c7fe52 100644
--- a/drivers/usb/imx/imx-usb-phy.c
+++ b/drivers/usb/imx/imx-usb-phy.c
@@ -15,6 +15,8 @@
#include <common.h>
#include <init.h>
#include <io.h>
+#include <of.h>
+#include <errno.h>
#include <driver.h>
#include <malloc.h>
#include <linux/clk.h>
diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c
index 78f0f38290..f5910ac0a9 100644
--- a/drivers/watchdog/imxwd.c
+++ b/drivers/watchdog/imxwd.c
@@ -15,6 +15,7 @@
#include <common.h>
#include <init.h>
#include <io.h>
+#include <of.h>
#include <errno.h>
#include <malloc.h>
#include <watchdog.h>
diff --git a/include/common.h b/include/common.h
index 00f1642cd5..293f5041af 100644
--- a/include/common.h
+++ b/include/common.h
@@ -115,6 +115,8 @@ long simple_strtol(const char *cp,char **endp,unsigned int base);
/* lib_generic/crc32.c */
uint32_t crc32(uint32_t, const void*, unsigned int);
uint32_t crc32_no_comp(uint32_t, const void*, unsigned int);
+int file_crc(char *filename, ulong start, ulong size, ulong *crc,
+ ulong *total);
/* common/console.c */
int ctrlc (void);
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 1735b49874..402e4978b1 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -12,6 +12,7 @@
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include <driver.h>
+#include <errno.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/mtd/mtd-abi.h>
diff --git a/include/mci.h b/include/mci.h
index 07ac2731f7..0f10e8aea9 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -286,7 +286,7 @@ struct mci;
struct mci_host {
struct device_d *hw_dev; /**< the host MCI hardware device */
struct mci *mci;
- char *devname; /**< the devicename for the card, defaults to disk%d */
+ const char *devname; /**< the devicename for the card, defaults to disk%d */
unsigned voltages;
unsigned host_caps; /**< Host's interface capabilities, refer MMC_VDD_* */
unsigned f_min; /**< host interface lower limit */
diff --git a/lib/gui/bmp.c b/lib/gui/bmp.c
index dcf30952d2..6943a1c8e0 100644
--- a/lib/gui/bmp.c
+++ b/lib/gui/bmp.c
@@ -19,8 +19,8 @@ struct image *bmp_open(char *inbuf, int insize)
}
img->data = inbuf;
- img->height = le32_to_cpu(bmp->header.height);;
- img->width = le32_to_cpu(bmp->header.width);;
+ img->height = le32_to_cpu(bmp->header.height);
+ img->width = le32_to_cpu(bmp->header.width);
img->bits_per_pixel = le16_to_cpu(bmp->header.bit_count);
pr_debug("bmp: %d x %d x %d data@0x%p\n", img->width, img->height,
diff --git a/lib/gui/png_pico.c b/lib/gui/png_pico.c
index 393a732bc4..256db35ce0 100644
--- a/lib/gui/png_pico.c
+++ b/lib/gui/png_pico.c
@@ -57,7 +57,7 @@ struct image *png_open(char *inbuf, int insize)
png_info = PNG_decode(inbuf, insize);
if(PNG_error) {
- printf("error %u:\n", PNG_error);
+ printf("error %i:\n", PNG_error);
ret = -EINVAL;
goto err;
}
diff --git a/lib/math.c b/lib/math.c
index 5a68f5e8b2..a4731edb9a 100644
--- a/lib/math.c
+++ b/lib/math.c
@@ -118,6 +118,7 @@
#include <linux/ctype.h>
#include <linux/string.h>
#include <libbb.h>
+#include <errno.h>
#include <math.h>
#define lookupvar (math_state->lookupvar)
diff --git a/lib/unlink-recursive.c b/lib/unlink-recursive.c
index a4885538c0..8f7812f852 100644
--- a/lib/unlink-recursive.c
+++ b/lib/unlink-recursive.c
@@ -1,4 +1,5 @@
#include <common.h>
+#include <errno.h>
#include <libbb.h>
#include <fs.h>
diff --git a/net/dns.c b/net/dns.c
index eb96c57603..afd2663f81 100644
--- a/net/dns.c
+++ b/net/dns.c
@@ -127,7 +127,7 @@ static void dns_handler(void *ctx, char *packet, unsigned len)
debug("%s\n", __func__);
/* We sent 1 query. We want to see more that 1 answer. */
- header = (struct header *)net_eth_to_udp_payload(packet);;
+ header = (struct header *)net_eth_to_udp_payload(packet);
if (ntohs(header->nqueries) != 1)
return;
diff --git a/net/eth.c b/net/eth.c
index 38674533d2..37dd9e087d 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -23,6 +23,7 @@
#include <driver.h>
#include <init.h>
#include <net.h>
+#include <of.h>
#include <linux/phy.h>
#include <errno.h>
#include <malloc.h>
diff --git a/net/net.c b/net/net.c
index 058a4d3285..9ef0784da3 100644
--- a/net/net.c
+++ b/net/net.c
@@ -433,7 +433,7 @@ void net_unregister(struct net_connection *con)
static int net_ip_send(struct net_connection *con, int len)
{
con->ip->tot_len = htons(sizeof(struct iphdr) + len);
- con->ip->id = htons(net_ip_id++);;
+ con->ip->id = htons(net_ip_id++);
con->ip->check = 0;
con->ip->check = ~net_checksum((unsigned char *)con->ip, sizeof(struct iphdr));
diff --git a/scripts/.gitignore b/scripts/.gitignore
index b88f8d8661..fac394d128 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -10,3 +10,5 @@ mkublheader
omap_signGP
zynq_mkimage
socfpga_mkimage
+bareboxcrc32
+bareboxcrc32-target
diff --git a/scripts/Makefile b/scripts/Makefile
index 2f78c4bb64..3908c1dcb9 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -8,6 +8,7 @@ hostprogs-y += bin2c
hostprogs-y += mkimage
hostprogs-y += fix_size
hostprogs-y += bareboxenv
+hostprogs-y += bareboxcrc32
hostprogs-y += kernel-install
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
hostprogs-$(CONFIG_ARCH_MVEBU) += kwbimage kwboot
@@ -26,6 +27,7 @@ subdir-$(CONFIG_DTC) += dtc
targetprogs-$(CONFIG_BAREBOXENV_TARGET) += bareboxenv-target
targetprogs-$(CONFIG_KERNEL_INSTALL_TARGET) += kernel-install-target
+targetprogs-$(CONFIG_BAREBOXCRC32_TARGET) += bareboxcrc32-target
# Let clean descend into subdirs
subdir- += basic kconfig setupmbr
diff --git a/scripts/bareboxcrc32.c b/scripts/bareboxcrc32.c
new file mode 100644
index 0000000000..e00ffafeb7
--- /dev/null
+++ b/scripts/bareboxcrc32.c
@@ -0,0 +1,60 @@
+/*
+ * bareboxcrc32.c - generate crc32 checksum in little endian
+ *
+ * Copyright (c) 2013 Michael Grzeschik <mgr@pengutronix.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <limits.h>
+#include <errno.h>
+#include <dirent.h>
+#include <stdlib.h>
+#include <string.h>
+#include <getopt.h>
+#include <libgen.h>
+
+#include "compiler.h"
+
+#define debug(...)
+
+#include "../crypto/crc32.c"
+
+int main(int argc, char *argv[])
+{
+ loff_t start = 0, size = ~0;
+ ulong crc = 0, total = 0;
+ char *filename = NULL;
+ int i;
+
+ if (!filename && argc < 2) {
+ printf("usage: %s filename\n", argv[0]);
+ exit(1);
+ }
+
+ for (i = 1; i < argc; i++) {
+ filename = argv[i];
+ if (file_crc(filename, start, size, &crc, &total) < 0)
+ exit(1);
+ printf("%08lx\t%s\n", crc, filename);
+ }
+
+ exit(0);
+
+}
diff --git a/scripts/bareboxenv.c b/scripts/bareboxenv.c
index f372685ae7..da420db578 100644
--- a/scripts/bareboxenv.c
+++ b/scripts/bareboxenv.c
@@ -35,25 +35,6 @@
#define debug(...)
-static void *xmalloc(size_t size)
-{
- void *p = NULL;
-
- if (!(p = malloc(size))) {
- printf("ERROR: out of memory\n");
- exit(1);
- }
-
- return p;
-}
-
-static void *xzalloc(size_t size)
-{
- void *p = xmalloc(size);
- memset(p, 0, size);
- return p;
-}
-
/* Find out if the last character of a string matches the one given.
* Don't underrun the buffer if the string length is 0.
*/
diff --git a/scripts/compiler.h b/scripts/compiler.h
index 53f84b6d1b..0891c3bfa6 100644
--- a/scripts/compiler.h
+++ b/scripts/compiler.h
@@ -107,4 +107,29 @@ typedef uint32_t __u32;
# define be64_to_cpu(x) (x)
#endif
+#define min(x, y) ({ \
+ typeof(x) _min1 = (x); \
+ typeof(y) _min2 = (y); \
+ (void) (&_min1 == &_min2); \
+ _min1 < _min2 ? _min1 : _min2; })
+
+inline void *xmalloc(size_t size)
+{
+ void *p = NULL;
+
+ if (!(p = malloc(size))) {
+ printf("ERROR: out of memory\n");
+ exit(1);
+ }
+
+ return p;
+}
+
+inline void *xzalloc(size_t size)
+{
+ void *p = xmalloc(size);
+ memset(p, 0, size);
+ return p;
+}
+
#endif
diff --git a/scripts/imx/imx-usb-loader.c b/scripts/imx/imx-usb-loader.c
index 81c0640bee..12a89f5825 100644
--- a/scripts/imx/imx-usb-loader.c
+++ b/scripts/imx/imx-usb-loader.c
@@ -326,7 +326,7 @@ static int transfer(struct libusb_device_handle *h, int report, unsigned char *p
memcpy(p, &tmp[1], *last_trans);
}
} else {
- printf("Unexpected report %i err=%i, cnt=%i, last_trans=%i, %02x %02x %02x %02x\n",
+ printf("Unexpected report %i err=%i, cnt=%u, last_trans=%i, %02x %02x %02x %02x\n",
tmp[0], err, cnt, *last_trans, tmp[0], tmp[1], tmp[2], tmp[3]);
err = 0;
}
@@ -475,7 +475,7 @@ static int read_memory(struct libusb_device_handle *h, struct usb_id *p_id,
tmp[0] = tmp[1] = tmp[2] = tmp[3] = 0;
err = transfer(h, 4, tmp, 64, &last_trans, p_id);
if (err) {
- printf("r4 in err=%i, last_trans=%i %02x %02x %02x %02x cnt=%d rem=%d\n",
+ printf("r4 in err=%i, last_trans=%i %02x %02x %02x %02x cnt=%u rem=%d\n",
err, last_trans, tmp[0], tmp[1], tmp[2], tmp[3], cnt, rem);
break;
}
@@ -483,7 +483,7 @@ static int read_memory(struct libusb_device_handle *h, struct usb_id *p_id,
if ((last_trans == 64) && (cnt == rem)) {
/* Last transfer is expected to be too large for HID */
} else {
- printf("err: %02x %02x %02x %02x cnt=%d rem=%d last_trans=%i\n",
+ printf("err: %02x %02x %02x %02x cnt=%u rem=%d last_trans=%i\n",
tmp[0], tmp[1], tmp[2], tmp[3], cnt, rem, last_trans);
}
last_trans = rem;
@@ -1247,7 +1247,7 @@ static int do_irom_download(struct libusb_device_handle *h, struct usb_id *p_id,
}
}
- printf("loading binary file(%s) to %08x, skip=0x%x, fsize=%d type=%d...\n",
+ printf("loading binary file(%s) to %08x, skip=0x%x, fsize=%u type=%d...\n",
curr->filename, dladdr, skip, fsize, type);
ret = load_file(h, p_id, p, cnt, buf, BUF_SIZE,
diff --git a/scripts/kwbimage.c b/scripts/kwbimage.c
index 4ebb07fe22..82cf21c4c8 100644
--- a/scripts/kwbimage.c
+++ b/scripts/kwbimage.c
@@ -685,6 +685,7 @@ static int image_create_payload(void *payload_start, size_t payloadsz,
const char *payload_filename)
{
FILE *payload;
+ struct stat s;
uint32_t *payload_checksum =
(uint32_t *) (payload_start + payloadsz);
int ret;
@@ -696,7 +697,14 @@ static int image_create_payload(void *payload_start, size_t payloadsz,
return -1;
}
- ret = fread(payload_start, payloadsz, 1, payload);
+ ret = stat(payload_filename, &s);
+ if (ret < 0) {
+ fprintf(stderr, "Cannot stat payload file %s\n",
+ payload_filename);
+ return ret;
+ }
+
+ ret = fread(payload_start, s.st_size, 1, payload);
if (ret != 1) {
fprintf(stderr, "Cannot read payload file %s\n",
payload_filename);
@@ -747,7 +755,8 @@ static void *image_create_v0(struct image_cfg_element *image_cfg,
return NULL;
}
- payloadsz = s.st_size;
+ /* payload size must be multiple of 32b */
+ payloadsz = 4 * ((s.st_size + 3)/4);
}
/* Headers, payload and 32-bits checksum */
@@ -875,7 +884,8 @@ static void *image_create_v1(struct image_cfg_element *image_cfg,
return NULL;
}
- payloadsz = s.st_size;
+ /* payload size must be multiple of 32b */
+ payloadsz = 4 * ((s.st_size + 3)/4);
}
/* The payload should be aligned on some reasonable
diff --git a/scripts/kwboot.c b/scripts/kwboot.c
index 33c94b3a8b..81da3e81bc 100644
--- a/scripts/kwboot.c
+++ b/scripts/kwboot.c
@@ -334,6 +334,7 @@ kwboot_xm_makeblock(struct kwboot_block *block, const void *data,
size_t n;
int i;
+ block->soh = SOH;
block->pnum = pnum;
block->_pnum = ~block->pnum;