SMP Support — Usage


Support is available for SMP operation of the two CPUs on this platform. However, debugging support is restricted to using an external SMP-aware JTAG debugger like ARM's DS-5 or a Lauterbach Power Debug probe. RedBoot does not have support for multi-core debugging.

A board intended to be used for SMP operation should be initialized in the same way as a single core board by installing the preloader and RedBoot. If RedBoot is not needed then the preloader must still be installed and a ROM startup application, with headers added by flashimg, can be written to flash in place of RedBoot.

SMP support is enabled by setting CYGPKG_KERNEL_SMP_SUPPORT to true. SMP applications should only be built using either ROM or SMP startup types. ROM applications can be loaded by U-Boot in place of RedBoot. The SMP startup is identical to a ROM startup except that the load address is set to allow the application to be loaded into a higher location in RAM from RedBoot. Both application types may also be loaded via a JTAG debugger.

Loading an SMP startup application via RedBoot can be done from the RedBoot command line via serial or Ethernet. It may also be loaded via a GDB connection on serial or Ethernet. However, once started running the SMP application will take full control of the system, including redirecting all interrupt sources, exception vectors and virtual vector table entries. This means that RedBoot will no-longer be active. Any breakpoints planted by GDB will result in an exception to the application, Ctrl-C will not work, any Ethernet connections will be lost and serial output will come from the application in plain ASCII. Any GDB connection will be lost and GDB may start reporting packet errors.