world leader in high performance signal processing
Trace: » bootloaders
Table of Contents

Blackfin Bootloaders

Here we document all of the ways you can boot the Blackfin processor. While there may be others, only the ones actively supported are documented here.

  • Boot ROM - The Blackfin on-chip bootrom
  • Das U-Boot - An extensible, portable, and configurable bootloader
  • MicroMonitor - A free embedded system boot platform

Overview

Here is a general overview of how the typical Blackfin processor gets up and running.

  1. Power on processor in supervisor mode at level IVG5
    1. If bypass, start executing at 0x20000000 (first async memory bank)
    2. If not bypass, start executing at 0xEF000000 (Boot ROM)
  2. Boot ROM executes
    1. check BMODE pins
    2. check OTP memory (if available)
    3. configure selected boot source
    4. load LDR from source and execute the init section
      • reprogram clocks
      • initialize memory
      • returns to Boot ROM
    5. load the rest of the application into external memory (if necessary)
      • usually this is Das U-Boot
      • could be MicroMonitor
      • could be a standalone application
      • could be the Linux kernel
    6. jump to the start of the application
  3. 2nd stage boot loader (Das U-Boot or MicroMonitor executes)
    1. perform any necessary relocation
    2. optional lower self to level IVG15
    3. initialize devices/peripherals/etc…
    4. execute commands from environment
      1. setup environment
      2. load application
        • load from anything the boot loader supports
          1. network
          2. SPI Flash
          3. NOR Flash
          4. NAND Flash
          5. Hard Drive
          6. USB Stick
          7. CD-ROM Drive
          8. serial (UART)
          9. etc…
      3. get the application ready to run
        • relocation
        • decompression
      4. execute the application
        • could be a stand alone (bare metal) application
        • could be uC/OS
        • could be a U-Boot application
        • usually this is the Linux kernel, and then:
  4. Linux boots
    1. initialize devices/peripherals/etc…
    2. execute user space applications
    3. profit!
  5. Return to a higher level
    1. if application does not destroy the memory regions where U-Boot lives, it can return to U-Boot
    2. perform software system reset to get back to the Boot ROM

Complete Table of Contents/Topics