System booting

Introduction

There are many ways to launch the Firefly-PX3-SE development board.Usually, the Firefly-PX3-SE development board will not be bricked unless the hardware is damaged.

If the bootloader is damaged due to unexpected error occurred during the upgrading process and the re-upgrading does not work, you can still fix it by entering into MaskRom mode.

Loader mode

Firefly-PX3-SE has a 20KB BootRom a 100KB internal SRAM, which supports to load the system from the following devices:

  • 8 bit Async Nand Flash

  • 8 bit toggle Nand Flash

  • SPI interface

  • eMMC interface

  • SDMMC interface

In addition, Firefly-PX3-SE also supports to download the system code from USB OTG interface.

Boot sequence

The boot sequence is listed as below:

  1. Turn on the power of the master control board and initialize it;

  2. Run BootRom code on SRAM and verify the bootloader in the storage devices;

  3. Once verified successfully, load and run the bootloader boot code;

  4. bootloader boot code initializes the DDR memory and load complete bootloader code into DDR memory and run it;

  5. bootloader loads the Linux kernel on the storage devices and gives the executive right to the the Linux kernel.

Boot mode

There are three boot modes when booting:

  • Normal

  • Loader

  • MaskRom

Normal

Normal mode is a normal start-up process to enter into the system with components loading sequentially.

Loader

In Loader mode, the bootloader will enter into upgrade status to wait for the command of the host, which is mainly used for firmware upgrade and etc.

To enter into Loader mode, you need to ensure that the bootloader can detect the RECOVERY is pressed and the USB is connected.

There are two ways to enter into the Loader mode:

One way, Disconnect the power adapter and the Micro USB OTG cable from the device:

  • Connect one end of the Micro USB OTG cable to the host.

  • Press the RECOVERY button on the device and hold the button.

  • Connect the other end of the Micro USB OTG cable to the device.

  • Wait for about 2 seconds and release the RECOVERY button.

Othor way, you don’t need to disconnect the power adapter and the Micro USB OTG cable from the device:

  • Connect the device and the host with the Micro USB OTG cable.

  • Press the RECOVERY button on the device and hold the button.

  • Short press the RESET button.

  • Wait for about 2 seconds and release the RECOVERY button.

MaskRom

MaskRom mode is used to fix the system when the bootloader is damaged.

Generally, you don’t need to enter into MaskRom mode. Only when it fails to verify the bootloader(cannot read the IDR module or the bootloader is damaged) can the BootRom code enter into MaskRom mode. For the moment, BootRom code waits for the host to transfer the bootloader code via the USB interface and then load and run the code.

If you want to enter into MaskRom mode by force, please refer to MaskRom chapter for details.