Name
BootUp Integration — Detail
BootUp
          The BootUp support for this platform is primarily implemented in
          the 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 ROMRAM application.
        
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 ROMRAM configured
          final application from its Non-Volatile-Memory (NVM) location.
          The configuration
          option CYGIMP_BOOTUP_SAMA5D3_SOURCE selects where
          the second-level BootUp code will look for the final application
          image.
          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 BootUp
            Building a BootUp loader image is most conveniently done at the
            command line. The steps needed to rebuild the SRAM
            version of BootUp are:
          
$mkdir bootup_SRAM$cd bootup_SRAM$ecosconfig new sama5d3xpld minimal$ecosconfig import $ECOS_REPOSITORY/packages/hal/arm/cortexa/sama5d3/sama5d3xpld/current/misc/bootup_SRAM.ecm$ecosconfig resolve$ecosconfig tree$make
            The resulting install/bin/bootup.bin binary can
            then be programmed into a suitable non-volatile memory as supported by
            the SAMA5D3
            on-chip RomBOOT. e.g. NAND Flash.
          
            The example bootup_SRAM.ecm is configured to
            expect to find the ROMRAM application stored in the
            NAND Flash at
            offset CYGNUM_BOOTUP_SAMA5D3_SOURCE_OFFSET. It
            is also configured with application encryption support
            (CYGFUN_BOOTUP_SAMA5D3_SOURCE_SECURE option) to
            allow decryption of the stored application to its final RAM
            destination.
          
| ![[Note]](pix/note.png) | Note | 
|---|---|
| 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
               | 
Installing BootUp
            How the second-level BootUp loader is placed into bootable memory in a
            production environment is beyond the scope of this document. However,
            for the 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
            connnection to J6. This procedure is documented in the
            Setup
            section, which may also be used to install
            your choice of ROMRAM eCos application onto the
            target hardware.
          
            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 ROMRAM
            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
            Ethernet interfaces J12/J13.
          
| 2025-10-02 | eCosPro Non-Commercial Public License | 



