diff --git a/arch/arm/boards/animeo_ip/init.c b/arch/arm/boards/animeo_ip/init.c index 2fee1ff..13dd948 100644 --- a/arch/arm/boards/animeo_ip/init.c +++ b/arch/arm/boards/animeo_ip/init.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91rm9200ek/init.c b/arch/arm/boards/at91rm9200ek/init.c index 2c8bf0e..b63b1f7 100644 --- a/arch/arm/boards/at91rm9200ek/init.c +++ b/arch/arm/boards/at91rm9200ek/init.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c index 00fc745..a0d81fc 100644 --- a/arch/arm/boards/at91sam9261ek/init.c +++ b/arch/arm/boards/at91sam9261ek/init.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9263ek/init.c b/arch/arm/boards/at91sam9263ek/init.c index a889b5a..ec59f72 100644 --- a/arch/arm/boards/at91sam9263ek/init.c +++ b/arch/arm/boards/at91sam9263ek/init.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9m10g45ek/init.c b/arch/arm/boards/at91sam9m10g45ek/init.c index 0ffbec2..d0a37a6 100644 --- a/arch/arm/boards/at91sam9m10g45ek/init.c +++ b/arch/arm/boards/at91sam9m10g45ek/init.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9m10ihd/init.c b/arch/arm/boards/at91sam9m10ihd/init.c index b75c51d..92b8874 100644 --- a/arch/arm/boards/at91sam9m10ihd/init.c +++ b/arch/arm/boards/at91sam9m10ihd/init.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9n12ek/init.c b/arch/arm/boards/at91sam9n12ek/init.c index 779e4f7..1912a1d 100644 --- a/arch/arm/boards/at91sam9n12ek/init.c +++ b/arch/arm/boards/at91sam9n12ek/init.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/at91sam9x5ek/init.c b/arch/arm/boards/at91sam9x5ek/init.c index c677e4d..87a401c 100644 --- a/arch/arm/boards/at91sam9x5ek/init.c +++ b/arch/arm/boards/at91sam9x5ek/init.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/dmo-mx6-realq7/board.c b/arch/arm/boards/dmo-mx6-realq7/board.c index a456389..1753bdd 100644 --- a/arch/arm/boards/dmo-mx6-realq7/board.c +++ b/arch/arm/boards/dmo-mx6-realq7/board.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/arch/arm/boards/dss11/init.c b/arch/arm/boards/dss11/init.c index 8e992f4..51b01c3 100644 --- a/arch/arm/boards/dss11/init.c +++ b/arch/arm/boards/dss11/init.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/efika-mx-smartbook/board.c b/arch/arm/boards/efika-mx-smartbook/board.c index 4469f97..0293c3e 100644 --- a/arch/arm/boards/efika-mx-smartbook/board.c +++ b/arch/arm/boards/efika-mx-smartbook/board.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include diff --git a/arch/arm/boards/freescale-mx51-pdk/board.c b/arch/arm/boards/freescale-mx51-pdk/board.c index ad09781..379313e 100644 --- a/arch/arm/boards/freescale-mx51-pdk/board.c +++ b/arch/arm/boards/freescale-mx51-pdk/board.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/boards/freescale-mx53-loco/board.c b/arch/arm/boards/freescale-mx53-loco/board.c index 15dc591..1f00ec0 100644 --- a/arch/arm/boards/freescale-mx53-loco/board.c +++ b/arch/arm/boards/freescale-mx53-loco/board.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include diff --git a/arch/arm/boards/gk802/board.c b/arch/arm/boards/gk802/board.c index fa5f320..a4be03f 100644 --- a/arch/arm/boards/gk802/board.c +++ b/arch/arm/boards/gk802/board.c @@ -25,6 +25,7 @@ #include #include #include +#include #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 a666b9d..506f420 100644 --- a/arch/arm/boards/mmccpu/init.c +++ b/arch/arm/boards/mmccpu/init.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/pm9261/init.c b/arch/arm/boards/pm9261/init.c index 8c039b7..e5dc995 100644 --- a/arch/arm/boards/pm9261/init.c +++ b/arch/arm/boards/pm9261/init.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/pm9263/init.c b/arch/arm/boards/pm9263/init.c index 3bc22f3..9d4cf38 100644 --- a/arch/arm/boards/pm9263/init.c +++ b/arch/arm/boards/pm9263/init.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c index 75fd8a4..9df98ab 100644 --- a/arch/arm/boards/pm9g45/init.c +++ b/arch/arm/boards/pm9g45/init.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/qil-a926x/init.c b/arch/arm/boards/qil-a926x/init.c index 4192923..6eb9e12 100644 --- a/arch/arm/boards/qil-a926x/init.c +++ b/arch/arm/boards/qil-a926x/init.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/sama5d3xek/init.c b/arch/arm/boards/sama5d3xek/init.c index 482c74a..f56ec54 100644 --- a/arch/arm/boards/sama5d3xek/init.c +++ b/arch/arm/boards/sama5d3xek/init.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/tny-a926x/init.c b/arch/arm/boards/tny-a926x/init.c index e3dd784..82a1c4a 100644 --- a/arch/arm/boards/tny-a926x/init.c +++ b/arch/arm/boards/tny-a926x/init.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/boards/tqma6x/board.c b/arch/arm/boards/tqma6x/board.c index 3e051a5..a870bf2 100644 --- a/arch/arm/boards/tqma6x/board.c +++ b/arch/arm/boards/tqma6x/board.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/arch/arm/boards/usb-a926x/init.c b/arch/arm/boards/usb-a926x/init.c index fd2603f..b57e289 100644 --- a/arch/arm/boards/usb-a926x/init.c +++ b/arch/arm/boards/usb-a926x/init.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c index 21c63c0..399e6b8 100644 --- a/arch/arm/cpu/start.c +++ b/arch/arm/cpu/start.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/dts/imx6q-phytec-pfla02.dtsi b/arch/arm/dts/imx6q-phytec-pfla02.dtsi index 9410065..d113f7f 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 c71c2ae..0000000 --- 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 - -#endif diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 6ab374e..e3eeb2c 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -342,7 +342,6 @@ Select this if you are using a Calao Systems QIL-A9G20 Board. - endchoice endif diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c index d740463..d12e8d9 100644 --- a/arch/arm/mach-at91/at91rm9200.c +++ b/arch/arm/mach-at91/at91rm9200.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include "soc.h" diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c index e3c2996..fbd7884 100644 --- a/arch/arm/mach-at91/at91sam9260.c +++ b/arch/arm/mach-at91/at91sam9260.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include "soc.h" diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c index bf2b5b7..ed6f9c4 100644 --- a/arch/arm/mach-at91/at91sam9260_devices.c +++ b/arch/arm/mach-at91/at91sam9260_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index c992f71..37a65ec 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include "soc.h" diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index 9ac9f20..ce539e9 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c index db4a705..35d187b 100644 --- a/arch/arm/mach-at91/at91sam9263.c +++ b/arch/arm/mach-at91/at91sam9263.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include "soc.h" diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index 6860ad0..1c9366a 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index e18458a..644dc34 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index bd7ab93..5af8761 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9n12.c b/arch/arm/mach-at91/at91sam9n12.c index 2a825b4..c551f9a 100644 --- a/arch/arm/mach-at91/at91sam9n12.c +++ b/arch/arm/mach-at91/at91sam9n12.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9n12_devices.c b/arch/arm/mach-at91/at91sam9n12_devices.c index 3616801..2d9ea4c 100644 --- a/arch/arm/mach-at91/at91sam9n12_devices.c +++ b/arch/arm/mach-at91/at91sam9n12_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9x5.c b/arch/arm/mach-at91/at91sam9x5.c index 9ddd592..000b748 100644 --- a/arch/arm/mach-at91/at91sam9x5.c +++ b/arch/arm/mach-at91/at91sam9x5.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/at91sam9x5_devices.c b/arch/arm/mach-at91/at91sam9x5_devices.c index f80c1af..2d05e94 100644 --- a/arch/arm/mach-at91/at91sam9x5_devices.c +++ b/arch/arm/mach-at91/at91sam9x5_devices.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index b111373..91de85d 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c @@ -438,7 +438,7 @@ 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 @@ } 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 aa681aa..1bfae14 100644 --- a/arch/arm/mach-at91/sama5d3.c +++ b/arch/arm/mach-at91/sama5d3.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c index 9cbc8c1..1938c05 100644 --- a/arch/arm/mach-at91/sama5d3_devices.c +++ b/arch/arm/mach-at91/sama5d3_devices.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index c405b27..3a1089f 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -185,8 +185,6 @@ 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_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 @@ 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 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 8c7ed1c..f389653 100644 --- a/arch/arm/mach-imx/clk-imx5.c +++ b/arch/arm/mach-imx/clk-imx5.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-imx/clk-imx6.c b/arch/arm/mach-imx/clk-imx6.c index 4639c0b..c32b6cc 100644 --- a/arch/arm/mach-imx/clk-imx6.c +++ b/arch/arm/mach-imx/clk-imx6.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-imx/clocksource.c b/arch/arm/mach-imx/clocksource.c index c04af63..dc29d20 100644 --- a/arch/arm/mach-imx/clocksource.c +++ b/arch/arm/mach-imx/clocksource.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c index e2025b3..3ac4075 100644 --- a/arch/arm/mach-imx/esdctl.c +++ b/arch/arm/mach-imx/esdctl.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c index 938c3f3..dccaaa9 100644 --- a/arch/arm/mach-imx/iim.c +++ b/arch/arm/mach-imx/iim.c @@ -24,7 +24,7 @@ #include #include #include - +#include #include #include diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c index a96b110..9861c07 100644 --- a/arch/arm/mach-imx/imx-bbu-internal.c +++ b/arch/arm/mach-imx/imx-bbu-internal.c @@ -360,7 +360,8 @@ 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 be44339..07d7ba1 100644 --- a/arch/arm/mach-imx/imx.c +++ b/arch/arm/mach-imx/imx.c @@ -12,6 +12,7 @@ */ #include +#include #include #include #include diff --git a/arch/arm/mach-imx/include/mach/bbu.h b/arch/arm/mach-imx/include/mach/bbu.h index 077133a..3cd3b1e 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 +#include 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 04feb84..e36b484 100644 --- a/arch/arm/mach-imx/ocotp.c +++ b/arch/arm/mach-imx/ocotp.c @@ -24,6 +24,7 @@ #include #include #include +#include /* * 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 b5d793e..a7f4ba9 100644 --- a/arch/arm/mach-mxs/bcb.c +++ b/arch/arm/mach-mxs/bcb.c @@ -179,7 +179,7 @@ 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 @@ 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 @@ 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 4faab37..c47c24c 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 b8b69b3..24295c5 100644 --- a/arch/arm/mach-mxs/iomux-imx.c +++ b/arch/arm/mach-mxs/iomux-imx.c @@ -99,7 +99,7 @@ /* 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 c5cac58..af32c9c 100644 --- a/arch/arm/mach-nomadik/8815.c +++ b/arch/arm/mach-nomadik/8815.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig index b2eec30..42ff384 100644 --- a/arch/arm/mach-omap/Kconfig +++ b/arch/arm/mach-omap/Kconfig @@ -95,8 +95,8 @@ 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 80cb0d9..dc5708c 100644 --- a/arch/ppc/mach-mpc85xx/Kconfig +++ b/arch/ppc/mach-mpc85xx/Kconfig @@ -48,10 +48,10 @@ 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 ee8dacf..824dda4 100644 --- a/commands/crc.c +++ b/commands/crc.c @@ -21,66 +21,8 @@ #include #include #include -#include -#include -#include #include -#include - -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 static int crc_from_file(const char* file, ulong *crc) { @@ -143,6 +85,9 @@ 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 15055e7..499994b 100644 --- a/commands/detect.c +++ b/commands/detect.c @@ -21,6 +21,7 @@ #include #include #include +#include static int do_detect(int argc, char *argv[]) { diff --git a/commands/filetype.c b/commands/filetype.c index 20d335b..f82a461 100644 --- a/commands/filetype.c +++ b/commands/filetype.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include static int do_filetype(int argc, char *argv[]) { diff --git a/commands/loadenv.c b/commands/loadenv.c index 14b9643..df0df27 100644 --- a/commands/loadenv.c +++ b/commands/loadenv.c @@ -24,6 +24,7 @@ #include #include #include +#include #include static int do_loadenv(int argc, char *argv[]) diff --git a/commands/nandtest.c b/commands/nandtest.c index f6e8f99..0da5444 100644 --- a/commands/nandtest.c +++ b/commands/nandtest.c @@ -163,8 +163,8 @@ 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 06edbc2..99a24a0 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -285,6 +285,7 @@ config LONGHELP bool + depends on !SHELL_NONE prompt "Enable long help texts" config CBSIZE @@ -292,11 +293,6 @@ 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 @@ 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 @@ 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 @@ '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 56bc864..329bc72 100644 --- a/common/console.c +++ b/common/console.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include diff --git a/common/globalvar.c b/common/globalvar.c index 41ce06e..1f9b0cc 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include diff --git a/common/memory_display.c b/common/memory_display.c index 7e4f4da..c8ae57a 100644 --- a/common/memory_display.c +++ b/common/memory_display.c @@ -1,4 +1,5 @@ #include +#include #define DISP_LINE_LEN 16 diff --git a/common/memtest.c b/common/memtest.c index 22178cf..5303c92 100644 --- a/common/memtest.c +++ b/common/memtest.c @@ -25,6 +25,7 @@ #include #include #include +#include #include static const resource_size_t bitpattern[] = { diff --git a/common/misc.c b/common/misc.c index f73f4cf..65f3306 100644 --- a/common/misc.c +++ b/common/misc.c @@ -22,6 +22,7 @@ #include #include #include +#include int errno; EXPORT_SYMBOL(errno); diff --git a/common/partitions/dos.c b/common/partitions/dos.c index 31b1ed6..37addfd 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 @@ 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 @@ { 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 @@ 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 2e0a4ba..74c7735 100644 --- a/common/startup.c +++ b/common/startup.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include diff --git a/crypto/crc32.c b/crypto/crc32.c index 275edb4..e7b1bd7 100644 --- a/crypto/crc32.c +++ b/crypto/crc32.c @@ -10,6 +10,12 @@ #ifdef __BAREBOX__ /* Shut down "ANSI does not permit..." warnings */ #include +#include +#include +#include +#include +#include +#include #endif #ifdef CONFIG_DYNAMIC_CRC_TABLE @@ -178,3 +184,57 @@ 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 f9cf2d1..9ba18a3 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -375,7 +376,7 @@ 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 a7f2647..3d5932e 100644 --- a/drivers/ata/ide-sff.c +++ b/drivers/ata/ide-sff.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/ata/pata-imx.c b/drivers/ata/pata-imx.c index 0e34806..7f9e39b 100644 --- a/drivers/ata/pata-imx.c +++ b/drivers/ata/pata-imx.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/drivers/ata/sata-imx.c b/drivers/ata/sata-imx.c index ef7989e..b7bd110 100644 --- a/drivers/ata/sata-imx.c +++ b/drivers/ata/sata-imx.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 4357020..b383d09 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -7,6 +7,7 @@ #include #include #include +#include LIST_HEAD(bus_list); EXPORT_SYMBOL(bus_list); diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 80e0ea8..4250fb0 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 34a79b2..e053ec7 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -20,6 +20,7 @@ #include #include #include +#include static int platform_probe(struct device_d *dev) { diff --git a/drivers/eeprom/at24.c b/drivers/eeprom/at24.c index 4b2afc4..5e5b359 100644 --- a/drivers/eeprom/at24.c +++ b/drivers/eeprom/at24.c @@ -435,6 +435,8 @@ 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 063a81c..a71492a 100644 --- a/drivers/gpio/gpio-imx.c +++ b/drivers/gpio/gpio-imx.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index c607bcb..f657c28 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/i2c/i2c.c b/drivers/i2c/i2c.c index ccc4844..3b9f601 100644 --- a/drivers/i2c/i2c.c +++ b/drivers/i2c/i2c.c @@ -22,6 +22,7 @@ #include #include #include +#include #include diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c index 8da7097..7664e7b 100644 --- a/drivers/mci/imx-esdhc.c +++ b/drivers/mci/imx-esdhc.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c index cfae91b..a232679 100644 --- a/drivers/mci/mci-core.c +++ b/drivers/mci/mci-core.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #define MAX_BUFFER_NUMBER 0xffffffff @@ -831,7 +832,7 @@ 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 1b935f7..bf928e8 100644 --- a/drivers/mci/mxs.c +++ b/drivers/mci/mxs.c @@ -570,6 +570,7 @@ /* 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 cf4c02a..bfbd328 100644 --- a/drivers/mfd/mc13xxx.c +++ b/drivers/mfd/mc13xxx.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mfd/stmpe-i2c.c b/drivers/mfd/stmpe-i2c.c index 3a2db92..c1e7d9e 100644 --- a/drivers/mfd/stmpe-i2c.c +++ b/drivers/mfd/stmpe-i2c.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c index f63b10e..33f900e 100644 --- a/drivers/mtd/core.c +++ b/drivers/mtd/core.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "mtd.h" diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 1e3bc93..9594011 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c index d785e33..cdc0120 100644 --- a/drivers/mtd/devices/mtd_dataflash.c +++ b/drivers/mtd/devices/mtd_dataflash.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 5d7d20f..c626416 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -62,7 +62,7 @@ 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 1a44278..6978e2a 100644 --- a/drivers/net/altera_tse.c +++ b/drivers/net/altera_tse.c @@ -376,7 +376,7 @@ 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 9ca9bce..309f4cb 100644 --- a/drivers/net/netx_eth.c +++ b/drivers/net/netx_eth.c @@ -86,7 +86,7 @@ #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 6163a50..87072be 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -82,7 +82,7 @@ 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 db00e38..2a33054 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -217,7 +217,7 @@ /* 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 @@ 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 @@ 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 @@ 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 1223c02..7fcbb98 100644 --- a/drivers/pinctrl/imx-iomux-v3.c +++ b/drivers/pinctrl/imx-iomux-v3.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/pinctrl/pinctrl.c b/drivers/pinctrl/pinctrl.c index 7c797d3..7f76d5a 100644 --- a/drivers/pinctrl/pinctrl.c +++ b/drivers/pinctrl/pinctrl.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include static LIST_HEAD(pinctrl_list); diff --git a/drivers/serial/serial_imx.c b/drivers/serial/serial_imx.c index 01c7cc7..8468fa0 100644 --- a/drivers/serial/serial_imx.c +++ b/drivers/serial/serial_imx.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c index 1c6b684..c0c2ed7 100644 --- a/drivers/spi/imx_spi.c +++ b/drivers/spi/imx_spi.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/usb/gadget/dfu.c b/drivers/usb/gadget/dfu.c index e051879..e15fc41 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 a0dab70..d8209d1 100644 --- a/drivers/usb/imx/chipidea-imx.c +++ b/drivers/usb/imx/chipidea-imx.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/usb/imx/imx-usb-misc.c b/drivers/usb/imx/imx-usb-misc.c index 68c8c4b..ed44d78 100644 --- a/drivers/usb/imx/imx-usb-misc.c +++ b/drivers/usb/imx/imx-usb-misc.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/usb/imx/imx-usb-phy.c b/drivers/usb/imx/imx-usb-phy.c index 776bfe5..a573c7f 100644 --- a/drivers/usb/imx/imx-usb-phy.c +++ b/drivers/usb/imx/imx-usb-phy.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c index 78f0f38..f5910ac 100644 --- a/drivers/watchdog/imxwd.c +++ b/drivers/watchdog/imxwd.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/include/common.h b/include/common.h index 00f1642..293f504 100644 --- a/include/common.h +++ b/include/common.h @@ -115,6 +115,8 @@ /* 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 1735b49..402e497 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -12,6 +12,7 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS #include +#include #include #include #include diff --git a/include/mci.h b/include/mci.h index 07ac273..0f10e8a 100644 --- a/include/mci.h +++ b/include/mci.h @@ -286,7 +286,7 @@ 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 dcf3095..6943a1c 100644 --- a/lib/gui/bmp.c +++ b/lib/gui/bmp.c @@ -19,8 +19,8 @@ } 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 393a732..256db35 100644 --- a/lib/gui/png_pico.c +++ b/lib/gui/png_pico.c @@ -57,7 +57,7 @@ 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 5a68f5e..a4731ed 100644 --- a/lib/math.c +++ b/lib/math.c @@ -118,6 +118,7 @@ #include #include #include +#include #include #define lookupvar (math_state->lookupvar) diff --git a/lib/unlink-recursive.c b/lib/unlink-recursive.c index a488553..8f7812f 100644 --- a/lib/unlink-recursive.c +++ b/lib/unlink-recursive.c @@ -1,4 +1,5 @@ #include +#include #include #include diff --git a/net/dns.c b/net/dns.c index eb96c57..afd2663 100644 --- a/net/dns.c +++ b/net/dns.c @@ -127,7 +127,7 @@ 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 3867453..37dd9e0 100644 --- a/net/eth.c +++ b/net/eth.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include diff --git a/net/net.c b/net/net.c index 058a4d3..9ef0784 100644 --- a/net/net.c +++ b/net/net.c @@ -433,7 +433,7 @@ 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 b88f8d8..fac394d 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -10,3 +10,5 @@ omap_signGP zynq_mkimage socfpga_mkimage +bareboxcrc32 +bareboxcrc32-target diff --git a/scripts/Makefile b/scripts/Makefile index 2f78c4b..3908c1d 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -8,6 +8,7 @@ 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 @@ 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 0000000..e00ffaf --- /dev/null +++ b/scripts/bareboxcrc32.c @@ -0,0 +1,60 @@ +/* + * bareboxcrc32.c - generate crc32 checksum in little endian + * + * Copyright (c) 2013 Michael Grzeschik + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 f372685..da420db 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 53f84b6..0891c3b 100644 --- a/scripts/compiler.h +++ b/scripts/compiler.h @@ -107,4 +107,29 @@ # 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 81c0640..12a89f5 100644 --- a/scripts/imx/imx-usb-loader.c +++ b/scripts/imx/imx-usb-loader.c @@ -326,7 +326,7 @@ 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 @@ 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 @@ 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 @@ } } - 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 4ebb07f..82cf21c 100644 --- a/scripts/kwbimage.c +++ b/scripts/kwbimage.c @@ -685,6 +685,7 @@ const char *payload_filename) { FILE *payload; + struct stat s; uint32_t *payload_checksum = (uint32_t *) (payload_start + payloadsz); int ret; @@ -696,7 +697,14 @@ 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 @@ 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 @@ 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 33c94b3..81da3e8 100644 --- a/scripts/kwboot.c +++ b/scripts/kwboot.c @@ -334,6 +334,7 @@ size_t n; int i; + block->soh = SOH; block->pnum = pnum; block->_pnum = ~block->pnum;