summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-09-01UBI: add missing kmem_cache_free() in process_pool_aeb error pathRichard Genoud
I ran into this error after a ubiupdatevol, because I forgot to backport e9110361a9a4 UBI: fix the volumes tree sorting criteria. UBI error: process_pool_aeb: orphaned volume in fastmap pool UBI error: ubi_scan_fastmap: Attach by fastmap failed, doing a full scan! kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still has objects CPU: 0 PID: 1 Comm: swapper Not tainted 3.14.18-00053-gf05cac8dbf85 #1 [<c000d298>] (unwind_backtrace) from [<c000baa8>] (show_stack+0x10/0x14) [<c000baa8>] (show_stack) from [<c01b7a68>] (destroy_ai+0x230/0x244) [<c01b7a68>] (destroy_ai) from [<c01b8fd4>] (ubi_attach+0x98/0x1ec) [<c01b8fd4>] (ubi_attach) from [<c01ade90>] (ubi_attach_mtd_dev+0x2b8/0x868) [<c01ade90>] (ubi_attach_mtd_dev) from [<c038b510>] (ubi_init+0x1dc/0x2ac) [<c038b510>] (ubi_init) from [<c0008860>] (do_one_initcall+0x94/0x140) [<c0008860>] (do_one_initcall) from [<c037aadc>] (kernel_init_freeable+0xe8/0x1b0) [<c037aadc>] (kernel_init_freeable) from [<c02730ac>] (kernel_init+0x8/0xe4) [<c02730ac>] (kernel_init) from [<c00093f0>] (ret_from_fork+0x14/0x24) UBI: scanning is finished Freeing the cache in the error path fixes the Slab error. Tested on at91sam9g35 (3.14.18+fastmap backports) Signed-off-by: Richard Genoud <richard.genoud@gmail.com> Cc: stable <stable@vger.kernel.org> # 3.10+
2015-09-01UBI: fastmap: do not miss bit-flipsBrian Norris
The return value from 'ubi_io_read_ec_hdr()' was stored in 'err', not in 'ret'. This fix makes sure Fastmap-enabled UBI does not miss bit-flip while reading EC headers, events and scrubs the affected PEBs. This issue was reported by Coverity Scan. Artem: improved the commit message. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Acked-by: Richard Weinberger <richard@nod.at> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
2015-09-01UBI: fix the volumes tree sorting criteriaHeiko Schocher
Commig "604b592 UBI: fix rb_tree node comparison in add_map" broke fastmap backward compatibility and older fastmap images cannot be mounted anymore. The reason is that it changes the volumes RB-tree sorting criteria. This patch fixes the problem. Artem: re-write the commit message Signed-off-by: Heiko Schocher <hs@denx.de> Acked-by: Richard Weinberger <richard@nod.at> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
2015-09-01UBI: fix rb_tree node comparison in add_mapMike Snitzer
The comparisons used in add_vol() shouldn't be identical. Pretty sure the following is correct but it is completely untested. Signed-off-by: Mike Snitzer <snitzer@redhat.com> Acked-by: Richard Weinberger <richard@nod.at> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
2015-08-18dm: spi: Correct SPI claim/release_bus() methodsSimon Glass
These methods should be passed a slave device, not a bus. This matches the old SPI interface. It is important to know which device is claiming the bus so passing a bus is not that useful. Reported-by: Haikun Wang <haikun.wang@freescale.com> Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Peng Fan <Peng.Fan@freescale.com> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
2015-08-18colibri_t20: implement early pmic rail configurationMarcel Ziswiler
Implement early TPS6586X PMIC rail configuration setting SM0 being VDD_CORE_1.2V to 1.2 volts and SM1 being VDD_CPU_1.0V to 1.0 volts. While those are PMIC power-up defaults the SoC might have been reset separately with certain rails being left at lower DVFS states which is e.g. the case upon watchdog reset while otherwise nearly idling.
2015-08-11ARM: vf610: use strcpy for soc environemnt variableColibri_VF_LinuxImageV2.5Beta1_20150813Stefan Agner
To create the soc environment variable we concatenate two strings on the stack. So far, strcat has been used for the first string as well as for the second string. Since the variable on the stack is not initialized, the first strcat may not start using the first entry in the character array. This then could lead to an buffer overflow on the stack.
2015-08-11colibri_vf: fix DDR property fixupStefan Agner
Set DDR property fixup also in (future) version 2.x revisions.
2015-08-10colibri-vf: Enable SPI supportBhuvanchandra DV
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> [add CONFIG_DM to colibri_vf_defconfig] Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2015-08-10arm: vf610: Add iomux support for DSPIBhuvanchandra DV
Add iomux definitions for DSPI second instance. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
2015-08-10arm: vf610: Add clock support for DSPIBhuvanchandra DV
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
2015-08-10colibri_vf: Add separate defconfig for device tree supportBhuvanchandra DV
Most of the drivers available for Vybrid are not yet converted to OF model to use device tree model, only few drivers like SPI and GPIO drivers use device trees. Add separate defconfig for who needs to use device tree model. Later this can be integrated to single defconfig. Acked-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
2015-08-10vf610: dts: Add device tree supportBhuvanchandra DV
Add device tree files for Freescale Vybrid platform and Toradex Colibri VF50, VF61 modules. Device tree files are taken from upstream Kernel. Removed the stuff which are not used/supported yet in U-Boot. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
2015-08-10dm: spi: Convert Freescale DSPI driver to driver modelHaikun.Wang@freescale.com
Move the Freescale DSPI driver over to driver model. Signed-off-by: Haikun Wang <Haikun.Wang@freescale.com> Acked-by: Simon Glass <sjg@chromium.org> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
2015-08-10imx-common: m4boot: rename Cortex-M4 bootargsStefan Agner
The environment variable was called bootargsm4, which is somewhat incongruent with the boot command name "m4boot". Rename the bootargs environment variable for Cortex-M4 to m4bootargs.
2015-08-10colibri_vf: add fdt_fixup environment variableStefan Agner
Add additional environment variable "fdt_fixup" which will be called between device tree load command and kernel boot command. This allows to change device tree using U-Boot scripting environment.
2015-07-13colibri_t20: fix pwm backlightMarcel Ziswiler
We do use PWM instance zero by default which is actually muxed for PWM as primary function.
2015-07-13apalis_t30: enable display driverMarcel Ziswiler
Enable the display driver on Apalis T30. Unfortunately the PWM pin muxing wasn't any good neither which made that display stay dark.
2015-07-12colibri_t30: enable display driverMarcel Ziswiler
On popular request enable the display driver on Colibri T30. A few notes about some things encountered during porting: While analogue VGA (e.g. via the on-carrier RAMDAC) worked just fine from the beginning the EDT display flickered like crazy which turned out to be a pin muxing issue. Unfortunately the PWM pin muxing wasn't any good neither which made that display stay dark. Enjoy.
2015-07-12tegra: lcd: video: integrate display driver for t30Marcel Ziswiler
On popular request make the display driver from T20 work on T30 as well. Turned out to be quite straight forward. However a few notes about some things encountered during porting: Of course the T30 device tree was completely missing host1x as well as PWM support but it turns out this can simply be copied from T20. The only trouble compiling the Tegra video driver for T30 had to do with some hard-coded PWM pin muxing for T20 which is quite ugly anyway. On T30 this gets handled by a board specific complete pin muxing table. The older Chromium U-Boot 2011.06 which to my knowledge was the only prior attempt at enabling a display driver for T30 for whatever reason got some clocking stuff mixed up. Turns out at least for a single display controller T20 and T30 can be clocked quite similar. Enjoy.
2015-07-12apalis/colibri_t20/t30: increase tftp blocksizeMarcel Ziswiler
Enable CONFIG_IP_DEFRAG and set CONFIG_TFTP_BLOCKSIZE to 16384 (resp. 1536 on Colibri T20). This increases the tftp download speed considerably. While at it enable CONFIG_TFTP_TSIZE which limits the progress bar to fifty '#' independent of the downloaded file size. While at it also fix some spacing from using spaces to tabs.
2015-07-12colibri_t30: fix framebuffer console regressionMarcel Ziswiler
This is a copy/paste error from the Apalis T30 configuration as there we show the Linux framebuffer console by default on the second framebuffer instance being the DVI-D aka HDMI one due to analogue VGA not being available. This patch changes it for the Colibri T30 back to the first framebuffer instance being the parallel RGB aka TFTLCD one which usually gets converted to analogue VGA via an on-carrier RAMDAC (e.g. at least on the Colibri Evaluation board as well as Iris this is the case).
2015-07-08colibri_imx6.c: fix setup of I2C3Max Krummenacher
Use the correct I2C instance for the I2C going to SODIMM_194/196.
2015-07-08Apalis/Colibri iMX6: pf0100.c cleanup coding styleMax Krummenacher
2015-07-08Apalis: production: use GPIO1 to trigger PMIC fusingMax Krummenacher
use Apalis GPIO1 to switch on VPGM
2015-07-08Apalis/Colibri iMX6: fix production commandsMax Krummenacher
commit 2da77958e96151295e72f8f85aee352d0b4010fe added a configuration option to include commands used during production. Fixing the use of the CONFIG macro.
2015-07-07colibri_vf: mux UART2 (Colibri UART_B) at boot timeStefan Agner
Some firmwares running on the secondary core rely on UART pins muxed at start time. Mux the Vybrid UART2 (which maps to Colibri UART_B) at startup.
2015-07-07arm: vf610: support global timerStefan Agner
Add support for ARM global timer. This allows to save the platform wide PIT timer for other purposes such as MQX on the secondary Cortex-M4 core.
2015-07-07colibri_vf: fixup DT with DDR property to support LPSTOPStefan Agner
Fixup the device-tree with the property fsl,has-cke-reset-pulls which annotates that the board has pull-ups/downs which are required to put the memory into self-refresh mode. The self-refresh mode in turn is a requirement to put the SoC into deep sleep mode LPSTOP.
2015-06-30colibri_vf: use device-tree for MTD partitionsStefan Agner
Use device-tree fixup to communicate the MTD partitions to the kernel. U-Boot's mtdparts environment variable will be used as partition source for the device-tree based partition table too.
2015-05-29imx-common: m4boot: allow to boot other OS'es using m4bootStefan Agner
Allow to boot eCos, MQX and bare-metal firmwares to boot on the secondary Cortex-M4. The boot code is equal for all those firmware types, the argument register will be set to 0 and the code will jump to the specified entry point directly.
2015-05-28image: add Cortex-M4 related operating systemsStefan Agner
Add new identifiers for Cortex-M4 related (RT)OS eCos, MQX and Bare-metal.
2015-05-28imx-common: m4boot: move entry point checkStefan Agner
Move entry point is Thumb2 check just after reading the entry point from the FIT image.
2015-05-28imx-common: include mini-loader vf610m4bootldrStefan Agner
Include vf610m4bootldr, a mini boot loader for the Cortex-M4 CPU inside Freescale Vybrid SoC. The mini loader enables caches and copies the pointer to the device tree from the platform specific argument register (PERSISTENT_ARG1) to the Cortex-M4 r2 register, where the Linux kernel expects the pointer. The mini loader hence essentially takes over the parts of the m4boot command which can not be done from the Cortex-A5 main CPU.
2015-05-28imx-common: add m4boot commandStefan Agner
Add m4boot command which allows to boot FIT images on the Cortex-M4 kernel. The command currently only supports FIT image, which allows to provide entry point and load addresses for all boot artifacts. Currently, the Cortex-M4 mini loader needs to be loaded manually to Kernel loadaddr - 0x80 (e.g. 0x8f000000, if kernel is loaded at 0x8f000080).
2015-05-28colibri_vf: disable configuration of MSCM interrupt routerStefan Agner
Do not configure all interrupts to the primary core by default since newer Linux versions configure the MSCM interrupt router correctly by themself. This also prevents warnings due to already routed interrupts when booting Linux on the secondary Cortex-M4 CPU.
2015-05-28colibri_vf: increase tftp block sizeStefan Agner
Enable CONFIG_IP_DEFRAG and set CONFIG_TFTP_BLOCKSIZE to 16384. This increases the tftp download speed from ~2.5 to ~8.2MiB/s. While at it enable CONFIG_TFTP_TSIZE which limits the progress bar to 50 '#' indepent off the downloaded file size.
2015-05-28colibri_vf: Increase console IO buffer size to 1024Sanchayan Maity
Increase console IO buffer size to 1024 from the previous value of 256. The previous value was too short for editing environment variables like ubiboot, from the console. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2015-05-21Apalis/Colibri iMX6: increase tftp blocksizeMax Krummenacher
Enable CONFIG_IP_DEFRAG and set CONFIG_TFTP_BLOCKSIZE to 16384. This increases the tftp download speed considerably. While at it enable CONFIG_TFTP_TSIZE which limits the progress bar to fifty '#' indepent off the downloaded file size.
2015-05-21tftp.c: fix CONFIG_TFTP_TSIZE for small filesMax Krummenacher
CONFIG_TFTP_TSIZE should limit a tftp downloads progress to 50 '#' chars. Make this work also for small files. If the file size is small, i.e. smaller than 2 tftp block sizes the number of '#' can get much larger. i.e. with a 1 byte file 65000 characters are printed, with a 512 byte file around 500. When using CONFIG TFTP BLOCKSIZE together with CONFIG_IP_DEFRAG the issue is more notable. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2015-05-18colibri_t20/t30: fix setsdupdateColibri_iMX6_LinuxImageV2.4Beta1_20150518Colibri_VF_LinuxImageV2.4Beta1_20150518Colibri_T30_LinuxImageV2.4Beta1_20150518Colibri_T20_LinuxImageV2.4Beta1_20150518Apalis_iMX6_LinuxImageV2.4Beta1_20150518Apalis_T30_LinuxImageV2.4Beta1_20150518Marcel Ziswiler
Fix setsdupdate by adding missing 'usb start' command. While at it also add USB start to setethupdate as doing it twice won't hurt (e.g. it returns immediately only 'usb reset' does a full rescan).
2015-05-13apalis_imx6.c: prepare Apalis GPIO pins to be GPIOMax Krummenacher
In order to use the gpio commandline feature of U-Boot the pins one wants to control must be muxed to GPIO. Do that for Apalis pins GPIO[1:8] and for WAKE1_MICO. This feature can be used as follows: e.g. set GPIO1 to 1: Apalis iMX6 # gpio set 36 gpio: pin 36 (gpio 36) value is 1 e.g. read the state of GPIO8: Apalis iMX6 # gpio input 6 gpio: pin 6 (gpio 6) value is 1
2015-05-13colibri_imx6.c: prepare auxiliary pins to be GPIOMax Krummenacher
In order to use the gpio commandline feature of U-Boot the pins one wants to control must be muxed to GPIO. Do that for all unused pins which in the default kernel device tree also gets muxed to gpio for userspace use. This feature can be used as follows: e.g. change the LCD brightness signal from 0V to 3.3V: Colibri iMX6 # gpio set 41 gpio: pin 41 (gpio 41) value is 1 e.g. read the state of gpio 111: Colibri iMX6 # gpio input 111 gpio: pin 111 (gpio 111) value is 1
2015-05-13colibri_imx6.c: ensure EMI_ADDR22 is inputMax Krummenacher
Out of reset EMI_ADDR22 is output and connected to GPIO01. As we want to use GPIO01 as an output for backlight control mux EMI_ADDR22 to a GPIO which by default is input.
2015-05-13Apalis/Colibri iMX6: rename/add bmodeMax Krummenacher
Add an alias for the ESDHC0 which provides the standard MMC connection on Colibri iMX6. Add an alias for the ESDHC0/1 which provides the standard MMC/SD connection on Apalis iMX6.
2015-05-13apalis/colibri_t20/t30: enable of system setup supportMarcel Ziswiler
Enable OF system setup to add hardware revision and serial number information to the device-tree in case a mainline Linux kernel with any such is booted. While at it default back to the regular 8 MB DFU data buffer size.
2015-05-13apalis/colibri_t20/t30: enable raw initrd supportMarcel Ziswiler
Enable optional raw initrd support to allow boot using an initrd.
2015-05-13mtd/nand/tegra: alignment workaroundMarcel Ziswiler
Introduce cache alignment bounce buffer to workaround issues as follows: Loading file '/boot/zImage' to addr 0x01000000 with size 4499152 (0x0044a6d0)... ERROR: v7_dcache_inval_range - start address is not aligned - 0x1f7f0108 ERROR: v7_dcache_inval_range - stop address is not aligned - 0x1f7f1108 Done Kernel image @ 0x1000000 [ 0x000000 - 0x44a6d0 ] Starting kernel ... undefined instruction pc : [<005ff03c>] lr : [<0000800c>] sp : 0144b6e8 ip : 01000188 fp : 0144a6c8 r10: 00000000 r9 : 411fc090 r8 : 00000100 r7 : 00000cfb r6 : 0144a6d0 r5 : 00000000 r4 : 00008000 r3 : 0000000c r2 : 00000100 r1 : 00000cfb r0 : 00000000 Flags: nZCv IRQs off FIQs off Mode SVC_32 Resetting CPU ...
2015-05-13mtd/nand/ubi: assortment of alignment fixesMarcel Ziswiler
Various U-Boot adoptions/extensions to MTD/NAND/UBI did not take buffer alignment into account which led to failures of the following form: ERROR: v7_dcache_inval_range - start address is not aligned - 0x1f7f0108 ERROR: v7_dcache_inval_range - stop address is not aligned - 0x1f7f1108
2015-05-11toradex: common: fix non-Toradex config block buildStefan Agner
Fix build of configurations without the Toradex config block. Also move away from the ifdefery through the file, but create a global ifdef which distingush between the two variants on a global level.