BootUp Integration — Detail
The BootUp support for this platform is primarily implemented in
sama5d3xpld_misc.c file. The functions
are only included when the
CYGPKG_BOOTUP package is
being used to construct the actual BootUp loader binary.
The BootUp code is designed to be very simple, and it is envisaged
that once an implementation has been defined the binary will only need
to be installed onto a device once. Its only purpose is to allow the
startup of the main
This platform specific documentation should be read in conjunction with the generic BootUp package documentation.
The BootUp package provides a basic but fully functional implementation for the platform. It is envisaged that the developer will customize and further extend the platform side support to meet their specific application identification and update requirements.
The BootUp binary can be installed on any SAMA5D3x bootable media, and is not restricted to being placed into NAND flash.
On execution BootUp will copy the
final application from its Non-Volatile-Memory (NVM) location.
CYGIMP_BOOTUP_SAMA5D3_SOURCE selects where
the second-level BootUp code will look for the final application
At present only NAND Flash is supported.
The SAMA5D3x-MB (MotherBoard) documentation provides more detail about the SAMA5D3 BootUp world, including secure boot functionality.
Building a BootUp loader image is most conveniently done at the
command line. The steps needed to rebuild the
version of BootUp are:
ecosconfig new sama5d3xpld minimal$
ecosconfig import $ECOS_REPOSITORY/packages/hal/arm/cortexa/sama5d3/sama5d3xpld/current/misc/bootup_SRAM.ecm$
install/bin/bootup.bin binary can
then be programmed into a suitable non-volatile memory as supported by
RomBOOT. e.g. NAND Flash.
bootup_SRAM.ecm is configured to
expect to find the
ROMRAM application stored in the
NAND Flash at
is also configured with application encryption support
CYGFUN_BOOTUP_SAMA5D3_SOURCE_SECURE option) to
allow decryption of the stored application to its final RAM
The application image to be loaded does not need to be encrypted. The BootUp code uses binary identity markers to check for the presence of a plaintext (unencrypted) image; if not present, a check for encrypted markers is made.
Whether or not encryption is in use, the application
image must be installed to offset
How the second-level BootUp loader is placed into bootable memory in a
production environment is beyond the scope of this document. However,
sama5d3xpld target platform, several
solutions are available.
The simplest may be to use the on-chip SAM-BA support via a USB CDC-ACM host
J6. This procedure is documented in the
section, which may also be used to install
your choice of
ROMRAM eCos application onto the
Alternatively, a suitable hardware debugger (JTAG) configuration could
directly update the relevant memories via suitable host-based debugger
software features, or configuration script sequence. At its simplest
the JTAG interface could be used to load a
application that performs the necessary update of the boot NVM memory,
either from embedding the required binaries in the application image,
or (ideally) loading data from a suitable network location via the
|2021-02-12||eCosPro Non-Commercial Public License|