SPRACN3 September   2019 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , 66AK2L06 , AM5K2E02 , AM5K2E04

 

  1.   Using ARM ROM Bootloader on Keystone II Devices
    1.     Trademarks
    2. Keystone2 Boot loader Overview
    3. Boot Examples Package Download
    4. Software Dependencies
    5. Supported Hardware
    6. Software Features
    7. Directory Structure
    8. Building the Examples
    9. Description of the Examples
      1. 8.1 Single Stage Boot Examples
      2. 8.2 Multi-Stage Boot Example
      3. 8.3 Boot Media-Specific Details
        1. 8.3.1 SPI Boot Example
        2. 8.3.2 I2C Boot Examples
        3. 8.3.3 NAND Examples
        4. 8.3.4 UART Boot Examples
        5. 8.3.5 Ethernet boot examples
        6. 8.3.6 K2E Ethernet Boot Errata Workaround
      4. 8.4 Flashing and Running Boot Examples
        1. 8.4.1 Dip Switch Settings
        2. 8.4.2 Running I2C EEPROM example
        3. 8.4.3 Running SPI NOR Example
        4. 8.4.4 Running NAND Example
        5. 8.4.5 Running UART Example
        6. 8.4.6 Running Ethernet Examples
    10. Boot Utilities
    11. 10 Frequently Asked Questions (FAQ)
    12. 11 References

Ethernet boot examples

Ethernet boot is a blob boot in which the Boot ROM configures the PLL based on the reference clock setting provided from the boot switches. The boot ROM configures the PHY and booot switch and sends a bootp packet to indicate it is ready to receive the boot image. You need to run a dhcp server on the host to load the boot image on the target K2 device. The device loads the blob boot image is loaded at the base of MSMC. On K2E devices, you have the option to change the load address for the boot images but, on K2H the second stage will also need to be loaded at base of MSMC. It was also observed that the users need to enable MMU table on the Arm on blob boot modes.

NOTE

On K2H devices, the boot ROM does not invalidate the Instruction cache so the example on K2H loads the 2 stages in non-overlapping memory. However, the first instruction that redirects the device to the entry point of the application needs to execute from the base of MSMC, so the instruction cache in the first stage needs to also be invalidated. To create non-overlapping 2 stages, use a 1K random memory segment in the first stage.