1d5a84eeaSYann Gautier /* 2*b4939befSYann Gautier * Copyright (c) 2021-2023, STMicroelectronics - All Rights Reserved 3d5a84eeaSYann Gautier * 4d5a84eeaSYann Gautier * SPDX-License-Identifier: BSD-3-Clause 5d5a84eeaSYann Gautier */ 6d5a84eeaSYann Gautier #ifndef STM32MP_IO_STORAGE_H 7d5a84eeaSYann Gautier #define STM32MP_IO_STORAGE_H 8d5a84eeaSYann Gautier 9d5a84eeaSYann Gautier #include <stdint.h> 10d5a84eeaSYann Gautier 11d5a84eeaSYann Gautier #include <drivers/io/io_storage.h> 12d5a84eeaSYann Gautier 13*b4939befSYann Gautier /******************************************************************************* 14*b4939befSYann Gautier * STM32MP1 RAW partition offset for devices without GPT 15*b4939befSYann Gautier ******************************************************************************/ 16*b4939befSYann Gautier #define STM32MP_EMMC_BOOT_FIP_OFFSET U(0x00040000) 17*b4939befSYann Gautier #if PSA_FWU_SUPPORT 18*b4939befSYann Gautier #define STM32MP_NOR_METADATA1_OFFSET U(0x00080000) 19*b4939befSYann Gautier #define STM32MP_NOR_METADATA2_OFFSET U(0x000C0000) 20*b4939befSYann Gautier #define STM32MP_NOR_FIP_A_OFFSET U(0x00100000) 21*b4939befSYann Gautier #define STM32MP_NOR_FIP_A_GUID (const struct efi_guid)EFI_GUID(0x4fd84c93, \ 22*b4939befSYann Gautier 0x54ef, 0x463f, 0xa7, 0xef, 0xae, 0x25, 0xff,\ 23*b4939befSYann Gautier 0x88, 0x70, 0x87) 24*b4939befSYann Gautier 25*b4939befSYann Gautier #define STM32MP_NOR_FIP_B_OFFSET U(0x00500000) 26*b4939befSYann Gautier #define STM32MP_NOR_FIP_B_GUID (const struct efi_guid)EFI_GUID(0x09c54952, \ 27*b4939befSYann Gautier 0xd5bf, 0x45af, 0xac, 0xee, 0x33, 0x53, 0x03,\ 28*b4939befSYann Gautier 0x76, 0x6f, 0xb3) 29*b4939befSYann Gautier 30*b4939befSYann Gautier #define STM32MP_NAND_METADATA1_OFFSET U(0x00100000) 31*b4939befSYann Gautier #define STM32MP_NAND_METADATA2_OFFSET U(0x00180000) 32*b4939befSYann Gautier #define STM32MP_NAND_FIP_A_OFFSET U(0x00200000) 33*b4939befSYann Gautier #define STM32MP_NAND_FIP_A_GUID (const struct efi_guid)EFI_GUID(0x4fd84c93, \ 34*b4939befSYann Gautier 0x54ef, 0x463f, 0xa7, 0xef, 0xae, 0x25, 0xff,\ 35*b4939befSYann Gautier 0x88, 0x70, 0x87) 36*b4939befSYann Gautier 37*b4939befSYann Gautier #define STM32MP_NAND_FIP_B_OFFSET U(0x00A00000) 38*b4939befSYann Gautier #define STM32MP_NAND_FIP_B_GUID (const struct efi_guid)EFI_GUID(0x09c54952, \ 39*b4939befSYann Gautier 0xd5bf, 0x45af, 0xac, 0xee, 0x33, 0x53, 0x03,\ 40*b4939befSYann Gautier 0x76, 0x6f, 0xb3) 41*b4939befSYann Gautier 42*b4939befSYann Gautier #define STM32MP_NAND_FIP_B_MAX_OFFSET U(0x01200000) 43*b4939befSYann Gautier #else /* PSA_FWU_SUPPORT */ 44*b4939befSYann Gautier #ifndef STM32MP_NOR_FIP_OFFSET 45*b4939befSYann Gautier #define STM32MP_NOR_FIP_OFFSET U(0x00080000) 46*b4939befSYann Gautier #endif 47*b4939befSYann Gautier #ifndef STM32MP_NAND_FIP_OFFSET 48*b4939befSYann Gautier #define STM32MP_NAND_FIP_OFFSET U(0x00200000) 49*b4939befSYann Gautier #endif 50*b4939befSYann Gautier #endif /* PSA_FWU_SUPPORT */ 51*b4939befSYann Gautier 52*b4939befSYann Gautier /* 53*b4939befSYann Gautier * Only used for MTD devices that need some backup blocks. 54*b4939befSYann Gautier * Must define a maximum size for a partition. 55*b4939befSYann Gautier */ 56*b4939befSYann Gautier #define PLATFORM_MTD_MAX_PART_SIZE U(0x00400000) 57*b4939befSYann Gautier 58*b4939befSYann Gautier #define FIP_IMAGE_NAME "fip" 59*b4939befSYann Gautier #define METADATA_PART_1 "metadata1" 60*b4939befSYann Gautier #define METADATA_PART_2 "metadata2" 61*b4939befSYann Gautier 62d5a84eeaSYann Gautier /* IO devices handle */ 63d5a84eeaSYann Gautier extern uintptr_t storage_dev_handle; 64d5a84eeaSYann Gautier extern uintptr_t fip_dev_handle; 65cd791164SLionel Debieve extern uintptr_t enc_dev_handle; 66d5a84eeaSYann Gautier 67d5a84eeaSYann Gautier extern io_block_spec_t image_block_spec; 68d5a84eeaSYann Gautier 69d5a84eeaSYann Gautier /* Function declarations */ 70d5a84eeaSYann Gautier int open_fip(const uintptr_t spec); 71cd791164SLionel Debieve #ifndef DECRYPTION_SUPPORT_none 72cd791164SLionel Debieve int open_enc_fip(const uintptr_t spec); 73cd791164SLionel Debieve #endif 74d5a84eeaSYann Gautier int open_storage(const uintptr_t spec); 75d5a84eeaSYann Gautier 76d5a84eeaSYann Gautier #endif /* STM32MP_IO_STORAGE_H */ 77