Commit 96192839 authored by Kuldeep Singh's avatar Kuldeep Singh Committed by Priyanka Jain
Browse files

board: ls2088ardb: Extend cs4340_get_fw_addr() functionality



LS2088A-RDB supports TFA boot source and has 2 nor banks(default and
altbank) and QSPI as boot source. The corresponding defconfig can only
have one entry defined and therefore, extend cs4340_get_fw_addr()
function to overwrite firmware address which will be later used in
cortina firmware.
Signed-off-by: default avatarKuldeep Singh <kuldeep.singh@nxp.com>
Reviewed-by: Priyanka Jain's avatarPriyanka Jain <priyanka.jain@nxp.com>
parent 5528c90e
......@@ -33,6 +33,9 @@
#endif
#include "../common/vid.h"
#define CORTINA_FW_ADDR_IFCNOR 0x580980000
#define CORTINA_FW_ADDR_IFCNOR_ALTBANK 0x584980000
#define CORTINA_FW_ADDR_QSPI 0x980000
#define PIN_MUX_SEL_SDHC 0x00
#define PIN_MUX_SEL_DSPI 0x0a
......@@ -235,6 +238,41 @@ int config_board_mux(int ctrl_type)
return 0;
}
ulong *cs4340_get_fw_addr(void)
{
#ifdef CONFIG_TFABOOT
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
u32 svr = gur_in32(&gur->svr);
#endif
ulong cortina_fw_addr = CONFIG_CORTINA_FW_ADDR;
#ifdef CONFIG_TFABOOT
/* LS2088A TFA boot */
if (SVR_SOC_VER(svr) == SVR_LS2088A) {
enum boot_src src = get_boot_src();
u8 sw;
switch (src) {
case BOOT_SOURCE_IFC_NOR:
sw = QIXIS_READ(brdcfg[0]);
sw = (sw & 0x0f);
if (sw == 0)
cortina_fw_addr = CORTINA_FW_ADDR_IFCNOR;
else if (sw == 4)
cortina_fw_addr = CORTINA_FW_ADDR_IFCNOR_ALTBANK;
break;
case BOOT_SOURCE_QSPI_NOR:
/* Only one bank in QSPI */
cortina_fw_addr = CORTINA_FW_ADDR_QSPI;
break;
default:
printf("WARNING: Boot source not found\n");
}
}
#endif
return (ulong *)cortina_fw_addr;
}
int board_init(void)
{
#ifdef CONFIG_FSL_MC_ENET
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment