<<<
:sectnums:
==== Bootloader ROM (BOOTROM)

[cols="<3,<3,<4"]
[frame="topbot",grid="none"]
|=======================
| Hardware source files:  | neorv32_boot_rom.vhd         | default platform-agnostic bootloader ROM
|                         | neorv32_bootloader_image.vhd | initialization image (a VHDL package)
| Software driver files:  | none                         | _implicitly used_
| Top entity ports:       | none                         |
| Configuration generics: | `BOOT_MODE_SELECT`           | implement BOOTROM when `BOOT_MODE_SELECT` = 0; see <<_boot_configuration>>
| CPU interrupts:         | none                         |
| Access restrictions:  2+| privileged access only, read-only
|=======================


**Overview**

The boot ROM contains the executable image of the default NEORV32 <<_bootloader>>. When the
<<_boot_configuration>> is set to _bootloader_ mode (0) via the `BOOT_MODE_SELECT` generic, the
boot ROM is automatically enabled and the CPU boot address is automatically adjusted to the
base address of the boot ROM.

.Bootloader Image
[IMPORTANT]
The boot ROM is initialized during synthesis with the default bootloader image
(`rtl/core/neorv32_bootloader_image.vhd`). Note that the BOOTROM size is constrained to 4kB.
