Hi @AlexRu
About the ROM Bootloader document, i think you can refer to the MCXA156 reference manual MCXAP100M96FS6RM Chapter 20 and AN14525
AN14525: MCXA14x/15x Secure Boot Based on MCUBoot | NXP Semiconductors.
MCXA's ROM Flash API does not include Margin Read.
The following are the supported functions.
typedef struct _flash_driver_interface
{
/* Flash driver */
status_t (*flash_init)(flash_config_t *config);
status_t (*flash_erase_sector)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes, uint32_t key);
status_t (*flash_program_phrase)(flash_config_t *config, uint32_t start, uint8_t *src, uint32_t lengthInBytes);
status_t (*flash_program_page)(flash_config_t *config, uint32_t start, uint8_t *src, uint32_t lengthInBytes);
status_t (*flash_verify_program)(flash_config_t *config,
uint32_t start,
uint32_t lengthInBytes,
const uint8_t *expectedData,
uint32_t *failedAddress,
uint32_t *failedData);
status_t (*flash_verify_erase_phrase)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
status_t (*flash_verify_erase_page)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
status_t (*flash_verify_erase_sector)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
status_t (*flash_get_property)(flash_config_t *config, flash_property_tag_t whichProperty, uint32_t *value);
/* IFR driver */
#if !(defined(FSL_FEATURE_ROMAPI_IFR) && (FSL_FEATURE_ROMAPI_IFR == 0U))
status_t (*ifr_verify_erase_phrase)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
status_t (*ifr_verify_erase_page)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
status_t (*ifr_verify_erase_sector)(flash_config_t *config, uint32_t start, uint32_t lengthInBytes);
#endif
status_t (*flash_read)(flash_config_t *config, uint32_t start, uint8_t *dest, uint32_t lengthInBytes);
/* version */
uint32_t version;
} flash_driver_interface_t;
BR
Harry