2.4.3 Configure at91bootstrap
at91bootstrap is highly configurable, allowing developers to tailor the bootloader to their specific hardware setup and boot requirements. The configuration system is based on the familiar Kconfig infrastructure (used by the Linux kernel and U-Boot), which makes it easy to enable or disable features such as boot media types, clock settings, DDR initialization, and debugging options.
Each supported board has corresponding default configuration files (defconfig files) that can be used as is or serve as a starting point for new features or custom boards. These default configuration files show how at91bootstrap is configured to load the next-stage bootloader from a specific non-volatile memory and how the hardware is configured. Developers can load these default configuration files and then fine-tune the settings by using a menu-driven interface or by directly editing the files. This modularity ensures that only the necessary code is included in the final binary, keeping the bootloader compact and efficient.
In the remainder of this document, the SAM9X60-Curiosity board will be used as the reference platform to demonstrate how to configure, build and deploy at91bootstrap. While the concepts apply broadly across other SAM9X60, SAM9X7 Series, SAMA7G5 Series and SAMA7D6 Series 32-bit MPU-based boards, specific commands and examples are specifically tailored for the development board.
To illustrate typical use cases, we will work with the sam9x60_curiositysd_uboot_defconfig (for SD boot) and sam9x60_curiositynf_uboot_defconfig (for NAND boot) configurations, both of which are provided out of the box in at91bootstrap.
