diff options
301 files changed, 1195 insertions, 699 deletions
diff --git a/.gitignore b/.gitignore index 5d9157d85d..03c5e20189 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,6 @@ barebox_default_env* # # Generated include files # -include/asm include/asm-*/asm-offsets.h include/config include/linux/compile.h diff --git a/Documentation/boards/bcm2835.rst b/Documentation/boards/bcm2835.rst new file mode 100644 index 0000000000..13cebb01c4 --- /dev/null +++ b/Documentation/boards/bcm2835.rst @@ -0,0 +1,17 @@ +Broadcom BCM2835 +================ + +Raspberry Pi +------------ + + 1. Prepare a card with a FAT filesystem. Download a tiny NOOBS LITE + zip archive and unpack it into FAT partition. + See http://www.raspberrypi.org/help/noobs-setup/ for details. + + 2. Compile ``barebox.bin`` image (use ``rpi_defconfig``). + Copy it to the SD/microSD card and name it ``recovery.img``. + + 3. Connect to board's UART (115200 8N1); + Use PIN6 (GND), PIN8 (UART_TX), PIN10 (UART_RX) pins. + + 4. Turn board's power on. diff --git a/Kbuild b/Kbuild new file mode 100644 index 0000000000..329609604f --- /dev/null +++ b/Kbuild @@ -0,0 +1,43 @@ +##### +# 1) Generate asm-offsets.h +# + +offsets-file := include/generated/asm-offsets.h + +always += $(offsets-file) +targets += $(offsets-file) +targets += arch/$(SRCARCH)/lib/asm-offsets.s + + +# Default sed regexp - multiline due to syntax constraints +define sed-y + "/^->/{s:->#\(.*\):/* \1 */:; \ + s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:->::; p;}" +endef + +quiet_cmd_offsets = GEN $@ +define cmd_offsets + (set -e; \ + echo "#ifndef __ASM_OFFSETS_H__"; \ + echo "#define __ASM_OFFSETS_H__"; \ + echo "/*"; \ + echo " * DO NOT MODIFY."; \ + echo " *"; \ + echo " * This file was generated by Kbuild"; \ + echo " *"; \ + echo " */"; \ + echo ""; \ + sed -ne $(sed-y) $<; \ + echo ""; \ + echo "#endif" ) > $@ +endef + +# We use internal kbuild rules to avoid the "is up to date" message from make +arch/$(SRCARCH)/lib/asm-offsets.s: arch/$(SRCARCH)/lib/asm-offsets.c FORCE + $(Q)mkdir -p $(dir $@) + $(call if_changed_dep,cc_s_c) + +$(obj)/$(offsets-file): arch/$(SRCARCH)/lib/asm-offsets.s Kbuild + $(call cmd,offsets) @@ -1,5 +1,5 @@ -VERSION = 2014 -PATCHLEVEL = 12 +VERSION = 2015 +PATCHLEVEL = 01 SUBLEVEL = 0 EXTRAVERSION = NAME = None @@ -112,9 +112,10 @@ ifneq ($(KBUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # check that the output directory actually exists saved-output := $(KBUILD_OUTPUT) -KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd) +KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ + && /bin/pwd) $(if $(KBUILD_OUTPUT),, \ - $(error output directory "$(saved-output)" does not exist)) + $(error failed to create output directory "$(saved-output)")) PHONY += $(MAKECMDGOALS) @@ -291,10 +292,9 @@ export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_ve # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option LINUXINCLUDE := -Iinclude -I$(srctree)/dts/include \ - $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \ + $(if $(KBUILD_SRC), -I$(srctree)/include) \ -I$(srctree)/arch/$(ARCH)/include \ -I$(objtree)/arch/$(ARCH)/include \ - -include include/generated/autoconf.h \ -include $(srctree)/include/linux/kconfig.h CPPFLAGS := -D__KERNEL__ -D__BAREBOX__ $(LINUXINCLUDE) -fno-builtin -ffreestanding @@ -790,7 +790,6 @@ PHONY += prepare-all # prepare3 is used to check if we are building in a separate output directory, # and if so do: # 1) Check that make has not been executed in the kernel src $(srctree) -# 2) Create the include2 directory, used for the second asm symlink prepare3: include/config/kernel.release ifneq ($(KBUILD_SRC),) @echo ' Using $(srctree) as source for kernel' @@ -799,17 +798,13 @@ ifneq ($(KBUILD_SRC),) echo " in the '$(srctree)' directory.";\ false; \ fi; - $(Q)if [ ! -d include2 ]; then mkdir -p include2; fi; - $(Q)if [ -e $(srctree)/include/asm-$(SRCARCH)/barebox.h ]; then \ - ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \ - fi endif # prepare2 creates a makefile if using a separate output directory prepare2: prepare3 outputmakefile prepare1: prepare2 include/generated/version.h include/generated/utsrelease.h \ - include/asm include/config.h include/config/auto.conf + include/config.h include/config/auto.conf ifneq ($(KBUILD_MODULES),) $(Q)mkdir -p $(MODVERDIR) @@ -829,39 +824,6 @@ prepare prepare-all: prepare0 export CPPFLAGS_barebox.lds += -C -U$(ARCH) -# FIXME: The asm symlink changes when $(ARCH) changes. That's -# hard to detect, but I suppose "make mrproper" is a good idea -# before switching between archs anyway. - -define check-symlink - set -e; \ - if [ -L include/asm ]; then \ - asmlink=`readlink include/asm | cut -d '-' -f 2`; \ - if [ "$$asmlink" != "$(SRCARCH)" ]; then \ - echo "ERROR: the symlink $@ points to asm-$$asmlink but asm-$(SRCARCH) was expected"; \ - echo " set ARCH or save .config and run 'make mrproper' to fix it"; \ - exit 1; \ - fi; \ - fi -endef - -# We create the target directory of the symlink if it does -# not exist so the test in chack-symlink works and we have a -# directory for generated filesas used by some architectures. -define create-symlink - if [ ! -L include/asm ]; then \ - $(kecho) ' SYMLINK $@ -> include/asm-$(SRCARCH)'; \ - if [ ! -d include/asm-$(SRCARCH) ]; then \ - mkdir -p include/asm-$(SRCARCH); \ - fi; \ - ln -fsn asm-$(SRCARCH) $@; \ - fi -endef - -include/asm: - $(Q)$(check-symlink) - $(Q)$(create-symlink) - define symlink-config-h if [ -f $(srctree)/$(BOARD)/config.h ]; then \ $(kecho) ' SYMLINK $@ -> $(BOARD)/config.h'; \ @@ -998,10 +960,9 @@ CLEAN_FILES += barebox System.map include/generated/barebox_default_env.h \ barebox.efi barebox.canon-a1100.bin # Directories & files removed with 'make mrproper' -MRPROPER_DIRS += include/config include2 usr/include -MRPROPER_FILES += .config .config.old include/asm .version .old_version \ - include/generated/autoconf.h include/generated/version.h \ - include/generated/utsrelease.h include/config.h \ +MRPROPER_DIRS += include/config usr/include include/generated +MRPROPER_FILES += .config .config.old .version .old_version \ + include/config.h \ Module.symvers tags TAGS cscope* # clean - Delete most, but leave enough to build external modules @@ -4,7 +4,6 @@ TODO [ ] ask jbe about: ./commands/Makefile:40:obj-$(CONFIG_SIMPLE_PARSER) += setenv.o [ ] bark on partition not ending on flash sector boundaries -[ ] distclean doesn't work without a config [ ] Every driver should have a remove function. (It must have. Currently there is no provision to given to remove my interrupt handlers and to reset all hardware in use, before the target @@ -108,3 +107,4 @@ DONE countdown -m msg -t timeout -x [ctrl-c|anykey|string] If done, remove the corresponding stuff from common/main.c [X] Board support should go to arch/*/boards/* +[X] distclean doesn't work without a config diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4aa6afec1e..09bbe05bad 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -53,6 +53,7 @@ config ARCH_BCM2835 select COMMON_CLK select CLOCKSOURCE_BCM2835 select ARM_AMBA + select HAS_DEBUG_LL config ARCH_CLPS711X bool "Cirrus Logic EP711x/EP721x/EP731x" @@ -188,9 +189,9 @@ config ARCH_S3C64xx config ARCH_VERSATILE bool "ARM Versatile boards (ARM926EJ-S)" - select CPU_ARM926T select GPIOLIB select HAVE_CLK + select HAS_DEBUG_LL config ARCH_VEXPRESS bool "ARM Vexpres boards" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index cf81c9c083..193f731e90 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -105,11 +105,9 @@ TEXT_BASE = $(CONFIG_TEXT_BASE) CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -ifndef CONFIG_MODULES # Add cleanup flags CPPFLAGS += -fdata-sections -ffunction-sections LDFLAGS_barebox += -static --gc-sections -endif ifdef CONFIG_RELOCATABLE LDFLAGS_barebox += -pie diff --git a/arch/arm/boards/a9m2410/lowlevel_init.S b/arch/arm/boards/a9m2410/lowlevel_init.S index 57d63e8de3..b772b1f7f0 100644 --- a/arch/arm/boards/a9m2410/lowlevel_init.S +++ b/arch/arm/boards/a9m2410/lowlevel_init.S @@ -3,7 +3,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/s3c-iomap.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/a9m2440/lowlevel_init.S b/arch/arm/boards/a9m2440/lowlevel_init.S index 87112011bc..2c51e05806 100644 --- a/arch/arm/boards/a9m2440/lowlevel_init.S +++ b/arch/arm/boards/a9m2440/lowlevel_init.S @@ -3,7 +3,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/s3c-iomap.h> #include <mach/s3c24xx-gpio.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/afi-gf/board.c b/arch/arm/boards/afi-gf/board.c index dfcb579f24..14e2603910 100644 --- a/arch/arm/boards/afi-gf/board.c +++ b/arch/arm/boards/afi-gf/board.c @@ -16,7 +16,7 @@ #include <common.h> #include <string.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <envfs.h> #include <bootsource.h> #include <asm/armlinux.h> diff --git a/arch/arm/boards/afi-gf/lowlevel.c b/arch/arm/boards/afi-gf/lowlevel.c index fdc340c057..4aaecb9e88 100644 --- a/arch/arm/boards/afi-gf/lowlevel.c +++ b/arch/arm/boards/afi-gf/lowlevel.c @@ -1,5 +1,5 @@ #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/armlinux.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/animeo_ip/init.c b/arch/arm/boards/animeo_ip/init.c index ca64d6df83..0fda01363c 100644 --- a/arch/arm/boards/animeo_ip/init.c +++ b/arch/arm/boards/animeo_ip/init.c @@ -17,7 +17,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <linux/clk.h> #include <mach/board.h> @@ -93,6 +93,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .bus_width_16 = 0, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/archosg9/board.c b/arch/arm/boards/archosg9/board.c index 114c34ec24..0a3c0b9d98 100644 --- a/arch/arm/boards/archosg9/board.c +++ b/arch/arm/boards/archosg9/board.c @@ -18,7 +18,7 @@ #include <mach/omap4-silicon.h> #include <mach/omap4-devices.h> #include <mach/omap4_rom_usb.h> -#include <sizes.h> +#include <linux/sizes.h> #include <i2c/i2c.h> #include <gpio.h> #include <gpio_keys.h> diff --git a/arch/arm/boards/archosg9/lowlevel.c b/arch/arm/boards/archosg9/lowlevel.c index 6813e0d18a..c76d04b905 100644 --- a/arch/arm/boards/archosg9/lowlevel.c +++ b/arch/arm/boards/archosg9/lowlevel.c @@ -13,7 +13,7 @@ #include <common.h> #include <io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <mach/omap4-mux.h> #include <mach/omap4-silicon.h> diff --git a/arch/arm/boards/at91rm9200ek/init.c b/arch/arm/boards/at91rm9200ek/init.c index c444669ff8..43c8b1b055 100644 --- a/arch/arm/boards/at91rm9200ek/init.c +++ b/arch/arm/boards/at91rm9200ek/init.c @@ -25,7 +25,7 @@ #include <gpio.h> #include <fcntl.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/hardware.h> #include <mach/at91_pmc.h> #include <mach/board.h> diff --git a/arch/arm/boards/at91sam9260ek/init.c b/arch/arm/boards/at91sam9260ek/init.c index bc0c411d3a..422feb2098 100644 --- a/arch/arm/boards/at91sam9260ek/init.c +++ b/arch/arm/boards/at91sam9260ek/init.c @@ -19,7 +19,7 @@ #include <generated/mach-types.h> #include <nand.h> #include <linux/mtd/nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> #include <gpio.h> diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c index 7b8ce98d5d..a0b0219191 100644 --- a/arch/arm/boards/at91sam9261ek/init.c +++ b/arch/arm/boards/at91sam9261ek/init.c @@ -26,7 +26,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/at91_pmc.h> #include <mach/board.h> diff --git a/arch/arm/boards/at91sam9263ek/init.c b/arch/arm/boards/at91sam9263ek/init.c index c8a9d5c005..3bb2ddafa3 100644 --- a/arch/arm/boards/at91sam9263ek/init.c +++ b/arch/arm/boards/at91sam9263ek/init.c @@ -28,7 +28,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/at91_pmc.h> #include <mach/board.h> diff --git a/arch/arm/boards/at91sam9m10g45ek/init.c b/arch/arm/boards/at91sam9m10g45ek/init.c index cdd7806848..e00908bc39 100644 --- a/arch/arm/boards/at91sam9m10g45ek/init.c +++ b/arch/arm/boards/at91sam9m10g45ek/init.c @@ -30,7 +30,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/at91_pmc.h> #include <mach/board.h> diff --git a/arch/arm/boards/at91sam9m10ihd/init.c b/arch/arm/boards/at91sam9m10ihd/init.c index a432e5c411..dcd93c10b3 100644 --- a/arch/arm/boards/at91sam9m10ihd/init.c +++ b/arch/arm/boards/at91sam9m10ihd/init.c @@ -17,7 +17,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <gpio.h> diff --git a/arch/arm/boards/at91sam9n12ek/init.c b/arch/arm/boards/at91sam9n12ek/init.c index 818a598907..26d08ae659 100644 --- a/arch/arm/boards/at91sam9n12ek/init.c +++ b/arch/arm/boards/at91sam9n12ek/init.c @@ -27,7 +27,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/at91sam9x5ek/init.c b/arch/arm/boards/at91sam9x5ek/init.c index 183ddc7052..e0c11a11e1 100644 --- a/arch/arm/boards/at91sam9x5ek/init.c +++ b/arch/arm/boards/at91sam9x5ek/init.c @@ -27,7 +27,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/avnet-zedboard/board.c b/arch/arm/boards/avnet-zedboard/board.c index ef9a8a878c..722bda302e 100644 --- a/arch/arm/boards/avnet-zedboard/board.c +++ b/arch/arm/boards/avnet-zedboard/board.c @@ -19,7 +19,7 @@ #include <init.h> #include <mach/devices.h> #include <mach/zynq7000-regs.h> -#include <sizes.h> +#include <linux/sizes.h> static int zedboard_mem_init(void) { diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c index 4054960581..775621069c 100644 --- a/arch/arm/boards/beagle/board.c +++ b/arch/arm/boards/beagle/board.c @@ -19,7 +19,7 @@ #include <console.h> #include <init.h> #include <driver.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <ns16550.h> #include <asm/armlinux.h> diff --git a/arch/arm/boards/beagle/lowlevel.c b/arch/arm/boards/beagle/lowlevel.c index 62c98a9cec..d6e6b9f91c 100644 --- a/arch/arm/boards/beagle/lowlevel.c +++ b/arch/arm/boards/beagle/lowlevel.c @@ -1,6 +1,6 @@ #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/control.h> diff --git a/arch/arm/boards/beaglebone/board.c b/arch/arm/boards/beaglebone/board.c index 3042189f6d..4e0e3745bb 100644 --- a/arch/arm/boards/beaglebone/board.c +++ b/arch/arm/boards/beaglebone/board.c @@ -27,7 +27,7 @@ #include <envfs.h> #include <environment.h> #include <globalvar.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <envfs.h> #include <bootsource.h> @@ -92,6 +92,9 @@ static int beaglebone_devices_init(void) armlinux_set_architecture(MACH_TYPE_BEAGLEBONE); + if (IS_ENABLED(CONFIG_SHELL_NONE)) + return am33xx_of_register_bootdevice(); + return 0; } coredevice_initcall(beaglebone_devices_init); diff --git a/arch/arm/boards/beaglebone/lowlevel.c b/arch/arm/boards/beaglebone/lowlevel.c index a742bbf7af..05b3e5f157 100644 --- a/arch/arm/boards/beaglebone/lowlevel.c +++ b/arch/arm/boards/beaglebone/lowlevel.c @@ -1,5 +1,5 @@ #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <linux/string.h> #include <debug_ll.h> diff --git a/arch/arm/boards/boundarydevices-nitrogen6x/lowlevel.c b/arch/arm/boards/boundarydevices-nitrogen6x/lowlevel.c index a32e29c3e4..7d859330f9 100644 --- a/arch/arm/boards/boundarydevices-nitrogen6x/lowlevel.c +++ b/arch/arm/boards/boundarydevices-nitrogen6x/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/canon-a1100/lowlevel.c b/arch/arm/boards/canon-a1100/lowlevel.c index bbae825661..5f4297ea4c 100644 --- a/arch/arm/boards/canon-a1100/lowlevel.c +++ b/arch/arm/boards/canon-a1100/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/ccxmx51/ccxmx51.c b/arch/arm/boards/ccxmx51/ccxmx51.c index 0960d1ecf7..40cf76dc5a 100644 --- a/arch/arm/boards/ccxmx51/ccxmx51.c +++ b/arch/arm/boards/ccxmx51/ccxmx51.c @@ -26,7 +26,7 @@ #include <partition.h> #include <fs.h> #include <fcntl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <nand.h> #include <notifier.h> #include <spi/spi.h> diff --git a/arch/arm/boards/chumby_falconwing/falconwing.c b/arch/arm/boards/chumby_falconwing/falconwing.c index 2e5fca5f50..5e569bcc9a 100644 --- a/arch/arm/boards/chumby_falconwing/falconwing.c +++ b/arch/arm/boards/chumby_falconwing/falconwing.c @@ -19,7 +19,7 @@ #include <envfs.h> #include <errno.h> #include <mci.h> -#include <sizes.h> +#include <linux/sizes.h> #include <usb/ehci.h> #include <asm/armlinux.h> #include <io.h> diff --git a/arch/arm/boards/chumby_falconwing/lowlevel.c b/arch/arm/boards/chumby_falconwing/lowlevel.c index d26562c02b..bfc76cc7d4 100644 --- a/arch/arm/boards/chumby_falconwing/lowlevel.c +++ b/arch/arm/boards/chumby_falconwing/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx23-regs.h> diff --git a/arch/arm/boards/clep7212/clep7212.c b/arch/arm/boards/clep7212/clep7212.c index e521643912..de125ea9ee 100644 --- a/arch/arm/boards/clep7212/clep7212.c +++ b/arch/arm/boards/clep7212/clep7212.c @@ -12,7 +12,7 @@ #include <init.h> #include <partition.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/armlinux.h> #include <asm/mmu.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c b/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c index e6ebe82076..1412eff4a7 100644 --- a/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c +++ b/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c @@ -25,7 +25,7 @@ #include <mci.h> #include <io.h> #include <net.h> -#include <sizes.h> +#include <linux/sizes.h> #include <i2c/i2c.h> #include <i2c/i2c-gpio.h> diff --git a/arch/arm/boards/crystalfontz-cfa10036/lowlevel.c b/arch/arm/boards/crystalfontz-cfa10036/lowlevel.c index aa3b09b2ee..3c7248ef65 100644 --- a/arch/arm/boards/crystalfontz-cfa10036/lowlevel.c +++ b/arch/arm/boards/crystalfontz-cfa10036/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx28-regs.h> diff --git a/arch/arm/boards/datamodul-edm-qmx6/Makefile b/arch/arm/boards/datamodul-edm-qmx6/Makefile index bb6d9d848d..01c7a259e9 100644 --- a/arch/arm/boards/datamodul-edm-qmx6/Makefile +++ b/arch/arm/boards/datamodul-edm-qmx6/Makefile @@ -1,2 +1,2 @@ -obj-y += board.o lowlevel.o -pbl-y += lowlevel.o +obj-y += board.o +lwl-y += lowlevel.o diff --git a/arch/arm/boards/datamodul-edm-qmx6/board.c b/arch/arm/boards/datamodul-edm-qmx6/board.c index 25f45dfcc0..81356e61c0 100644 --- a/arch/arm/boards/datamodul-edm-qmx6/board.c +++ b/arch/arm/boards/datamodul-edm-qmx6/board.c @@ -23,7 +23,7 @@ #include <partition.h> #include <common.h> #include <envfs.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <gpio.h> #include <fec.h> diff --git a/arch/arm/boards/datamodul-edm-qmx6/lowlevel.c b/arch/arm/boards/datamodul-edm-qmx6/lowlevel.c index 914c275b88..28b4aa280d 100644 --- a/arch/arm/boards/datamodul-edm-qmx6/lowlevel.c +++ b/arch/arm/boards/datamodul-edm-qmx6/lowlevel.c @@ -13,7 +13,7 @@ * */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <debug_ll.h> #include <asm/sections.h> diff --git a/arch/arm/boards/dfi-fs700-m60/board.c b/arch/arm/boards/dfi-fs700-m60/board.c index e0dc5b242e..bef4612d9e 100644 --- a/arch/arm/boards/dfi-fs700-m60/board.c +++ b/arch/arm/boards/dfi-fs700-m60/board.c @@ -23,7 +23,7 @@ #include <bootsource.h> #include <globalvar.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <envfs.h> #include <init.h> #include <gpio.h> diff --git a/arch/arm/boards/dfi-fs700-m60/lowlevel.c b/arch/arm/boards/dfi-fs700-m60/lowlevel.c index 81b3530468..b9b498e463 100644 --- a/arch/arm/boards/dfi-fs700-m60/lowlevel.c +++ b/arch/arm/boards/dfi-fs700-m60/lowlevel.c @@ -13,7 +13,7 @@ * */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/sections.h> #include <asm/mmu.h> diff --git a/arch/arm/boards/ebv-socrates/board.c b/arch/arm/boards/ebv-socrates/board.c index b2f62dc2f3..5d2d619914 100644 --- a/arch/arm/boards/ebv-socrates/board.c +++ b/arch/arm/boards/ebv-socrates/board.c @@ -5,7 +5,7 @@ #include <asm/armlinux.h> #include <linux/micrel_phy.h> #include <linux/phy.h> -#include <sizes.h> +#include <linux/sizes.h> #include <fcntl.h> #include <fs.h> #include <mach/socfpga-regs.h> diff --git a/arch/arm/boards/ebv-socrates/lowlevel.c b/arch/arm/boards/ebv-socrates/lowlevel.c index 7fc81678ef..66cb226b21 100644 --- a/arch/arm/boards/ebv-socrates/lowlevel.c +++ b/arch/arm/boards/ebv-socrates/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/efika-mx-smartbook/board.c b/arch/arm/boards/efika-mx-smartbook/board.c index 99efd666f9..4a38afd27b 100644 --- a/arch/arm/boards/efika-mx-smartbook/board.c +++ b/arch/arm/boards/efika-mx-smartbook/board.c @@ -246,6 +246,8 @@ static int efikamx_late_init(void) for (i = 0; i < ARRAY_SIZE(leds); i++) led_gpio_register(&leds[i]); + led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[0].led); + writew(0x0, MX51_WDOG_BASE_ADDR + 0x8); imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc1", diff --git a/arch/arm/boards/embedsky-e9/board.c b/arch/arm/boards/embedsky-e9/board.c index 55b4320219..1e7e06788a 100644 --- a/arch/arm/boards/embedsky-e9/board.c +++ b/arch/arm/boards/embedsky-e9/board.c @@ -31,7 +31,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <mach/imx6.h> #include <mach/devices-imx6.h> diff --git a/arch/arm/boards/embedsky-e9/lowlevel.c b/arch/arm/boards/embedsky-e9/lowlevel.c index fee1011700..fb1ba5f64a 100644 --- a/arch/arm/boards/embedsky-e9/lowlevel.c +++ b/arch/arm/boards/embedsky-e9/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/embest-riotboard/board.c b/arch/arm/boards/embest-riotboard/board.c index 3f5b4dec51..a885a08a70 100644 --- a/arch/arm/boards/embest-riotboard/board.c +++ b/arch/arm/boards/embest-riotboard/board.c @@ -26,7 +26,7 @@ #include <mach/imx6.h> #include <mach/bbu.h> #include <mfd/imx6q-iomuxc-gpr.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/phy.h> static int ar8035_phy_fixup(struct phy_device *dev) diff --git a/arch/arm/boards/embest-riotboard/lowlevel.c b/arch/arm/boards/embest-riotboard/lowlevel.c index c4ef28786e..fe21b9aadc 100644 --- a/arch/arm/boards/embest-riotboard/lowlevel.c +++ b/arch/arm/boards/embest-riotboard/lowlevel.c @@ -1,6 +1,6 @@ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/freescale-mx21-ads/imx21ads.c b/arch/arm/boards/freescale-mx21-ads/imx21ads.c index bd7e46e161..5f0e7bda63 100644 --- a/arch/arm/boards/freescale-mx21-ads/imx21ads.c +++ b/arch/arm/boards/freescale-mx21-ads/imx21ads.c @@ -30,7 +30,7 @@ #include <mach/weim.h> #include <partition.h> #include <fs.h> -#include <sizes.h> +#include <linux/sizes.h> #include <fcntl.h> #include <generated/mach-types.h> #include <mach/imx-nand.h> diff --git a/arch/arm/boards/freescale-mx21-ads/lowlevel_init.S b/arch/arm/boards/freescale-mx21-ads/lowlevel_init.S index 87b2f942ff..16739b5577 100644 --- a/arch/arm/boards/freescale-mx21-ads/lowlevel_init.S +++ b/arch/arm/boards/freescale-mx21-ads/lowlevel_init.S @@ -14,7 +14,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm-generic/memory_layout.h> #include <mach/imx21-regs.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/freescale-mx23-evk/lowlevel.c b/arch/arm/boards/freescale-mx23-evk/lowlevel.c index 2a26a7763e..b260f3a7fa 100644 --- a/arch/arm/boards/freescale-mx23-evk/lowlevel.c +++ b/arch/arm/boards/freescale-mx23-evk/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx23-regs.h> diff --git a/arch/arm/boards/freescale-mx28-evk/lowlevel.c b/arch/arm/boards/freescale-mx28-evk/lowlevel.c index aa3b09b2ee..3c7248ef65 100644 --- a/arch/arm/boards/freescale-mx28-evk/lowlevel.c +++ b/arch/arm/boards/freescale-mx28-evk/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx28-regs.h> diff --git a/arch/arm/boards/freescale-mx35-3ds/3stack.c b/arch/arm/boards/freescale-mx35-3ds/3stack.c index 8f821adb73..cca0fe49eb 100644 --- a/arch/arm/boards/freescale-mx35-3ds/3stack.c +++ b/arch/arm/boards/freescale-mx35-3ds/3stack.c @@ -30,7 +30,7 @@ #include <init.h> #include <nand.h> #include <net.h> -#include <sizes.h> +#include <linux/sizes.h> #include <partition.h> #include <gpio.h> diff --git a/arch/arm/boards/freescale-mx53-qsb/board.c b/arch/arm/boards/freescale-mx53-qsb/board.c index 1128e686bc..f65b55658f 100644 --- a/arch/arm/boards/freescale-mx53-qsb/board.c +++ b/arch/arm/boards/freescale-mx53-qsb/board.c @@ -17,7 +17,7 @@ #include <environment.h> #include <partition.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <init.h> #include <fs.h> diff --git a/arch/arm/boards/freescale-mx53-smd/board.c b/arch/arm/boards/freescale-mx53-smd/board.c index c81f43c158..196d20a45d 100644 --- a/arch/arm/boards/freescale-mx53-smd/board.c +++ b/arch/arm/boards/freescale-mx53-smd/board.c @@ -23,7 +23,7 @@ #include <nand.h> #include <net.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/freescale-mx53-vmx53/board.c b/arch/arm/boards/freescale-mx53-vmx53/board.c index b91bfdf5ed..1859aaca26 100644 --- a/arch/arm/boards/freescale-mx53-vmx53/board.c +++ b/arch/arm/boards/freescale-mx53-vmx53/board.c @@ -18,7 +18,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <generated/mach-types.h> #include <mach/imx5.h> diff --git a/arch/arm/boards/freescale-mx6-arm2/board.c b/arch/arm/boards/freescale-mx6-arm2/board.c index 7a78400f2e..3d5576c065 100644 --- a/arch/arm/boards/freescale-mx6-arm2/board.c +++ b/arch/arm/boards/freescale-mx6-arm2/board.c @@ -25,7 +25,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx6.h> #include <mach/devices-imx6.h> #include <mach/iomux-mx6.h> diff --git a/arch/arm/boards/freescale-mx6-arm2/lowlevel.c b/arch/arm/boards/freescale-mx6-arm2/lowlevel.c index 5676711a13..f833893335 100644 --- a/arch/arm/boards/freescale-mx6-arm2/lowlevel.c +++ b/arch/arm/boards/freescale-mx6-arm2/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/generic.h> diff --git a/arch/arm/boards/freescale-mx6-sabrelite/board.c b/arch/arm/boards/freescale-mx6-sabrelite/board.c index 1f26548058..edf081140c 100644 --- a/arch/arm/boards/freescale-mx6-sabrelite/board.c +++ b/arch/arm/boards/freescale-mx6-sabrelite/board.c @@ -28,7 +28,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <linux/micrel_phy.h> #include <mach/imx6.h> diff --git a/arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c b/arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c index 1b4796571a..abfb77a157 100644 --- a/arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c +++ b/arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/freescale-mx6-sabresd/board.c b/arch/arm/boards/freescale-mx6-sabresd/board.c index 53aada7bba..734adde070 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/board.c +++ b/arch/arm/boards/freescale-mx6-sabresd/board.c @@ -28,7 +28,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <mach/imx6.h> #include <mach/devices-imx6.h> diff --git a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c index bf1845912e..73eed1d068 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c +++ b/arch/arm/boards/freescale-mx6-sabresd/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/freescale-mx6sx-sabresdb/board.c b/arch/arm/boards/freescale-mx6sx-sabresdb/board.c index c21b43dc56..353b460a16 100644 --- a/arch/arm/boards/freescale-mx6sx-sabresdb/board.c +++ b/arch/arm/boards/freescale-mx6sx-sabresdb/board.c @@ -16,7 +16,7 @@ #include <environment.h> #include <partition.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <init.h> #include <io.h> diff --git a/arch/arm/boards/freescale-mx6sx-sabresdb/lowlevel.c b/arch/arm/boards/freescale-mx6sx-sabresdb/lowlevel.c index 33f3700288..4c5a74ea63 100644 --- a/arch/arm/boards/freescale-mx6sx-sabresdb/lowlevel.c +++ b/arch/arm/boards/freescale-mx6sx-sabresdb/lowlevel.c @@ -14,7 +14,7 @@ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S b/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S index 858351b13d..43bf49c12c 100644 --- a/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S +++ b/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S @@ -3,7 +3,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/s3c-iomap.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/friendlyarm-mini6410/lowlevel.c b/arch/arm/boards/friendlyarm-mini6410/lowlevel.c index a21a3f8301..665c31b324 100644 --- a/arch/arm/boards/friendlyarm-mini6410/lowlevel.c +++ b/arch/arm/boards/friendlyarm-mini6410/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/s3c-iomap.h> diff --git a/arch/arm/boards/friendlyarm-tiny210/lowlevel.c b/arch/arm/boards/friendlyarm-tiny210/lowlevel.c index 7e70851043..3ab8d66060 100644 --- a/arch/arm/boards/friendlyarm-tiny210/lowlevel.c +++ b/arch/arm/boards/friendlyarm-tiny210/lowlevel.c @@ -19,7 +19,7 @@ #include <common.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <asm/sections.h> diff --git a/arch/arm/boards/friendlyarm-tiny210/tiny210.c b/arch/arm/boards/friendlyarm-tiny210/tiny210.c index a33af99aab..d84b3128ad 100644 --- a/arch/arm/boards/friendlyarm-tiny210/tiny210.c +++ b/arch/arm/boards/friendlyarm-tiny210/tiny210.c @@ -27,7 +27,7 @@ #include <common.h> #include <driver.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <generated/mach-types.h> #include <dm9000.h> #include <gpio.h> diff --git a/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c b/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c index a21a3f8301..665c31b324 100644 --- a/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c +++ b/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/s3c-iomap.h> diff --git a/arch/arm/boards/gateworks-ventana/lowlevel.c b/arch/arm/boards/gateworks-ventana/lowlevel.c index 10b2c4c780..746beb87e5 100644 --- a/arch/arm/boards/gateworks-ventana/lowlevel.c +++ b/arch/arm/boards/gateworks-ventana/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/gk802/board.c b/arch/arm/boards/gk802/board.c index 9dd22533fc..0d1b07b0e0 100644 --- a/arch/arm/boards/gk802/board.c +++ b/arch/arm/boards/gk802/board.c @@ -24,7 +24,7 @@ #include <mach/imx6-regs.h> #include <mach/imx6.h> #include <mfd/imx6q-iomuxc-gpr.h> -#include <sizes.h> +#include <linux/sizes.h> #include <of.h> #define GK802_GPIO_RECOVERY_BTN IMX_GPIO_NR(3, 16) /* recovery button */ diff --git a/arch/arm/boards/gk802/lowlevel.c b/arch/arm/boards/gk802/lowlevel.c index de744a2052..b571969884 100644 --- a/arch/arm/boards/gk802/lowlevel.c +++ b/arch/arm/boards/gk802/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/globalscale-guruplug/lowlevel.c b/arch/arm/boards/globalscale-guruplug/lowlevel.c index 508746a06f..91bc1cf565 100644 --- a/arch/arm/boards/globalscale-guruplug/lowlevel.c +++ b/arch/arm/boards/globalscale-guruplug/lowlevel.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/globalscale-mirabox/lowlevel.c b/arch/arm/boards/globalscale-mirabox/lowlevel.c index 92203b768a..4f55d1acb9 100644 --- a/arch/arm/boards/globalscale-mirabox/lowlevel.c +++ b/arch/arm/boards/globalscale-mirabox/lowlevel.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/guf-santaro/board.c b/arch/arm/boards/guf-santaro/board.c index 8fbfe269b0..b9a52ee258 100644 --- a/arch/arm/boards/guf-santaro/board.c +++ b/arch/arm/boards/guf-santaro/board.c @@ -20,7 +20,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <bootsource.h> #include <bbu.h> #include <mach/bbu.h> diff --git a/arch/arm/boards/guf-santaro/lowlevel.c b/arch/arm/boards/guf-santaro/lowlevel.c index 02de84c7b9..7753cea4e2 100644 --- a/arch/arm/boards/guf-santaro/lowlevel.c +++ b/arch/arm/boards/guf-santaro/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/guf-vincell/board.c b/arch/arm/boards/guf-vincell/board.c index bacab0bd1f..0c46ade9fc 100644 --- a/arch/arm/boards/guf-vincell/board.c +++ b/arch/arm/boards/guf-vincell/board.c @@ -23,7 +23,7 @@ #include <nand.h> #include <net.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <bbu.h> #include <gpio.h> #include <io.h> diff --git a/arch/arm/boards/highbank/init.c b/arch/arm/boards/highbank/init.c index 7b4f9637df..a0d4b30b48 100644 --- a/arch/arm/boards/highbank/init.c +++ b/arch/arm/boards/highbank/init.c @@ -14,7 +14,7 @@ #include <mach/sysregs.h> #include <environment.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <of.h> diff --git a/arch/arm/boards/highbank/lowlevel.c b/arch/arm/boards/highbank/lowlevel.c index c0405ed3a4..83f4c7ad15 100644 --- a/arch/arm/boards/highbank/lowlevel.c +++ b/arch/arm/boards/highbank/lowlevel.c @@ -5,7 +5,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <asm/system_info.h> diff --git a/arch/arm/boards/imx233-olinuxino/lowlevel.c b/arch/arm/boards/imx233-olinuxino/lowlevel.c index a5567b74c3..6e4b830485 100644 --- a/arch/arm/boards/imx233-olinuxino/lowlevel.c +++ b/arch/arm/boards/imx233-olinuxino/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx23-regs.h> diff --git a/arch/arm/boards/karo-tx25/board.c b/arch/arm/boards/karo-tx25/board.c index 59c81b2faa..ebebd58d80 100644 --- a/arch/arm/boards/karo-tx25/board.c +++ b/arch/arm/boards/karo-tx25/board.c @@ -22,7 +22,7 @@ #include <common.h> #include <init.h> #include <driver.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <environment.h> #include <mach/imx25-regs.h> diff --git a/arch/arm/boards/karo-tx25/lowlevel.c b/arch/arm/boards/karo-tx25/lowlevel.c index 861c27b8a6..b7ff2d44c6 100644 --- a/arch/arm/boards/karo-tx25/lowlevel.c +++ b/arch/arm/boards/karo-tx25/lowlevel.c @@ -21,7 +21,7 @@ #include <mach/imx25-regs.h> #include <mach/esdctl.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx-nand.h> #include <mach/esdctl.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/karo-tx28/lowlevel.c b/arch/arm/boards/karo-tx28/lowlevel.c index f747f3fd6b..c5fdda1902 100644 --- a/arch/arm/boards/karo-tx28/lowlevel.c +++ b/arch/arm/boards/karo-tx28/lowlevel.c @@ -2,7 +2,7 @@ #define DEBUG #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/imx28-regs.h> diff --git a/arch/arm/boards/karo-tx28/tx28-stk5.c b/arch/arm/boards/karo-tx28/tx28-stk5.c index 2aaceb442e..c4c51099b4 100644 --- a/arch/arm/boards/karo-tx28/tx28-stk5.c +++ b/arch/arm/boards/karo-tx28/tx28-stk5.c @@ -19,7 +19,7 @@ #include <errno.h> #include <mci.h> #include <fec.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <net.h> #include <asm/sections.h> diff --git a/arch/arm/boards/karo-tx53/board.c b/arch/arm/boards/karo-tx53/board.c index e5c27aac93..b8164ca86e 100644 --- a/arch/arm/boards/karo-tx53/board.c +++ b/arch/arm/boards/karo-tx53/board.c @@ -22,7 +22,7 @@ #include <nand.h> #include <net.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/karo-tx6x/lowlevel.c b/arch/arm/boards/karo-tx6x/lowlevel.c index 00008d403c..cd4be5e9e7 100644 --- a/arch/arm/boards/karo-tx6x/lowlevel.c +++ b/arch/arm/boards/karo-tx6x/lowlevel.c @@ -18,7 +18,7 @@ #include <asm/barebox-arm.h> #include <image-metadata.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> static inline void setup_uart(void) { diff --git a/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c b/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c index 046057f56a..59eaa29a50 100644 --- a/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c +++ b/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/mioa701/lowlevel.c b/arch/arm/boards/mioa701/lowlevel.c index aa4a82e598..bfb8bad1cc 100644 --- a/arch/arm/boards/mioa701/lowlevel.c +++ b/arch/arm/boards/mioa701/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/module-mb7707/lowlevel.c b/arch/arm/boards/module-mb7707/lowlevel.c index 5f5e1d7af1..0258be6e4b 100644 --- a/arch/arm/boards/module-mb7707/lowlevel.c +++ b/arch/arm/boards/module-mb7707/lowlevel.c @@ -21,7 +21,7 @@ #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #define MB7707_SRAM_BASE 0x40000000 #define MB7707_SRAM_SIZE SZ_128M diff --git a/arch/arm/boards/netx/platform.S b/arch/arm/boards/netx/platform.S index 6c66228197..95ae46cc6d 100644 --- a/arch/arm/boards/netx/platform.S +++ b/arch/arm/boards/netx/platform.S @@ -16,7 +16,7 @@ * GNU General Public License for more details. * */ -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> .globl barebox_arm_reset_vector diff --git a/arch/arm/boards/nhk8815/lowlevel.c b/arch/arm/boards/nhk8815/lowlevel.c index ce06f45c91..33a785fee0 100644 --- a/arch/arm/boards/nhk8815/lowlevel.c +++ b/arch/arm/boards/nhk8815/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/nvidia-beaver/entry.c b/arch/arm/boards/nvidia-beaver/entry.c index 576fcb7a5b..9b7e253b4f 100644 --- a/arch/arm/boards/nvidia-beaver/entry.c +++ b/arch/arm/boards/nvidia-beaver/entry.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/nvidia-jetson-tk1/entry.c b/arch/arm/boards/nvidia-jetson-tk1/entry.c index 76c95a8776..8f112a3a91 100644 --- a/arch/arm/boards/nvidia-jetson-tk1/entry.c +++ b/arch/arm/boards/nvidia-jetson-tk1/entry.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/omap343xdsp/lowlevel.c b/arch/arm/boards/omap343xdsp/lowlevel.c index 18ddff3625..318bb9aeb1 100644 --- a/arch/arm/boards/omap343xdsp/lowlevel.c +++ b/arch/arm/boards/omap343xdsp/lowlevel.c @@ -1,7 +1,7 @@ #include <common.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/generic.h> diff --git a/arch/arm/boards/omap3evm/board.c b/arch/arm/boards/omap3evm/board.c index 2813d3d653..0fe69b61a7 100644 --- a/arch/arm/boards/omap3evm/board.c +++ b/arch/arm/boards/omap3evm/board.c @@ -43,7 +43,7 @@ #include <init.h> #include <driver.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <ns16550.h> #include <asm/armlinux.h> #include <mach/omap3-silicon.h> diff --git a/arch/arm/boards/omap3evm/lowlevel.c b/arch/arm/boards/omap3evm/lowlevel.c index 5c3e8902a0..d8a1b9f61d 100644 --- a/arch/arm/boards/omap3evm/lowlevel.c +++ b/arch/arm/boards/omap3evm/lowlevel.c @@ -1,6 +1,6 @@ #include <io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/generic.h> diff --git a/arch/arm/boards/panda/board.c b/arch/arm/boards/panda/board.c index c63602b4c2..f7a3a0fa28 100644 --- a/arch/arm/boards/panda/board.c +++ b/arch/arm/boards/panda/board.c @@ -15,7 +15,7 @@ #include <mach/control.h> #include <usb/ehci.h> #include <linux/err.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/mmu.h> #include <envfs.h> #include <i2c/i2c.h> diff --git a/arch/arm/boards/panda/lowlevel.c b/arch/arm/boards/panda/lowlevel.c index 2679ae4690..005485ba45 100644 --- a/arch/arm/boards/panda/lowlevel.c +++ b/arch/arm/boards/panda/lowlevel.c @@ -19,7 +19,7 @@ #include <common.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <mach/omap4-mux.h> #include <mach/omap4-silicon.h> diff --git a/arch/arm/boards/phytec-phycard-imx27/pca100.c b/arch/arm/boards/phytec-phycard-imx27/pca100.c index 9475bfafca..0481113c65 100644 --- a/arch/arm/boards/phytec-phycard-imx27/pca100.c +++ b/arch/arm/boards/phytec-phycard-imx27/pca100.c @@ -21,7 +21,7 @@ #include <mach/imx27-regs.h> #include <fec.h> #include <gpio.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/armlinux.h> #include <asm/sections.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/phytec-phycard-imx6/lowlevel.c b/arch/arm/boards/phytec-phycard-imx6/lowlevel.c index b31638cbb9..dc106490e7 100644 --- a/arch/arm/boards/phytec-phycard-imx6/lowlevel.c +++ b/arch/arm/boards/phytec-phycard-imx6/lowlevel.c @@ -14,7 +14,7 @@ */ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/phytec-phycard-omap3/lowlevel.c b/arch/arm/boards/phytec-phycard-omap3/lowlevel.c index 57f6389664..27b56b1e0c 100644 --- a/arch/arm/boards/phytec-phycard-omap3/lowlevel.c +++ b/arch/arm/boards/phytec-phycard-omap3/lowlevel.c @@ -1,7 +1,7 @@ #include <common.h> #include <io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <mach/omap3-mux.h> diff --git a/arch/arm/boards/phytec-phycard-omap3/pca-a-l1.c b/arch/arm/boards/phytec-phycard-omap3/pca-a-l1.c index 68a17bf0c3..1c2e7f7429 100644 --- a/arch/arm/boards/phytec-phycard-omap3/pca-a-l1.c +++ b/arch/arm/boards/phytec-phycard-omap3/pca-a-l1.c @@ -46,7 +46,7 @@ #include <nand.h> #include <ns16550.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/armlinux.h> #include <asm/io.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/phytec-phycard-omap4/lowlevel.c b/arch/arm/boards/phytec-phycard-omap4/lowlevel.c index 841ac4b206..170ca6896b 100644 --- a/arch/arm/boards/phytec-phycard-omap4/lowlevel.c +++ b/arch/arm/boards/phytec-phycard-omap4/lowlevel.c @@ -19,7 +19,7 @@ #include <common.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <mach/omap4-mux.h> #include <mach/omap4-silicon.h> diff --git a/arch/arm/boards/phytec-phycard-omap4/pca-a-xl2.c b/arch/arm/boards/phytec-phycard-omap4/pca-a-xl2.c index 64297224c0..78890ba5a9 100644 --- a/arch/arm/boards/phytec-phycard-omap4/pca-a-xl2.c +++ b/arch/arm/boards/phytec-phycard-omap4/pca-a-xl2.c @@ -29,7 +29,7 @@ #include <mach/syslib.h> #include <mach/control.h> #include <linux/err.h> -#include <sizes.h> +#include <linux/sizes.h> #include <partition.h> #include <nand.h> #include <asm/mmu.h> diff --git a/arch/arm/boards/phytec-phycore-am335x/board.c b/arch/arm/boards/phytec-phycore-am335x/board.c index a72cebda3f..61a11cfaa3 100644 --- a/arch/arm/boards/phytec-phycore-am335x/board.c +++ b/arch/arm/boards/phytec-phycore-am335x/board.c @@ -22,7 +22,7 @@ #include <nand.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <envfs.h> #include <asm/armlinux.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/phytec-phycore-am335x/lowlevel.c b/arch/arm/boards/phytec-phycore-am335x/lowlevel.c index 5ab8b5b446..843929e945 100644 --- a/arch/arm/boards/phytec-phycore-am335x/lowlevel.c +++ b/arch/arm/boards/phytec-phycore-am335x/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <init.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/phytec-phycore-imx27/pcm038.c b/arch/arm/boards/phytec-phycore-imx27/pcm038.c index a4305f6e45..01f6a55ad0 100644 --- a/arch/arm/boards/phytec-phycore-imx27/pcm038.c +++ b/arch/arm/boards/phytec-phycore-imx27/pcm038.c @@ -20,7 +20,7 @@ #include <init.h> #include <io.h> #include <notifier.h> -#include <sizes.h> +#include <linux/sizes.h> #include <envfs.h> #include <mach/devices-imx27.h> #include <mach/imx-pll.h> diff --git a/arch/arm/boards/phytec-phycore-imx27/pcm970.c b/arch/arm/boards/phytec-phycore-imx27/pcm970.c index b0c177ebbf..73df2ad2a8 100644 --- a/arch/arm/boards/phytec-phycore-imx27/pcm970.c +++ b/arch/arm/boards/phytec-phycore-imx27/pcm970.c @@ -16,7 +16,7 @@ #include <init.h> #include <io.h> #include <platform_ide.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx27-regs.h> #include <mach/iomux-mx27.h> diff --git a/arch/arm/boards/phytec-phycore-imx35/pcm043.c b/arch/arm/boards/phytec-phycore-imx35/pcm043.c index d1dd28fc65..e31c79d15f 100644 --- a/arch/arm/boards/phytec-phycore-imx35/pcm043.c +++ b/arch/arm/boards/phytec-phycore-imx35/pcm043.c @@ -26,7 +26,7 @@ #include <environment.h> #include <fs.h> #include <gpio.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx35-regs.h> #include <asm/armlinux.h> #include <io.h> diff --git a/arch/arm/boards/phytec-phycore-omap4460/board.c b/arch/arm/boards/phytec-phycore-omap4460/board.c index baf88a380c..6495a6f6ab 100644 --- a/arch/arm/boards/phytec-phycore-omap4460/board.c +++ b/arch/arm/boards/phytec-phycore-omap4460/board.c @@ -32,7 +32,7 @@ #include <mach/syslib.h> #include <mach/control.h> #include <linux/err.h> -#include <sizes.h> +#include <linux/sizes.h> #include <partition.h> #include <nand.h> #include <asm/mmu.h> diff --git a/arch/arm/boards/phytec-phycore-omap4460/lowlevel.c b/arch/arm/boards/phytec-phycore-omap4460/lowlevel.c index 8ea62c7f56..c0825949a8 100644 --- a/arch/arm/boards/phytec-phycore-omap4460/lowlevel.c +++ b/arch/arm/boards/phytec-phycore-omap4460/lowlevel.c @@ -19,7 +19,7 @@ #include <common.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <mach/omap4-mux.h> #include <mach/omap4-silicon.h> diff --git a/arch/arm/boards/phytec-phycore-pxa270/board.c b/arch/arm/boards/phytec-phycore-pxa270/board.c index 509569e81e..833c4c81e4 100644 --- a/arch/arm/boards/phytec-phycore-pxa270/board.c +++ b/arch/arm/boards/phytec-phycore-pxa270/board.c @@ -24,7 +24,7 @@ #include <fs.h> #include <init.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <plat/gpio.h> #include <mach/mfp-pxa27x.h> diff --git a/arch/arm/boards/phytec-phycore-pxa270/lowlevel_init.S b/arch/arm/boards/phytec-phycore-pxa270/lowlevel_init.S index c7dacce30c..39af00b54b 100644 --- a/arch/arm/boards/phytec-phycore-pxa270/lowlevel_init.S +++ b/arch/arm/boards/phytec-phycore-pxa270/lowlevel_init.S @@ -24,7 +24,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/pxa-regs.h> #include <mach/regs-ost.h> #include <mach/regs-intc.h> diff --git a/arch/arm/boards/phytec-phyflex-am335x/board.c b/arch/arm/boards/phytec-phyflex-am335x/board.c index f265e52f3a..e635532d29 100644 --- a/arch/arm/boards/phytec-phyflex-am335x/board.c +++ b/arch/arm/boards/phytec-phyflex-am335x/board.c @@ -22,7 +22,7 @@ #include <nand.h> #include <init.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <envfs.h> #include <asm/armlinux.h> #include <generated/mach-types.h> diff --git a/arch/arm/boards/phytec-phyflex-am335x/lowlevel.c b/arch/arm/boards/phytec-phyflex-am335x/lowlevel.c index 4d34968a0b..a240401555 100644 --- a/arch/arm/boards/phytec-phyflex-am335x/lowlevel.c +++ b/arch/arm/boards/phytec-phyflex-am335x/lowlevel.c @@ -18,7 +18,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <init.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/phytec-phyflex-imx6/lowlevel.c b/arch/arm/boards/phytec-phyflex-imx6/lowlevel.c index ce168b2cca..dbd264aed2 100644 --- a/arch/arm/boards/phytec-phyflex-imx6/lowlevel.c +++ b/arch/arm/boards/phytec-phyflex-imx6/lowlevel.c @@ -14,7 +14,7 @@ */ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <image-metadata.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/boards/plathome-openblocks-a6/lowlevel.c b/arch/arm/boards/plathome-openblocks-a6/lowlevel.c index b37a3d6002..71bf7aa2ee 100644 --- a/arch/arm/boards/plathome-openblocks-a6/lowlevel.c +++ b/arch/arm/boards/plathome-openblocks-a6/lowlevel.c @@ -12,7 +12,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/plathome-openblocks-ax3/lowlevel.c b/arch/arm/boards/plathome-openblocks-ax3/lowlevel.c index 721d2de978..9030a5d0c8 100644 --- a/arch/arm/boards/plathome-openblocks-ax3/lowlevel.c +++ b/arch/arm/boards/plathome-openblocks-ax3/lowlevel.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/pm9261/init.c b/arch/arm/boards/pm9261/init.c index 09d7f80ea8..63f4f19b3f 100644 --- a/arch/arm/boards/pm9261/init.c +++ b/arch/arm/boards/pm9261/init.c @@ -50,6 +50,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PA16, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) .bus_width_16 = 1, #else diff --git a/arch/arm/boards/pm9263/init.c b/arch/arm/boards/pm9263/init.c index 3dca9e4fda..2b6b0891f5 100644 --- a/arch/arm/boards/pm9263/init.c +++ b/arch/arm/boards/pm9263/init.c @@ -50,6 +50,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PB30, .enable_pin = AT91_PIN_PD15, + .ecc_mode = NAND_ECC_SOFT, #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) .bus_width_16 = 1, #else diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c index 1e43be5a7f..524fe5395a 100644 --- a/arch/arm/boards/pm9g45/init.c +++ b/arch/arm/boards/pm9g45/init.c @@ -49,6 +49,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PD3, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .bus_width_16 = 0, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/qil-a926x/init.c b/arch/arm/boards/qil-a926x/init.c index 99a960470b..872743775f 100644 --- a/arch/arm/boards/qil-a926x/init.c +++ b/arch/arm/boards/qil-a926x/init.c @@ -17,7 +17,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <linux/clk.h> #include <mach/board.h> @@ -43,6 +43,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/radxa-rock/lowlevel.c b/arch/arm/boards/radxa-rock/lowlevel.c index 65014e6bb5..1c07bc3377 100644 --- a/arch/arm/boards/radxa-rock/lowlevel.c +++ b/arch/arm/boards/radxa-rock/lowlevel.c @@ -12,7 +12,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/raspberry-pi/lowlevel.c b/arch/arm/boards/raspberry-pi/lowlevel.c index 022b11d29f..485171a116 100644 --- a/arch/arm/boards/raspberry-pi/lowlevel.c +++ b/arch/arm/boards/raspberry-pi/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/platform.h> diff --git a/arch/arm/boards/sama5d3_xplained/init.c b/arch/arm/boards/sama5d3_xplained/init.c index 7dfebe8e89..373ab814d1 100644 --- a/arch/arm/boards/sama5d3_xplained/init.c +++ b/arch/arm/boards/sama5d3_xplained/init.c @@ -24,7 +24,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/sama5d3xek/init.c b/arch/arm/boards/sama5d3xek/init.c index 49d2b371f5..57dc7b0667 100644 --- a/arch/arm/boards/sama5d3xek/init.c +++ b/arch/arm/boards/sama5d3xek/init.c @@ -26,7 +26,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/sama5d4_xplained/sama5d4_xplained.c b/arch/arm/boards/sama5d4_xplained/sama5d4_xplained.c index 01262201d9..fe6876a9eb 100644 --- a/arch/arm/boards/sama5d4_xplained/sama5d4_xplained.c +++ b/arch/arm/boards/sama5d4_xplained/sama5d4_xplained.c @@ -18,7 +18,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/sama5d4ek/sama5d4ek.c b/arch/arm/boards/sama5d4ek/sama5d4ek.c index 91cffa3b48..bbc53c6758 100644 --- a/arch/arm/boards/sama5d4ek/sama5d4ek.c +++ b/arch/arm/boards/sama5d4ek/sama5d4ek.c @@ -18,7 +18,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <mach/board.h> #include <mach/at91sam9_smc.h> diff --git a/arch/arm/boards/solidrun-cubox/lowlevel.c b/arch/arm/boards/solidrun-cubox/lowlevel.c index a28c2b18c5..08e31e8350 100644 --- a/arch/arm/boards/solidrun-cubox/lowlevel.c +++ b/arch/arm/boards/solidrun-cubox/lowlevel.c @@ -16,7 +16,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/solidrun-microsom/board.c b/arch/arm/boards/solidrun-microsom/board.c index 4b0ea32040..783ec53c1d 100644 --- a/arch/arm/boards/solidrun-microsom/board.c +++ b/arch/arm/boards/solidrun-microsom/board.c @@ -25,7 +25,7 @@ #include <mach/imx6-regs.h> #include <mach/imx6.h> #include <mfd/imx6q-iomuxc-gpr.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/phy.h> static int ar8035_phy_fixup(struct phy_device *dev) diff --git a/arch/arm/boards/solidrun-microsom/lowlevel.c b/arch/arm/boards/solidrun-microsom/lowlevel.c index eb52838963..30f4a3f591 100644 --- a/arch/arm/boards/solidrun-microsom/lowlevel.c +++ b/arch/arm/boards/solidrun-microsom/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/telit-evk-pro3/init.c b/arch/arm/boards/telit-evk-pro3/init.c index e094ea7c25..ea63b1a094 100644 --- a/arch/arm/boards/telit-evk-pro3/init.c +++ b/arch/arm/boards/telit-evk-pro3/init.c @@ -18,6 +18,7 @@ #include <gpio.h> #include <init.h> #include <linux/clk.h> +#include <linux/mtd/nand.h> #include <mach/at91_rstc.h> #include <mach/at91sam9_smc.h> #include <mach/board.h> @@ -33,6 +34,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/terasic-sockit/board.c b/arch/arm/boards/terasic-sockit/board.c index fdff76ff84..53cd36834f 100644 --- a/arch/arm/boards/terasic-sockit/board.c +++ b/arch/arm/boards/terasic-sockit/board.c @@ -5,7 +5,7 @@ #include <asm/armlinux.h> #include <linux/micrel_phy.h> #include <linux/phy.h> -#include <sizes.h> +#include <linux/sizes.h> #include <fcntl.h> #include <fs.h> #include <mach/socfpga-regs.h> diff --git a/arch/arm/boards/terasic-sockit/lowlevel.c b/arch/arm/boards/terasic-sockit/lowlevel.c index 0683435a7b..78d5d41b04 100644 --- a/arch/arm/boards/terasic-sockit/lowlevel.c +++ b/arch/arm/boards/terasic-sockit/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/tny-a926x/init.c b/arch/arm/boards/tny-a926x/init.c index ac86457872..3ebd8aae02 100644 --- a/arch/arm/boards/tny-a926x/init.c +++ b/arch/arm/boards/tny-a926x/init.c @@ -26,7 +26,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <linux/clk.h> #include <mach/board.h> @@ -55,6 +55,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/toradex-colibri-t20/entry.c b/arch/arm/boards/toradex-colibri-t20/entry.c index 695862cfd3..a25958fb41 100644 --- a/arch/arm/boards/toradex-colibri-t20/entry.c +++ b/arch/arm/boards/toradex-colibri-t20/entry.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/toshiba-ac100/board.c b/arch/arm/boards/toshiba-ac100/board.c index 51232ef427..0cb955c15c 100644 --- a/arch/arm/boards/toshiba-ac100/board.c +++ b/arch/arm/boards/toshiba-ac100/board.c @@ -19,7 +19,7 @@ #include <driver.h> #include <init.h> #include <asm/armlinux.h> -#include <sizes.h> +#include <linux/sizes.h> #include <usb/ehci.h> #include <mach/iomap.h> diff --git a/arch/arm/boards/toshiba-ac100/entry.c b/arch/arm/boards/toshiba-ac100/entry.c index 45fa56aa75..fb695c32d6 100644 --- a/arch/arm/boards/toshiba-ac100/entry.c +++ b/arch/arm/boards/toshiba-ac100/entry.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/tqma6x/board.c b/arch/arm/boards/tqma6x/board.c index 2118fb2721..97cce60c70 100644 --- a/arch/arm/boards/tqma6x/board.c +++ b/arch/arm/boards/tqma6x/board.c @@ -23,7 +23,7 @@ #include <partition.h> #include <common.h> #include <envfs.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <gpio.h> #include <fec.h> diff --git a/arch/arm/boards/tqma6x/lowlevel.c b/arch/arm/boards/tqma6x/lowlevel.c index d2eea16c23..23f3407c05 100644 --- a/arch/arm/boards/tqma6x/lowlevel.c +++ b/arch/arm/boards/tqma6x/lowlevel.c @@ -14,7 +14,7 @@ */ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/udoo/board.c b/arch/arm/boards/udoo/board.c index d2f558e7f4..f3668fef0b 100644 --- a/arch/arm/boards/udoo/board.c +++ b/arch/arm/boards/udoo/board.c @@ -29,7 +29,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <linux/micrel_phy.h> #include <mach/imx6.h> diff --git a/arch/arm/boards/udoo/lowlevel.c b/arch/arm/boards/udoo/lowlevel.c index 3d9fc68cab..785ab16678 100644 --- a/arch/arm/boards/udoo/lowlevel.c +++ b/arch/arm/boards/udoo/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/generic.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/usb-a926x/init.c b/arch/arm/boards/usb-a926x/init.c index 4a28af07e1..958c3c3662 100644 --- a/arch/arm/boards/usb-a926x/init.c +++ b/arch/arm/boards/usb-a926x/init.c @@ -26,7 +26,7 @@ #include <io.h> #include <mach/hardware.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #include <linux/clk.h> #include <mach/board.h> @@ -59,6 +59,7 @@ static struct atmel_nand_data nand_pdata = { .det_pin = -EINVAL, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .ecc_mode = NAND_ECC_SOFT, .on_flash_bbt = 1, }; diff --git a/arch/arm/boards/usi-topkick/lowlevel.c b/arch/arm/boards/usi-topkick/lowlevel.c index df661564da..ed94ee6736 100644 --- a/arch/arm/boards/usi-topkick/lowlevel.c +++ b/arch/arm/boards/usi-topkick/lowlevel.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/lowlevel.h> diff --git a/arch/arm/boards/variscite-mx6/board.c b/arch/arm/boards/variscite-mx6/board.c index de74abc838..3585debb51 100644 --- a/arch/arm/boards/variscite-mx6/board.c +++ b/arch/arm/boards/variscite-mx6/board.c @@ -34,7 +34,7 @@ #include <asm/io.h> #include <asm/mmu.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx6.h> #include <mach/devices-imx6.h> #include <mach/iomux-mx6.h> diff --git a/arch/arm/boards/variscite-mx6/lowlevel.c b/arch/arm/boards/variscite-mx6/lowlevel.c index 74f3a779e8..22e7eae32b 100644 --- a/arch/arm/boards/variscite-mx6/lowlevel.c +++ b/arch/arm/boards/variscite-mx6/lowlevel.c @@ -16,7 +16,7 @@ */ #include <debug_ll.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/versatile/env/boot.d/001-nor b/arch/arm/boards/versatile/env/boot.d/001-nor new file mode 120000 index 0000000000..3db66aef68 --- /dev/null +++ b/arch/arm/boards/versatile/env/boot.d/001-nor @@ -0,0 +1 @@ +../boot/nor
\ No newline at end of file diff --git a/arch/arm/boards/versatile/env/boot.d/101-nor-update b/arch/arm/boards/versatile/env/boot.d/101-nor-update new file mode 120000 index 0000000000..e4f1952a39 --- /dev/null +++ b/arch/arm/boards/versatile/env/boot.d/101-nor-update @@ -0,0 +1 @@ +../boot/nor-update
\ No newline at end of file diff --git a/arch/arm/boards/versatile/env/boot/nor b/arch/arm/boards/versatile/env/boot/nor new file mode 100644 index 0000000000..3f31605c4f --- /dev/null +++ b/arch/arm/boards/versatile/env/boot/nor @@ -0,0 +1,15 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + boot-menu-add-entry "$0" "nor" + exit +fi + +global.bootm.image="/dev/nor0.kernel" +global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=5 rootfstype=ubifs" + +dtb=/dev/nor0.dtb +filetype -s t ${dtb} +if [ "$t" = dtb ]; then + global.bootm.oftree="${dtb}" +fi diff --git a/arch/arm/boards/versatile/env/boot/nor-update b/arch/arm/boards/versatile/env/boot/nor-update new file mode 100644 index 0000000000..728889d20f --- /dev/null +++ b/arch/arm/boards/versatile/env/boot/nor-update @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + boot-menu-add-entry "$0" "nor update" + exit +fi + +global.bootm.image="/dev/nor0.update" + +dtb=/dev/nor0.dtb +filetype -s t ${dtb} +if [ "$t" = dtb ]; then + global.bootm.oftree="${dtb}" +fi diff --git a/arch/arm/boards/versatile/env/config b/arch/arm/boards/versatile/env/config deleted file mode 100644 index 667dce3747..0000000000 --- a/arch/arm/boards/versatile/env/config +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# use 'dhcp' to do dhcp in barebox and in kernel -# use 'none' if you want to skip kernel ip autoconfiguration -ip=dhcp - -# or set your networking parameters here -#eth0.ipaddr=a.b.c.d -#eth0.netmask=a.b.c.d -#eth0.gateway=a.b.c.d -#eth0.serverip=a.b.c.d - -# can be either 'nfs', 'tftp' or 'nor' -kernel_loc=tftp -# can be either 'net', 'nor' or 'initrd' -rootfs_loc=initrd - -# can be either 'jffs2' or 'ubifs' -rootfs_type=ubifs -rootfsimage=root.$rootfs_type - -#kernelimage=zImage -kernelimage=uImage -#kernelimage=Image -#kernelimage=Image.lzo - -nfsroot="$eth0.serverip:/opt/work/busybox/arm9/rootfs_arm" - -nor_parts="256k(barebox)ro,64k(bareboxenv),1536k(kernel),-(root)" -rootfs_mtdblock_nor=3 - -autoboot_timeout=3 - -bootargs="console=ttyAMA0,115200n8 CONSOLE=/dev/ttyAMA0" - -# set a fancy prompt (if support is compiled in) -PS1="\e[1;31m[barebox@\h]:\w\e[0m\n# " - diff --git a/arch/arm/boards/versatile/env/init/automount b/arch/arm/boards/versatile/env/init/automount new file mode 100644 index 0000000000..53f9196a15 --- /dev/null +++ b/arch/arm/boards/versatile/env/init/automount @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "Automountpoints" + exit +fi + +# automount tftp server based on $eth0.serverip + +mkdir -p /mnt/tftp +automount /mnt/tftp 'ifup eth0 && mount -t tftp $eth0.serverip /mnt/tftp' diff --git a/arch/arm/boards/versatile/env/init/mtdparts-nor b/arch/arm/boards/versatile/env/init/mtdparts-nor new file mode 100644 index 0000000000..9079d482da --- /dev/null +++ b/arch/arm/boards/versatile/env/init/mtdparts-nor @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "NOR partitions" + exit +fi + +mtdparts="512k(nor0.barebox)ro,512k(nor0.bareboxenv),4864k(nor0.kernel),256k(nor0.dtb),3M(nor0.update),-(nor0.root)" +kernelname="physmap-flash.0" + +mtdparts-add -d nor0 -k ${kernelname} -p ${mtdparts} diff --git a/arch/arm/boards/versatile/env/init/ps1 b/arch/arm/boards/versatile/env/init/ps1 new file mode 100644 index 0000000000..a1d075499f --- /dev/null +++ b/arch/arm/boards/versatile/env/init/ps1 @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ ${global.allow_color} = "true" ]; then + export PS1="\e[1;32mbarebox@\e[1;36m\h:\w\e[0m\n# " +else + export PS1="barebox@\h:\w\n# " +fi diff --git a/arch/arm/boards/versatile/env/nv/boot.default b/arch/arm/boards/versatile/env/nv/boot.default new file mode 100644 index 0000000000..c47e1b2bca --- /dev/null +++ b/arch/arm/boards/versatile/env/nv/boot.default @@ -0,0 +1 @@ +/env/boot.d diff --git a/arch/arm/boards/versatile/env/nv/linux.bootargs.base b/arch/arm/boards/versatile/env/nv/linux.bootargs.base new file mode 100644 index 0000000000..826debe7c2 --- /dev/null +++ b/arch/arm/boards/versatile/env/nv/linux.bootargs.base @@ -0,0 +1 @@ +console=ttyAMA0,115200n8 CONSOLE=/dev/ttyAMA0 diff --git a/arch/arm/boards/versatile/lowlevel.c b/arch/arm/boards/versatile/lowlevel.c index ce06f45c91..33a785fee0 100644 --- a/arch/arm/boards/versatile/lowlevel.c +++ b/arch/arm/boards/versatile/lowlevel.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c index fdd0820fd4..3166cd4fed 100644 --- a/arch/arm/boards/versatile/versatilepb.c +++ b/arch/arm/boards/versatile/versatilepb.c @@ -22,17 +22,30 @@ #include <common.h> #include <init.h> #include <asm/armlinux.h> +#include <asm/system_info.h> #include <generated/mach-types.h> #include <mach/init.h> #include <mach/platform.h> #include <environment.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net/smc91111.h> static int vpb_console_init(void) { - barebox_set_hostname("versatilepb"); + char *hostname = "versatilepb-unknown"; + char *model = "ARM Versatile PB"; + + if (cpu_is_arm926()) { + hostname = "versatilepb-arm926"; + model = "ARM Versatile PB (arm926)"; + } else if (cpu_is_arm1176()) { + hostname = "versatilepb-arm1176"; + model = "ARM Versatile PB (arm1176)"; + } + + barebox_set_hostname(hostname); + barebox_set_model(model); versatile_register_uart(0); return 0; @@ -46,8 +59,8 @@ static struct smc91c111_pdata net_pdata = { static int vpb_devices_init(void) { add_cfi_flash_device(DEVICE_ID_DYNAMIC, VERSATILE_FLASH_BASE, VERSATILE_FLASH_SIZE, 0); - devfs_add_partition("nor0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self"); - devfs_add_partition("nor0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env0"); + devfs_add_partition("nor0", 0x00000, SZ_512K, DEVFS_PARTITION_FIXED, "self"); + devfs_add_partition("nor0", SZ_512K, SZ_512K, DEVFS_PARTITION_FIXED, "env0"); add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, VERSATILE_ETH_BASE, 64 * 1024, IORESOURCE_MEM, &net_pdata); diff --git a/arch/arm/boards/vexpress/init.c b/arch/arm/boards/vexpress/init.c index 6cda494872..5b2035bd36 100644 --- a/arch/arm/boards/vexpress/init.c +++ b/arch/arm/boards/vexpress/init.c @@ -12,7 +12,7 @@ #include <mach/devices.h> #include <environment.h> #include <partition.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <globalvar.h> #include <linux/amba/sp804.h> diff --git a/arch/arm/boards/vexpress/lowlevel.c b/arch/arm/boards/vexpress/lowlevel.c index 2ef94c59d6..204d29d8f0 100644 --- a/arch/arm/boards/vexpress/lowlevel.c +++ b/arch/arm/boards/vexpress/lowlevel.c @@ -5,7 +5,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <asm/system_info.h> diff --git a/arch/arm/boards/virt2real/lowlevel.c b/arch/arm/boards/virt2real/lowlevel.c index 731e2cae64..8ec3d04fef 100644 --- a/arch/arm/boards/virt2real/lowlevel.c +++ b/arch/arm/boards/virt2real/lowlevel.c @@ -21,7 +21,7 @@ #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #define VIRT2REAL_SRAM_BASE 0x82000000 #define VIRT2REAL_SRAM_SIZE SZ_16M diff --git a/arch/arm/configs/rpi_defconfig b/arch/arm/configs/rpi_defconfig index 05c013601d..c6b2c50c7b 100644 --- a/arch/arm/configs/rpi_defconfig +++ b/arch/arm/configs/rpi_defconfig @@ -31,6 +31,7 @@ CONFIG_CMD_LN=y CONFIG_CMD_FILETYPE=y CONFIG_CMD_ECHO_E=y CONFIG_CMD_LOADB=y +CONFIG_CMD_LOADY=y CONFIG_CMD_MEMINFO=y CONFIG_CMD_IOMEM=y CONFIG_CMD_MM=y diff --git a/arch/arm/configs/versatilepb_arm1176_defconfig b/arch/arm/configs/versatilepb_arm1176_defconfig new file mode 100644 index 0000000000..ca0ab3603f --- /dev/null +++ b/arch/arm/configs/versatilepb_arm1176_defconfig @@ -0,0 +1,99 @@ +CONFIG_BUILTIN_DTB=y +CONFIG_BUILTIN_DTB_NAME="versatile-pb" +CONFIG_ARCH_VERSATILE=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000 +CONFIG_MACH_VERSATILEPB_ARM1176=y +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_PBL_IMAGE=y +CONFIG_PBL_RELOCATABLE=y +CONFIG_MALLOC_SIZE=0xa00000 +CONFIG_PROMPT="versatilepb> " +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +CONFIG_CONSOLE_ACTIVATE_ALL=y +CONFIG_DEFAULT_COMPRESSION_GZIP=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/versatile/env" +CONFIG_CMD_DMESG=y +CONFIG_LONGHELP=y +CONFIG_CMD_IOMEM=y +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y +CONFIG_CMD_GO=y +CONFIG_CMD_LOADB=y +CONFIG_CMD_RESET=y +CONFIG_CMD_PARTITION=y +CONFIG_CMD_UBIFORMAT=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_LOADENV=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y +CONFIG_CMD_SAVEENV=y +CONFIG_CMD_FILETYPE=y +CONFIG_CMD_UNCOMPRESS=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_PING=y +CONFIG_CMD_TFTP=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_LOGIN=y +CONFIG_CMD_MENU=y +CONFIG_CMD_MENU_MANAGEMENT=y +CONFIG_CMD_PASSWD=y +CONFIG_CMD_SPLASH=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_FLASH=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_OF_NODE=y +CONFIG_CMD_OF_PROPERTY=y +CONFIG_CMD_OFTREE=y +CONFIG_NET=y +CONFIG_NET_NFS=y +CONFIG_NET_NETCONSOLE=y +CONFIG_NET_RESOLV=y +CONFIG_OFDEVICE=y +CONFIG_OF_BAREBOX_DRIVERS=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_USB=y +CONFIG_SERIAL_USB_FTDI=y +CONFIG_DRIVER_NET_SMC91111=y +CONFIG_I2C=y +CONFIG_I2C_VERSATILE=y +CONFIG_MTD=y +CONFIG_DRIVER_CFI=y +# CONFIG_DRIVER_CFI_AMD is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_2 is not set +CONFIG_MTD_UBI=y +CONFIG_USB_HOST=y +CONFIG_USB_EHCI=y +CONFIG_USB_STORAGE=y +CONFIG_VIDEO=y +CONFIG_DRIVER_VIDEO_ARMCLCD=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_SELF_REGISTER=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +CONFIG_FONT_ACORN_8x8=y +CONFIG_GPIO_PL061=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1307=y +CONFIG_FS_CRAMFS=y +CONFIG_FS_EXT4=y +CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y +CONFIG_PNG=y +CONFIG_SHA1=y +CONFIG_SHA256=y diff --git a/arch/arm/configs/versatilepb_defconfig b/arch/arm/configs/versatilepb_defconfig index 9f7e0e56ea..54a6fec919 100644 --- a/arch/arm/configs/versatilepb_defconfig +++ b/arch/arm/configs/versatilepb_defconfig @@ -1,28 +1,41 @@ CONFIG_BUILTIN_DTB=y CONFIG_BUILTIN_DTB_NAME="versatile-pb" CONFIG_ARCH_VERSATILE=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000 CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_PBL_IMAGE=y +CONFIG_PBL_RELOCATABLE=y CONFIG_PROMPT="versatilepb> " -CONFIG_GLOB=y CONFIG_HUSH_FANCY_PROMPT=y CONFIG_CMDLINE_EDITING=y CONFIG_AUTO_COMPLETE=y CONFIG_MENU=y +CONFIG_CONSOLE_ACTIVATE_ALL=y CONFIG_PARTITION=y -CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y +CONFIG_DEFAULT_COMPRESSION_GZIP=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/versatile/env" +CONFIG_CMD_DMESG=y CONFIG_LONGHELP=y CONFIG_CMD_IOMEM=y CONFIG_CMD_MEMINFO=y CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y CONFIG_CMD_GO=y CONFIG_CMD_LOADB=y CONFIG_CMD_RESET=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_UBIFORMAT=y CONFIG_CMD_EXPORT=y CONFIG_CMD_LOADENV=y CONFIG_CMD_PRINTENV=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y CONFIG_CMD_SAVEENV=y +CONFIG_CMD_FILETYPE=y CONFIG_CMD_UNCOMPRESS=y CONFIG_CMD_SLEEP=y CONFIG_CMD_DHCP=y @@ -30,12 +43,16 @@ CONFIG_CMD_PING=y CONFIG_CMD_TFTP=y CONFIG_CMD_ECHO_E=y CONFIG_CMD_EDIT=y +CONFIG_CMD_LOGIN=y CONFIG_CMD_MENU=y CONFIG_CMD_MENU_MANAGEMENT=y -CONFIG_CMD_LOGIN=y CONFIG_CMD_PASSWD=y +CONFIG_CMD_SPLASH=y CONFIG_CMD_READLINE=y CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_FLASH=y CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_OF_NODE=y @@ -51,10 +68,18 @@ CONFIG_SERIAL_AMBA_PL011=y CONFIG_DRIVER_NET_SMC91111=y CONFIG_I2C=y CONFIG_I2C_VERSATILE=y +CONFIG_MTD=y +CONFIG_DRIVER_CFI=y +# CONFIG_DRIVER_CFI_AMD is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_2 is not set +CONFIG_MTD_UBI=y CONFIG_GPIO_PL061=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_DS1307=y CONFIG_FS_CRAMFS=y +CONFIG_FS_EXT4=y CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y CONFIG_SHA1=y CONFIG_SHA256=y diff --git a/arch/arm/cpu/common.c b/arch/arm/cpu/common.c index d5f892910f..46ce942187 100644 --- a/arch/arm/cpu/common.c +++ b/arch/arm/cpu/common.c @@ -17,7 +17,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/system_info.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/cpu/lowlevel.S b/arch/arm/cpu/lowlevel.S index c615d5b581..b76222d8f3 100644 --- a/arch/arm/cpu/lowlevel.S +++ b/arch/arm/cpu/lowlevel.S @@ -4,23 +4,41 @@ .section ".text_bare_init_","ax" ENTRY(arm_cpu_lowlevel_init) - mov r2, lr - /* set the cpu to SVC32 mode */ + /* set the cpu to SVC32 mode, mask irq and fiq */ mrs r12, cpsr bic r12, r12, #0x1f orr r12, r12, #0xd3 msr cpsr, r12 -#if __LINUX_ARM_ARCH__ >= 7 - isb -#elif __LINUX_ARM_ARCH__ == 6 +#if __LINUX_ARM_ARCH__ >= 6 + /* + * ICIALLU: Invalidate all instruction caches to PoU, + * includes flushing of branch predictors. + * Even if the i-cache is off it might contain stale entries + * that are better discarded before enabling the cache. + * Architectually this is even possible after a cold reset. + */ + mcr p15, 0, r12, c7, c5, 0 + /* DSB, ensure completion of the invalidation */ + mcr p15, 0, r12, c7, c10, 4 + /* + * ISB, ensure instruction fetch path is in sync. + * Note that the ARM Architecture Reference Manual, ARMv7-A and ARMv7-R + * edition (ARM DDI 0406C.c) doesn't define this instruction in the + * ARMv6 part (D12.7.10). It only has: "Support of additional + * operations is IMPLEMENTATION DEFINED". + * But an earlier version of the ARMARM (ARM DDI 0100I) does define it + * as "Flush prefetch buffer (PrefetchFlush)". + */ mcr p15, 0, r12, c7, c5, 4 #endif - /* disable MMU stuff and caches */ - mrc p15, 0, r12, c1, c0, 0 - bic r12, r12 , #(CR_M | CR_C | CR_B) + /* disable MMU stuff and data/unified caches */ + mrc p15, 0, r12, c1, c0, 0 /* SCTLR */ + bic r12, r12, #(CR_M | CR_C | CR_B) bic r12, r12, #(CR_S | CR_R | CR_V) + + /* enable instruction cache */ orr r12, r12, #CR_I #if __LINUX_ARM_ARCH__ >= 6 @@ -34,7 +52,7 @@ ENTRY(arm_cpu_lowlevel_init) orr r12, r12, #CR_B #endif - mcr p15, 0, r12, c1, c0, 0 + mcr p15, 0, r12, c1, c0, 0 /* SCTLR */ - mov pc, r2 + mov pc, lr ENDPROC(arm_cpu_lowlevel_init) diff --git a/arch/arm/cpu/mmu-early.c b/arch/arm/cpu/mmu-early.c index b8b30df84e..2e4d316924 100644 --- a/arch/arm/cpu/mmu-early.c +++ b/arch/arm/cpu/mmu-early.c @@ -1,7 +1,7 @@ #include <common.h> #include <asm/mmu.h> #include <errno.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/memory.h> #include <asm/system.h> #include <asm/cache.h> diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c index e4afcc8411..09fe8d592a 100644 --- a/arch/arm/cpu/mmu.c +++ b/arch/arm/cpu/mmu.c @@ -23,7 +23,7 @@ #include <init.h> #include <asm/mmu.h> #include <errno.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/memory.h> #include <asm/barebox-arm.h> #include <asm/system.h> diff --git a/arch/arm/cpu/start-pbl.c b/arch/arm/cpu/start-pbl.c index 741060ab6c..f2490fd9ef 100644 --- a/arch/arm/cpu/start-pbl.c +++ b/arch/arm/cpu/start-pbl.c @@ -20,7 +20,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <pbl.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c index e2a6b8e90f..418870fb69 100644 --- a/arch/arm/cpu/start.c +++ b/arch/arm/cpu/start.c @@ -20,7 +20,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <of.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/cpu/uncompress.c b/arch/arm/cpu/uncompress.c index 03c73d56a3..b0b7c6d097 100644 --- a/arch/arm/cpu/uncompress.c +++ b/arch/arm/cpu/uncompress.c @@ -21,7 +21,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <pbl.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/dts/am335x-bone-common.dts b/arch/arm/dts/am335x-bone-common.dts index bbc55617c8..5d3d2ed5aa 100644 --- a/arch/arm/dts/am335x-bone-common.dts +++ b/arch/arm/dts/am335x-bone-common.dts @@ -1,5 +1,12 @@ /dts-v1/; +/* + * DTS for the beaglebone white/black MLO + * + * Only contains the common parts of both boards which is + * all we need for the MLO + */ + #include "am33xx.dtsi" #include "am335x-bone-common.dtsi" @@ -7,3 +14,12 @@ model = "TI AM335x BeagleBone"; compatible = "ti,am335x-bone", "ti,am33xx"; }; + +&mmc2 { + vmmc-supply = <&vmmcsd_fixed>; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_pins>; + bus-width = <8>; + status = "disabled"; /* only present on beaglebone black, enabled during runtime */ + ti,vcc-aux-disable-is-sleep; +}; diff --git a/arch/arm/dts/am335x-phytec-phycore-som.dtsi b/arch/arm/dts/am335x-phytec-phycore-som.dtsi index 246b5aa62d..c34ae38271 100644 --- a/arch/arm/dts/am335x-phytec-phycore-som.dtsi +++ b/arch/arm/dts/am335x-phytec-phycore-som.dtsi @@ -161,7 +161,7 @@ partition@4 { label = "kernel"; - reg = <0xe0000 0x400000>; + reg = <0xe0000 0x0>; }; }; }; diff --git a/arch/arm/dts/am335x-phytec-phyflex.dts b/arch/arm/dts/am335x-phytec-phyflex.dts index 6679cf56db..6c49567107 100644 --- a/arch/arm/dts/am335x-phytec-phyflex.dts +++ b/arch/arm/dts/am335x-phytec-phyflex.dts @@ -187,7 +187,7 @@ partition@4 { label = "kernel"; - reg = <0xe0000 0x400000>; + reg = <0xe0000 0x0>; }; }; }; diff --git a/arch/arm/include/asm/barebox-arm.h b/arch/arm/include/asm/barebox-arm.h index 66f6fe5ef6..9ad07cb77a 100644 --- a/arch/arm/include/asm/barebox-arm.h +++ b/arch/arm/include/asm/barebox-arm.h @@ -25,8 +25,10 @@ #ifndef _BAREBOX_ARM_H_ #define _BAREBOX_ARM_H_ -#include <sizes.h> +#include <linux/sizes.h> #include <asm-generic/memory_layout.h> +#include <linux/kernel.h> +#include <linux/types.h> /* cpu/.../cpu.c */ int cleanup_before_linux(void); diff --git a/arch/arm/include/asm/debug_ll_pl011.h b/arch/arm/include/asm/debug_ll_pl011.h new file mode 100644 index 0000000000..db015a373b --- /dev/null +++ b/arch/arm/include/asm/debug_ll_pl011.h @@ -0,0 +1,25 @@ +#ifndef __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ +#define __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ + +#ifndef DEBUG_LL_UART_ADDR +#error DEBUG_LL_UART_ADDR is undefined! +#endif + +#include <io.h> +#include <linux/amba/serial.h> + +static inline void PUTC_LL(char c) +{ + /* Wait until there is space in the FIFO */ + while (readl(DEBUG_LL_UART_ADDR + UART01x_FR) & UART01x_FR_TXFF) + ; + + /* Send the character */ + writel(c, DEBUG_LL_UART_ADDR + UART01x_DR); + + /* Wait to make sure it hits the line, in case we die too soon. */ + while (readl(DEBUG_LL_UART_ADDR + UART01x_FR) & UART01x_FR_TXFF) + ; +} + +#endif /* __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ */ diff --git a/arch/arm/include/asm/system_info.h b/arch/arm/include/asm/system_info.h index 61828602ef..0761848a1a 100644 --- a/arch/arm/include/asm/system_info.h +++ b/arch/arm/include/asm/system_info.h @@ -23,7 +23,7 @@ #define CPU_IS_ARM926 0x41069260 #define CPU_IS_ARM926_MASK 0xff0ffff0 -#define CPU_IS_ARM1176 0x410fb767 +#define CPU_IS_ARM1176 0x410fb760 #define CPU_IS_ARM1176_MASK 0xff0ffff0 #define CPU_IS_CORTEX_A8 0x410fc080 diff --git a/arch/arm/lib/asm-offsets.c b/arch/arm/lib/asm-offsets.c new file mode 100644 index 0000000000..7bf6d129cf --- /dev/null +++ b/arch/arm/lib/asm-offsets.c @@ -0,0 +1,16 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + * + * 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. + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c index baf0946a47..8327c3f560 100644 --- a/arch/arm/lib/bootm.c +++ b/arch/arm/lib/bootm.c @@ -12,7 +12,7 @@ #include <malloc.h> #include <fcntl.h> #include <errno.h> -#include <sizes.h> +#include <linux/sizes.h> #include <libbb.h> #include <magicvar.h> #include <binfmt.h> diff --git a/arch/arm/lib/bootz.c b/arch/arm/lib/bootz.c index 377f18a3ac..5167c9d20d 100644 --- a/arch/arm/lib/bootz.c +++ b/arch/arm/lib/bootz.c @@ -5,7 +5,7 @@ #include <fcntl.h> #include <errno.h> #include <malloc.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/byteorder.h> #include <asm/armlinux.h> #include <asm/system.h> diff --git a/arch/arm/lib/pbl.lds.S b/arch/arm/lib/pbl.lds.S index 9afee2964a..73baff0ca5 100644 --- a/arch/arm/lib/pbl.lds.S +++ b/arch/arm/lib/pbl.lds.S @@ -15,7 +15,7 @@ * GNU General Public License for more details. * */ -#include <sizes.h> +#include <linux/sizes.h> #include <asm-generic/barebox.lds.h> #include <asm-generic/memory_layout.h> diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c index ce0e4160b1..7b68cdac29 100644 --- a/arch/arm/mach-at91/at91rm9200_devices.c +++ b/arch/arm/mach-at91/at91rm9200_devices.c @@ -20,7 +20,7 @@ #include <mach/io.h> #include <mach/at91rm9200_mc.h> #include <i2c/i2c-gpio.h> -#include <sizes.h> +#include <linux/sizes.h> #include "generic.h" diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c index ed6f9c4b96..67c4ea8601 100644 --- a/arch/arm/mach-at91/at91sam9260_devices.c +++ b/arch/arm/mach-at91/at91sam9260_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9260_lowlevel_init.c b/arch/arm/mach-at91/at91sam9260_lowlevel_init.c index f745b8de4f..7f84185ef9 100644 --- a/arch/arm/mach-at91/at91sam9260_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9260_lowlevel_init.c @@ -21,7 +21,7 @@ #include <mach/at91_lowlevel_init.h> #include <mach/io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __bare_init at91sam9260_lowlevel_init(void) { diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index ce539e97cb..620ed652dc 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9261_lowlevel_init.c b/arch/arm/mach-at91/at91sam9261_lowlevel_init.c index b9b4dfbb0e..0ad7f0a0c5 100644 --- a/arch/arm/mach-at91/at91sam9261_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9261_lowlevel_init.c @@ -21,7 +21,7 @@ #include <mach/at91_lowlevel_init.h> #include <mach/io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __bare_init at91sam9261_lowlevel_init(void) { diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index 1c9366a28f..a3683e53bf 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9263_lowlevel_init.c b/arch/arm/mach-at91/at91sam9263_lowlevel_init.c index 00d78f2375..0be84551f8 100644 --- a/arch/arm/mach-at91/at91sam9263_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9263_lowlevel_init.c @@ -21,7 +21,7 @@ #include <mach/at91_lowlevel_init.h> #include <mach/io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __bare_init at91sam9263_lowlevel_init(void) { diff --git a/arch/arm/mach-at91/at91sam926x_lowlevel_init.c b/arch/arm/mach-at91/at91sam926x_lowlevel_init.c index 6452bdd794..5dd8bc4e60 100644 --- a/arch/arm/mach-at91/at91sam926x_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam926x_lowlevel_init.c @@ -23,7 +23,7 @@ #include <mach/gpio.h> #include <mach/io.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include "gpio.h" diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 789e1ec77e..cc7ad2f39a 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c @@ -89,9 +89,9 @@ static int at91_pit_probe(struct device_d *dev) return ret; } - pit_base = dev_request_mem_region(dev, 0); - if (IS_ERR(pit_base)) - return PTR_ERR(pit_base); + pit_base = dev_request_mem_region_err_null(dev, 0); + if (!pit_base) + return -ENOENT; pit_rate = clk_get_rate(clk) / 16; diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index 5af8761532..bad7f9c5ba 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9g45_lowlevel_init.c b/arch/arm/mach-at91/at91sam9g45_lowlevel_init.c index b58f101ee2..2cdb7a6a5f 100644 --- a/arch/arm/mach-at91/at91sam9g45_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9g45_lowlevel_init.c @@ -14,7 +14,7 @@ #include <mach/io.h> #include <mach/at91sam9_ddrsdr.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __naked __bare_init barebox_arm_reset_vector(void) { diff --git a/arch/arm/mach-at91/at91sam9n12_devices.c b/arch/arm/mach-at91/at91sam9n12_devices.c index 2d9ea4caed..bac023f555 100644 --- a/arch/arm/mach-at91/at91sam9n12_devices.c +++ b/arch/arm/mach-at91/at91sam9n12_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9n12_lowlevel_init.c b/arch/arm/mach-at91/at91sam9n12_lowlevel_init.c index 72a092899f..2b5cb158b0 100644 --- a/arch/arm/mach-at91/at91sam9n12_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9n12_lowlevel_init.c @@ -14,7 +14,7 @@ #include <mach/io.h> #include <mach/at91sam9_ddrsdr.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __naked __bare_init barebox_arm_reset_vector(void) { diff --git a/arch/arm/mach-at91/at91sam9x5_devices.c b/arch/arm/mach-at91/at91sam9x5_devices.c index 2d05e94058..34537d8cf9 100644 --- a/arch/arm/mach-at91/at91sam9x5_devices.c +++ b/arch/arm/mach-at91/at91sam9x5_devices.c @@ -10,7 +10,7 @@ * */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/at91sam9x5_lowlevel_init.c b/arch/arm/mach-at91/at91sam9x5_lowlevel_init.c index 7781036e3d..48e69f947d 100644 --- a/arch/arm/mach-at91/at91sam9x5_lowlevel_init.c +++ b/arch/arm/mach-at91/at91sam9x5_lowlevel_init.c @@ -14,7 +14,7 @@ #include <mach/io.h> #include <mach/at91sam9_ddrsdr.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> void __naked __bare_init barebox_arm_reset_vector(void) { diff --git a/arch/arm/mach-at91/bootstrap.c b/arch/arm/mach-at91/bootstrap.c index 4149304c92..2d18dd6b32 100644 --- a/arch/arm/mach-at91/bootstrap.c +++ b/arch/arm/mach-at91/bootstrap.c @@ -7,7 +7,7 @@ #include <common.h> #include <bootstrap.h> #include <mach/bootstrap.h> -#include <sizes.h> +#include <linux/sizes.h> #include <malloc.h> #include <init.h> #include <menu.h> diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h index e2307ed8e6..491b220cad 100644 --- a/arch/arm/mach-at91/include/mach/board.h +++ b/arch/arm/mach-at91/include/mach/board.h @@ -19,7 +19,7 @@ #define __ASM_ARCH_BOARD_H #include <mach/hardware.h> -#include <sizes.h> +#include <linux/sizes.h> #include <net.h> #include <i2c/i2c.h> #include <spi/spi.h> diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c index 1938c053f9..3fdfca8c68 100644 --- a/arch/arm/mach-at91/sama5d3_devices.c +++ b/arch/arm/mach-at91/sama5d3_devices.c @@ -11,7 +11,7 @@ */ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-at91/sama5d3_lowlevel_init.c b/arch/arm/mach-at91/sama5d3_lowlevel_init.c index d3fcbc2625..01d28514d1 100644 --- a/arch/arm/mach-at91/sama5d3_lowlevel_init.c +++ b/arch/arm/mach-at91/sama5d3_lowlevel_init.c @@ -7,7 +7,7 @@ #define __LOWLEVEL_INIT__ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <asm/system.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/mach-at91/sama5d4_devices.c b/arch/arm/mach-at91/sama5d4_devices.c index 3806971688..e1b0a64d9f 100644 --- a/arch/arm/mach-at91/sama5d4_devices.c +++ b/arch/arm/mach-at91/sama5d4_devices.c @@ -12,7 +12,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <gpio.h> #include <asm/armlinux.h> #include <mach/hardware.h> diff --git a/arch/arm/mach-bcm2835/core.c b/arch/arm/mach-bcm2835/core.c index 04bc89751d..7f3d7e7629 100644 --- a/arch/arm/mach-bcm2835/core.c +++ b/arch/arm/mach-bcm2835/core.c @@ -25,7 +25,7 @@ #include <io.h> #include <asm/armlinux.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/platform.h> #include <mach/wd.h> diff --git a/arch/arm/mach-bcm2835/include/mach/debug_ll.h b/arch/arm/mach-bcm2835/include/mach/debug_ll.h new file mode 100644 index 0000000000..be93cd95ad --- /dev/null +++ b/arch/arm/mach-bcm2835/include/mach/debug_ll.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2014 Antony Pavlov <antonynpavlov@gmail.com> + * + * This file is part of barebox. + * 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. + * + */ + +#ifndef __MACH_BCM2835_DEBUG_LL_H__ +#define __MACH_BCM2835_DEBUG_LL_H__ + +#include <mach/platform.h> + +#define DEBUG_LL_UART_ADDR BCM2835_UART0_BASE + +#include <asm/debug_ll_pl011.h> + +#endif /* __MACH_BCM2835_DEBUG_LL_H__ */ diff --git a/arch/arm/mach-clps711x/clock.c b/arch/arm/mach-clps711x/clock.c index 548b333b11..f3b4d85e55 100644 --- a/arch/arm/mach-clps711x/clock.c +++ b/arch/arm/mach-clps711x/clock.c @@ -9,7 +9,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/io.h> #include <linux/clk.h> #include <linux/clkdev.h> diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c index e27476d90e..b6647dec26 100644 --- a/arch/arm/mach-clps711x/devices.c +++ b/arch/arm/mach-clps711x/devices.c @@ -9,7 +9,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/io.h> #include <asm/memory.h> diff --git a/arch/arm/mach-clps711x/lowlevel.c b/arch/arm/mach-clps711x/lowlevel.c index ff23b05cce..35b8b35e87 100644 --- a/arch/arm/mach-clps711x/lowlevel.c +++ b/arch/arm/mach-clps711x/lowlevel.c @@ -9,7 +9,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/io.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/mach-ep93xx/lowlevel_init.S b/arch/arm/mach-ep93xx/lowlevel_init.S index 56057a8bbd..707924606b 100644 --- a/arch/arm/mach-ep93xx/lowlevel_init.S +++ b/arch/arm/mach-ep93xx/lowlevel_init.S @@ -20,7 +20,7 @@ * */ -#include <sizes.h> +#include <linux/sizes.h> #include <mach/ep93xx-regs.h> #include <asm/barebox-arm-head.h> diff --git a/arch/arm/mach-highbank/devices.c b/arch/arm/mach-highbank/devices.c index 6d75864306..8f9b8e0f45 100644 --- a/arch/arm/mach-highbank/devices.c +++ b/arch/arm/mach-highbank/devices.c @@ -5,7 +5,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/amba/bus.h> diff --git a/arch/arm/mach-highbank/include/mach/debug_ll.h b/arch/arm/mach-highbank/include/mach/debug_ll.h index 4cdbb3ce51..1820eb1d13 100644 --- a/arch/arm/mach-highbank/include/mach/debug_ll.h +++ b/arch/arm/mach-highbank/include/mach/debug_ll.h @@ -7,20 +7,8 @@ #ifndef __MACH_DEBUG_LL_H__ #define __MACH_DEBUG_LL_H__ -#include <linux/amba/serial.h> -#include <io.h> +#define DEBUG_LL_UART_ADDR 0xfff36000 -#define UART_BASE 0xfff36000 +#include <asm/debug_ll_pl011.h> -static inline void PUTC_LL(char c) -{ - /* Wait until there is space in the FIFO */ - while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF); - - /* Send the character */ - writel(c, UART_BASE + UART01x_DR); - - /* Wait to make sure it hits the line, in case we die too soon. */ - while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF); -} #endif diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index a931de921e..9ac36e1453 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -102,13 +102,11 @@ endchoice config ARCH_IMX_EXTERNAL_BOOT_NAND bool - depends on MTD depends on ARCH_IMX25 || ARCH_IMX27 || ARCH_IMX31 || ARCH_IMX35 prompt "Support Starting barebox from NAND in external bootmode" config BAREBOX_UPDATE_IMX_EXTERNAL_NAND bool - depends on MTD depends on ARCH_IMX_EXTERNAL_BOOT_NAND depends on BAREBOX_UPDATE depends on MTD @@ -117,7 +115,6 @@ config BAREBOX_UPDATE_IMX_EXTERNAL_NAND config BAREBOX_UPDATE_IMX6_NAND bool - depends on MTD depends on ARCH_IMX6 depends on BAREBOX_UPDATE depends on MTD diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c index 433cfac1d5..c6479a0e54 100644 --- a/arch/arm/mach-imx/esdctl.c +++ b/arch/arm/mach-imx/esdctl.c @@ -19,7 +19,7 @@ #include <common.h> #include <io.h> #include <errno.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <of.h> #include <linux/err.h> diff --git a/arch/arm/mach-imx/imx-bbu-external-nand.c b/arch/arm/mach-imx/imx-bbu-external-nand.c index 401b3248a8..0f1a028f98 100644 --- a/arch/arm/mach-imx/imx-bbu-external-nand.c +++ b/arch/arm/mach-imx/imx-bbu-external-nand.c @@ -24,7 +24,7 @@ #include <errno.h> #include <fs.h> #include <fcntl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/mtd-abi.h> #include <linux/stat.h> #include <ioctl.h> diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c index 56369a0f94..ac90c53bb7 100644 --- a/arch/arm/mach-imx/imx-bbu-internal.c +++ b/arch/arm/mach-imx/imx-bbu-internal.c @@ -25,7 +25,7 @@ #include <errno.h> #include <fs.h> #include <fcntl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/mtd-abi.h> #include <linux/stat.h> #include <ioctl.h> diff --git a/arch/arm/mach-imx/imx25.c b/arch/arm/mach-imx/imx25.c index 1f87787772..e87d934024 100644 --- a/arch/arm/mach-imx/imx25.c +++ b/arch/arm/mach-imx/imx25.c @@ -18,7 +18,7 @@ #include <io.h> #include <mach/weim.h> #include <mach/generic.h> -#include <sizes.h> +#include <linux/sizes.h> void imx25_setup_weimcs(size_t cs, unsigned upper, unsigned lower, unsigned additional) diff --git a/arch/arm/mach-imx/imx27.c b/arch/arm/mach-imx/imx27.c index d3eaa87ef6..b99a4eae3f 100644 --- a/arch/arm/mach-imx/imx27.c +++ b/arch/arm/mach-imx/imx27.c @@ -15,7 +15,7 @@ #include <mach/imx27-regs.h> #include <mach/weim.h> #include <mach/iomux-v1.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/revision.h> #include <mach/generic.h> #include <init.h> diff --git a/arch/arm/mach-imx/imx31.c b/arch/arm/mach-imx/imx31.c index 3013f0208f..137c77a923 100644 --- a/arch/arm/mach-imx/imx31.c +++ b/arch/arm/mach-imx/imx31.c @@ -13,7 +13,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <mach/imx31-regs.h> #include <mach/weim.h> diff --git a/arch/arm/mach-imx/imx35.c b/arch/arm/mach-imx/imx35.c index 40f5770c8f..69d45eba66 100644 --- a/arch/arm/mach-imx/imx35.c +++ b/arch/arm/mach-imx/imx35.c @@ -12,7 +12,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <io.h> #include <mach/weim.h> diff --git a/arch/arm/mach-imx/imx5.c b/arch/arm/mach-imx/imx5.c index 9ec78b2afd..96288f99e0 100644 --- a/arch/arm/mach-imx/imx5.c +++ b/arch/arm/mach-imx/imx5.c @@ -1,6 +1,6 @@ #include <common.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx5.h> #include <mach/clock-imx51_53.h> diff --git a/arch/arm/mach-imx/imx51.c b/arch/arm/mach-imx/imx51.c index cef302b350..70e8971965 100644 --- a/arch/arm/mach-imx/imx51.c +++ b/arch/arm/mach-imx/imx51.c @@ -13,7 +13,7 @@ #include <init.h> #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <environment.h> #include <io.h> #include <mach/imx5.h> diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c index 62e65e01d4..872d293640 100644 --- a/arch/arm/mach-imx/imx53.c +++ b/arch/arm/mach-imx/imx53.c @@ -15,7 +15,7 @@ #include <common.h> #include <io.h> #include <notifier.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/imx5.h> #include <mach/imx53-regs.h> #include <mach/revision.h> diff --git a/arch/arm/mach-imx/imx6-bbu-nand.c b/arch/arm/mach-imx/imx6-bbu-nand.c index 2d0705956c..1b46e514e9 100644 --- a/arch/arm/mach-imx/imx6-bbu-nand.c +++ b/arch/arm/mach-imx/imx6-bbu-nand.c @@ -25,7 +25,7 @@ #include <errno.h> #include <fcntl.h> #include <ioctl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <bbu.h> #include <fs.h> #include <mach/bbu.h> diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c index c5cae6e238..73630e7092 100644 --- a/arch/arm/mach-imx/imx6.c +++ b/arch/arm/mach-imx/imx6.c @@ -14,7 +14,7 @@ #include <init.h> #include <common.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mfd/imx6q-iomuxc-gpr.h> #include <mach/imx6.h> #include <mach/generic.h> diff --git a/arch/arm/mach-imx/include/mach/devices-imx51.h b/arch/arm/mach-imx/include/mach/devices-imx51.h index 68953293b4..cccd8f4610 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx51.h +++ b/arch/arm/mach-imx/include/mach/devices-imx51.h @@ -1,5 +1,5 @@ -#include <sizes.h> +#include <linux/sizes.h> #include <mach/devices.h> #include <mach/imx51-regs.h> diff --git a/arch/arm/mach-imx/include/mach/imx31-regs.h b/arch/arm/mach-imx/include/mach/imx31-regs.h index 599f8008b5..e491328694 100644 --- a/arch/arm/mach-imx/include/mach/imx31-regs.h +++ b/arch/arm/mach-imx/include/mach/imx31-regs.h @@ -19,7 +19,7 @@ #ifndef __ASM_ARCH_MX31_REGS_H #define __ASM_ARCH_MX31_REGS_H -#include <sizes.h> +#include <linux/sizes.h> #define MX31_IRAM_BASE_ADDR 0x1fffc000 #define MX31_IRAM_SIZE 0x00004000 diff --git a/arch/arm/mach-imx/include/mach/imx35-regs.h b/arch/arm/mach-imx/include/mach/imx35-regs.h index b30037cf83..52e209b4de 100644 --- a/arch/arm/mach-imx/include/mach/imx35-regs.h +++ b/arch/arm/mach-imx/include/mach/imx35-regs.h @@ -19,7 +19,7 @@ #ifndef __ASM_ARCH_MX35_REGS_H #define __ASM_ARCH_MX35_REGS_H -#include <sizes.h> +#include <linux/sizes.h> #define MX35_IRAM_BASE_ADDR 0x10000000 /* internal ram */ #define MX35_IRAM_SIZE SZ_128K diff --git a/arch/arm/mach-mvebu/lowlevel.c b/arch/arm/mach-mvebu/lowlevel.c index 7c4facfa1c..8d0ac8453e 100644 --- a/arch/arm/mach-mvebu/lowlevel.c +++ b/arch/arm/mach-mvebu/lowlevel.c @@ -17,7 +17,7 @@ #include <common.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm.h> #include <asm/barebox-arm-head.h> #include <mach/common.h> diff --git a/arch/arm/mach-mxs/bcb.c b/arch/arm/mach-mxs/bcb.c index c945726f53..fce607f634 100644 --- a/arch/arm/mach-mxs/bcb.c +++ b/arch/arm/mach-mxs/bcb.c @@ -15,7 +15,7 @@ #include <environment.h> #include <malloc.h> #include <nand.h> -#include <sizes.h> +#include <linux/sizes.h> #include <errno.h> #include <io.h> diff --git a/arch/arm/mach-mxs/include/mach/devices.h b/arch/arm/mach-mxs/include/mach/devices.h index 012bfc4349..5680d61c9e 100644 --- a/arch/arm/mach-mxs/include/mach/devices.h +++ b/arch/arm/mach-mxs/include/mach/devices.h @@ -2,7 +2,7 @@ #define __MACH_MXS_DEVICES_H #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <xfuncs.h> #include <driver.h> #include <mach/imx-regs.h> diff --git a/arch/arm/mach-omap/am33xx_scrm.c b/arch/arm/mach-omap/am33xx_scrm.c index 67529f8226..bb0babeceb 100644 --- a/arch/arm/mach-omap/am33xx_scrm.c +++ b/arch/arm/mach-omap/am33xx_scrm.c @@ -15,7 +15,7 @@ #include <common.h> #include <io.h> #include <errno.h> -#include <sizes.h> +#include <linux/sizes.h> #include <init.h> #include <of.h> #include <asm/barebox-arm.h> diff --git a/arch/arm/mach-omap/include/mach/am33xx-devices.h b/arch/arm/mach-omap/include/mach/am33xx-devices.h index d2411a4fec..4790071c98 100644 --- a/arch/arm/mach-omap/include/mach/am33xx-devices.h +++ b/arch/arm/mach-omap/include/mach/am33xx-devices.h @@ -2,7 +2,7 @@ #define __MACH_OMAP3_DEVICES_H #include <driver.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/am33xx-silicon.h> #include <mach/devices.h> #include <mach/omap_hsmmc.h> diff --git a/arch/arm/mach-omap/include/mach/am33xx-silicon.h b/arch/arm/mach-omap/include/mach/am33xx-silicon.h index a44973e979..4e63b437ea 100644 --- a/arch/arm/mach-omap/include/mach/am33xx-silicon.h +++ b/arch/arm/mach-omap/include/mach/am33xx-silicon.h @@ -17,7 +17,7 @@ #ifndef __ASM_ARCH_AM33XX_H #define __ASM_ARCH_AM33XX_H -#include <sizes.h> +#include <linux/sizes.h> /** AM335x Internal Bus Base addresses */ #define AM33XX_L4_WKUP_BASE 0x44C00000 diff --git a/arch/arm/mach-omap/include/mach/omap3-devices.h b/arch/arm/mach-omap/include/mach/omap3-devices.h index 0809e95b11..8c62c99005 100644 --- a/arch/arm/mach-omap/include/mach/omap3-devices.h +++ b/arch/arm/mach-omap/include/mach/omap3-devices.h @@ -2,7 +2,7 @@ #define __MACH_OMAP3_DEVICES_H #include <driver.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/omap3-silicon.h> #include <mach/devices.h> #include <mach/mcspi.h> diff --git a/arch/arm/mach-omap/include/mach/omap3-generic.h b/arch/arm/mach-omap/include/mach/omap3-generic.h index 92bf7cabbd..7db0838a5f 100644 --- a/arch/arm/mach-omap/include/mach/omap3-generic.h +++ b/arch/arm/mach-omap/include/mach/omap3-generic.h @@ -1,7 +1,7 @@ #ifndef __MACH_OMAP3_GENERIC_H #define __MACH_OMAP3_GENERIC_H -#include <sizes.h> +#include <linux/sizes.h> #include <linux/string.h> #include <mach/generic.h> #include <mach/omap3-silicon.h> diff --git a/arch/arm/mach-omap/include/mach/omap4-devices.h b/arch/arm/mach-omap/include/mach/omap4-devices.h index 76c9789729..7ac940b2d7 100644 --- a/arch/arm/mach-omap/include/mach/omap4-devices.h +++ b/arch/arm/mach-omap/include/mach/omap4-devices.h @@ -2,7 +2,7 @@ #define __MACH_OMAP4_DEVICES_H #include <driver.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/devices.h> #include <mach/omap4-silicon.h> #include <mach/mcspi.h> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c index 8d9d84c85c..7c8c350114 100644 --- a/arch/arm/mach-omap/xload.c +++ b/arch/arm/mach-omap/xload.c @@ -8,7 +8,7 @@ #include <libfile.h> #include <fs.h> #include <fcntl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <malloc.h> #include <filetype.h> #include <xymodem.h> diff --git a/arch/arm/mach-samsung/lowlevel-s3c24x0.S b/arch/arm/mach-samsung/lowlevel-s3c24x0.S index 52079ffc7b..626ad04187 100644 --- a/arch/arm/mach-samsung/lowlevel-s3c24x0.S +++ b/arch/arm/mach-samsung/lowlevel-s3c24x0.S @@ -15,7 +15,7 @@ */ #include <config.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/s3c-iomap.h> .section ".text_bare_init.s3c24x0_disable_wd","ax" diff --git a/arch/arm/mach-samsung/mem-s3c24x0.c b/arch/arm/mach-samsung/mem-s3c24x0.c index db61c63b64..bf65150cab 100644 --- a/arch/arm/mach-samsung/mem-s3c24x0.c +++ b/arch/arm/mach-samsung/mem-s3c24x0.c @@ -23,7 +23,7 @@ #include <init.h> #include <clock.h> #include <io.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/s3c-iomap.h> #include <mach/s3c-generic.h> #include <mach/s3c-busctl.h> diff --git a/arch/arm/mach-socfpga/xload.c b/arch/arm/mach-socfpga/xload.c index 6586ada349..3380092168 100644 --- a/arch/arm/mach-socfpga/xload.c +++ b/arch/arm/mach-socfpga/xload.c @@ -6,7 +6,7 @@ #include <malloc.h> #include <init.h> #include <envfs.h> -#include <sizes.h> +#include <linux/sizes.h> #include <fs.h> #include <io.h> diff --git a/arch/arm/mach-tegra/include/mach/iomap.h b/arch/arm/mach-tegra/include/mach/iomap.h index cdaab6ab8b..bbe6ae6be6 100644 --- a/arch/arm/mach-tegra/include/mach/iomap.h +++ b/arch/arm/mach-tegra/include/mach/iomap.h @@ -21,7 +21,7 @@ #ifndef __MACH_TEGRA_IOMAP_H #define __MACH_TEGRA_IOMAP_H -#include <sizes.h> +#include <linux/sizes.h> #define TEGRA_IRAM_BASE 0x40000000 #define TEGRA_IRAM_SIZE SZ_256K diff --git a/arch/arm/mach-tegra/include/mach/lowlevel.h b/arch/arm/mach-tegra/include/mach/lowlevel.h index 3e7e41b990..f1fea86cf6 100644 --- a/arch/arm/mach-tegra/include/mach/lowlevel.h +++ b/arch/arm/mach-tegra/include/mach/lowlevel.h @@ -25,7 +25,7 @@ #define __TEGRA_LOWLEVEL_H #include <linux/compiler.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <mach/iomap.h> diff --git a/arch/arm/mach-tegra/tegra_maincomplex_init.c b/arch/arm/mach-tegra/tegra_maincomplex_init.c index 4a362ddba3..6c6bdf6c15 100644 --- a/arch/arm/mach-tegra/tegra_maincomplex_init.c +++ b/arch/arm/mach-tegra/tegra_maincomplex_init.c @@ -15,7 +15,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> #include <asm/errata.h> diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index 9a1bf953b0..755fdc168a 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -1,13 +1,26 @@ if ARCH_VERSATILE -choice - prompt "ARM Board type" +config ARCH_TEXT_BASE + default 0x02000000 config MACH_VERSATILEPB - bool "ARM Versatile/PB (ARM926EJ-S)" + bool + default y select ARM_AMBA select CLKDEV_LOOKUP + select HAVE_DEFAULT_ENVIRONMENT_NEW + +choice + prompt "ARM Board type" + +config MACH_VERSATILEPB_926T + bool "ARM Versatile/PB (ARM926EJ-S)" + select CPU_ARM926T + +config MACH_VERSATILEPB_ARM1176 + bool "ARM Versatile/PB (ARM1176)" + select CPU_ARM1176 endchoice diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 84a85a4ec9..253e408db9 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c @@ -26,7 +26,7 @@ #include <init.h> #include <clock.h> #include <debug_ll.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/clkdev.h> #include <linux/clk.h> diff --git a/arch/arm/mach-versatile/include/mach/debug_ll.h b/arch/arm/mach-versatile/include/mach/debug_ll.h index f91812b12d..e6ee877a54 100644 --- a/arch/arm/mach-versatile/include/mach/debug_ll.h +++ b/arch/arm/mach-versatile/include/mach/debug_ll.h @@ -16,19 +16,8 @@ #ifndef __MACH_DEBUG_LL_H__ #define __MACH_DEBUG_LL_H__ -#include <linux/amba/serial.h> -#include <io.h> +#define DEBUG_LL_UART_ADDR 0x101F1000 -static inline void PUTC_LL(char c) -{ - /* Wait until there is space in the FIFO */ - while (readl(0x101F1000 + UART01x_FR) & UART01x_FR_TXFF); - - /* Send the character */ - writel(c, 0x101F1000 + UART01x_DR); - - /* Wait to make sure it hits the line, in case we die too soon. */ - while (readl(0x101F1000 + UART01x_FR) & UART01x_FR_TXFF); -} +#include <asm/debug_ll_pl011.h> #endif diff --git a/arch/arm/mach-vexpress/include/mach/debug_ll.h b/arch/arm/mach-vexpress/include/mach/debug_ll.h index 15d6e85239..89b06923ad 100644 --- a/arch/arm/mach-vexpress/include/mach/debug_ll.h +++ b/arch/arm/mach-vexpress/include/mach/debug_ll.h @@ -14,20 +14,11 @@ #define DEBUG_LL_PHYS_BASE_RS1 0x1c000000 #ifdef MP -#define UART_BASE DEBUG_LL_PHYS_BASE +#define DEBUG_LL_UART_ADDR DEBUG_LL_PHYS_BASE #else -#define UART_BASE DEBUG_LL_PHYS_BASE_RS1 +#define DEBUG_LL_UART_ADDR DEBUG_LL_PHYS_BASE_RS1 #endif -static inline void PUTC_LL(char c) -{ - /* Wait until there is space in the FIFO */ - while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF); +#include <asm/debug_ll_pl011.h> - /* Send the character */ - writel(c, UART_BASE + UART01x_DR); - - /* Wait to make sure it hits the line, in case we die too soon. */ - while (readl(UART_BASE + UART01x_FR) & UART01x_FR_TXFF); -} #endif diff --git a/arch/blackfin/lib/asm-offsets.c b/arch/blackfin/lib/asm-offsets.c new file mode 100644 index 0000000000..9003c736ff --- /dev/null +++ b/arch/blackfin/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * generate definitions needed by assembly language modules + * + * Licensed under the GPL-2 or later + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/efi/efi/efi-device.c b/arch/efi/efi/efi-device.c index 1c9553d906..788bb71533 100644 --- a/arch/efi/efi/efi-device.c +++ b/arch/efi/efi/efi-device.c @@ -23,7 +23,7 @@ #include <malloc.h> #include <memory.h> #include <string.h> -#include <sizes.h> +#include <linux/sizes.h> #include <wchar.h> #include <init.h> #include <efi.h> diff --git a/arch/efi/efi/efi-image.c b/arch/efi/efi/efi-image.c index d9edd91e4d..f7bda8dfcb 100644 --- a/arch/efi/efi/efi-image.c +++ b/arch/efi/efi/efi-image.c @@ -18,7 +18,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <memory.h> #include <command.h> #include <magicvar.h> diff --git a/arch/efi/efi/efi.c b/arch/efi/efi/efi.c index 7de8ec82e8..d351775a28 100644 --- a/arch/efi/efi/efi.c +++ b/arch/efi/efi/efi.c @@ -18,7 +18,7 @@ */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <memory.h> #include <clock.h> #include <command.h> @@ -248,7 +248,7 @@ console_initcall(efi_console_init); void reset_cpu(unsigned long addr) { - BS->exit(efi_parent_image, EFI_SUCCESS, 0, NULL); + RT->reset_system(EFI_RESET_WARM, EFI_SUCCESS, 0, NULL); while(1); } @@ -341,3 +341,19 @@ efi_status_t efi_main(efi_handle_t image, efi_system_table_t *sys_table) return EFI_SUCCESS; } + +static int do_efiexit(int argc, char *argv[]) +{ + return BS->exit(efi_parent_image, EFI_SUCCESS, 0, NULL); +} + +BAREBOX_CMD_HELP_START(efiexit) +BAREBOX_CMD_HELP_TEXT("Leave barebox and return to the calling EFI process\n") +BAREBOX_CMD_HELP_END + +BAREBOX_CMD_START(efiexit) + .cmd = do_efiexit, + BAREBOX_CMD_DESC("Usage: efiexit") + BAREBOX_CMD_GROUP(CMD_GRP_MISC) + BAREBOX_CMD_HELP(cmd_efiexit_help) +BAREBOX_CMD_END diff --git a/arch/efi/lib/asm-offsets.c b/arch/efi/lib/asm-offsets.c new file mode 100644 index 0000000000..22f382b71e --- /dev/null +++ b/arch/efi/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/mips/Makefile b/arch/mips/Makefile index f3f4f67d86..6ef2bf75c3 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -148,46 +148,3 @@ dts := arch/mips/dts $(Q)$(MAKE) $(build)=$(dts) $(dts)/$@ KBUILD_IMAGE ?= $(KBUILD_BINARY) - -##### -# Generate asm-offsets.h -# - -offsets-file := include/generated/asm-offsets.h - -always += $(offsets-file) -targets += $(offsets-file) -targets += arch/$(SRCARCH)/lib/asm-offsets.s - -# Default sed regexp - multiline due to syntax constraints -define sed-y - "/^->/{s:->#\(.*\):/* \1 */:; \ - s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:->::; p;}" -endef - -quiet_cmd_offsets = GEN $@ -define cmd_offsets - (set -e; \ - echo "#ifndef __ASM_OFFSETS_H__"; \ - echo "#define __ASM_OFFSETS_H__"; \ - echo "/*"; \ - echo " * DO NOT MODIFY."; \ - echo " *"; \ - echo " * This file was generated by Kbuild"; \ - echo " *"; \ - echo " */"; \ - echo ""; \ - sed -ne $(sed-y) $<; \ - echo ""; \ - echo "#endif" ) > $@ -endef - -# We use internal kbuild rules to avoid the "is up to date" message from make -arch/$(SRCARCH)/lib/asm-offsets.s: arch/$(SRCARCH)/lib/asm-offsets.c FORCE - $(Q)mkdir -p $(dir $@) - $(call if_changed_dep,cc_s_c) - -$(obj)/$(offsets-file): arch/$(SRCARCH)/lib/asm-offsets.s Makefile - $(call cmd,offsets) diff --git a/arch/mips/boards/netgear-wg102/ram.c b/arch/mips/boards/netgear-wg102/ram.c index e26dc7cbd3..4cde573982 100644 --- a/arch/mips/boards/netgear-wg102/ram.c +++ b/arch/mips/boards/netgear-wg102/ram.c @@ -1,6 +1,6 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/memory.h> static int mem_init(void) diff --git a/arch/mips/boards/qemu-malta/init.c b/arch/mips/boards/qemu-malta/init.c index 9d90f28651..24bfdc03ee 100644 --- a/arch/mips/boards/qemu-malta/init.c +++ b/arch/mips/boards/qemu-malta/init.c @@ -18,7 +18,7 @@ #include <common.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> static int malta_core_init(void) { diff --git a/arch/mips/boot/main_entry-pbl.c b/arch/mips/boot/main_entry-pbl.c index 3a244a0c50..e408d29445 100644 --- a/arch/mips/boot/main_entry-pbl.c +++ b/arch/mips/boot/main_entry-pbl.c @@ -19,7 +19,7 @@ #include <common.h> #include <pbl.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <string.h> #include <asm/sections.h> #include <asm-generic/memory_layout.h> diff --git a/arch/nios2/lib/asm-offsets.c b/arch/nios2/lib/asm-offsets.c new file mode 100644 index 0000000000..21e4771e54 --- /dev/null +++ b/arch/nios2/lib/asm-offsets.c @@ -0,0 +1,22 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/openrisc/lib/asm-offsets.c b/arch/openrisc/lib/asm-offsets.c new file mode 100644 index 0000000000..8cee8e00c6 --- /dev/null +++ b/arch/openrisc/lib/asm-offsets.c @@ -0,0 +1,18 @@ +/* + * OpenRISC asm-offsets.c + * + * This program is used to generate definitions needed by + * assembly language modules. + * + * We use the technique used in the OSF Mach kernel code: + * generate asm statements containing #defines, + * compile this file to assembler, and then extract the + * #defines from the assembly-language output. + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/ppc/boards/pcm030/pcm030.c b/arch/ppc/boards/pcm030/pcm030.c index 0762bd4f26..a7fa21d173 100644 --- a/arch/ppc/boards/pcm030/pcm030.c +++ b/arch/ppc/boards/pcm030/pcm030.c @@ -30,7 +30,7 @@ #include <types.h> #include <partition.h> #include <memory.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/stat.h> #include <fs.h> diff --git a/arch/ppc/lib/asm-offsets.c b/arch/ppc/lib/asm-offsets.c new file mode 100644 index 0000000000..bef280edd7 --- /dev/null +++ b/arch/ppc/lib/asm-offsets.c @@ -0,0 +1,21 @@ +/* + * This program is used to generate definitions needed by + * assembly language modules. + * + * We use the technique used in the OSF Mach kernel code: + * generate asm statements containing #defines, + * compile this file to assembler, and then extract the + * #defines from the assembly-language output. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/sandbox/lib/asm-offsets.c b/arch/sandbox/lib/asm-offsets.c new file mode 100644 index 0000000000..22f382b71e --- /dev/null +++ b/arch/sandbox/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include <linux/kbuild.h> + +int main(void) +{ + return 0; +} diff --git a/arch/x86/lib/asm-offsets.c b/arch/x86/lib/asm-offsets.c new file mode 100644 index 0000000000..b1be3e5390 --- /dev/null +++ b/arch/x86/lib/asm-offsets.c @@ -0,0 +1,11 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include <linux/kbuild.h> + +void common(void) +{ +} diff --git a/commands/loadxy.c b/commands/loadxy.c index df14043d69..1e65cb6221 100644 --- a/commands/loadxy.c +++ b/commands/loadxy.c @@ -43,10 +43,10 @@ static int console_change_speed(struct console_device *cdev, int baudrate) { int current_baudrate; + const char *bstr; - current_baudrate = - (int)simple_strtoul(dev_get_param(&cdev->class_dev, - "baudrate"), NULL, 10); + bstr = dev_get_param(&cdev->class_dev, "baudrate"); + current_baudrate = bstr ? (int)simple_strtoul(bstr, NULL, 10) : 0; if (baudrate && baudrate != current_baudrate) { printf("## Switch baudrate from %d to %d bps and press ENTER ...\n", current_baudrate, baudrate); diff --git a/common/clock.c b/common/clock.c index 2ee81da8e7..35c9e6cbb8 100644 --- a/common/clock.c +++ b/common/clock.c @@ -22,6 +22,7 @@ */ #include <common.h> +#include <init.h> #include <asm-generic/div64.h> #include <clock.h> #include <poller.h> @@ -35,6 +36,16 @@ static uint64_t time_ns; */ uint64_t time_beginning; +static int dummy_csrc_warn(void) +{ + if (!current_clock) { + pr_warn("Warning: Using dummy clocksource\n"); + } + + return 0; +} +late_initcall(dummy_csrc_warn); + /** * get_time_ns - get current timestamp in nanoseconds */ @@ -44,8 +55,13 @@ uint64_t get_time_ns(void) uint64_t cycle_now, cycle_delta; uint64_t ns_offset; - if (!cs) - return 0; + if (!cs) { + static uint64_t dummy_counter; + + dummy_counter += CONFIG_CLOCKSOURCE_DUMMY_RATE; + + return dummy_counter; + } /* read clocksource: */ cycle_now = cs->read() & cs->mask; diff --git a/common/efi-devicepath.c b/common/efi-devicepath.c index 2b1d916768..a53c6d2e8b 100644 --- a/common/efi-devicepath.c +++ b/common/efi-devicepath.c @@ -1368,3 +1368,18 @@ char *device_path_to_str(struct efi_device_path *dev_path) return str.str; } + +u8 device_path_to_type(struct efi_device_path *dev_path) +{ + struct efi_device_path *dev_path_next; + + dev_path = unpack_device_path(dev_path); + dev_path_next = next_device_path_node(dev_path); + + while (!is_device_path_end(dev_path_next)) { + dev_path = dev_path_next; + dev_path_next = next_device_path_node(dev_path); + } + + return device_path_type(dev_path); +} diff --git a/common/memtest.c b/common/memtest.c index 541d008221..25a97d845c 100644 --- a/common/memtest.c +++ b/common/memtest.c @@ -24,7 +24,7 @@ #include <common.h> #include <memory.h> #include <types.h> -#include <sizes.h> +#include <linux/sizes.h> #include <errno.h> #include <memtest.h> diff --git a/common/startup.c b/common/startup.c index 2b92efcb95..e59b06d533 100644 --- a/common/startup.c +++ b/common/startup.c @@ -51,6 +51,12 @@ static int mount_root(void) mount("none", "ramfs", "/", NULL); mkdir("/dev", 0); mount("none", "devfs", "/dev", NULL); + + if (IS_ENABLED(CONFIG_FS_EFIVARFS)) { + mkdir("/efivars", 0); + mount("none", "efivarfs", "/efivars", NULL); + } + return 0; } fs_initcall(mount_root); diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 645e9b5b7e..346ab98134 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -32,7 +32,7 @@ #include <disks.h> #include <asm/mmu.h> #include <ata_drive.h> -#include <sizes.h> +#include <linux/sizes.h> #include <clock.h> #include "ahci.h" diff --git a/drivers/base/driver.c b/drivers/base/driver.c index e0125a1b92..81b35031a1 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -318,6 +318,22 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n } EXPORT_SYMBOL(dev_request_mem_region_by_name); +void __iomem *dev_request_mem_region_err_null(struct device_d *dev, int num) +{ + struct resource *res; + + res = dev_get_resource(dev, IORESOURCE_MEM, num); + if (IS_ERR(res)) + return NULL; + + res = request_iomem_region(dev_name(dev), res->start, res->end); + if (IS_ERR(res)) + return NULL; + + return (void __force __iomem *)res->start; +} +EXPORT_SYMBOL(dev_request_mem_region_err_null); + void __iomem *dev_request_mem_region(struct device_d *dev, int num) { struct resource *res; @@ -330,7 +346,7 @@ void __iomem *dev_request_mem_region(struct device_d *dev, int num) if (IS_ERR(res)) return ERR_CAST(res); - return (void __force __iomem *)res->start; + return IOMEM(res->start); } EXPORT_SYMBOL(dev_request_mem_region); diff --git a/drivers/bus/omap-gpmc.c b/drivers/bus/omap-gpmc.c index 6cc3269993..6752c42a35 100644 --- a/drivers/bus/omap-gpmc.c +++ b/drivers/bus/omap-gpmc.c @@ -11,7 +11,7 @@ #include <driver.h> #include <malloc.h> #include <init.h> -#include <sizes.h> +#include <linux/sizes.h> #include <io.h> #include <of.h> #include <of_address.h> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index fc5a389b95..598edc9a81 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -18,28 +18,21 @@ config CLOCKSOURCE_DIGIC bool depends on ARCH_DIGIC -config CLOCKSOURCE_DUMMY - bool "Enable dummy software-only clocksource" +config CLOCKSOURCE_DUMMY_RATE + int + prompt "dummy clocksource rate" + default 1000 help When porting barebox to a new SoC there might be a case of broken or absent clocksource. This causes barebox serial console to be non functional. - To solve the problem this software-only clocksource driver is used. - WARNING!!! This clocksource doesn't provide correct timing. - To adjust this clocksource please use CONFIG_CLOCKSOURCE_DUMMY_RATE. + To solve the problem barebox has built-in software-only clocksource. + The software-only clocksource is used only if no hardware clocksource + is registered. This can help if initialization order is wrong so that + the time functions are used before the real clocksource was initialized. + WARNING!!! Built-in software-only clocksource doesn't provide correct timing. + The option CONFIG_CLOCKSOURCE_DUMMY_RATE is used to adjust this clocksource. The bigger rate valuest makes clocksource "faster". - It's possible to add this clocksource unconditionally. - This clocksource starts very early (pure_initcall) so - real clocksource will take over. - This can help if initialization order is wrong so that - the time functions are used before the real clocksource - was initialized. - -config CLOCKSOURCE_DUMMY_RATE - int - prompt "dummy clocksource rate" - depends on CLOCKSOURCE_DUMMY - default 1000 config CLOCKSOURCE_MVEBU bool diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile index b80df6b2c9..f5f5141a3d 100644 --- a/drivers/clocksource/Makefile +++ b/drivers/clocksource/Makefile @@ -3,7 +3,6 @@ obj-$(CONFIG_ARM_SMP_TWD) += arm_smp_twd.o obj-$(CONFIG_CLOCKSOURCE_BCM2835) += bcm2835.o obj-$(CONFIG_CLOCKSOURCE_CLPS711X) += clps711x.o obj-$(CONFIG_CLOCKSOURCE_DIGIC) += digic.o -obj-$(CONFIG_CLOCKSOURCE_DUMMY) += dummy.o obj-$(CONFIG_CLOCKSOURCE_MVEBU) += mvebu.o obj-$(CONFIG_CLOCKSOURCE_NOMADIK) += nomadik.o obj-$(CONFIG_CLOCKSOURCE_ORION) += orion.o diff --git a/drivers/clocksource/dummy.c b/drivers/clocksource/dummy.c deleted file mode 100644 index 96f9b6efca..0000000000 --- a/drivers/clocksource/dummy.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2013 Antony Pavlov <antonynpavlov@gmail.com> - * - * This file is part of barebox. - * 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 <common.h> -#include <init.h> -#include <clock.h> - -static uint64_t dummy_counter; - -static uint64_t dummy_cs_read(void) -{ - static int first; - - if (!first) { - pr_warn("Warning: Using dummy clocksource\n"); - first = 1; - } - - dummy_counter += CONFIG_CLOCKSOURCE_DUMMY_RATE; - - return dummy_counter; -} - -static struct clocksource dummy_cs = { - .read = dummy_cs_read, - .mask = CLOCKSOURCE_MASK(32), -}; - -static int clocksource_init(void) -{ - dummy_counter = 0; - - clocks_calc_mult_shift(&dummy_cs.mult, &dummy_cs.shift, - 100000000, NSEC_PER_SEC, 10); - - pr_debug("clocksource_init: mult=%08x, shift=%08x\n", - dummy_cs.mult, dummy_cs.shift); - - return init_clock(&dummy_cs); -} -pure_initcall(clocksource_init); diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 094f5916cf..96c3c2bc87 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -271,11 +271,6 @@ static struct omap_i2c_driver_data am33xx_data = { .fclk_rate = 48000, }; -static struct omap_i2c_driver_data omap4_of_data = { - .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE, - .fclk_rate = 0, -}; - static inline void omap_i2c_write_reg(struct omap_i2c_struct *i2c_omap, int reg, u16 val) { @@ -1011,6 +1006,11 @@ i2c_omap_probe(struct device_d *pdev) if (r) return r; + if (of_machine_is_compatible("ti,am33xx")) + i2c_data = &am33xx_data; + if (of_machine_is_compatible("ti,omap4")) + i2c_data = &omap4_data; + i2c_omap->data = i2c_data; i2c_omap->reg_shift = (i2c_data->flags >> OMAP_I2C_FLAG_BUS_SHIFT__SHIFT) & 3; @@ -1140,7 +1140,6 @@ static __maybe_unused struct of_device_id omap_i2c_dt_ids[] = { .data = (unsigned long)&omap3_data, }, { .compatible = "ti,omap4-i2c", - .data = (unsigned long)&omap4_of_data, }, { /* sentinel */ } diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c index 52b0da5927..dc0f8c6aa3 100644 --- a/drivers/mtd/nand/nand_ids.c +++ b/drivers/mtd/nand/nand_ids.c @@ -9,7 +9,7 @@ * */ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/mtd/nand.h> #ifdef CONFIG_NAND_INFO diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index b6618ad675..799fac89a2 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -910,6 +910,16 @@ static int cpsw_slave_setup(struct cpsw_slave *slave, int slave_num, struct eth_device *edev = &slave->edev; struct device_d *dev = &slave->dev; int ret; + struct phy_device *phy; + + phy = mdiobus_scan(&priv->miibus, priv->slaves[slave_num].phy_id); + if (IS_ERR(phy)) + return PTR_ERR(phy); + + phy->dev.device_node = priv->slaves[slave_num].dev.device_node; + ret = phy_register_device(phy); + if (ret) + return ret; sprintf(dev->name, "cpsw-slave"); dev->id = slave->slave_num; @@ -1199,22 +1209,11 @@ int cpsw_probe(struct device_d *dev) mdiobus_register(&priv->miibus); for (i = 0; i < priv->num_slaves; i++) { - struct phy_device *phy; - - phy = mdiobus_scan(&priv->miibus, priv->slaves[i].phy_id); - if (IS_ERR(phy)) { - ret = PTR_ERR(phy); - goto out; - } - - phy->dev.device_node = priv->slaves[i].dev.device_node; - ret = phy_register_device(phy); - if (ret) - goto out; - ret = cpsw_slave_setup(&priv->slaves[i], i, priv); - if (ret) - goto out; + if (ret) { + dev_err(dev, "Failed to setup slave %d: %s\n", i, strerror(-ret)); + continue; + } } return 0; diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c index 7734cf8a44..8042e90951 100644 --- a/drivers/net/mvneta.c +++ b/drivers/net/mvneta.c @@ -28,7 +28,7 @@ #include <io.h> #include <net.h> #include <of_net.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/mmu.h> #include <linux/clk.h> #include <linux/err.h> diff --git a/drivers/net/orion-gbe.c b/drivers/net/orion-gbe.c index ab761ad2e0..3fbc1df893 100644 --- a/drivers/net/orion-gbe.c +++ b/drivers/net/orion-gbe.c @@ -31,7 +31,7 @@ #include <io.h> #include <net.h> #include <of_net.h> -#include <sizes.h> +#include <linux/sizes.h> #include <asm/mmu.h> #include <linux/clk.h> #include <linux/err.h> diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index 5702900e49..19f5763c87 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -50,11 +50,11 @@ struct rtl8169_priv { struct pci_dev *pci_dev; int chipset; - struct bufdesc *tx_desc; + volatile struct bufdesc *tx_desc; void *tx_buf; unsigned int cur_tx; - struct bufdesc *rx_desc; + volatile struct bufdesc *rx_desc; void *rx_buf; unsigned int cur_rx; @@ -250,10 +250,6 @@ static void rtl8169_init_ring(struct rtl8169_priv *priv) priv->rx_desc[i].buf_addr = virt_to_phys(priv->rx_buf + i * PKT_BUF_SIZE); } - - dma_flush_range((unsigned long)priv->rx_desc, - (unsigned long)priv->rx_desc + - NUM_RX_DESC * sizeof(struct bufdesc)); } static void rtl8169_hw_start(struct rtl8169_priv *priv) @@ -386,14 +382,10 @@ static int rtl8169_eth_send(struct eth_device *edev, void *packet, ((packet_length > ETH_ZLEN) ? packet_length : ETH_ZLEN); } - dma_flush_range((unsigned long)&priv->tx_desc[entry], - (unsigned long)&priv->tx_desc[entry + 1]); - RTL_W8(priv, TxPoll, 0x40); - do { - dma_inv_range((unsigned long)&priv->tx_desc[entry], - (unsigned long)&priv->tx_desc[entry + 1]); - } while (priv->tx_desc[entry].status & BD_STAT_OWN); + + while (priv->tx_desc[entry].status & BD_STAT_OWN) + ; priv->cur_tx++; @@ -408,9 +400,6 @@ static int rtl8169_eth_rx(struct eth_device *edev) entry = priv->cur_rx % NUM_RX_DESC; - dma_inv_range((unsigned long)&priv->rx_desc[entry], - (unsigned long)&priv->rx_desc[entry + 1]); - if ((priv->rx_desc[entry].status & BD_STAT_OWN) == 0) { if (!(priv->rx_desc[entry].status & BD_STAT_RX_RES)) { pkt_size = (priv->rx_desc[entry].status & 0x1fff) - 4; @@ -441,9 +430,6 @@ static int rtl8169_eth_rx(struct eth_device *edev) priv->rx_desc[entry].buf_addr = virt_to_phys(priv->rx_buf + entry * PKT_BUF_SIZE); - - dma_flush_range((unsigned long)&priv->rx_desc[entry], - (unsigned long)&priv->rx_desc[entry + 1]); } else { dev_err(&edev->dev, "rx error\n"); } diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c index 55d93676b2..100688ccf8 100644 --- a/drivers/net/smc91111.c +++ b/drivers/net/smc91111.c @@ -152,6 +152,7 @@ /* Memory Information Register */ /* BANK 0 */ #define MIR_REG 0x0008 +#define MIR_FREE_MASK 0xff00 /* Receive/Phy Control Register */ /* BANK 0 */ @@ -582,6 +583,43 @@ static inline void SMC_SELECT_BANK(struct smc91c111_priv *p, int bank) SMC_outw(p, bank, BANK_SELECT); } +#if SMC_DEBUG > 2 +static void print_packet( unsigned char * buf, int length ) +{ + int i; + int remainder; + int lines; + + printf("Packet of length %d \n", length ); + +#if SMC_DEBUG > 3 + lines = length / 16; + remainder = length % 16; + + for ( i = 0; i < lines ; i ++ ) { + int cur; + + for ( cur = 0; cur < 8; cur ++ ) { + unsigned char a, b; + + a = *(buf ++ ); + b = *(buf ++ ); + printf("%02x%02x ", a, b ); + } + printf("\n"); + } + for ( i = 0; i < remainder/2 ; i++ ) { + unsigned char a, b; + + a = *(buf ++ ); + b = *(buf ++ ); + printf("%02x%02x ", a, b ); + } + printf("\n"); +#endif +} +#endif + /* note: timeout in seconds */ static int poll4int(struct smc91c111_priv *priv, unsigned char mask, int timeout) @@ -916,6 +954,30 @@ static int smc91c111_eth_open(struct eth_device *edev) return 0; } +static void smc91c111_ensure_freemem(struct eth_device *edev) +{ + struct smc91c111_priv *priv = (struct smc91c111_priv *)edev->priv; + u16 mir, rxfifo; + + SMC_SELECT_BANK(priv, 0); + mir = SMC_inw(priv, MIR_REG); + SMC_SELECT_BANK(priv, 2); + + if ((mir & MIR_FREE_MASK) == 0) { + do { + SMC_outw(priv, MC_RELEASE, MMU_CMD_REG); + smc_wait_mmu_release_complete(priv); + + SMC_SELECT_BANK(priv, 0); + mir = SMC_inw(priv, MIR_REG); + SMC_SELECT_BANK(priv, 2); + rxfifo = SMC_inw(priv, RXFIFO_REG); + dev_dbg(&edev->dev, "%s: card memory saturated, tidying up (rx_tx_fifo=0x%04x mir=0x%04x)\n", + SMC_DEV_NAME, rxfifo, mir); + } while (!(rxfifo & RXFIFO_REMPTY)); + } +} + static int smc91c111_eth_send(struct eth_device *edev, void *packet, int packet_length) { @@ -957,6 +1019,7 @@ static int smc91c111_eth_send(struct eth_device *edev, void *packet, return -EOVERFLOW; } + smc91c111_ensure_freemem(edev); /* now, try to allocate the memory */ SMC_SELECT_BANK(priv, 2); SMC_outw(priv, MC_ALLOC | numPages, MMU_CMD_REG); @@ -1255,44 +1318,6 @@ static void smc_dump_mii_stream (unsigned char * bits, int size) } #endif - -#if SMC_DEBUG > 2 -static void print_packet( unsigned char * buf, int length ) -{ - int i; - int remainder; - int lines; - - printf("Packet of length %d \n", length ); - -#if SMC_DEBUG > 3 - lines = length / 16; - remainder = length % 16; - - for ( i = 0; i < lines ; i ++ ) { - int cur; - - for ( cur = 0; cur < 8; cur ++ ) { - unsigned char a, b; - - a = *(buf ++ ); - b = *(buf ++ ); - printf("%02x%02x ", a, b ); - } - printf("\n"); - } - for ( i = 0; i < remainder/2 ; i++ ) { - unsigned char a, b; - - a = *(buf ++ ); - b = *(buf ++ ); - printf("%02x%02x ", a, b ); - } - printf("\n"); -#endif -} -#endif - static int smc91c111_init_dev(struct eth_device *edev) { return 0; diff --git a/drivers/of/base.c b/drivers/of/base.c index e9f0883f47..af10fd1da3 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -24,7 +24,7 @@ #include <malloc.h> #include <init.h> #include <memory.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/ctype.h> #include <linux/amba/bus.h> #include <linux/err.h> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index d84b2037cb..dfa95c38c8 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -23,7 +23,7 @@ #include <malloc.h> #include <init.h> #include <memory.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/ctype.h> #include <linux/err.h> diff --git a/drivers/pci/pci-mvebu.c b/drivers/pci/pci-mvebu.c index a314a689c0..5e2b87a9e1 100644 --- a/drivers/pci/pci-mvebu.c +++ b/drivers/pci/pci-mvebu.c @@ -20,7 +20,7 @@ #include <of_address.h> #include <of_gpio.h> #include <of_pci.h> -#include <sizes.h> +#include <linux/sizes.h> #include "pci-mvebu.h" diff --git a/drivers/pci/pci-tegra.c b/drivers/pci/pci-tegra.c index 1ff3c0d150..1e7907e5b1 100644 --- a/drivers/pci/pci-tegra.c +++ b/drivers/pci/pci-tegra.c @@ -32,7 +32,7 @@ #include <linux/pci.h> #include <linux/phy/phy.h> #include <linux/reset.h> -#include <sizes.h> +#include <linux/sizes.h> #include <mach/tegra-powergate.h> #include <regulator.h> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 7f8ebcfe43..5b848eeb2a 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1,5 +1,5 @@ #include <common.h> -#include <sizes.h> +#include <linux/sizes.h> #include <linux/pci.h> #ifdef DEBUG diff --git a/drivers/pinctrl/mvebu/armada-370.c b/drivers/pinctrl/mvebu/armada-370.c index 4778358fad..bcfe40e6c8 100644 --- a/drivers/pinctrl/mvebu/armada-370.c +++ b/drivers/pinctrl/mvebu/armada-370.c @@ -17,7 +17,7 @@ #include <malloc.h> #include <of.h> #include <of_address.h> -#include <sizes.h> +#include <linux/sizes.h> #include "common.h" diff --git a/drivers/pinctrl/mvebu/armada-xp.c b/drivers/pinctrl/mvebu/armada-xp.c index 8c71867a7d..1745776a4d 100644 --- a/drivers/pinctrl/mvebu/armada-xp.c +++ b/drivers/pinctrl/mvebu/armada-xp.c @@ -26,7 +26,7 @@ #include <malloc.h> #include <of.h> #include <of_address.h> -#include <sizes.h> +#include <linux/sizes.h> #include "common.h" diff --git a/drivers/pinctrl/mvebu/dove.c b/drivers/pinctrl/mvebu/dove.c index bd0a632f1f..a2133a093b 100644 --- a/drivers/pinctrl/mvebu/dove.c +++ b/drivers/pinctrl/mvebu/dove.c @@ -15,7 +15,7 @@ #include <malloc.h> #include <of.h> #include <of_address.h> -#include <sizes.h> +#include <linux/sizes.h> #include "common.h" diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index 0d6d2e7e53..b803f891eb 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c @@ -652,9 +652,9 @@ static int at91_gpio_probe(struct device_d *dev) } gpio_banks = max(gpio_banks, alias_idx + 1); - at91_gpio->regbase = dev_request_mem_region(dev, 0); - if (IS_ERR(at91_gpio->regbase)) - return PTR_ERR(at91_gpio->regbase); + at91_gpio->regbase = dev_request_mem_region_err_null(dev, 0); + if (!at91_gpio->regbase) + return -ENOENT; at91_gpio->chip.ops = &at91_gpio_ops; at91_gpio->chip.ngpio = MAX_NB_GPIO_PER_BANK; diff --git a/drivers/serial/atmel.c b/drivers/serial/atmel.c index 1f406925a3..4e4624e235 100644 --- a/drivers/serial/atmel.c +++ b/drivers/serial/atmel.c @@ -398,9 +398,9 @@ static int atmel_serial_init_port(struct console_device *cdev) struct device_d *dev = cdev->dev; struct atmel_uart_port *uart = to_atmel_uart_port(cdev); - uart->base = dev_request_mem_region(dev, 0); - if (IS_ERR(uart->base)) - return PTR_ERR(uart->base); + uart->base = dev_request_mem_region_err_null(dev, 0); + if (!uart->base) + return -ENOENT; uart->clk = clk_get(dev, "usart"); clk_enable(uart->clk); diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index 92a1a218c6..76879db1f1 100644 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -653,7 +653,8 @@ static void do_bootm_on_complete(struct usb_ep *ep, struct usb_request *req) pr_err("Booting failed\n"); } -static void cb_boot(struct usb_ep *ep, struct usb_request *req, const char *opt) +static void __maybe_unused cb_boot(struct usb_ep *ep, struct usb_request *req, + const char *opt) { struct f_fastboot *f_fb = req->context; @@ -857,9 +858,11 @@ static const struct cmd_dispatch_info cmd_dispatch_info[] = { }, { .cmd = "download:", .cb = cb_download, +#if defined(CONFIG_BOOTM) }, { .cmd = "boot", .cb = cb_boot, +#endif }, { .cmd = "flash:", .cb = cb_flash, diff --git a/drivers/video/imx-ipu-v3/imx-hdmi.c b/drivers/video/imx-ipu-v3/imx-hdmi.c index 4f462889a8..2da76a4b7a 100644 --- a/drivers/video/imx-ipu-v3/imx-hdmi.c +++ b/drivers/video/imx-ipu-v3/imx-hdmi.c @@ -1190,16 +1190,18 @@ static int imx_hdmi_probe(struct device_d *dev) if (ret) return ret; - ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); - if (ddc_node) { - hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); - if (!hdmi->ddc) - dev_dbg(hdmi->dev, "failed to read ddc node\n"); - } else { - dev_dbg(hdmi->dev, "no ddc property found\n"); - } + if (IS_ENABLED(CONFIG_DRIVER_VIDEO_EDID)) { + ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); + if (ddc_node) { + hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); + if (!hdmi->ddc) + dev_dbg(hdmi->dev, "failed to read ddc node\n"); + } else { + dev_dbg(hdmi->dev, "no ddc property found\n"); + } - ddc_node = NULL; + ddc_node = NULL; + } hdmi->regs = dev_request_mem_region(dev, 0); if (!hdmi->regs) diff --git a/fs/efivarfs.c b/fs/efivarfs.c index 58c637ef19..9a1503bd13 100644 --- a/fs/efivarfs.c +++ b/fs/efivarfs.c @@ -1,7 +1,7 @@ /* - * ramfs.c - a malloc based filesystem + * efivars.c - EFI variable filesystem * - * Copyright (c) 2007 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix + * Copyright (c) 2014 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix * * See file CREDITS for list of people who contributed to this * project. @@ -34,9 +34,20 @@ #include <mach/efi.h> #include <mach/efi-device.h> +struct efivarfs_inode { + s16 *name; + efi_guid_t vendor; + char *full_name; /* name including vendor namespacing */ + struct list_head node; +}; + +struct efivarfs_dir { + struct list_head *current; + DIR dir; +}; + struct efivarfs_priv { - struct efi_file_handle *root_dir; - struct efi_file_io_interface *protocol; + struct list_head inodes; }; static int char_to_nibble(char c) @@ -75,8 +86,8 @@ int efi_guid_parse(const char *str, efi_guid_t *guid) if (*str != '-') return -EINVAL; str++; - break; - } + break; + } } return 0; @@ -115,11 +126,81 @@ static int efivarfs_parse_filename(const char *filename, efi_guid_t *vendor, s16 return 0; } +static int efivars_create(struct device_d *dev, const char *pathname, mode_t mode) +{ + struct efivarfs_priv *priv = dev->priv; + struct efivarfs_inode *inode; + efi_guid_t vendor; + efi_status_t efiret; + u8 dummydata; + char *name8; + s16 *name; + int ret; + + if (pathname[0] == '/') + pathname++; + + /* deny creating files with other vendor GUID than our own */ + ret = efivarfs_parse_filename(pathname, &vendor, &name); + if (ret) + return -ENOENT; + + if (memcmp(&vendor, &EFI_BAREBOX_VENDOR_GUID, sizeof(efi_guid_t))) + return -EPERM; + + inode = xzalloc(sizeof(*inode)); + inode->name = name; + inode->vendor = vendor; + + + name8 = strdup_wchar_to_char(inode->name); + inode->full_name = asprintf("%s-%pUl", name8, &inode->vendor); + free(name8); + + efiret = RT->set_variable(inode->name, &inode->vendor, + EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS, + 1, &dummydata); + if (EFI_ERROR(efiret)) { + free(inode); + return -efi_errno(efiret); + } + + list_add_tail(&inode->node, &priv->inodes); + + return 0; +} + +static int efivars_unlink(struct device_d *dev, const char *pathname) +{ + struct efivarfs_priv *priv = dev->priv; + struct efivarfs_inode *inode, *tmp; + efi_status_t efiret; + + if (pathname[0] == '/') + pathname++; + + list_for_each_entry_safe(inode, tmp, &priv->inodes, node) { + if (!strcmp(inode->full_name, pathname)) { + efiret = RT->set_variable(inode->name, &inode->vendor, + 0, 0, NULL); + if (EFI_ERROR(efiret)) + return -efi_errno(efiret); + list_del(&inode->node); + free(inode); + } + } + + return 0; +} + struct efivars_file { void *buf; unsigned long size; efi_guid_t vendor; s16 *name; + u32 attributes; }; static int efivarfs_open(struct device_d *dev, FILE *f, const char *filename) @@ -127,7 +208,6 @@ static int efivarfs_open(struct device_d *dev, FILE *f, const char *filename) struct efivars_file *efile; efi_status_t efiret; int ret; - uint32_t attributes; efile = xzalloc(sizeof(*efile)); @@ -135,28 +215,27 @@ static int efivarfs_open(struct device_d *dev, FILE *f, const char *filename) if (ret) return -ENOENT; - efiret = RT->get_variable(efile->name, &efile->vendor, &attributes, &efile->size, NULL); + efiret = RT->get_variable(efile->name, &efile->vendor, + &efile->attributes, &efile->size, NULL); if (EFI_ERROR(efiret) && efiret != EFI_BUFFER_TOO_SMALL) { ret = -efi_errno(efiret); goto out; } - efile->buf = malloc(efile->size + sizeof(uint32_t)); + efile->buf = malloc(efile->size); if (!efile->buf) { ret = -ENOMEM; goto out; } efiret = RT->get_variable(efile->name, &efile->vendor, NULL, &efile->size, - efile->buf + sizeof(uint32_t)); + efile->buf); if (EFI_ERROR(efiret)) { ret = -efi_errno(efiret); goto out; } - *(uint32_t *)efile->buf = attributes; - - f->size = efile->size + sizeof(uint32_t); + f->size = efile->size; f->inode = efile; return 0; @@ -187,74 +266,68 @@ static int efivarfs_read(struct device_d *_dev, FILE *f, void *buf, size_t insiz return insize; } -static loff_t efivarfs_lseek(struct device_d *dev, FILE *f, loff_t pos) +static int efivarfs_write(struct device_d *_dev, FILE *f, const void *buf, size_t insize) { - f->pos = pos; - - return f->pos; -} - -struct efivarfs_dir_entry { - char *name; - struct efivarfs_dir_entry *next; -}; + struct efivars_file *efile = f->inode; -struct efivarfs_dir { - struct efivarfs_dir_entry *first; - struct efivarfs_dir_entry *current; - DIR dir; -}; + if (efile->size < f->pos + insize) { + efile->buf = realloc(efile->buf, f->pos + insize); + efile->size = f->pos + insize; + } -static DIR *efivarfs_opendir(struct device_d *dev, const char *pathname) -{ - efi_status_t efiret; - efi_guid_t vendor; - s16 name[1024]; - struct efivarfs_dir *edir; - unsigned long size; - unsigned char *name8; + memcpy(efile->buf + f->pos, buf, insize); - name[0] = 0; + RT->set_variable(efile->name, &efile->vendor, efile->attributes, + efile->size ? efile->size : 1, efile->buf); - edir = xzalloc(sizeof(*edir)); + return insize; +} - while (1) { - struct efivarfs_dir_entry *entry; +static int efivarfs_truncate(struct device_d *dev, FILE *f, ulong size) +{ + struct efivars_file *efile = f->inode; - size = sizeof(name); - efiret = RT->get_next_variable(&size, name, &vendor); - if (EFI_ERROR(efiret)) - break; + efile->size = size; + efile->buf = realloc(efile->buf, efile->size + sizeof(uint32_t)); - entry = xzalloc(sizeof(*entry)); - name8 = strdup_wchar_to_char(name); + RT->set_variable(efile->name, &efile->vendor, efile->attributes, + efile->size ? efile->size : 1, efile->buf); - entry->name = asprintf("%s-%pUl", name8, &vendor); + f->size = efile->size; - free(name8); + return 0; +} - if (!edir->first) - edir->first = entry; +static loff_t efivarfs_lseek(struct device_d *dev, FILE *f, loff_t pos) +{ + f->pos = pos; - if (edir->current) - edir->current->next = entry; + return f->pos; +} - edir->current = entry; - } +static DIR *efivarfs_opendir(struct device_d *dev, const char *pathname) +{ + struct efivarfs_priv *priv = dev->priv; + struct efivarfs_dir *edir; - edir->current = edir->first; + edir = xzalloc(sizeof(*edir)); + edir->current = priv->inodes.next; return &edir->dir; } static struct dirent *efivarfs_readdir(struct device_d *dev, DIR *dir) { + struct efivarfs_priv *priv = dev->priv; struct efivarfs_dir *edir = container_of(dir, struct efivarfs_dir, dir); + struct efivarfs_inode *inode; - if (!edir->current) + if (edir->current == &priv->inodes) return NULL; - strcpy(dir->d.d_name, edir->current->name); + inode = list_entry(edir->current, struct efivarfs_inode, node); + + strcpy(dir->d.d_name, inode->full_name); edir->current = edir->current->next; @@ -264,17 +337,6 @@ static struct dirent *efivarfs_readdir(struct device_d *dev, DIR *dir) static int efivarfs_closedir(struct device_d *dev, DIR *dir) { struct efivarfs_dir *edir = container_of(dir, struct efivarfs_dir, dir); - struct efivarfs_dir_entry *entry; - - entry = edir->first; - - while (entry) { - struct efivarfs_dir_entry *tmp; - free(entry->name); - tmp = entry->next; - free(entry); - entry = tmp; - } free(edir); @@ -308,18 +370,64 @@ static int efivarfs_stat(struct device_d *dev, const char *filename, struct stat static int efivarfs_probe(struct device_d *dev) { + efi_status_t efiret; + efi_guid_t vendor; + s16 name[1024]; + char *name8; + unsigned long size; + struct efivarfs_priv *priv; + + name[0] = 0; + + priv = xzalloc(sizeof(*priv)); + INIT_LIST_HEAD(&priv->inodes); + + while (1) { + struct efivarfs_inode *inode; + + size = sizeof(name); + efiret = RT->get_next_variable(&size, name, &vendor); + if (EFI_ERROR(efiret)) + break; + + inode = xzalloc(sizeof(*inode)); + inode->name = strdup_wchar(name); + + inode->vendor = vendor; + + name8 = strdup_wchar_to_char(inode->name); + inode->full_name = asprintf("%s-%pUl", name8, &vendor); + free(name8); + + list_add_tail(&inode->node, &priv->inodes); + } + + dev->priv = priv; + return 0; } static void efivarfs_remove(struct device_d *dev) { - free(dev->priv); + struct efivarfs_priv *priv = dev->priv; + struct efivarfs_inode *inode, *tmp; + + list_for_each_entry_safe(inode, tmp, &priv->inodes, node) { + free(inode->name); + free(inode); + } + + free(priv); } static struct fs_driver_d efivarfs_driver = { + .create = efivars_create, + .unlink = efivars_unlink, .open = efivarfs_open, .close = efivarfs_close, .read = efivarfs_read, + .write = efivarfs_write, + .truncate = efivarfs_truncate, .lseek = efivarfs_lseek, .opendir = efivarfs_opendir, .readdir = efivarfs_readdir, @@ -33,7 +33,7 @@ #include <linux/stat.h> #include <linux/err.h> #include <kfifo.h> -#include <sizes.h> +#include <linux/sizes.h> #include <byteorder.h> #include "parseopt.h" @@ -31,7 +31,7 @@ #include <linux/stat.h> #include <linux/err.h> #include <kfifo.h> -#include <sizes.h> +#include <linux/sizes.h> #define TFTP_PORT 69 /* Well known TFTP port number */ diff --git a/include/driver.h b/include/driver.h index 53e1000067..46aae4f433 100644 --- a/include/driver.h +++ b/include/driver.h @@ -206,6 +206,14 @@ void *dev_get_mem_region(struct device_d *dev, int num); */ void __iomem *dev_request_mem_region(struct device_d *dev, int num); +/* + * exlusively request register base 'num' for a device + * will return NULL on error + * only used on platform like at91 where the Ressource address collision with + * PTR errno + */ +void __iomem *dev_request_mem_region_err_null(struct device_d *dev, int num); + struct device_d *device_alloc(const char *devname, int id); int device_add_resources(struct device_d *dev, const struct resource *res, int num); diff --git a/include/efi.h b/include/efi.h index 4ad9f69237..9b4f16bd9f 100644 --- a/include/efi.h +++ b/include/efi.h @@ -255,9 +255,11 @@ extern efi_boot_services_t *BS; /* * Types and defines for EFI ResetSystem */ -#define EFI_RESET_COLD 0 -#define EFI_RESET_WARM 1 -#define EFI_RESET_SHUTDOWN 2 +typedef enum { + EFI_RESET_COLD = 0, + EFI_RESET_WARM = 1, + EFI_RESET_SHUTDOWN = 2 +} efi_reset_type_t; /* * EFI Runtime Services table @@ -277,9 +279,11 @@ typedef struct { u32 *Attributes, unsigned long *data_size, void *data); efi_status_t (EFIAPI *get_next_variable)(unsigned long *variable_name_size, s16 *variable_name, efi_guid_t *vendor); - void *set_variable; + efi_status_t (EFIAPI *set_variable)(s16 *variable_name, efi_guid_t *vendor, + u32 Attributes, unsigned long data_size, void *data); void *get_next_high_mono_count; - void *reset_system; + void (EFIAPI *reset_system)(efi_reset_type_t reset_type, efi_status_t reset_status, + unsigned long data_size, void *reset_data); void *update_capsule; void *query_capsule_caps; void *query_variable_info; @@ -465,6 +469,10 @@ extern efi_runtime_services_t *RT; #define EFI_VLANCONFIGDXE_INF_GUID \ EFI_GUID(0xe4f61863, 0xfe2c, 0x4b56, 0xa8, 0xf4, 0x08, 0x51, 0x9b, 0xc4, 0x39, 0xdf) +/* barebox specific GUIDs */ +#define EFI_BAREBOX_VENDOR_GUID \ + EFI_GUID(0x5b91f69c, 0x8b88, 0x4a2b, 0x92, 0x69, 0x5f, 0x1d, 0x80, 0x2b, 0x51, 0x75) + extern efi_guid_t efi_file_info_id; extern efi_guid_t efi_simple_file_system_protocol_guid; extern efi_guid_t efi_device_path_protocol_guid; @@ -615,6 +623,7 @@ static inline int efi_compare_guid(efi_guid_t *a, efi_guid_t *b) } char *device_path_to_str(struct efi_device_path *dev_path); +u8 device_path_to_type(struct efi_device_path *dev_path); const char *efi_guid_string(efi_guid_t *g); diff --git a/include/linux/amba/sp804.h b/include/linux/amba/sp804.h index aba550c374..8ec58f6c18 100644 --- a/include/linux/amba/sp804.h +++ b/include/linux/amba/sp804.h @@ -8,7 +8,7 @@ #define __AMBA_SP804_H__ #include <linux/amba/bus.h> -#include <sizes.h> +#include <linux/sizes.h> #define AMBA_ARM_SP804_ID 0x00141804 #define AMBA_ARM_SP804_ID_MASK 0x00ffffff diff --git a/include/sizes.h b/include/linux/sizes.h index 6f91e9b4bd..ce3e8150c1 100644 --- a/include/sizes.h +++ b/include/linux/sizes.h @@ -1,22 +1,13 @@ /* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * include/linux/sizes.h * - * 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. - */ -/* Size defintions - * Copyright (C) ARM Limited 1998. All rights reserved. + * 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. */ +#ifndef __LINUX_SIZES_H__ +#define __LINUX_SIZES_H__ -#ifndef __sizes_h -#define __sizes_h 1 - -/* handy sizes */ #define SZ_1 0x00000001 #define SZ_2 0x00000002 #define SZ_4 0x00000004 @@ -53,4 +44,4 @@ #define SZ_1G 0x40000000 #define SZ_2G 0x80000000 -#endif /* __sizes_h */ +#endif /* __LINUX_SIZES_H__ */ diff --git a/include/wchar.h b/include/wchar.h index 80dcd81bf4..702d8e239a 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -5,6 +5,8 @@ typedef u16 wchar_t; +wchar_t *strdup_wchar(const wchar_t *src); + char *strcpy_wchar_to_char(char *dst, const wchar_t *src); wchar_t *strcpy_char_to_wchar(wchar_t *dst, const char *src); diff --git a/lib/bootstrap/devfs.c b/lib/bootstrap/devfs.c index 25d07c761c..704680a4c9 100644 --- a/lib/bootstrap/devfs.c +++ b/lib/bootstrap/devfs.c @@ -12,7 +12,7 @@ #include <linux/mtd/mtd.h> #include <fcntl.h> #include <filetype.h> -#include <sizes.h> +#include <linux/sizes.h> #include <errno.h> #include <malloc.h> #include <bootstrap.h> diff --git a/lib/bootstrap/disk.c b/lib/bootstrap/disk.c index 1e9fbd834b..ebf9ee5a98 100644 --- a/lib/bootstrap/disk.c +++ b/lib/bootstrap/disk.c @@ -8,7 +8,7 @@ #include <common.h> #include <fs.h> #include <fcntl.h> -#include <sizes.h> +#include <linux/sizes.h> #include <errno.h> #include <malloc.h> #include <libfile.h> diff --git a/lib/gui/graphic_utils.c b/lib/gui/graphic_utils.c index 300c525b0e..6465f8e3e9 100644 --- a/lib/gui/graphic_utils.c +++ b/lib/gui/graphic_utils.c @@ -104,7 +104,7 @@ void set_pixel(struct fb_info *info, void *adr, u32 px) case 8: break; case 16: - *(u16 *)adr = px; + *(u16 *)adr = px & 0xffff; break; case 32: *(u32 *)adr = px; diff --git a/lib/wchar.c b/lib/wchar.c index 6368a01994..b2e9e7545b 100644 --- a/lib/wchar.c +++ b/lib/wchar.c @@ -31,6 +31,22 @@ size_t wcslen(const wchar_t *s) return len; } +wchar_t *strdup_wchar(const wchar_t *src) +{ + int len = wcslen(src); + wchar_t *tmp, *dst; + + if (!(dst = malloc((len + 1) * sizeof(wchar_t)))) + return NULL; + + tmp = dst; + + while ((*dst++ = *src++)) + /* nothing */; + + return tmp; +} + char *strcpy_wchar_to_char(char *dst, const wchar_t *src) { char *ret = dst; |