Some checks failed
		
		
	
	ci / Check build (pull_request) Has been cancelled
				
			ci / Check formatting (pull_request) Has been cancelled
				
			ci / Check Documentation Build (pull_request) Has been cancelled
				
			ci / Clippy (pull_request) Has been cancelled
				
			ci / Check build (push) Has been cancelled
				
			ci / Check formatting (push) Has been cancelled
				
			ci / Check Documentation Build (push) Has been cancelled
				
			ci / Clippy (push) Has been cancelled
				
			This PR introduces some major features while also changing the project structure to be more flexible for multiple platforms (e.g. host tooling). It also includes a lot of bugfixes, renamings for consistency purposes and dependency updates. Added features: 1. Pure Rust FSBL for the Zedboard. This first variant is simplistic. It is currently only capable of QSPI boot. It searches for a bitstream and ELF file inside the boot binary, flashes them and jumps to them. 2. QSPI flasher for the Zedboard. 3. DDR, QSPI, DEVC, private CPU timer and PLL configuration modules 3. Tooling to auto-generate board specific DDR and DDRIOB config parameters from the vendor provided ps7init.tcl file Changed project structure: 1. All target specific project are inside a dedicated workspace inside the `zynq` folder now. 2. All tool intended to be run on a host are inside a `tools` workspace 3. All other common projects are at the project root Major bugfixes: 1. SPI module: CPOL was not configured properly 2. Logger flush implementation was empty, implemented properly now.
		
			
				
	
	
		
			25 lines
		
	
	
		
			721 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			721 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
MEMORY
 | 
						|
{
 | 
						|
  /* The Zynq7000 has 192 kB of OCM memory which can be used for the FSBL */
 | 
						|
  CODE(rx) : ORIGIN = 0x00000000, LENGTH = 192K
 | 
						|
  OCM_UPPER(rx): ORIGIN = 0xFFFF0000, LENGTH = 64K
 | 
						|
  /* Leave 1 MB of memory which will be configured as uncached device memory by the MMU. This can
 | 
						|
  be used for something like DMA descriptors, but the DDR needs to be set up first in addition
 | 
						|
  to configuring the page at address 0x400_0000 accordingly */
 | 
						|
  UNCACHED(rx): ORIGIN = 0x4000000, LENGTH = 1M
 | 
						|
}
 | 
						|
 | 
						|
REGION_ALIAS("DATA", CODE);
 | 
						|
 | 
						|
SECTIONS
 | 
						|
{
 | 
						|
  /* Uncached memory */
 | 
						|
  .uncached (NOLOAD) : ALIGN(4) {
 | 
						|
    . = ALIGN(4);
 | 
						|
    _sbss_uncached = .;
 | 
						|
    *(.uncached .uncached.*);
 | 
						|
    . = ALIGN(4);
 | 
						|
    _ebss_uncached = .;
 | 
						|
  } > UNCACHED
 | 
						|
}
 |