[bootloader] update SPI functions

This commit is contained in:
stnolting 2022-11-01 18:17:32 +01:00
parent 97cbeec760
commit b4a9ac2dbe
2 changed files with 223 additions and 240 deletions

View file

@ -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: 3976 bytes
-- MARCH: default
-- Built: 26.08.2022 15:55:40
-- Built: 01.11.2022 17:18:20
-- prototype defined in 'neorv32_package.vhd'
package body neorv32_bootloader_image is
@ -14,11 +14,10 @@ x"1f810113",
x"80010197",
x"7f418193",
x"00000517",
x"0e450513",
x"0e050513",
x"30551073",
x"30001073",
x"30401073",
x"34401073",
x"b0001073",
x"b8001073",
x"b0201073",
@ -44,11 +43,11 @@ x"00000e93",
x"00000f13",
x"00000f93",
x"00001597",
x"f4058593",
x"f0058593",
x"80010617",
x"f6c60613",
x"f7060613",
x"80010697",
x"f6468693",
x"f6868693",
x"00c58e63",
x"00d65c63",
x"0005a703",
@ -57,7 +56,7 @@ x"00458593",
x"00460613",
x"fedff06f",
x"80010717",
x"f4070713",
x"f4470713",
x"80818793",
x"00f75863",
x"00072023",
@ -108,15 +107,14 @@ x"03812423",
x"03912223",
x"03a12023",
x"01b12e23",
x"7a478793",
x"79478793",
x"30579073",
x"fe802783",
x"00080737",
x"00e7f7b3",
x"00078a63",
x"000017b7",
x"00078863",
x"fa002423",
x"90078793",
x"40100793",
x"faf02423",
x"fe802783",
x"40000737",
@ -163,11 +161,11 @@ x"ffff7637",
x"00000713",
x"5ff78793",
x"a0060613",
x"1cd7e663",
x"1cd7ea63",
x"000016b7",
x"00000793",
x"ffe68693",
x"1ce6e863",
x"1ce6ec63",
x"fff70713",
x"01879793",
x"00e7e7b3",
@ -186,94 +184,96 @@ x"08000793",
x"30479073",
x"30046073",
x"ffff1537",
x"dc850513",
x"428000ef",
x"d8450513",
x"420000ef",
x"f1302573",
x"3ac000ef",
x"3a4000ef",
x"ffff1537",
x"e0050513",
x"414000ef",
x"dbc50513",
x"40c000ef",
x"fe402503",
x"398000ef",
x"390000ef",
x"ffff1537",
x"e0850513",
x"400000ef",
x"dc450513",
x"3f8000ef",
x"fe002503",
x"384000ef",
x"37c000ef",
x"ffff1537",
x"e1050513",
x"3ec000ef",
x"dcc50513",
x"3e4000ef",
x"30102573",
x"370000ef",
x"368000ef",
x"ffff1537",
x"e1850513",
x"3d8000ef",
x"dd450513",
x"3d0000ef",
x"fc002573",
x"35c000ef",
x"354000ef",
x"ffff1537",
x"e1c50513",
x"3c4000ef",
x"dd850513",
x"3bc000ef",
x"fe802503",
x"ffff1437",
x"344000ef",
x"33c000ef",
x"ffff1537",
x"e2450513",
x"3ac000ef",
x"de050513",
x"3a4000ef",
x"ff802503",
x"330000ef",
x"e2c40513",
x"39c000ef",
x"328000ef",
x"de840513",
x"394000ef",
x"ff002503",
x"320000ef",
x"318000ef",
x"ffff1537",
x"e3850513",
x"388000ef",
x"df450513",
x"380000ef",
x"ffc02503",
x"30c000ef",
x"e2c40513",
x"378000ef",
x"304000ef",
x"de840513",
x"370000ef",
x"ff402503",
x"2fc000ef",
x"2f4000ef",
x"fe802783",
x"00020737",
x"00e7f7b3",
x"04078663",
x"04078a63",
x"ffff1537",
x"e4050513",
x"354000ef",
x"2b0000ef",
x"dfc50513",
x"34c000ef",
x"2a8000ef",
x"fe002403",
x"000409b7",
x"00002a37",
x"00341413",
x"00a40933",
x"00893433",
x"00b40433",
x"fe802783",
x"0137f7b3",
x"0a078463",
x"fa402783",
x"0a07d063",
x"0a078663",
x"fa002783",
x"0147f7b3",
x"0a079063",
x"ffff1537",
x"e6c50513",
x"318000ef",
x"e2850513",
x"308000ef",
x"ffff19b7",
x"e7898513",
x"30c000ef",
x"e3498513",
x"2fc000ef",
x"06c00a13",
x"07800b93",
x"07300c13",
x"06500c93",
x"ffff17b7",
x"ef878513",
x"2f0000ef",
x"eb478513",
x"2e0000ef",
x"fa402403",
x"fe045ee3",
x"0ff47413",
x"00040513",
x"250000ef",
x"240000ef",
x"ffff17b7",
x"dc478513",
x"2d0000ef",
x"d8078513",
x"2c0000ef",
x"07200793",
x"06f41863",
x"ffff02b7",
@ -282,99 +282,95 @@ x"00170713",
x"01071713",
x"00c686b3",
x"01075713",
x"e25ff06f",
x"e1dff06f",
x"ffe78613",
x"0fd67613",
x"00061a63",
x"00375713",
x"00178793",
x"0ff7f793",
x"e19ff06f",
x"e11ff06f",
x"00175713",
x"ff1ff06f",
x"1e4000ef",
x"f485e6e3",
x"1d4000ef",
x"f485e4e3",
x"00b41463",
x"f52562e3",
x"f52560e3",
x"00100513",
x"688000ef",
x"654000ef",
x"ffff1537",
x"dc450513",
x"264000ef",
x"d8050513",
x"254000ef",
x"00000513",
x"079000ef",
x"19440463",
x"035000ef",
x"17440c63",
x"028a6463",
x"19940463",
x"17940c63",
x"06800793",
x"e7898513",
x"e3498513",
x"02f40c63",
x"03f00793",
x"18f40863",
x"18f40063",
x"ffff1537",
x"f9c50513",
x"f5850513",
x"0240006f",
x"07500793",
x"02f40263",
x"17740863",
x"17740063",
x"ff8414e3",
x"0044a403",
x"02041063",
x"ffff1537",
x"f0050513",
x"20c000ef",
x"ebc50513",
x"1fc000ef",
x"f11ff06f",
x"00000513",
x"618000ef",
x"5e4000ef",
x"f05ff06f",
x"ffff1537",
x"f1c50513",
x"1f0000ef",
x"ed850513",
x"1e0000ef",
x"00040513",
x"174000ef",
x"164000ef",
x"ffff1537",
x"f2450513",
x"1dc000ef",
x"ee050513",
x"1cc000ef",
x"00400537",
x"160000ef",
x"150000ef",
x"ffff1537",
x"f3c50513",
x"1c8000ef",
x"ef850513",
x"1b8000ef",
x"fa402903",
x"fe095ee3",
x"0ff97913",
x"00090513",
x"128000ef",
x"118000ef",
x"07900793",
x"eaf91ae3",
x"470000ef",
x"548000ef",
x"00050663",
x"00300513",
x"1f4000ef",
x"1e4000ef",
x"ffff1537",
x"f4850513",
x"190000ef",
x"f0450513",
x"180000ef",
x"01045b13",
x"00400937",
x"00010db7",
x"fff00d13",
x"3bc000ef",
x"fa802783",
x"4c8000ef",
x"3f8000ef",
x"0d800513",
x"0017e793",
x"faf02423",
x"394000ef",
x"3a0000ef",
x"00090513",
x"47c000ef",
x"fa802783",
x"ffe7f793",
x"faf02423",
x"3d0000ef",
x"3ac000ef",
x"380000ef",
x"4cc000ef",
x"00157a93",
x"fe0a9ce3",
x"fffb0b13",
x"01b90933",
x"fdab10e3",
x"fdab18e3",
x"ff002683",
x"00400937",
x"00000d13",
@ -385,34 +381,34 @@ x"01bd0533",
x"00d12623",
x"00ba8ab3",
x"004d0d13",
x"688000ef",
x"664000ef",
x"00c12683",
x"fe8d60e3",
x"4788d5b7",
x"afe58593",
x"00400537",
x"670000ef",
x"64c000ef",
x"00040593",
x"00490513",
x"664000ef",
x"640000ef",
x"00890513",
x"415005b3",
x"658000ef",
x"634000ef",
x"ffff1537",
x"dac50513",
x"ec9ff06f",
x"d6850513",
x"ed9ff06f",
x"00100513",
x"ecdff06f",
x"eddff06f",
x"0044a783",
x"e60792e3",
x"e6079ae3",
x"ffff1537",
x"f5850513",
x"eadff06f",
x"f1450513",
x"ebdff06f",
x"00100513",
x"e55ff06f",
x"e65ff06f",
x"ffff1537",
x"f6850513",
x"e99ff06f",
x"f2450513",
x"ea9ff06f",
x"f9402583",
x"f9002503",
x"f9402783",
@ -437,7 +433,7 @@ x"07800513",
x"ffff14b7",
x"fbdff0ef",
x"01c00413",
x"fa848493",
x"f6448493",
x"ffc00993",
x"008957b3",
x"00f7f793",
@ -479,13 +475,13 @@ x"ff010113",
x"00812423",
x"00050413",
x"ffff1537",
x"d6450513",
x"d2050513",
x"00112623",
x"f91ff0ef",
x"00241793",
x"ffff1537",
x"008787b3",
x"fb850513",
x"f7450513",
x"00f50533",
x"f79ff0ef",
x"30047073",
@ -574,7 +570,7 @@ x"00040737",
x"00e7f7b3",
x"04078263",
x"ffff1537",
x"d6c50513",
x"d2850513",
x"e19ff0ef",
x"00048513",
x"d9dff0ef",
@ -587,11 +583,16 @@ x"d6dff0ef",
x"34302573",
x"d7dff0ef",
x"ffff1537",
x"dc450513",
x"d8050513",
x"de5ff0ef",
x"00440413",
x"34141073",
x"f39ff06f",
x"fa800713",
x"00072783",
x"eff7f793",
x"00f72023",
x"00008067",
x"faa02623",
x"fa802783",
x"fe07cee3",
@ -599,86 +600,37 @@ x"fac02503",
x"00008067",
x"ff010113",
x"00812423",
x"fa800413",
x"00042783",
x"00112623",
x"00600513",
x"0017e793",
x"00f42023",
x"fcdff0ef",
x"00042783",
x"00c12083",
x"ffe7f793",
x"00f42023",
x"00812403",
x"01010113",
x"00008067",
x"ff010113",
x"00812423",
x"fa800413",
x"00042783",
x"00112623",
x"00500513",
x"0017e793",
x"00f42023",
x"f8dff0ef",
x"00000513",
x"f85ff0ef",
x"00042783",
x"00c12083",
x"ffe7f793",
x"00f42023",
x"00812403",
x"01010113",
x"00008067",
x"ff010113",
x"00112623",
x"f71ff0ef",
x"fadff0ef",
x"00257793",
x"fff00513",
x"02078863",
x"fa802783",
x"00400513",
x"0017e793",
x"faf02423",
x"f39ff0ef",
x"fa802783",
x"ffe7f793",
x"faf02423",
x"f7dff0ef",
x"01e51513",
x"41f55513",
x"00c12083",
x"01010113",
x"00008067",
x"ff010113",
x"00812423",
x"00050413",
x"01055513",
x"0ff57513",
x"00112623",
x"ef9ff0ef",
x"fd5ff0ef",
x"00845513",
x"0ff57513",
x"eedff0ef",
x"fc9ff0ef",
x"0ff47513",
x"00812403",
x"00c12083",
x"01010113",
x"ed9ff06f",
x"fb5ff06f",
x"fa800713",
x"00072783",
x"e1f7f793",
x"1007e793",
x"00f72023",
x"00008067",
x"fd010113",
x"02812423",
x"02912223",
x"03212023",
x"01312e23",
x"02112623",
x"01412c23",
x"00050913",
x"00058493",
x"02112623",
x"02912223",
x"00050993",
x"00058913",
x"00000413",
x"00400993",
x"04091463",
x"00400a13",
x"04099463",
x"00400713",
x"fa402783",
x"fe07dee3",
@ -696,25 +648,60 @@ x"01c12983",
x"01812a03",
x"03010113",
x"00008067",
x"fa802783",
x"f75ff0ef",
x"00300513",
x"00848a33",
x"0017e793",
x"faf02423",
x"e4dff0ef",
x"000a0513",
x"f35ff0ef",
x"012404b3",
x"f19ff0ef",
x"00048513",
x"f25ff0ef",
x"00000513",
x"e3dff0ef",
x"fa802783",
x"ffe7f793",
x"faf02423",
x"f09ff0ef",
x"00050493",
x"eedff0ef",
x"00c10793",
x"008787b3",
x"00a78023",
x"00978023",
x"00140413",
x"f7341ae3",
x"f95ff06f",
x"f94410e3",
x"fa1ff06f",
x"ff010113",
x"00112623",
x"f2dff0ef",
x"00600513",
x"ed5ff0ef",
x"00c12083",
x"01010113",
x"eb5ff06f",
x"fe010113",
x"00112e23",
x"f0dff0ef",
x"00500513",
x"eb5ff0ef",
x"00000513",
x"eadff0ef",
x"00a12623",
x"e91ff0ef",
x"01c12083",
x"00c12503",
x"02010113",
x"00008067",
x"ff010113",
x"00112623",
x"fa5ff0ef",
x"fc1ff0ef",
x"00257793",
x"fff00513",
x"02078063",
x"ec5ff0ef",
x"00400513",
x"e6dff0ef",
x"e55ff0ef",
x"fa1ff0ef",
x"01e51513",
x"41f55513",
x"00c12083",
x"01010113",
x"00008067",
x"fd010113",
x"01612823",
x"00100793",
@ -732,41 +719,41 @@ x"00fb2023",
x"00050413",
x"02051863",
x"ffff1537",
x"d7850513",
x"ba1ff0ef",
x"d3450513",
x"bc5ff0ef",
x"004005b7",
x"00040513",
x"eedff0ef",
x"e61ff0ef",
x"4788d7b7",
x"afe78793",
x"04f50863",
x"00000513",
x"0380006f",
x"ffff1537",
x"d9850513",
x"b75ff0ef",
x"d5450513",
x"b99ff0ef",
x"00400537",
x"af9ff0ef",
x"b1dff0ef",
x"ffff1537",
x"da450513",
x"b61ff0ef",
x"d6050513",
x"b85ff0ef",
x"fe802783",
x"00080737",
x"00e7f7b3",
x"00079663",
x"00300513",
x"ba1ff0ef",
x"e0dff0ef",
x"bc5ff0ef",
x"f19ff0ef",
x"fa0502e3",
x"ff1ff06f",
x"004009b7",
x"00498593",
x"00040513",
x"e85ff0ef",
x"df9ff0ef",
x"00050a13",
x"00898593",
x"00040513",
x"e75ff0ef",
x"de9ff0ef",
x"ff002c03",
x"00050a93",
x"ffca7b93",
@ -779,8 +766,8 @@ x"015484b3",
x"00200513",
x"fa0494e3",
x"ffff1537",
x"dac50513",
x"ae5ff0ef",
x"d6850513",
x"b09ff0ef",
x"02c12083",
x"02812403",
x"800007b7",
@ -797,7 +784,7 @@ x"00812c03",
x"03010113",
x"00008067",
x"00040513",
x"df9ff0ef",
x"d6dff0ef",
x"012c07b3",
x"00a484b3",
x"00a7a023",
@ -817,25 +804,21 @@ x"00400993",
x"00c10793",
x"008787b3",
x"0007ca03",
x"c91ff0ef",
x"fa802783",
x"dd1ff0ef",
x"d01ff0ef",
x"00200513",
x"ca9ff0ef",
x"00848933",
x"0017e793",
x"faf02423",
x"c65ff0ef",
x"00090513",
x"d4dff0ef",
x"cb1ff0ef",
x"000a0513",
x"c55ff0ef",
x"fa802783",
x"ffe7f793",
x"faf02423",
x"c99ff0ef",
x"c95ff0ef",
x"c7dff0ef",
x"dc9ff0ef",
x"00157513",
x"fe051ce3",
x"00140413",
x"fb3416e3",
x"fb341ee3",
x"02c12083",
x"02812403",
x"02412483",
@ -852,13 +835,13 @@ x"ff002403",
x"00050463",
x"40400437",
x"ffff1537",
x"db050513",
x"9c1ff0ef",
x"d6c50513",
x"9f5ff0ef",
x"00040513",
x"945ff0ef",
x"979ff0ef",
x"ffff1537",
x"dc050513",
x"9adff0ef",
x"d7c50513",
x"9e1ff0ef",
x"00010737",
x"fa002783",
x"fe07cee3",
@ -898,9 +881,9 @@ x"6f6c746f",
x"72656461",
x"0a3e3e20",
x"444c420a",
x"41203a56",
x"32206775",
x"30322036",
x"4e203a56",
x"2020766f",
x"30322031",
x"480a3232",
x"203a5657",
x"00000020",

