stm32mp1: stm32prog: remove stm32prog_get_tee_partitions with FIP

The MTD tee partitions used to save the OP-TEE binary are needed when
TF-A doesn't use the FIP container to load binaries.

This patch puts under CONFIG_STM32MP15x_STM32IMAGE flag the associated
code in U-Boot binary and prepare the code cleanup when
CONFIG_STM32MP15x_STM32IMAGE support will be removed after TF-A migration
to FIP support.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
Patrick Delaunay 2021-07-26 11:21:38 +02:00 committed by Patrice Chotard
parent 5b4c80284d
commit f64d32a27a
4 changed files with 10 additions and 0 deletions

View file

@ -185,6 +185,7 @@ U_BOOT_CMD(stm32prog, 5, 0, do_stm32prog,
" <size> = size of flashlayout (optional for image with STM32 header)\n" " <size> = size of flashlayout (optional for image with STM32 header)\n"
); );
#ifdef CONFIG_STM32MP15x_STM32IMAGE
bool stm32prog_get_tee_partitions(void) bool stm32prog_get_tee_partitions(void)
{ {
if (stm32prog_data) if (stm32prog_data)
@ -192,6 +193,7 @@ bool stm32prog_get_tee_partitions(void)
return false; return false;
} }
#endif
bool stm32prog_get_fsbl_nor(void) bool stm32prog_get_fsbl_nor(void)
{ {

View file

@ -824,7 +824,9 @@ static int treat_partition_list(struct stm32prog_data *data)
INIT_LIST_HEAD(&data->dev[j].part_list); INIT_LIST_HEAD(&data->dev[j].part_list);
} }
#ifdef CONFIG_STM32MP15x_STM32IMAGE
data->tee_detected = false; data->tee_detected = false;
#endif
data->fsbl_nor_detected = false; data->fsbl_nor_detected = false;
for (i = 0; i < data->part_nb; i++) { for (i = 0; i < data->part_nb; i++) {
part = &data->part_array[i]; part = &data->part_array[i];
@ -878,10 +880,12 @@ static int treat_partition_list(struct stm32prog_data *data)
/* fallthrough */ /* fallthrough */
case STM32PROG_NAND: case STM32PROG_NAND:
case STM32PROG_SPI_NAND: case STM32PROG_SPI_NAND:
#ifdef CONFIG_STM32MP15x_STM32IMAGE
if (!data->tee_detected && if (!data->tee_detected &&
!strncmp(part->name, "tee", 3)) !strncmp(part->name, "tee", 3))
data->tee_detected = true; data->tee_detected = true;
break; break;
#endif
default: default:
break; break;
} }

View file

@ -122,7 +122,9 @@ struct stm32prog_data {
struct stm32prog_dev_t dev[STM32PROG_MAX_DEV]; /* array of device */ struct stm32prog_dev_t dev[STM32PROG_MAX_DEV]; /* array of device */
int part_nb; /* nb of partition */ int part_nb; /* nb of partition */
struct stm32prog_part_t *part_array; /* array of partition */ struct stm32prog_part_t *part_array; /* array of partition */
#ifdef CONFIG_STM32MP15x_STM32IMAGE
bool tee_detected; bool tee_detected;
#endif
bool fsbl_nor_detected; bool fsbl_nor_detected;
/* command internal information */ /* command internal information */

View file

@ -11,6 +11,8 @@ int stm32prog_read_medium_virt(struct dfu_entity *dfu, u64 offset,
void *buf, long *len); void *buf, long *len);
int stm32prog_get_medium_size_virt(struct dfu_entity *dfu, u64 *size); int stm32prog_get_medium_size_virt(struct dfu_entity *dfu, u64 *size);
#ifdef CONFIG_STM32MP15x_STM32IMAGE
bool stm32prog_get_tee_partitions(void); bool stm32prog_get_tee_partitions(void);
#endif
bool stm32prog_get_fsbl_nor(void); bool stm32prog_get_fsbl_nor(void);