OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [docs/] [datasheet/] [soc_bootrom.adoc] - Blame information for rev 72

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 60 zero_gravi
<<<
2
:sectnums:
3
==== Bootloader ROM (BOOTROM)
4
 
5
[cols="<3,<3,<4"]
6
[frame="topbot",grid="none"]
7
|=======================
8
| Hardware source file(s): | neorv32_boot_rom.vhd |
9
| Software driver file(s): | none             | _implicitly used_
10
| Top entity port:         | none             |
11 61 zero_gravi
| Configuration generics:  | _INT_BOOTLOADER_EN_ | implement processor-internal bootloader when _true_
12 60 zero_gravi
| CPU interrupts:          | none             |
13
|=======================
14
 
15 61 zero_gravi
[NOTE]
16
The default `neorv32_boot_rom.vhd` HDL source file provides a _generic_ memory design that infers embedded
17
memory for _larger_ memory configurations. You might need to replace/modify the source file in order to use
18
platform-specific features (like advanced memory resources) or to improve technology mapping and/or timing.
19 60 zero_gravi
 
20 61 zero_gravi
This HDL modules provides a read-only memory that contain the executable code image of the bootloader.
21
If the <<_int_bootloader_en>> generic is _true_ this module will be implemented and the CPU boot address
22
is modified to directly execute the code from the bootloader ROM after reset.
23 60 zero_gravi
 
24 61 zero_gravi
The bootloader ROM is located at address `0xFFFF0000` and can occupy a address space of up to 32kB. The base
25
address as well as the maximum address space size are fixed and cannot (should not!) be modified as this
26
might address collision with other processor modules.
27 60 zero_gravi
 
28 61 zero_gravi
The bootloader memory is _read-only_ and is automatically initialized with the bootloader executable image
29
`rtl/core/neorv32_bootloader_image.vhd` during synthesis. The actual _physical_ size of the ROM is also
30
determined via synthesis and expanded to the next power of two. For example, if the bootloader code requires
31
10kB of storage, a ROM with 16kB will be generated. The maximum size must not exceed 32kB.
32 60 zero_gravi
 
33 72 zero_gravi
[NOTE]
34
Any write access to the BOOTROM will raise a _store access fault_ exception.
35
 
36 61 zero_gravi
.Bootloader - Software
37
[TIP]
38
See section <<_bootloader>> for more information regarding the actual bootloader software/executable itself.
39 60 zero_gravi
 
40 61 zero_gravi
.Boot Configuration
41 60 zero_gravi
[TIP]
42 61 zero_gravi
See section <<_boot_configuration>> for more information regarding the processor's different boot scenarios.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.