4.4. Microchip (Atmel) AT91

The Microchip (former Atmel) AT91 architecure has very good support within barebox. Most boards today have their description in their board files, but boards are slowly migrating to use DT. Likewise most boards are not yet migrated to multi image support, but this is also ongoing.

The boot process of the AT91 CPU’s is a two step process. The first step is named the bootstrap and at91bootstrap is often used (https://github.com/linux4sam/at91bootstrap). barebox supports bootstrapping some at91 boards as documented in the following.

The bootstrap program are loaded by a boot program and can be loaded from DataFlash, NAND Flash, SD Card or via USB. The bootstrap program do the low-level configuration of the processor and then load and execute barebox.

4.4.2. TODO

This is a list of AT91 specific TODO items, listed in no particular order.

  • fix prototype for barebox_arm_reset_vector. Introduce the prototype:
void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)

This will unify the prototype for the reset vector for multi image and standalone images

  • Update remaining boards to DT
  • Update remaing boards to support multi image boot
  • Get bootstrap working in combination with multi image
  • Introduce defaultenv2 for all boards
  • Add pwm driver (required to support backlight)