The use of Asymmetric MultiProcessor (AMP) architectures is now widespread.
Two common implementations are Linux running on one core of a dual-core ARM Cortex-A9, with an RTOS running on the other,
and SMP Linux running on the dual-core ARM Cortex-A9 and an RTOS or bare metal application running on another processor core,
such as an Altera NIOS II. The reliability of such a system is highly dependent on the correct functioning of inter-core interaction with shared resources,
which is often hard to verify.
This paper details the methodology used to bring up such an AMP system on a virtual platform.
The first step is the construction of the instruction accurate virtual platform for the two AMP systems. The Open Virtual Platforms APIs for
model and platform development are used in building the virtual platforms used in this paper. These virtual platforms are variants of the Altera SoC
FPGA Cyclone V product. The second step in the process involves the use of CPU- and OS-aware analysis tools to help with initial system bring up.
Rather than providing only instruction trace data, these tools enable the analysis of the system at the appropriate level of abstraction for the software
engineer: C source code for firmware and drivers and the OS task/event level for operating systems. In addition, the tools are non-intrusive,
requiring no instrumentation or modification of the application or OS, thus validating the results of the analysis.
Finally, the third step is
the development of a robust test environment, including the use of non-intrusive, intelligent memory access monitors, built upon the CPU- and OS- aware
simulation environment to ensure that different OS operations do not access forbidden memory segments.
A detailed case study illustrating how complex
faults have been found in an Altera Cyclone V AMP system, by using this methodology, will be shown.