Age | Commit message (Collapse) | Author |
|
Enable eMMC specific boot support commands by defining
CONFIG_SUPPORT_EMMC_BOOT in our Apalis/Colibri iMX6 configuration
files.
This allows switching to proper eMMC (hardware) boot area partition
booting once our update scripts can cope with this as well as follows:
Configure the eMMC to 8-bit DDR boot operation mode:
mmc bootbus 0 2 1 2
Enable booting from the (hardware) boot area partition 1 and the boot
acknowledge to be sent during boot operation:
mmc partconf 0 1 1 0
BTW: A good overview about the thematic can be found in Micron's
TN-FC-06: Booting from Embedded MMC (e.MMC) - JEDEC v. 4.41.
|
|
Fix various comment style, indentation and spelling issues in our
Apalis/Colibri iMX6 board files.
|
|
This resyncs the driver changes with the Linux version of the
driver. The driver received some feedback in the LKML and got
recently acceppted, the latest version can be found here:
https://lkml.org/lkml/2015/9/2/678
Notable changes are:
- On ECC error, reread OOB and count bit flips in OOB too.
If flipped bits are below threshold, also return an empty
OOB buffer.
- Return the amount of bit flips in vf610_nfc_read_page.
- Use endianness aware vf610_nfc_read to read ECC status.
- Do not enable IDLE IRQ (since we do not operate with an
interrupt service routine).
- Use type safe struct for buffer variants (vf610_nfc_alt_buf).
- Renamed variables in struct vf610_nfc (column and page_sz)
to reflect better what they really representing.
The U-Boot version currently does not support RAW NAND write
when using the HW ECC engine.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Return success/failure depending whether config block loading
succeeded or failed (e.g. if written in different ECC format or
not available at all).
|
|
If the DCU framebuffer is not configured, the board file still
tries to call fsl_dcu_fixedfb_setup, which leads to a compile
issue. Call fsl_dcu_fixedfb_setup only if DCU is enabled.
|
|
Follow the rename imx6q-apalis-eval_v1_0.dtb to imx6q-apalis_v1_0-eval.dtb
in the kernel.
The v1_0 denotes the Apalis module version, not the evaluation board version.
|
|
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>
|
|
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.
|
|
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.
|
|
Set DDR property fixup also in (future) version 2.x revisions.
|
|
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>
|
|
Add iomux definitions for DSPI second instance.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
|
|
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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.
|
|
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.
|
|
We do use PWM instance zero by default which is actually muxed for PWM
as primary function.
|
|
Enable the display driver on Apalis T30. Unfortunately the PWM pin
muxing wasn't any good neither which made that display stay dark.
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
Use the correct I2C instance for the I2C going to SODIMM_194/196.
|
|
|
|
use Apalis GPIO1 to switch on VPGM
|
|
commit 2da77958e96151295e72f8f85aee352d0b4010fe added a configuration option
to include commands used during production.
Fixing the use of the CONFIG macro.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Add new identifiers for Cortex-M4 related (RT)OS eCos, MQX and
Bare-metal.
|
|
Move entry point is Thumb2 check just after reading the entry point
from the FIT image.
|
|
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.
|
|
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).
|
|
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.
|
|
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.
|
|
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>
|
|
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.
|
|
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>
|
|
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).
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
Enable optional raw initrd support to allow boot using an initrd.
|
|
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 ...
|