Combine real-time Linux patches with vendor BSP and custom BSP changes on a custom board with a Freescale MPC 8306 and Freescale Kinetis K10 co-processor.
This project required very small latencies (sub-microsecond) thus necessitating the fully interruptible nature provided by the real-time Linux patches. However, there was not an available patch set for the Linux kernel provided in the Freescale BSP.
We therefore set out to find a Linux kernel version which minimized the modifications needed for either set of patches. We were able to find a set of RTLinux patches, slightly newer kernel version, and BSP patches which applied cleanly.
After verifying that the latency capabilities of this new kernel met the specifications, we then had to add support the peripherals and hardware changed from the stock development kit to the designed hardware. There were two large changes.
The first was to get u-boot to support booting from NAND Flash only. While the claim of the original BSP was for NAND booting, there were multiple assumptions around NOR Flash continuing to be part of the platform. We successfully removed all usage of NOR flash when booting from NAND while maintaining backwards compatibility.
The second change was to add support for the high-reliability low-latency communication to the K10 co-processor over SPI. First, robust communication protocol was designed in conjunction with the AuZone K10 developers. Then this was implemented as a protocol driver which leveraged the existing MPC8306 SPI Controller driver in Linux.
BSP porting (u-boot and Linux), board bringup (hardware debugging, hardware tests, JTAG configuration), hardware and software feature validation, and SPI software protocol design.
- Project Scoping
- Development Strategy
- Systems Engineering
- Embedded Firmware Development
- Design Verification
- Design Transfer