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