arm: k3: j721e: add dynamic sf bus override support for j721e
implement overrides for spl_spi_boot_bus() and spl_spi_boot_cs() lookup functions according to bootmode selection, so as to support both QSPI and OSPI boot using the same build. Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com> Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
This commit is contained in:
		
							parent
							
								
									6dd18a6568
								
							
						
					
					
						commit
						c16b4f14a3
					
				| 
						 | 
					@ -355,6 +355,17 @@ static u32 __get_primary_bootmedia(u32 main_devstat, u32 wkup_devstat)
 | 
				
			||||||
	return bootmode;
 | 
						return bootmode;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u32 spl_spi_boot_bus(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						u32 wkup_devstat = readl(CTRLMMR_WKUP_DEVSTAT);
 | 
				
			||||||
 | 
						u32 main_devstat = readl(CTRLMMR_MAIN_DEVSTAT);
 | 
				
			||||||
 | 
						u32 bootmode = ((wkup_devstat & WKUP_DEVSTAT_PRIMARY_BOOTMODE_MASK) >>
 | 
				
			||||||
 | 
								WKUP_DEVSTAT_PRIMARY_BOOTMODE_SHIFT) |
 | 
				
			||||||
 | 
								((main_devstat & MAIN_DEVSTAT_BOOT_MODE_B_MASK) << BOOT_MODE_B_SHIFT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return (bootmode == BOOT_DEVICE_QSPI) ? 1 : 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
u32 spl_boot_device(void)
 | 
					u32 spl_boot_device(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 wkup_devstat = readl(CTRLMMR_WKUP_DEVSTAT);
 | 
						u32 wkup_devstat = readl(CTRLMMR_WKUP_DEVSTAT);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -324,9 +324,9 @@ static void *k3_sysfw_get_spi_addr(void)
 | 
				
			||||||
	struct udevice *dev;
 | 
						struct udevice *dev;
 | 
				
			||||||
	fdt_addr_t addr;
 | 
						fdt_addr_t addr;
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
 | 
						unsigned int sf_bus = spl_spi_boot_bus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = uclass_find_device_by_seq(UCLASS_SPI, CONFIG_SF_DEFAULT_BUS,
 | 
						ret = uclass_find_device_by_seq(UCLASS_SPI, sf_bus, &dev);
 | 
				
			||||||
					&dev);
 | 
					 | 
				
			||||||
	if (ret)
 | 
						if (ret)
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue