Vybrid Cortex-M4 Linux boot log
This is a status update about my work on Linux for Cortex-M4 inside Freescale Vybrid SoC’s. While I managed to boot Linux on the M4 core since fall last year, several improvements have been made since then.
MSCM interrupt router driver
Peripheral interrupts need to be routed to the core requiring them. The routing is done by the interrupt router inside MSCM (Miscellaneous System Control Module). So far, the boot loader (U-Boot) configured all interrupts to the primary core. A proper driver for the interrupt router was missing, hence to get Linux running on the secondary core, manual fiddling of the interrupt router registers was needed. Read more »
Vybrid SoC running two Linux instances
In earlier posts I already wrote about Vybrid, a Freescale ARM SoC consisting of one Cortex-A5 and one Cortex-M4 (microcontroller) CPU. Normally, one would run a Firmware on the Cortex-M4 and Linux on the Cortex-A5 (which is quite well supported by contemporary kernels). But since we have two CPU’s with architectures supported by Linux (ARMv7-A and ARMv7-M), so why not running two independent Linux kernels in one SoC?
Read more »
As I wrote yesterday, I’m currently hacking on libopencm3 for bare-metal Vybrid development. This effort advanced quite a bit, the GitHub repository now contains code to use the UART and GPIOs from the Cortex-M4.
The Hardware I use consists of a Toradex Colibri VF61 on a Iris Carrier Board. The code should also run fine on Freescales Vybrid Tower board (TWR-VF65GS10). Currently I use the preinstalled Linux BSP consisting of U-Boot, Linux 3.0 Kernel and a OpenEmbedded based root file system. Read more »