Replies: 4 comments 4 replies
-
Let me explain better. According to the datasheet:
Maybe I'm wrong but when the design is synthesized and the bootloader is enable, Is the content of the If this is the case why does the I tried to start with As shown in the following image: I think in these three possibilities:
Could you please clarify which one is correct? Thanks! 😃 |
Beta Was this translation helpful? Give feedback.
-
Hey @Unike267!
Unfortunately, this is not possible.
✔️
❌
❌ The When enabled, the bootloader ROM including the default bootloader code is implemented (= added to the processor) and the CPU reset vector is changed so that the core starts executing the bootloader when coming out of reset. Furthermore, the IMEM is implemented as empty RAM - so it is not initialized by If the bootloader is disabled, the IMEM gets implemented as pre-initialized ROM (using
So, no, the RAM is blank. This feature is intended for FPGAs (and ASICs) that do not support blockRAM initialization (like the large SRAM blocks in Lattice ice40 FPGAs). If the IMEM would be implemented as pre-initialized RAM then the image could be corrupted during runtime (imagine some rogue pointer writing to IMEM), which would require a re-upload of the original program. Hence, the bootloader upload would be required anyway. |
Beta Was this translation helpful? Give feedback.
-
For completeness: neorv32/rtl/core/neorv32_top.vhd Line 269 in bf246fe neorv32/rtl/core/neorv32_top.vhd Lines 807 to 812 in bf246fe neorv32/rtl/core/neorv32_imem.entity.vhd Lines 41 to 45 in bf246fe neorv32/rtl/core/mem/neorv32_imem.default.vhd Lines 59 to 66 in bf246fe neorv32/rtl/core/mem/neorv32_imem.default.vhd Lines 83 to 124 in bf246fe |
Beta Was this translation helpful? Give feedback.
-
@stnolting would it be feasible to add a |
Beta Was this translation helpful? Give feedback.
-
Hi @stnolting
I have a quick question about if the bootloader should be disabled (
INT_BOOTLOADER_EN => false
) to load a prebuild program located in the core as aneorv32_application_image.vhd
.I mean, if you don't disable the bootloader it will load by default from
neorv32_bootloader_image.vhd
and according to the datasheet there will be the following options:h
)r
)exe.bin
via UART to IMEM (u
)s
)exe
from SPI flash (l
)x
)s
)Okey, my question is if there is a way to start the program located in the
neorv32_application_image.vhd
through the bootloader (load the IMEM contentneorv32_application_image.vhd
via bootloader) or if is necessary to disable the bootloader and start the program directly through content of theneorv32_application_image.vhd
that it is in the IMEM since the design is synthesized (whether the bootloader is disabled or not).The point is that until now I'm disabling the bootloader to load
neorv32_application_image.vhd
directly and I don't know if I'm right. 😅Cheers!
/cc @umarcor
Beta Was this translation helpful? Give feedback.
All reactions