summaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAgeFilesLines
* MIPS: qemu-malta: make barebox Malta images detectableAhmad Fatoum2021-03-011-2/+1
| | | | | | | | | | is_barebox_mips_head checks whether 0x10-0x16 is "barebox". Have the Malta images provide this signature like other MIPS boards already do. This makes bootm work. Cc: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: davinci: Replace license and copyright boilerplate by SPDX identifiersUwe Kleine-König2021-02-245-35/+14
| | | | | | | | | Converts the files that licensecheck can determine to be licensed under GPL-2.0-only or GPL-2.0-or-later and also convert the copyright statements to SPDX. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/virtio'Sascha Hauer2021-02-221-2/+13
|\
| * ARM: vexpress: config: update for VirtIO supportAhmad Fatoum2021-02-221-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We have now support for VirtIO block, console and HWRNG. Check the boxes to get them enabled and usable. While at it, add some more useful options: - CONFIG_CMD_POWEROFF: So Qemu can be exited from the barebox shell - CONFIG_CMD_FILETYPE: For debugging CONFIG_OF_OVERLAY=y is now selected on machine level, so it's dropped from the file. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/sound'Sascha Hauer2021-02-227-77/+147
|\ \
| * | sound: add SDL 2.0 sound driverAhmad Fatoum2021-02-084-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | SDL 2.0.4 features SDL_QueueAudio, which we could use to just queue buffers for audio playback. Use it to implement the new sound API for the sandbox architecture. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | sandbox: migrate to SDL 2.0Ahmad Fatoum2021-02-085-80/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SDL 2.0 has been released more than 7 years ago and should be available everywhere. Replace barebox's SDL 1.2 with SDL 2.0 instead: - better maintained - At least on Debian, you can't install x86_64 and i386 libsdl-dev at the same time, which makes a quick use of CONFIG_SANDBOX_LINUX_I386 harder as the user needs to reinstall libraries. With SDL 2.0, it works - SDL 2.0 has easier audio API, which will be used in a later commit - Wayland support for sandbox video driver Port to SDL 2.0 and as we touch everything anyway, rename the sdl_ functions to start with sdl_video_ to differentiate from upcoming sdl_sound_. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | Merge branch 'for-next/misc'Sascha Hauer2021-02-227-83/+15
|\ \ \
| * | | pbl: provide externally visible fdt_find_memAhmad Fatoum2021-02-221-67/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of_find_mem can be used for generic DT images for other architectures as well. To support this, move the definition, so it can be used by others in the future. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | ARM: cpu: board-dt-2nd: rename of_find_mem for more generic useAhmad Fatoum2021-02-221-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of_find_mem can be used for generic DT images for other architectures as well. Prepare for the move by giving it a more descriptive name and type to reflect that it operates read-only on a FDT. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | sandbox: support 64-bit file IO in 32-bit buildAhmad Fatoum2021-02-164-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows an easy way to test upcoming changes to the barebox block layer to support 64-bit block IO. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | sandbox: increase MALLOC_SIZE from 4M to 16MAhmad Fatoum2021-02-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4M of malloc space is quite limited when comparing this to the systems that run Linux and use barebox for bootstrap. Increase the malloc size in sandbox to be better able to test code that does bigger allocations. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | ARM: drop no-thumb-interwork in EABI modeStefan Agner2021-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to GCC documentation -m(no-)thumb-interwork is meaningless in AAPCS configurations. Also clang does not support the flag: clang-5.0: error: unknown argument: '-mno-thumb-interwork' Just drop -mno-thumb-interwork in AEABI configuration. Signed-off-by: Stefan Agner <stefan@agner.ch> [afa: ported from Linux 22905a24306c ("ARM: 8766/1: drop no-thumb-interwork in EABI mode")] Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/imx'Sascha Hauer2021-02-2211-535/+1321
|\ \ \ \
| * | | | ARM: i.MX8MM: move system counter enabling into imx8mm_cpu_lowlevel_initAhmad Fatoum2021-02-012-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other i.MX8MM boards will likely need this as well, so just move it into the helper and while at it, rewrite it using imx8m_ccgr_clock_enable, which is defined as: void __iomem *ccm = IOMEM(MX8M_CCM_BASE_ADDR); writel(IMX8M_CCM_CCGR_SETTINGn_NEEDED(0), ccm + IMX8M_CCM_CCGRn_SET(index)); No functional change. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: i.MX8MM: fix sparse warnings in early clock codeAhmad Fatoum2021-02-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some __iomem markers were being casted away. Fix that. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: i.MX: xload-gpmi-nand: apply errata 007117Andrej Picej2021-02-011-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During raw NAND booting, GPMI/BCH clock generation might fail due to improper clock gating conditions and consequently booting from NAND will fail. This is caused by silicon errata ERR007117. Apply errata fix workaround before GPMI NAND xload to prevent this from occurring. Signed-off-by: Primoz Fiser <primoz.fiser@norik.com> Signed-off-by: Andrej Picej <andrej.picej@norik.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: i.MX: implement GPMI NAND xloadSascha Hauer2021-02-013-1/+1157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit is based on initial Sascha Hauer's work. It implements PBL xload mechanism to load image from GPMI NAND flash. Additional work was done, so that the NAND's size, page size and OOB's size are autodetected and not hardcoded. Detection method follows the same methods as used in NAND driver, meaning NAND ONFI support is probed and if NAND supports ONFI, NAND memory organization is read from ONFI parameter page otherwise "READ ID" is used. Currently only implemented for i.MX6 familly of SoCs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Primoz Fiser <primoz.fiser@norik.com> Signed-off-by: Andrej Picej <andrej.picej@norik.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: dts: imx6qdl: pfla02: Use NAND pinmux entries from upstreamAlexander Shiyan2021-01-251-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gpminand pinmux entries are in the upstream dtsi now, so use them. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: dts: imx6qdl-samx6i: cosmetic partition cleanupMarco Felsch2021-01-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reg property is always the first property and the label is the following. No functional changes. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: dts: imx6qdl-samx6i: use upstream device tree filesMarco Felsch2021-01-193-416/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make use of upstream available device tree files to avoid duplications. A few interfaces had a "default on" behaviour which is dropped now. Enabling those interfaces within the SoM dtsi seems to be wrong anyway. Since boards have to turn it off again if those interfaces are unused. I've adapted all upstream boards which are using the the imx6qdl-smarc-samx6i.dtsi so the behaviour for those boards is unchanged. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: dts: imx6qdl-samx6i: switch to SPDX license identifierMarco Felsch2021-01-193-53/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: dts: imx6qdl-smarc-samx6i: remove iomuxc hogMarco Felsch2021-01-191-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the muxing into the gpioX nodes so we can get rid of the iomuxc hog. While on it set the correct mux config and don't rely on the reset value. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: boards: kontron-samx6i: simplify memory detection functionMarco Felsch2021-01-191-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Dual/Quad modules always have twice the size of the Solo/DualLite modules. Determine the size once and multiply it if we are running on a Quad/Dual module. The only special case is the 4GB size where I've copied the value from the vendor u-boot [1]. [1] https://github.com/kontron/u-boot-smarc-samx7/blob/master/board/kontron/amx6/amx6.c Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: boards: kontron-samx6i: fix memory detection helperMarco Felsch2021-01-191-18/+6
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According the vendor u-boot version [1] the version pin is not involved in the memory size detection algorithm. So drop the usage here. Also fix the id0 gpio request. Instead of requesting GPIO6_6 we need to request GPIO6_7. Last we need to fix the size for the solo/duallite modules. Those modules are populated with at least 256M of RAM according [1]. I fixed also the alignment while on it. [1] https://github.com/kontron/u-boot-smarc-samx7/blob/master/board/kontron/amx6/amx6.c Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/firmware'Sascha Hauer2021-02-221-0/+70
|\ \ \ \
| * | | | ARM: add fncpy.h from linux v5.10Steffen Trumtrar2021-01-251-0/+70
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description from the linux commit 5756e9dd0de6d5c307773f8f734c0684b3098fdd: ARM: 6640/1: Thumb-2: Symbol manipulation macros for function body copying In low-level board support code, there is sometimes a need to copy a function body to another location at run-time. A straightforward call to memcpy doesn't work in Thumb-2, because bit 0 of external Thumb function symbols is set to 1, indicating that the function is Thumb. Without corrective measures, this will cause an off-by-one copy, and the copy may be called using the wrong instruction set. This patch adds an fncpy() macro to help with such copies. Particular care is needed, because C doesn't guarantee any defined behaviour when casting a function pointer to any other type. This has been observed to lead to strange optimisation side-effects when doing the arithmetic which is required in order to copy/move function bodies correctly in Thumb-2. Thanks to Russell King and Nicolas Pitre for their input on this patch. Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/ext4'Sascha Hauer2021-02-221-2/+2
|\ \ \ \
| * | | | block: use 64-bit types for sector offset and count on all platformsAhmad Fatoum2021-02-181-2/+2
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | barebox' use of int for the sector offset puts an upper bound of 1TB on the size of supported block devices, which is already exceeded by common place USB mass storage. Increasing the sizes involved to 64 bit like Linux does won't magically add missing driver support, but it gives us at least a fighting chance. Do so. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/asm-io'Sascha Hauer2021-02-222-4/+4
|\ \ \ \
| * | | | ppc: <asm/io.h>: remove duplicate definitionAhmad Fatoum2021-02-041-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implementation is equivalent to the one now provided by <asm-generic/io.h>, so it can be dropped. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | | ARM: <asm/io.h>: define macros for I/O memcpy/memsetAhmad Fatoum2021-02-041-0/+4
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <asm-generic/io.h> expects architectures to define memcpy_toio, memcpy_fromio and memset_io as macros as it checks for their existence with #ifndef. Only ARM defines an own implementation, but does so as function declaration. Add the missing macros. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/asm-generic'Sascha Hauer2021-02-223-3/+3
|\ \ \ \
| * | | | treewide: include <linux/math64.h> wrapper instead of <asm-generic/div64.h>Ahmad Fatoum2021-02-193-3/+3
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <asm-generic/div64.h> isn't meant for direct usage as <asm/div64.h> may override this on a per-architecture basis. We don't do that currently, but in the future we might. Include the <linux/math64.h> instead. No functional change. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | | Merge branch 'for-next/aiodev'Sascha Hauer2021-02-222-0/+7
|\ \ \ \ | |/ / / |/| | |
| * | | aiodev: add support for STM32 ADCAhmad Fatoum2021-02-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver supports simple one-shot readings rather than continuous sampling with DMA, etc. ADC channels should be configured via device tree, using the kernel bindings. Code is based on the stm32-adc drivers of Linux v5.11-rc1 and U-Boot v2021.01-rc4. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | regulator: add driver for stm32-vrefbufAhmad Fatoum2021-02-101-0/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver supports STMicroelectronics STM32 VREFBUF (voltage reference buffer) which can be used as voltage reference for internal ADCs, DACs and also for external components through dedicated Vref+ pin. Ported from Linux v5.11-rc1. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* / / sandbox: fix unreliable block device detectionAhmad Fatoum2021-02-121-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | If barebox detects that an --image file is a block device, it will try to represent it as a block device internally as well, provided that the user didn't explicitly specify that it should be mapped as a character device instead. The hf_info::is_cdev member used to indicate this override wasn't initialized though, so detection was unreliable, Fix this. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* / sandbox: Kconfig: select all of PARTITION_DISK's dependenciesAhmad Fatoum2021-02-041-0/+1
|/ | | | | | | | | `make hosttools_defconfig` shows that PARTITION_DISK was selected without all its dependencies being enabled as well. Select the missing PARTITION symbol to fix this. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/video'Sascha Hauer2021-01-191-0/+4
|\
| * MIPS: qemu-malta_defconfig: enable VGA outputAhmad Fatoum2021-01-051-0/+4
| | | | | | | | | | | | | | | | Now that we have a driver for the Qemu's default -device VGA, enable it in defconfig, along with fbtest for testing it. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/misc'Sascha Hauer2021-01-199-0/+141
|\ \
| * | ARM: qemu: support for state & env via DT overlayRouven Czerwinski2021-01-186-0/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for state and barebox environment by applying an overlay on top of the qemu generated device tree. If qemu is used with a persistent flash partition, this allows usage of environments and state across qemu reboots. Simple testing can be performed by starting with qemu-system-arm -m 256M -M virt -kernel images/barebox-dt-2nd.img -nographic Storing data, changing into the qemu console via Ctrl-A Ctrl-C, issuing 'system_reset' and Ctrl-A Ctrl-C to get back into the barebox console. Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | MIPS: dts: ar9331: add stdout-path propertiesOleksij Rempel2021-01-133-0/+6
| |/ | | | | | | | | | | | | | | | | With the kernel v5.11-rc2 the console will be automatically redirected to null if no default console is configured. Make sure the barebox is doing it to make kernel happy. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/imx'Sascha Hauer2021-01-1913-2/+1510
|\ \
| * | i.MX7: Add CCM definitions for UART3Steffen Trumtrar2021-01-061-0/+4
| | | | | | | | | | | | | | | Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | ARM: i.MX: add MNT Reform board supportLucas Stach2021-01-069-0/+1481
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MNT Reform is a DIY Laptop, built around a Boundarydevices i.MX8MQ SoM. This adds a pretty minimal support, as there is no upstream DT yet. It also does not properly abstract the SoM (power supply init in MNT Reform lowlevel code and only single DRAM configuration supported), as there are a lot of variants of the SoM and I'm only able to test the single one that will be shipped with the Reform. What has been tested to work: - SD card - eMMC - Gigabit network - NVMe storage There is a quirk in the board support: the Nitrogen SoM only allows to configure one of the BOOT_MODE straps, which means the choices for the boot selection are only "boot from fuses", which means eMMC boot and "serial boot". As serial boot isn't really useful on the device (requires USB A<->A cable with VBUS protection), we rely on the BootROM fallback to boot from SD card in this mode. The board support code thus treats the bootsource "serial" as SD card boot. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | ARM: i.mx8mq: add PAD CTL definesLucas Stach2021-01-061-0/+17
| | | | | | | | | | | | | | | | | | | | | Allows a more readable pad setup. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | ddr: imx8m: remove bogus definesLucas Stach2021-01-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most of those defines aren't used. Whether DDR_ONE_RANK should be defined is really dependent on the used DRAM on a specific board, so move this from the common header into the board DRAM setup. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | ARM: imx8mq: reclock ARM PLL to 800MHzLucas Stach2021-01-051-2/+6
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | The BootROM sets up the ARM PLL to run at 1.6GHz and then uses the divider after the PLL the achieve a CPU clock rate of 800MHz. New Linux kernels (>= 5.8) switch to a clock path that bypasses the divider, as the divider should not be used for CPU clock frequencies >1GHz. If the BootROM setup is left unchanged this causes the CPU clock to jump to the full 1.6GHz until CPUfreq takes over and reprograms the PLL. This rate is outside of the chip specification and leads to crashes. Fix this by reclocking the ARM PLL to 800MHz. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>