Skip to content

Commit

Permalink
Update vexriscv_nor_spi support
Browse files Browse the repository at this point in the history
  • Loading branch information
Dolu1990 committed Jun 29, 2019
1 parent 814d43a commit 6986ca2
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 63 deletions.
4 changes: 2 additions & 2 deletions src/flash/nor/vexriscv_algo/vexriscv_nor_spi.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@


static void spiNotFull(volatile uint32_t* ctrlAddress){
while(ctrlAddress[CTRL_STATUS] >> 16 == 0);
while((ctrlAddress[CTRL_STATUS] & 0xFFFF) == 0);
}


Expand All @@ -43,7 +43,7 @@ static uint8_t spiRead(volatile uint32_t* ctrlAddress){
ctrlAddress[CTRL_DATA] = 0x200;
while(1){
uint32_t ret = ctrlAddress[CTRL_DATA];
if(ret & 0x80000000) return ret;
if((ret & 0x80000000) == 0) return ret;
}
}

Expand Down
48 changes: 27 additions & 21 deletions src/flash/nor/vexriscv_algo/vexriscv_nor_spi_read.h
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
unsigned char vexriscv_nor_spi_read_bin[] = {
0x17, 0x01, 0x00, 0x00, 0x13, 0x01, 0x01, 0x13, 0xef, 0x00, 0x80, 0x00,
0x73, 0x00, 0x10, 0x00, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x88,
0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0xb0, 0x10, 0x23, 0x20, 0xf5, 0x00,
0x13, 0xd7, 0x05, 0x01, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf7, 0x0f, 0x93, 0xe7, 0x07, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x13, 0xd7, 0x85, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf7, 0x0f,
0x93, 0xe7, 0x07, 0x10, 0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0xf5, 0xf5, 0x0f,
0x93, 0xe5, 0x05, 0x10, 0x23, 0x20, 0xb5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x00, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x63, 0x08, 0x06, 0x02, 0x33, 0x86, 0xc6, 0x00,
0x13, 0x07, 0x00, 0x20, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x23, 0x20, 0xe5, 0x00, 0x83, 0x27, 0x05, 0x00,
0xe3, 0xde, 0x07, 0xfe, 0x23, 0x80, 0xf6, 0x00, 0x93, 0x86, 0x16, 0x00,
0xe3, 0x90, 0xc6, 0xfe, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80,
0x23, 0x20, 0xf5, 0x00, 0x67, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x17, 0x01, 0x00, 0x00, 0x13, 0x01, 0x01, 0x17, 0xef, 0x00, 0x80, 0x00,
0x73, 0x00, 0x10, 0x00, 0x37, 0x07, 0x01, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x88, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0xb0, 0x10,
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0xd8, 0x05, 0x01,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf8, 0x0f, 0x93, 0xe7, 0x07, 0x10,
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0xd8, 0x85, 0x00,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf8, 0x0f, 0x93, 0xe7, 0x07, 0x10,
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0x93, 0xf5, 0xf5, 0x0f, 0x93, 0xe5, 0x05, 0x10, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xb5, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x00, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x63, 0x0c, 0x06, 0x02, 0x37, 0x07, 0x01, 0x00,
0x33, 0x86, 0xc6, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x93, 0x05, 0x00, 0x20,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0x23, 0x20, 0xb5, 0x00, 0x83, 0x27, 0x05, 0x00, 0xe3, 0xce, 0x07, 0xfe,
0x23, 0x80, 0xf6, 0x00, 0x93, 0x86, 0x16, 0x00, 0xe3, 0x90, 0xc6, 0xfe,
0x37, 0x07, 0x01, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00,
0x93, 0x87, 0x07, 0x80, 0x23, 0x20, 0xf5, 0x00, 0x67, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
unsigned int vexriscv_nor_spi_read_bin_len = 240;
unsigned int vexriscv_nor_spi_read_bin_len = 304;
85 changes: 47 additions & 38 deletions src/flash/nor/vexriscv_algo/vexriscv_nor_spi_write.h
Original file line number Diff line number Diff line change
@@ -1,41 +1,50 @@
unsigned char vexriscv_nor_spi_write_bin[] = {
0x17, 0x01, 0x00, 0x00, 0x13, 0x01, 0x01, 0x20, 0xef, 0x00, 0x80, 0x00,
0x73, 0x00, 0x10, 0x00, 0x37, 0x18, 0x00, 0x00, 0x13, 0x0e, 0x08, 0x88,
0x13, 0x03, 0x50, 0x10, 0x93, 0x08, 0x00, 0x20, 0x13, 0x08, 0x08, 0x80,
0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe,
0x23, 0x20, 0xc5, 0x01, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x23, 0x20, 0x65, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x23, 0x20, 0x15, 0x01,
0x83, 0x27, 0x05, 0x00, 0xe3, 0xde, 0x07, 0xfe, 0x13, 0xf7, 0xf7, 0x0f,
0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe,
0x23, 0x20, 0x05, 0x01, 0x93, 0x77, 0x17, 0x00, 0xe3, 0x98, 0x07, 0xfa,
0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe,
0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x88, 0x23, 0x20, 0xf5, 0x00,
0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe,
0x93, 0x07, 0x00, 0x15, 0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00,
0x93, 0x87, 0x07, 0x80, 0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00,
0x93, 0x87, 0x07, 0x88, 0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x60, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80,
0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0x17, 0x01, 0x00, 0x00, 0x13, 0x01, 0x01, 0x27, 0xef, 0x00, 0x80, 0x00,
0x73, 0x00, 0x10, 0x00, 0xb7, 0x18, 0x00, 0x00, 0xb7, 0x07, 0x01, 0x00,
0x93, 0x8e, 0x08, 0x88, 0x93, 0x87, 0xf7, 0xff, 0x13, 0x0e, 0x50, 0x10,
0x13, 0x03, 0x00, 0x20, 0x93, 0x88, 0x08, 0x80, 0x03, 0x27, 0x45, 0x00,
0x33, 0x77, 0xf7, 0x00, 0xe3, 0x0c, 0x07, 0xfe, 0x23, 0x20, 0xd5, 0x01,
0x03, 0x27, 0x45, 0x00, 0x33, 0x77, 0xf7, 0x00, 0xe3, 0x0c, 0x07, 0xfe,
0x23, 0x20, 0xc5, 0x01, 0x03, 0x27, 0x45, 0x00, 0x33, 0x77, 0xf7, 0x00,
0xe3, 0x0c, 0x07, 0xfe, 0x23, 0x20, 0x65, 0x00, 0x03, 0x27, 0x05, 0x00,
0xe3, 0x4e, 0x07, 0xfe, 0x13, 0x78, 0xf7, 0x0f, 0x03, 0x27, 0x45, 0x00,
0x33, 0x77, 0xf7, 0x00, 0xe3, 0x0c, 0x07, 0xfe, 0x23, 0x20, 0x15, 0x01,
0x13, 0x77, 0x18, 0x00, 0xe3, 0x18, 0x07, 0xfa, 0x37, 0x07, 0x01, 0x00,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x88,
0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x20, 0x10, 0x23, 0x20, 0xf5, 0x00,
0x13, 0xd7, 0x05, 0x01, 0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf7, 0x0f, 0x93, 0xe7, 0x07, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x13, 0xd7, 0x85, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x77, 0xf7, 0x0f,
0x93, 0xe7, 0x07, 0x10, 0x23, 0x20, 0xf5, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0xf5, 0xf5, 0x0f,
0x93, 0xe5, 0x05, 0x10, 0x23, 0x20, 0xb5, 0x00, 0x63, 0x04, 0x06, 0x02,
0x33, 0x86, 0xc6, 0x00, 0x03, 0xc7, 0x06, 0x00, 0x83, 0x27, 0x45, 0x00,
0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x67, 0x07, 0x10,
0x23, 0x20, 0xf5, 0x00, 0x93, 0x86, 0x16, 0x00, 0xe3, 0x12, 0xd6, 0xfe,
0x83, 0x27, 0x45, 0x00, 0x93, 0xd7, 0x07, 0x01, 0xe3, 0x8c, 0x07, 0xfe,
0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80, 0x23, 0x20, 0xf5, 0x00,
0x67, 0x80, 0x00, 0x00
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0x93, 0x07, 0x00, 0x15, 0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80,
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x88, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x60, 0x10,
0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00,
0x93, 0x87, 0x07, 0x88, 0x37, 0x07, 0x01, 0x00, 0x23, 0x20, 0xf5, 0x00,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0x07, 0x20, 0x10, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0xd8, 0x05, 0x01, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0x93, 0x77, 0xf8, 0x0f, 0x93, 0xe7, 0x07, 0x10, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0xd8, 0x85, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe,
0x93, 0x77, 0xf8, 0x0f, 0x93, 0xe7, 0x07, 0x10, 0x37, 0x07, 0x01, 0x00,
0x23, 0x20, 0xf5, 0x00, 0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00,
0xb3, 0xf7, 0xe7, 0x00, 0xe3, 0x8c, 0x07, 0xfe, 0x93, 0xf5, 0xf5, 0x0f,
0x93, 0xe5, 0x05, 0x10, 0x23, 0x20, 0xb5, 0x00, 0x63, 0x08, 0x06, 0x02,
0x37, 0x07, 0x01, 0x00, 0x33, 0x86, 0xc6, 0x00, 0x13, 0x07, 0xf7, 0xff,
0x83, 0xc5, 0x06, 0x00, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0x93, 0xe7, 0x05, 0x10, 0x23, 0x20, 0xf5, 0x00,
0x93, 0x86, 0x16, 0x00, 0xe3, 0x12, 0xd6, 0xfe, 0x37, 0x07, 0x01, 0x00,
0x13, 0x07, 0xf7, 0xff, 0x83, 0x27, 0x45, 0x00, 0xb3, 0xf7, 0xe7, 0x00,
0xe3, 0x8c, 0x07, 0xfe, 0xb7, 0x17, 0x00, 0x00, 0x93, 0x87, 0x07, 0x80,
0x23, 0x20, 0xf5, 0x00, 0x67, 0x80, 0x00, 0x00
};
unsigned int vexriscv_nor_spi_write_bin_len = 448;
unsigned int vexriscv_nor_spi_write_bin_len = 560;
4 changes: 2 additions & 2 deletions src/flash/nor/vexriscv_nor_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ static void vexriscv_nor_spi_writeCtrlU32(struct flash_bank *bank, uint32_t addr

static void vexriscv_nor_spi_spiNotFull(struct flash_bank *bank)
{
while(vexriscv_nor_spi_readCtrlU32(bank, CTRL_STATUS) >> 16 == 0);
while((vexriscv_nor_spi_readCtrlU32(bank, CTRL_STATUS) & 0xFFFF) == 0);
}


Expand Down Expand Up @@ -105,7 +105,7 @@ static uint8_t vexriscv_nor_spi_spiRead(struct flash_bank *bank)
vexriscv_nor_spi_writeCtrlU32(bank, CTRL_DATA, 0x200);
while(1){
uint32_t ret = vexriscv_nor_spi_readCtrlU32(bank, CTRL_DATA);
if(ret & 0x80000000) return ret;
if((ret & 0x80000000) == 0) return ret;
}
}

Expand Down

0 comments on commit 6986ca2

Please sign in to comment.