View file

@ -278,7 +278,7 @@ int main(void) {
#if (SPI_EN != 0)
// setup SPI for 8-bit, clock-mode 0
if (neorv32_spi_available()) {
neorv32_spi_setup(SPI_FLASH_CLK_PRSC, 0, 0, 0, 0);
neorv32_spi_setup(SPI_FLASH_CLK_PRSC, 0, 0, 0, 0, 0);
}
#endif
@ -779,7 +779,7 @@ uint8_t spi_flash_read_byte(uint32_t addr) {
spi_flash_write_addr(addr);
uint8_t rdata = (uint8_t)neorv32_spi_trans(0);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
return rdata;
#else
@ -805,7 +805,7 @@ void spi_flash_write_byte(uint32_t addr, uint8_t wdata) {
spi_flash_write_addr(addr);
neorv32_spi_trans(wdata);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
while(1) {
if ((spi_flash_read_status() & (1 << FLASH_SREG_BUSY)) == 0) { // write in progress flag cleared?
@ -856,7 +856,7 @@ void spi_flash_erase_sector(uint32_t addr) {
neorv32_spi_trans(SPI_FLASH_CMD_SECTOR_ERASE);
spi_flash_write_addr(addr);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
while(1) {
if ((spi_flash_read_status() & (1 << FLASH_SREG_BUSY)) == 0) { // write in progress flag cleared?
@ -875,7 +875,7 @@ void spi_flash_write_enable(void) {
#if (SPI_EN != 0)
neorv32_spi_cs_en(SPI_FLASH_CS);
neorv32_spi_trans(SPI_FLASH_CMD_WRITE_ENABLE);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
#endif
}
@ -888,7 +888,7 @@ void spi_flash_write_disable(void) {
#if (SPI_EN != 0)
neorv32_spi_cs_en(SPI_FLASH_CS);
neorv32_spi_trans(SPI_FLASH_CMD_WRITE_DISABLE);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
#endif
}
@ -906,7 +906,7 @@ uint32_t spi_flash_read_status(void) {
neorv32_spi_trans(SPI_FLASH_CMD_READ_STATUS);
uint32_t res = neorv32_spi_trans(0);
neorv32_spi_cs_dis(SPI_FLASH_CS);
neorv32_spi_cs_dis();
return res;
#else