Skip to content

Commit

Permalink
Merge pull request #526 from rprinz08/master
Browse files Browse the repository at this point in the history
Make booting from SD-Card to behave same as from SPI flash
  • Loading branch information
enjoy-digital committed May 15, 2020
2 parents 82364de + 3f64907 commit 840679a
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions litex/soc/software/bios/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -512,19 +512,34 @@ void spisdcardboot(void)
return;
}

unsigned int result;

#if defined(CONFIG_CPU_TYPE_VEXRISCV) && defined(CONFIG_CPU_VARIANT_LINUX)
if(spi_sdcard_readFile("IMAGE","",MAIN_RAM_BASE+KERNEL_IMAGE_RAM_OFFSET)==0) return;
if(spi_sdcard_readFile("ROOTFS~1","CPI",MAIN_RAM_BASE+ROOTFS_IMAGE_RAM_OFFSET)==0) return;
if(spi_sdcard_readFile("RV32","DTB",MAIN_RAM_BASE+DEVICE_TREE_IMAGE_RAM_OFFSET)==0) return;
if(spi_sdcard_readFile("EMULATOR","BIN",MAIN_RAM_BASE+EMULATOR_IMAGE_RAM_OFFSET)==0) return;
result = spi_sdcard_readFile("IMAGE", "",
MAIN_RAM_BASE + KERNEL_IMAGE_RAM_OFFSET);

boot(0,0,0,MAIN_RAM_BASE + EMULATOR_IMAGE_RAM_OFFSET);
#else
if(spi_sdcard_readFile("BOOT","BIN",MAIN_RAM_BASE)==0) {
printf("SD Card SPI boot failed\n");
if(result)
result &= spi_sdcard_readFile("ROOTFS~1", "CPI",
MAIN_RAM_BASE + ROOTFS_IMAGE_RAM_OFFSET);

if(result)
result &= spi_sdcard_readFile("RV32", "DTB",
MAIN_RAM_BASE + DEVICE_TREE_IMAGE_RAM_OFFSET);

if(result)
result &= spi_sdcard_readFile("EMULATOR", "BIN",
MAIN_RAM_BASE + EMULATOR_IMAGE_RAM_OFFSET);

if(result) {
boot(0, 0, 0, MAIN_RAM_BASE + EMULATOR_IMAGE_RAM_OFFSET);
return;
}
boot(0, 0, 0, MAIN_RAM_BASE);
#endif

result = spi_sdcard_readFile("BOOT", "BIN", MAIN_RAM_BASE);
if(result)
boot(0, 0, 0, MAIN_RAM_BASE);
else
printf("SD Card SPI boot failed\n");
}
#endif

0 comments on commit 840679a

Please sign in to comment.