diff --git a/CHANGELOG.md b/CHANGELOG.md index 851caa540..8fa5589fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ mimpid = 0x01040312 -> Version 01.04.03.12 -> v1.4.3.12 | Date | Version | Comment | Ticket | |:----:|:-------:|:--------|:------:| +| 11.12.2024 | 1.10.7.1 | :test_tube: shrink bootloader's minimal ISA (`rv32e`) and RAM (256 bytes) requirements | [#1118](https://github.com/stnolting/neorv32/pull/1118) | | 10.12.2024 | [**:rocket:1.10.7**](https://github.com/stnolting/neorv32/releases/tag/v1.10.7) | **New release** | | | 03.12.2024 | 1.10.6.9 | :sparkles: add ONEWIRE command and data FIFO; :warning: rework ONEWIRE interface register layout; :bug: fix regression: busy flag was stuck at zero | [#1113](https://github.com/stnolting/neorv32/pull/1113) | | 01.12.2024 | 1.10.6.8 | add TWI bus sensing logic | [#1111](https://github.com/stnolting/neorv32/pull/1111) | diff --git a/docs/datasheet/software_bootloader.adoc b/docs/datasheet/software_bootloader.adoc index acd282789..5fca6a8a5 100644 --- a/docs/datasheet/software_bootloader.adoc +++ b/docs/datasheet/software_bootloader.adoc @@ -6,7 +6,14 @@ This section refers to the **default** NEORV32 bootloader. A pre-compiled memory image for the processor-internal <<_bootloader_rom_bootrom>> is available in the project's +rtl+ folder: `rtl/core/neorv32_bootloader_image.vhd`. This image is automatically inserted into the boot ROM when synthesizing the processor with the bootloader being -enabled. **Note that the default bootloader image was compiled for a minimal `rv32i` + priv. ISA!** +enabled. + +.Minimal RISC-V ISA and Memory Configuration +[NOTE] +The default bootloader image was compiled for a minimal `rv32e_zicsr_zifencei` ISA configuration and only requires a +RAM size of at least 256 bytes. Both constraints ensure that the bootloader can be executed by any actual CPU/processor +configuration. However, the bootloader can recompiled with different capabilities. See the User Guide +https://stnolting.github.io/neorv32/ug/#_customizing_the_internal_bootloader for more information. The NEORV32 bootloader (`sw/bootloader/bootloader.c`) provides an optional built-in firmware that allows to upload new application executables at _any time_ without the need to re-synthesize the FPGA's bitstream. diff --git a/docs/userguide/customizing_the_bootloader.adoc b/docs/userguide/customizing_the_bootloader.adoc index 32a4cbc48..af57e4e47 100644 --- a/docs/userguide/customizing_the_bootloader.adoc +++ b/docs/userguide/customizing_the_bootloader.adoc @@ -12,7 +12,7 @@ bootloader ROM) and the processor has to be re-synthesized. [NOTE] Keep in mind that the maximum size for the bootloader is limited to 8kB and it should be compiled using the -minimal base & privileged ISA `rv32i_zicsr_zifencei` only to ensure it can work independently of the actual CPU configuration. +minimal base & privileged ISA `rv32e_zicsr_zifencei` only to ensure it can work with any actual CPU configuration. .Bootloader configuration parameters [cols="<2,^1,^2,<6"] diff --git a/rtl/core/neorv32_bootloader_image.vhd b/rtl/core/neorv32_bootloader_image.vhd index 18487d5e4..fc41c72a7 100644 --- a/rtl/core/neorv32_bootloader_image.vhd +++ b/rtl/core/neorv32_bootloader_image.vhd @@ -1,8 +1,8 @@ -- The NEORV32 RISC-V Processor - github.com/stnolting/neorv32 -- Auto-generated memory initialization package (for internal BOOTROM) --- Source: bootloader/main.bin --- Size: 4072 bytes --- Built: 31.10.2024 22:31:51 +-- Source: bootloader/build/main.bin +-- Size: 3916 bytes +-- Built: 11.12.2024 20:45:15 library ieee; use ieee.std_logic_1164.all; @@ -17,11 +17,11 @@ x"000020b7", x"80008093", x"30009073", x"00000097", -x"0e408093", +x"0a408093", x"30509073", x"30401073", x"80004217", -x"1e320213", +x"0e320213", x"ff027113", x"80004197", x"7d818193", @@ -30,28 +30,12 @@ x"00000313", x"00000393", x"00000413", x"00000493", -x"00000813", -x"00000893", -x"00000913", -x"00000993", -x"00000a13", -x"00000a93", -x"00000b13", -x"00000b93", -x"00000c13", -x"00000c93", -x"00000d13", -x"00000d93", -x"00000e13", -x"00000e93", -x"00000f13", -x"00000f93", x"00001597", -x"f6458593", +x"f0858593", x"80004617", -x"f7460613", +x"fb460613", x"80004697", -x"f6c68693", +x"fac68693", x"00c58e63", x"00d65c63", x"0005a703", @@ -60,7 +44,7 @@ x"00458593", x"00460613", x"fedff06f", x"80004717", -x"f4870713", +x"f8870713", x"80818793", x"00f75863", x"00072023", @@ -89,26 +73,16 @@ x"ffe40413", x"34141073", x"34002473", x"30200073", -x"fc010113", -x"02912a23", -x"800004b7", -x"0004a223", +x"800007b7", +x"fec10113", +x"0007a223", x"800007b7", x"0007a023", x"ffffd7b7", -x"02112e23", -x"02812c23", -x"03212823", -x"03312623", -x"03412423", -x"03512223", -x"03612023", -x"01712e23", -x"01812c23", -x"01912a23", -x"01a12823", -x"01b12623", -x"a1c78793", +x"00112823", +x"00812623", +x"00912423", +x"9bc78793", x"30579073", x"e0802783", x"00d79713", @@ -144,7 +118,7 @@ x"000016b7", x"60068693", x"00d76733", x"00e7a023", -x"428000ef", +x"460000ef", x"00050863", x"00100793", x"c0f02423", @@ -157,17 +131,16 @@ x"ffff7637", x"00000793", x"5ff70713", x"a0060613", -x"20d76463", +x"1ed76c63", x"00000713", x"3fe00613", -x"20f66463", +x"1ef66c63", x"fff78793", -x"000106b7", x"00679793", -x"fc068693", +x"01079793", x"00371713", x"01877713", -x"00d7f7b3", +x"0107d793", x"00e7e7b3", x"0017e793", x"fffff737", @@ -187,85 +160,80 @@ x"30479073", x"00800793", x"3007a073", x"ffffd537", -x"db850513", -x"6b0000ef", +x"d1c50513", +x"6c4000ef", x"f1302573", -x"634000ef", +x"658000ef", x"ffffd537", -x"df050513", -x"69c000ef", +x"d5450513", +x"6b0000ef", x"e0002503", -x"620000ef", +x"644000ef", x"ffffd537", -x"df850513", -x"688000ef", +x"d5c50513", +x"69c000ef", x"30102573", -x"60c000ef", +x"630000ef", x"ffffd537", -x"e0050513", -x"674000ef", +x"d6450513", +x"688000ef", x"fc002573", -x"5f8000ef", +x"61c000ef", x"ffffd537", -x"e0850513", -x"660000ef", +x"d6c50513", +x"674000ef", x"e0802503", x"00100413", -x"ffffd937", -x"5dc000ef", +x"ffffd4b7", +x"600000ef", x"ffffd537", -x"e1050513", -x"644000ef", +x"d7450513", +x"658000ef", x"e0404503", x"00a41533", x"ffc57513", -x"5c0000ef", +x"5e4000ef", x"ffffd537", -x"e1850513", -x"628000ef", +x"d7c50513", +x"63c000ef", x"e0504783", x"00f41533", x"ffc57513", -x"5a4000ef", -x"db490513", -x"610000ef", +x"5c8000ef", +x"d1848513", +x"624000ef", x"e0802783", x"00f79713", x"06075063", x"ffffd537", -x"e2050513", -x"5f8000ef", -x"2cc000ef", -x"e0002783", -x"fffffa37", -x"500a0a13", -x"00279413", -x"00f40433", +x"d8450513", +x"60c000ef", +x"308000ef", +x"e0002703", +x"00271413", +x"00e40433", x"00141413", -x"00a409b3", -x"0089b433", +x"00a407b3", +x"0087b433", x"00b40433", -x"e0802783", -x"00e79713", -x"0c075663", -x"000a2783", -x"00f79713", -x"0c075063", +x"e0802703", +x"00e71693", +x"0c06d463", +x"fffff737", +x"50072683", +x"50070713", +x"00f69613", +x"0a065a63", x"ffffd537", -x"004a2783", -x"e4c50513", -x"5a8000ef", -x"ffffdb37", -x"e58b0513", -x"ffffd9b7", -x"598000ef", -x"ffffdab7", -x"f7498993", -x"ffffdc37", -x"ffffdcb7", +x"00472783", +x"db050513", +x"5bc000ef", x"ffffd7b7", -x"ed878513", -x"57c000ef", +x"dbc78513", +x"5b0000ef", +x"ffffd537", +x"e3c50513", +x"5a4000ef", x"fffff7b7", x"50078793", x"0007a703", @@ -274,142 +242,162 @@ x"fe06dce3", x"0047a403", x"0ff47413", x"00040513", -x"4c8000ef", -x"db490513", -x"550000ef", +x"500000ef", +x"d1848513", +x"578000ef", x"03f00793", -x"20f40263", +x"24f40a63", x"f9b40413", x"0ff47413", x"01300793", -x"1e87e263", +x"2287e863", +x"ffffd7b7", +x"ed878793", x"00241413", -x"01340433", +x"00f40433", x"00042783", x"00078067", x"00c686b3", x"00178793", -x"df1ff06f", +x"e01ff06f", x"ffe70693", x"ffd6f693", x"00069863", x"0037d793", x"00170713", -x"de5ff06f", +x"df5ff06f", x"0017d793", x"ff5ff06f", -x"1d0000ef", -x"f285e4e3", +x"00f12023", +x"214000ef", +x"00012783", +x"f285e2e3", x"00b41463", -x"f33560e3", +x"f0f56ee3", x"00100513", -x"704000ef", -x"db490513", -x"4dc000ef", +x"6e4000ef", +x"d1848513", +x"4f4000ef", x"00000513", -x"049000ef", +x"019000ef", x"ffffc2b7", x"00028067", -x"e58b0513", -x"4c4000ef", -x"f3dff06f", x"00000513", -x"6d8000ef", -x"f31ff06f", -x"0044a403", +x"6c4000ef", +x"f2dff06f", +x"800007b7", +x"0047a403", x"00041863", x"ffffd537", -x"ee050513", -x"fddff06f", -x"efcc0513", -x"498000ef", +x"e4450513", +x"f11ff06f", +x"ffffd537", +x"e6050513", +x"4b4000ef", x"00040513", -x"41c000ef", -x"f04c8513", -x"488000ef", +x"448000ef", +x"ffffd537", +x"e6850513", +x"4a0000ef", x"00400537", -x"40c000ef", +x"434000ef", x"ffffd537", -x"f1c50513", -x"474000ef", +x"e8050513", +x"48c000ef", x"fffff7b7", x"50078793", x"0007a703", x"00f71693", x"fe06dce3", -x"0047aa03", -x"0ffa7a13", -x"000a0513", -x"3c0000ef", +x"0047a503", +x"0ff57513", +x"00a12023", +x"3e8000ef", +x"00012503", x"07900793", -x"ecfa12e3", -x"2cc000ef", +x"eaf518e3", +x"2f8000ef", x"00050663", x"00300513", -x"490000ef", +x"49c000ef", x"ffffd537", -x"f2850513", -x"42c000ef", -x"01045b93", -x"00400a37", -x"00010db7", -x"fff00d13", -x"24c000ef", -x"174000ef", -x"0d800513", -x"118000ef", -x"000a0513", -x"128000ef", -x"0f4000ef", -x"250000ef", -x"00157513", -x"fe051ce3", -x"fffb8b93", -x"01ba0a33", -x"fdab98e3", -x"00400db7", -x"00000d13", -x"00000a13", -x"00cd8d93", -x"000a0793", +x"e8c50513", +x"440000ef", +x"01045793", +x"00178793", +x"00400737", +x"00e12023", +x"fff78793", +x"fff00713", +x"08e79063", +x"00000793", +x"00000713", x"0007a583", -x"01ba0533", -x"004a0a13", -x"00bd0d33", -x"29c000ef", -x"fe8a64e3", +x"00400537", +x"00c50513", +x"00b70733", +x"00a78533", +x"00e12223", +x"00f12023", +x"2f0000ef", +x"00012783", +x"00412703", +x"00478793", +x"fc87eae3", x"4788d5b7", x"afe58593", x"00400537", -x"288000ef", +x"00e12023", +x"2cc000ef", x"00400537", x"00040593", x"00450513", -x"278000ef", +x"2bc000ef", +x"00012703", x"00400537", x"00850513", -x"41a005b3", -x"268000ef", +x"40e005b3", +x"2a8000ef", x"ffffd537", -x"d9c50513", -x"ebdff06f", +x"d0050513", +x"df9ff06f", +x"00f12223", +x"1ec000ef", +x"124000ef", +x"0d800513", +x"0c8000ef", +x"00012503", +x"0d8000ef", +x"0a4000ef", +x"00412783", +x"00f12223", +x"1e8000ef", +x"00157513", +x"00412783", +x"fe0518e3", +x"00012683", +x"00010737", +x"00e68733", +x"f31ff06f", x"00100513", -x"ec1ff06f", -x"0044a783", -x"e8079ce3", -x"ffffd7b7", -x"f3878513", -x"ea1ff06f", +x"e7dff06f", +x"800007b7", +x"0047a783", +x"e4079ee3", +x"ffffd537", +x"e9c50513", +x"d91ff06f", x"e0802783", x"2007f793", -x"00079663", -x"f48a8513", -x"e8dff06f", +x"00079863", +x"ffffd537", +x"eac50513", +x"d79ff06f", x"00100513", -x"e75ff06f", -x"ffffd7b7", -x"f5478513", -x"e79ff06f", +x"e35ff06f", +x"ffffd537", +x"eb850513", +x"d65ff06f", x"e0802503", x"00f55513", x"00157513", @@ -433,20 +421,20 @@ x"fe07cee3", x"80402503", x"0ff57513", x"00008067", -x"ff010113", -x"00812423", +x"ff810113", +x"00812023", x"00050413", x"01055513", x"0ff57513", -x"00112623", +x"00112223", x"fd1ff0ef", x"00845513", x"0ff57513", x"fc5ff0ef", x"0ff47513", -x"00812403", -x"00c12083", -x"01010113", +x"00012403", +x"00412083", +x"00810113", x"fb1ff06f", x"80002783", x"00c79713", @@ -455,130 +443,124 @@ x"800007b7", x"00878793", x"80f02223", x"00008067", -x"fd010113", -x"03212023", -x"fffff937", -x"02912223", -x"01312e23", -x"01412c23", -x"01512a23", -x"02112623", -x"02812423", -x"00050993", -x"00058a13", +x"fe810113", +x"00912623", +x"00112a23", +x"00812823", +x"00050713", x"00000493", -x"50090913", -x"00400a93", -x"04099a63", -x"00092783", -x"00f79713", -x"fe075ce3", -x"00492403", +x"04071a63", +x"fffff7b7", +x"50078793", +x"0007a683", +x"00f69613", +x"fe065ce3", +x"0047a403", x"0ff47413", -x"00c10793", -x"009787b3", -x"00878023", +x"00448793", +x"00810693", +x"00d787b3", +x"fe878e23", x"00148493", -x"fd549ce3", -x"02c12083", -x"02812403", -x"00c12503", -x"02412483", -x"02012903", -x"01c12983", -x"01812a03", -x"01412a83", -x"03010113", +x"00400793", +x"fcf494e3", +x"01412083", +x"01012403", +x"00812503", +x"00c12483", +x"01810113", x"00008067", -x"f59ff0ef", +x"00b48433", +x"00e12223", +x"00b12023", +x"f6dff0ef", x"00300513", -x"009a0433", -x"ef9ff0ef", +x"f11ff0ef", x"00040513", -x"f09ff0ef", +x"f21ff0ef", x"00000513", -x"ee9ff0ef", +x"f01ff0ef", x"00050413", -x"ec9ff0ef", -x"f9dff06f", -x"ff010113", -x"00112623", -x"f25ff0ef", +x"ee1ff0ef", +x"00412703", +x"00012583", +x"f95ff06f", +x"ffc10113", +x"00112023", +x"f35ff0ef", x"00600513", -x"ec9ff0ef", -x"00c12083", -x"01010113", -x"ea5ff06f", -x"fe010113", -x"00112e23", -x"f05ff0ef", +x"ed9ff0ef", +x"00012083", +x"00410113", +x"eb5ff06f", +x"ff810113", +x"00112223", +x"f15ff0ef", x"00500513", -x"ea9ff0ef", +x"eb9ff0ef", x"00000513", -x"ea1ff0ef", -x"00a12623", -x"e81ff0ef", -x"01c12083", -x"00c12503", -x"02010113", +x"eb1ff0ef", +x"00a12023", +x"e91ff0ef", +x"00412083", +x"00012503", +x"00810113", x"00008067", -x"ff010113", -x"00112623", -x"ed1ff0ef", +x"ffc10113", +x"00112023", +x"ee1ff0ef", x"0ab00513", -x"e75ff0ef", -x"e59ff0ef", +x"e85ff0ef", +x"e69ff0ef", x"f95ff0ef", x"fb1ff0ef", x"00257793", x"fff00513", x"02078063", -x"eadff0ef", +x"ebdff0ef", x"00400513", -x"e51ff0ef", -x"e35ff0ef", +x"e61ff0ef", +x"e45ff0ef", x"f91ff0ef", x"01e51513", x"41f55513", -x"00c12083", -x"01010113", +x"00012083", +x"00410113", x"00008067", -x"fd010113", -x"02812423", -x"02912223", -x"01312e23", -x"02112623", -x"03212023", -x"01412c23", -x"00050493", -x"00b12623", -x"00000413", -x"00400993", -x"00c10793", -x"008787b3", -x"0007ca03", +x"fe810113", +x"00812823", +x"00912623", +x"00112a23", +x"00050413", +x"00b12423", +x"00000493", +x"00940733", +x"00e12223", +x"00448793", +x"00810713", +x"00e786b3", +x"ffc6c783", +x"00f12023", x"f21ff0ef", -x"e49ff0ef", +x"e59ff0ef", x"00200513", -x"dedff0ef", -x"00848933", -x"00090513", -x"df9ff0ef", -x"000a0513", -x"dd9ff0ef", -x"dbdff0ef", +x"dfdff0ef", +x"00412703", +x"00070513", +x"e09ff0ef", +x"00012503", +x"de9ff0ef", +x"dcdff0ef", x"f19ff0ef", x"00157513", x"fe051ce3", -x"00140413", -x"fb341ee3", -x"02c12083", -x"02812403", -x"02412483", -x"02012903", -x"01c12983", -x"01812a03", -x"03010113", +x"00148493", +x"00400713", +x"fae494e3", +x"01412083", +x"01012403", +x"00c12483", +x"01810113", x"00008067", x"fffff7b7", x"50078793", @@ -587,103 +569,91 @@ x"00a71693", x"fe06cce3", x"00a7a223", x"00008067", -x"fe010113", -x"01212823", -x"00050913", +x"ff410113", +x"00812223", +x"00050413", x"03000513", -x"00112e23", -x"00812c23", -x"00912a23", -x"01312623", -x"fc5ff0ef", +x"00112423", +x"00912023", +x"fcdff0ef", x"07800513", -x"ffffd4b7", -x"fb9ff0ef", -x"01c00413", -x"fc448493", -x"ffc00993", -x"008957b3", -x"00f7f793", -x"00f487b3", +x"fc5ff0ef", +x"01c00493", +x"00945733", +x"ffffd7b7", +x"00f77713", +x"f2878793", +x"00e787b3", x"0007c503", -x"ffc40413", -x"f95ff0ef", -x"ff3414e3", -x"01c12083", -x"01812403", -x"01412483", -x"01012903", -x"00c12983", -x"02010113", +x"ffc48493", +x"fa1ff0ef", +x"ffc00793", +x"fcf49ee3", +x"00812083", +x"00412403", +x"00012483", +x"00c10113", x"00008067", -x"ff010113", -x"00812423", -x"01212023", -x"00112623", -x"00912223", +x"ff410113", +x"00812223", +x"00112423", +x"00912023", x"00050413", -x"00a00913", x"00044483", x"00140413", -x"00049e63", -x"00c12083", -x"00812403", -x"00412483", -x"00012903", -x"01010113", +x"00049c63", +x"00812083", +x"00412403", +x"00012483", +x"00c10113", x"00008067", -x"01249663", +x"00a00793", +x"00f49663", x"00d00513", -x"f29ff0ef", +x"f41ff0ef", x"00048513", -x"f21ff0ef", +x"f39ff0ef", x"fc9ff06f", -x"ff010113", -x"00812423", +x"ff810113", +x"00812023", x"00050413", x"ffffd537", -x"d4450513", -x"00112623", -x"f91ff0ef", +x"ca850513", +x"00112223", +x"f99ff0ef", x"00241793", x"ffffd537", x"008787b3", -x"fd450513", +x"f3850513", x"00f50533", -x"f79ff0ef", +x"f81ff0ef", x"00800793", x"3007b073", -x"c35ff0ef", +x"c65ff0ef", x"00050863", x"00100793", x"c0f02423", x"c0002623", x"10500073", x"ffdff06f", -x"fb010113", -x"04112623", -x"04512423", -x"04612223", -x"04712023", -x"02812e23", -x"02912c23", -x"02a12a23", -x"02b12823", -x"02c12623", -x"02d12423", -x"02e12223", -x"02f12023", -x"01012e23", -x"01112c23", -x"01c12a23", -x"01d12823", -x"01e12623", -x"01f12423", +x"fd010113", +x"02112623", +x"02512423", +x"02612223", +x"02712023", +x"00812e23", +x"00912c23", +x"00a12a23", +x"00b12823", +x"00c12623", +x"00d12423", +x"00e12223", +x"00f12023", x"342024f3", x"800007b7", x"00778793", -x"0af49063", -x"bbdff0ef", +x"08f49463", +x"c05ff0ef", x"00050863", x"c0802783", x"0017c793", @@ -691,7 +661,7 @@ x"c0f02423", x"e0802783", x"00f79713", x"02075863", -x"badff0ef", +x"bf5ff0ef", x"e0002783", x"fffff737", x"fff00693", @@ -702,25 +672,19 @@ x"40d72423", x"00b787b3", x"40f72623", x"40a72423", -x"03c12403", -x"04c12083", -x"04812283", -x"04412303", -x"04012383", -x"03812483", -x"03412503", -x"03012583", -x"02c12603", -x"02812683", -x"02412703", -x"02012783", -x"01c12803", -x"01812883", -x"01412e03", -x"01012e83", -x"00c12f03", -x"00812f83", -x"05010113", +x"01c12403", +x"02c12083", +x"02812283", +x"02412303", +x"02012383", +x"01812483", +x"01412503", +x"01012583", +x"00c12603", +x"00812683", +x"00412703", +x"00012783", +x"03010113", x"30200073", x"00700793", x"00f49c63", @@ -728,132 +692,129 @@ x"800007b7", x"0007a783", x"00078663", x"00100513", -x"e99ff0ef", +x"ec9ff0ef", x"34102473", x"e0802783", x"00e79713", x"04075263", x"ffffd537", -x"d4c50513", -x"e25ff0ef", +x"cb050513", +x"e5dff0ef", x"00048513", -x"da9ff0ef", +x"df1ff0ef", x"02000513", -x"d85ff0ef", +x"dcdff0ef", x"00040513", -x"d99ff0ef", +x"de1ff0ef", x"02000513", -x"d75ff0ef", +x"dbdff0ef", x"34302573", -x"d89ff0ef", +x"dd1ff0ef", x"ffffd537", -x"db450513", -x"df1ff0ef", +x"d1850513", +x"e29ff0ef", x"00440413", x"34141073", -x"f3dff06f", -x"fd010113", -x"01612823", +x"f55ff06f", +x"fe010113", +x"00912a23", x"00100793", -x"80000b37", -x"02812423", -x"02112623", -x"02912223", -x"03212023", -x"01312e23", -x"01412c23", -x"01512a23", -x"01712623", -x"00fb2023", -x"00050413", +x"800004b7", +x"00112e23", +x"00812c23", +x"00a12023", +x"00f4a023", x"02051863", x"ffffd537", -x"d5850513", -x"d9dff0ef", +x"cbc50513", +x"dedff0ef", +x"00012503", x"004005b7", -x"00040513", -x"b0dff0ef", +x"b85ff0ef", x"4788d7b7", x"afe78793", x"04f50663", x"00000513", x"0340006f", x"ffffd537", -x"d7850513", -x"d71ff0ef", +x"cdc50513", +x"dc1ff0ef", x"00400537", -x"cf5ff0ef", +x"d55ff0ef", x"ffffd537", -x"d9450513", -x"d5dff0ef", +x"cf850513", +x"dadff0ef", x"e0802783", x"00d79713", x"00074663", x"00300513", -x"da1ff0ef", -x"bcdff0ef", +x"de9ff0ef", +x"c35ff0ef", x"fa0504e3", x"ff1ff06f", +x"00012503", x"004005b7", x"00458593", -x"00040513", -x"aa9ff0ef", +x"b21ff0ef", +x"00050413", +x"00012503", x"004005b7", -x"00050993", x"00858593", -x"00040513", -x"a95ff0ef", -x"00400ab7", -x"00050a13", -x"ffc9fb93", -x"00000913", -x"00000493", -x"00ca8a93", -x"015905b3", -x"05791a63", -x"014484b3", +x"b0dff0ef", +x"00050693", +x"ffc47613", +x"00000713", +x"00000793", +x"004005b7", +x"00c58593", +x"00b705b3", +x"02c71e63", +x"00d787b3", x"00200513", -x"fa0492e3", +x"fa0792e3", x"ffffd537", -x"d9c50513", -x"ce1ff0ef", -x"02c12083", -x"02812403", +x"d0050513", +x"d31ff0ef", x"800007b7", -x"0137a223", -x"000b2023", -x"02412483", -x"02012903", -x"01c12983", -x"01812a03", -x"01412a83", -x"01012b03", -x"00c12b83", -x"03010113", +x"0087a223", +x"01c12083", +x"01812403", +x"0004a023", +x"01412483", +x"02010113", x"00008067", -x"00040513", -x"a1dff0ef", -x"00a92023", -x"00a484b3", -x"00490913", -x"f95ff06f", -x"ff010113", -x"00112623", -x"00812423", +x"00012503", +x"00c12823", +x"00e12623", +x"00d12423", +x"00f12223", +x"a9dff0ef", +x"00c12703", +x"00412783", +x"01012603", +x"00a72023", +x"00812683", +x"00a787b3", +x"00470713", +x"f85ff06f", +x"ff810113", +x"00112223", +x"00812023", x"00800793", x"3007b073", -x"00000413", -x"00050463", +x"00a03533", +x"40a00533", x"e0400437", +x"00a47433", x"ffffd537", -x"da050513", -x"c65ff0ef", +x"d0450513", +x"ca9ff0ef", x"00040513", -x"be9ff0ef", +x"c3dff0ef", x"ffffd537", -x"db050513", -x"c51ff0ef", -x"915ff0ef", +x"d1450513", +x"c95ff0ef", +x"981ff0ef", x"00050663", x"c0002423", x"c0002623", @@ -899,8 +860,8 @@ x"6f6c746f", x"72656461", x"0a3e3e20", x"444c420a", -x"4f203a56", -x"33207463", +x"44203a56", +x"31206365", x"30322031", x"480a3432", x"203a5657", @@ -1002,26 +963,26 @@ x"676e6974", x"6f656e2f", x"32337672", x"00000000", -x"ffffc5f8", -x"ffffc618", -x"ffffc618", -x"ffffc4a4", -x"ffffc618", -x"ffffc618", -x"ffffc618", -x"ffffc5f0", -x"ffffc618", -x"ffffc618", -x"ffffc618", -x"ffffc618", -x"ffffc618", -x"ffffc49c", -x"ffffc4bc", -x"ffffc618", -x"ffffc4b0", -x"ffffc618", -x"ffffc618", -x"ffffc60c", +x"ffffc5c0", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc35c", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5b8", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc42c", +x"ffffc440", +x"ffffc5e4", +x"ffffc434", +x"ffffc5e4", +x"ffffc5e4", +x"ffffc5d8", x"33323130", x"37363534", x"62613938", diff --git a/rtl/core/neorv32_package.vhd b/rtl/core/neorv32_package.vhd index c24a22a99..437ab2508 100644 --- a/rtl/core/neorv32_package.vhd +++ b/rtl/core/neorv32_package.vhd @@ -29,7 +29,7 @@ package neorv32_package is -- Architecture Constants ----------------------------------------------------------------- -- ------------------------------------------------------------------------------------------- - constant hw_version_c : std_ulogic_vector(31 downto 0) := x"01100700"; -- hardware version + constant hw_version_c : std_ulogic_vector(31 downto 0) := x"01100701"; -- hardware version constant archid_c : natural := 19; -- official RISC-V architecture ID constant XLEN : natural := 32; -- native data path width diff --git a/sw/bootloader/bootloader.c b/sw/bootloader/bootloader.c index cf31453b4..7dcde75eb 100644 --- a/sw/bootloader/bootloader.c +++ b/sw/bootloader/bootloader.c @@ -238,14 +238,6 @@ uint8_t spi_flash_read_status(void); void spi_flash_write_addr(uint32_t addr); -/**********************************************************************//** - * Sanity check: Base RV32I ISA only! - **************************************************************************/ -#if defined __riscv_atomic || defined __riscv_a || __riscv_b || __riscv_compressed || defined __riscv_c || defined __riscv_mul || defined __riscv_m - #warning In order to allow the bootloader to run on *any* CPU configuration it should be compiled using the base rv32i ISA only. -#endif - - /**********************************************************************//** * Bootloader main. **************************************************************************/ diff --git a/sw/bootloader/makefile b/sw/bootloader/makefile index bffcb9c76..1470ebbea 100644 --- a/sw/bootloader/makefile +++ b/sw/bootloader/makefile @@ -1,8 +1,8 @@ # Bootloader (for BOOTROM) makefile. -# Minimal RISC-V ISA only -MARCH = rv32i_zicsr_zifencei -MABI = ilp32 +# Minimal RISC-V ISA (E!) only +MARCH = rv32e_zicsr_zifencei +MABI = ilp32e # Optimize for minimal size EFFORT = -Os @@ -14,7 +14,7 @@ EFFORT = -Os USER_FLAGS += \ -Wl,--defsym,__neorv32_rom_size=4k \ -Wl,--defsym,__neorv32_rom_base=0xFFFFC000 \ --Wl,--defsym,__neorv32_ram_size=512 \ +-Wl,--defsym,__neorv32_ram_size=256 \ -DMAKE_BOOTLOADER \ -flto