mirror of
https://github.com/stnolting/neorv32.git
synced 2025-04-23 13:47:33 -04:00
[bootloader] re-link + minor edits
Add memory sync to bootloader (flush caches before booting the application).
This commit is contained in:
parent
2ef00c2e21
commit
3533c900b3
2 changed files with 56 additions and 45 deletions
|
@ -1,8 +1,8 @@
|
|||
-- The NEORV32 RISC-V Processor: https://github.com/stnolting/neorv32
|
||||
-- Auto-generated memory initialization file (for BOOTLOADER) from source file <bootloader/main.bin>
|
||||
-- Size: 4044 bytes
|
||||
-- Size: 4064 bytes
|
||||
-- MARCH: default
|
||||
-- Built: 16.03.2023 20:18:06
|
||||
-- Built: 02.06.2023 11:53:49
|
||||
|
||||
-- prototype defined in 'neorv32_package.vhd'
|
||||
package body neorv32_bootloader_image is
|
||||
|
@ -40,7 +40,7 @@ x"00000e93",
|
|||
x"00000f13",
|
||||
x"00000f93",
|
||||
x"00001597",
|
||||
x"f5058593",
|
||||
x"f6458593",
|
||||
x"80010617",
|
||||
x"f7c60613",
|
||||
x"80010697",
|
||||
|
@ -65,7 +65,7 @@ x"060000ef",
|
|||
x"30401073",
|
||||
x"34051073",
|
||||
x"10500073",
|
||||
x"0000006f",
|
||||
x"ffdff06f",
|
||||
x"ff810113",
|
||||
x"00812023",
|
||||
x"00912223",
|
||||
|
@ -187,63 +187,63 @@ x"30479073",
|
|||
x"00800793",
|
||||
x"3007a073",
|
||||
x"ffff1537",
|
||||
x"dc450513",
|
||||
x"dd850513",
|
||||
x"6b0000ef",
|
||||
x"f1302573",
|
||||
x"634000ef",
|
||||
x"ffff1537",
|
||||
x"dfc50513",
|
||||
x"e1050513",
|
||||
x"69c000ef",
|
||||
x"fe402503",
|
||||
x"620000ef",
|
||||
x"ffff1537",
|
||||
x"e0450513",
|
||||
x"e1850513",
|
||||
x"688000ef",
|
||||
x"fe002503",
|
||||
x"60c000ef",
|
||||
x"ffff1537",
|
||||
x"e0c50513",
|
||||
x"e2050513",
|
||||
x"674000ef",
|
||||
x"30102573",
|
||||
x"5f8000ef",
|
||||
x"ffff1537",
|
||||
x"e1450513",
|
||||
x"e2850513",
|
||||
x"660000ef",
|
||||
x"fc002573",
|
||||
x"5e4000ef",
|
||||
x"ffff1537",
|
||||
x"e1c50513",
|
||||
x"e3050513",
|
||||
x"64c000ef",
|
||||
x"fe802503",
|
||||
x"ffff1437",
|
||||
x"ffff1937",
|
||||
x"5c8000ef",
|
||||
x"ffff1537",
|
||||
x"e2450513",
|
||||
x"e3850513",
|
||||
x"630000ef",
|
||||
x"ff802503",
|
||||
x"5b4000ef",
|
||||
x"e2c40513",
|
||||
x"e4040513",
|
||||
x"620000ef",
|
||||
x"ff002503",
|
||||
x"5a4000ef",
|
||||
x"ffff1537",
|
||||
x"e3850513",
|
||||
x"e4c50513",
|
||||
x"60c000ef",
|
||||
x"ffc02503",
|
||||
x"590000ef",
|
||||
x"e2c40513",
|
||||
x"e4040513",
|
||||
x"5fc000ef",
|
||||
x"ff402503",
|
||||
x"580000ef",
|
||||
x"dc090513",
|
||||
x"dd490513",
|
||||
x"5ec000ef",
|
||||
x"fe802783",
|
||||
x"00020737",
|
||||
x"00e7f7b3",
|
||||
x"04078c63",
|
||||
x"ffff1537",
|
||||
x"e4050513",
|
||||
x"e5450513",
|
||||
x"5d0000ef",
|
||||
x"2bc000ef",
|
||||
x"fe002403",
|
||||
|
@ -261,17 +261,17 @@ x"0157f7b3",
|
|||
x"0a078063",
|
||||
x"ffff1537",
|
||||
x"fa402783",
|
||||
x"e6c50513",
|
||||
x"e8050513",
|
||||
x"588000ef",
|
||||
x"ffff1a37",
|
||||
x"e78a0513",
|
||||
x"e8ca0513",
|
||||
x"57c000ef",
|
||||
x"06c00a93",
|
||||
x"07800b93",
|
||||
x"07300c13",
|
||||
x"06500c93",
|
||||
x"ffff17b7",
|
||||
x"ef878513",
|
||||
x"f0c78513",
|
||||
x"560000ef",
|
||||
x"fa002783",
|
||||
x"00010737",
|
||||
|
@ -281,7 +281,7 @@ x"fa402403",
|
|||
x"0ff47413",
|
||||
x"00040513",
|
||||
x"4b4000ef",
|
||||
x"dc090513",
|
||||
x"dd490513",
|
||||
x"538000ef",
|
||||
x"07200793",
|
||||
x"06f41063",
|
||||
|
@ -304,7 +304,7 @@ x"00b41463",
|
|||
x"f53560e3",
|
||||
x"00100513",
|
||||
x"718000ef",
|
||||
x"dc090513",
|
||||
x"dd490513",
|
||||
x"4dc000ef",
|
||||
x"00000513",
|
||||
x"069000ef",
|
||||
|
@ -312,12 +312,12 @@ x"19540863",
|
|||
x"028ae463",
|
||||
x"19940863",
|
||||
x"06800793",
|
||||
x"e78a0513",
|
||||
x"e8ca0513",
|
||||
x"02f40c63",
|
||||
x"03f00793",
|
||||
x"18f40c63",
|
||||
x"ffff1537",
|
||||
x"f9c50513",
|
||||
x"fb050513",
|
||||
x"0240006f",
|
||||
x"07500793",
|
||||
x"02f40263",
|
||||
|
@ -326,24 +326,24 @@ x"ff8414e3",
|
|||
x"0044a403",
|
||||
x"02041063",
|
||||
x"ffff1537",
|
||||
x"f0050513",
|
||||
x"f1450513",
|
||||
x"484000ef",
|
||||
x"f19ff06f",
|
||||
x"00000513",
|
||||
x"6ac000ef",
|
||||
x"f0dff06f",
|
||||
x"ffff1537",
|
||||
x"f1c50513",
|
||||
x"f3050513",
|
||||
x"468000ef",
|
||||
x"00040513",
|
||||
x"3ec000ef",
|
||||
x"ffff1537",
|
||||
x"f2450513",
|
||||
x"f3850513",
|
||||
x"454000ef",
|
||||
x"00400537",
|
||||
x"3d8000ef",
|
||||
x"ffff1537",
|
||||
x"f3c50513",
|
||||
x"f5050513",
|
||||
x"440000ef",
|
||||
x"00010737",
|
||||
x"fa002783",
|
||||
|
@ -360,7 +360,7 @@ x"00050663",
|
|||
x"00300513",
|
||||
x"460000ef",
|
||||
x"ffff1537",
|
||||
x"f4850513",
|
||||
x"f5c50513",
|
||||
x"3fc000ef",
|
||||
x"01045b13",
|
||||
x"004009b7",
|
||||
|
@ -406,19 +406,19 @@ x"00898513",
|
|||
x"41b005b3",
|
||||
x"230000ef",
|
||||
x"ffff1537",
|
||||
x"da850513",
|
||||
x"dbc50513",
|
||||
x"ec1ff06f",
|
||||
x"00100513",
|
||||
x"ec5ff06f",
|
||||
x"0044a783",
|
||||
x"e4079ee3",
|
||||
x"ffff1537",
|
||||
x"f5850513",
|
||||
x"f6c50513",
|
||||
x"ea5ff06f",
|
||||
x"00100513",
|
||||
x"e4dff06f",
|
||||
x"ffff1537",
|
||||
x"f6850513",
|
||||
x"f7c50513",
|
||||
x"e91ff06f",
|
||||
x"f9402583",
|
||||
x"f9002503",
|
||||
|
@ -600,7 +600,7 @@ x"07800513",
|
|||
x"ffff14b7",
|
||||
x"fbdff0ef",
|
||||
x"01c00413",
|
||||
x"fa848493",
|
||||
x"fbc48493",
|
||||
x"ffc00993",
|
||||
x"008957b3",
|
||||
x"00f7f793",
|
||||
|
@ -642,13 +642,13 @@ x"ff010113",
|
|||
x"00812423",
|
||||
x"00050413",
|
||||
x"ffff1537",
|
||||
x"d6050513",
|
||||
x"d7450513",
|
||||
x"00112623",
|
||||
x"f91ff0ef",
|
||||
x"00241793",
|
||||
x"ffff1537",
|
||||
x"008787b3",
|
||||
x"fb850513",
|
||||
x"fcc50513",
|
||||
x"00f50533",
|
||||
x"f79ff0ef",
|
||||
x"00800793",
|
||||
|
@ -739,7 +739,7 @@ x"00040737",
|
|||
x"00e7f7b3",
|
||||
x"04078263",
|
||||
x"ffff1537",
|
||||
x"d6850513",
|
||||
x"d7c50513",
|
||||
x"e11ff0ef",
|
||||
x"00048513",
|
||||
x"d95ff0ef",
|
||||
|
@ -752,7 +752,7 @@ x"d65ff0ef",
|
|||
x"34302573",
|
||||
x"d75ff0ef",
|
||||
x"ffff1537",
|
||||
x"dc050513",
|
||||
x"dd450513",
|
||||
x"dddff0ef",
|
||||
x"00440413",
|
||||
x"34141073",
|
||||
|
@ -774,7 +774,7 @@ x"00fb2023",
|
|||
x"00050413",
|
||||
x"02051863",
|
||||
x"ffff1537",
|
||||
x"d7450513",
|
||||
x"d8850513",
|
||||
x"d85ff0ef",
|
||||
x"004005b7",
|
||||
x"00040513",
|
||||
|
@ -785,12 +785,12 @@ x"04f50863",
|
|||
x"00000513",
|
||||
x"0380006f",
|
||||
x"ffff1537",
|
||||
x"d9450513",
|
||||
x"da850513",
|
||||
x"d59ff0ef",
|
||||
x"00400537",
|
||||
x"cddff0ef",
|
||||
x"ffff1537",
|
||||
x"da050513",
|
||||
x"db450513",
|
||||
x"d45ff0ef",
|
||||
x"fe802783",
|
||||
x"00080737",
|
||||
|
@ -821,7 +821,7 @@ x"015484b3",
|
|||
x"00200513",
|
||||
x"fa0494e3",
|
||||
x"ffff1537",
|
||||
x"da850513",
|
||||
x"dbc50513",
|
||||
x"cc9ff0ef",
|
||||
x"02c12083",
|
||||
x"02812403",
|
||||
|
@ -854,15 +854,20 @@ x"ff002403",
|
|||
x"00050463",
|
||||
x"40400437",
|
||||
x"ffff1537",
|
||||
x"dac50513",
|
||||
x"dc050513",
|
||||
x"c45ff0ef",
|
||||
x"00040513",
|
||||
x"bc9ff0ef",
|
||||
x"ffff1537",
|
||||
x"dbc50513",
|
||||
x"dd050513",
|
||||
x"c31ff0ef",
|
||||
x"fa002783",
|
||||
x"fe07cee3",
|
||||
x"fc0027f3",
|
||||
x"0027f793",
|
||||
x"00078463",
|
||||
x"0000100f",
|
||||
x"0ff0000f",
|
||||
x"000400e7",
|
||||
x"52450a07",
|
||||
x"00005f52",
|
||||
|
@ -897,9 +902,9 @@ x"6f6c746f",
|
|||
x"72656461",
|
||||
x"0a3e3e20",
|
||||
x"444c420a",
|
||||
x"4d203a56",
|
||||
x"31207261",
|
||||
x"30322036",
|
||||
x"4a203a56",
|
||||
x"20206e75",
|
||||
x"30322032",
|
||||
x"480a3332",
|
||||
x"203a5657",
|
||||
x"00000020",
|
||||
|
|
|
@ -487,6 +487,12 @@ void start_app(int boot_xip) {
|
|||
// wait for UART0 to finish transmitting
|
||||
while (neorv32_uart0_tx_busy());
|
||||
|
||||
// memory sync
|
||||
if (neorv32_cpu_csr_read(CSR_MXISA) & (1 << CSR_MXISA_ZIFENCEI)) { // Zifenci ISA extension available?
|
||||
asm volatile ("fence.i");
|
||||
}
|
||||
asm volatile ("fence");
|
||||
|
||||
// start application
|
||||
asm volatile ("jalr ra, %0" : : "r" (app_base));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue