Skip to content

New bootloader: Uses SPI to interface with SD card

Eclipse Webmaster requested to merge github/fork/JacobPease/main into main

Created by: JacobPease

  • Added initial spi code to fpga/zsbl
  • Added tentative spi_send_byte function.
  • Added inital spi based sd card code. Working on CRC7 code that works.
  • Corrected the CRC7 code with the right sequence of instructions.
  • Removed the old SDC. Added a second SPI peripheral that now will be used to control the SD card. SPI peripheral now outputs SPICLK. Removed references to the now non-existent external SDC in uncore. Removed all of the AXI Xilinx IP.
  • Added new SDC clock constraint.
  • Added sd_cmd and utility SPI functions.
  • Added uart print functions and the Wally banner. SD card can now be initialized. Removed old code from boot.c
  • Removed references to card_type.
  • Progress made on implementing new disk read function.
  • Added sd_read64 to help with block reads and crc checking.
  • Added some minor error checking to gpt.c.
  • Initial pass on SPI based bootloader code finished.
  • Fixed syntax bugs. inline functions are now static and in the spi.h header.
  • Fixed verilog bugs.
  • Added uart header to gpt.c.
  • Initialized UART with Arty frequency and baud rate. Will make this dynamic in the future
  • Masked lower byte when writing to DLL.
  • Removed old axi IP from fpga Makefile. Added sed for data.mem file loaded into uncore ram.
  • Commented out references to old axi IP from wally.tcl.
  • Fixed SDCCLK name discrepency.
  • Added ability to split boot.memfile into boot.mem and data.mem.
  • Changed formatting and added new UART divsor calculation from OpenSBI.
  • Added carriage returns to line feed characters. UART messages print properly now.
  • Added extra UART macros and functions for code readability and the ability to print decimal numbers.
  • Cleaned up code formatting a bit and added ability to set the SD card clock speed.
  • Added function to set SPI clock speed.
  • Updated formatting of gpt.c and boot.c.
  • Added functions to read registers and print information on failure. Also added a getTime function for a pretty boot display.
  • New bootloader now works. Added special print functions and print messages. sdclk is set to 3MHz after initialization currently.
  • Added preload pointing to data.mem in ram1p1rwbe.sv
  • Updated wally source files for zsbl testing.
  • Removed HSELEXTSDC and fixed SD card pin definitions.
  • Added file necessary to split boot.mem into boot.mem and data.mem.
  • SD card is now mountable on the fpga. The relevant files have been added. The most important changes are in the buildroot linux configuration and device tree.
  • Removed line referring to local file in wally.tcl.

Merge request reports

Loading