MCXA156 FLASH remapping through ROM Bootloader

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

MCXA156 FLASH remapping through ROM Bootloader

ソリューションへジャンプ
962件の閲覧回数
AlexRu
Contributor II

Hello NXP-Community,

I am currently experimenting with the REMAP functionality of the MCXA Family (MCXA156) as it is seems to be an ideal method swapping 2 flash spaces when doing FW updating in field.

I am facing a problem now that I am not able to REMAP half of the available 1MB Flash of MCXA156 chip.  

According to the CMPA description in the reference manual attachments the tooltip hints that FLASH_REMAP_SZ represents 32KB increments for remapping range (see attached Screenshot:Screenshot 2026-03-23 175449.png

In contrast the REMAP registers of FMC0 state an increment of 8KB (Chapter 7 Flash Memory Controller (FMC)):

When LIM = LIMDP = 0, FMC disables the remap function. When LIM = LIMDP = a nonzero value, the remapping address range is (LIM + 1) × 8 KB. For example:

When LIM = LIMDP = 1, the range is ≤ 16 KB.

When LIM = LIMDP = 2, the range is ≤ 32 KB.

The value of FLASH_REMAP_SZ is copied into LIM and LIMDP field of the REMAP register. (by ROM Bootloader?) Unfortunatelly the maximum value that can be set according to CMPA description is 0x1E. With this value I confirmed that 30 * 8KB range is mapped from lower half to upper half flash.

For further context: I am able to map the desired 512KB by directly writing 0x3F into LIM and LIMDP fields within my experimental SW. I am unsure whether this is a clean way of doing flash remapping or is there a better way executing it?

Question:

Is it correct that the value of FLASH_REMAP_SZ from CMPA is "copied" by the ROM Bootloader?

Is it possible to trick or workaround the limitiation of FLASH_REMAP_SZ size and be able to increase the range for remapping? (> 0x1E)

Best regards

Alex

ラベル(2)
0 件の賞賛
返信
1 解決策
926件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @AlexRu 

Based on the information from sections 20.5.4, 7.3.6, and 7.6.1.2 of the user manual, the following conclusions can be made:
Snipaste_2026-03-24_15-05-52.png

Snipaste_2026-03-24_15-06-23.png

1. The actual flash remapping range is determined by the FMC.REMAP register (LIM/LIMDP) with an 8 KB granularity.
The REMAP register defines remap_address[19:13], meaning the remap size is (LIM + 1) × 8 KB.
For a 1 MB flash device, the lower half is 512 KB, so the maximum valid LIM value is 0x3F, allowing a full 512 KB swap.

2. The CMPA field FLASH_REMAP_SZ is only a boot-time default value loaded by the ROM Bootloader.
Its maximum allowable value is a limitation of the CMPA structure/ROM—not a hardware limitation.


3. Configuring FMC.REMAP at runtime is an officially supported mechanism.
The REMAP register uses a key-write scheme (A5A5/5A5A), and writes are allowed unless REMAPLK is set.
This clearly indicates that user software is allowed to update LIM/LIMDP to any value permitted by hardware.

BR

Harry

元の投稿で解決策を見る

3 返答(返信)
927件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @AlexRu 

Based on the information from sections 20.5.4, 7.3.6, and 7.6.1.2 of the user manual, the following conclusions can be made:
Snipaste_2026-03-24_15-05-52.png

Snipaste_2026-03-24_15-06-23.png

1. The actual flash remapping range is determined by the FMC.REMAP register (LIM/LIMDP) with an 8 KB granularity.
The REMAP register defines remap_address[19:13], meaning the remap size is (LIM + 1) × 8 KB.
For a 1 MB flash device, the lower half is 512 KB, so the maximum valid LIM value is 0x3F, allowing a full 512 KB swap.

2. The CMPA field FLASH_REMAP_SZ is only a boot-time default value loaded by the ROM Bootloader.
Its maximum allowable value is a limitation of the CMPA structure/ROM—not a hardware limitation.


3. Configuring FMC.REMAP at runtime is an officially supported mechanism.
The REMAP register uses a key-write scheme (A5A5/5A5A), and writes are allowed unless REMAPLK is set.
This clearly indicates that user software is allowed to update LIM/LIMDP to any value permitted by hardware.

BR

Harry

917件の閲覧回数
AlexRu
Contributor II
Hello Harry, thank you for the quick response and confirmation.
Do you have any further documents or details on the functionallity of the ROM Bootloader (+ Extended Bootloader)?
To my understanding it is intended by NXP to use the ROM API for a defined write procedure into the FLASH.
Does NXP recommend to use special "margin read" commands after programming to verify the quality of FLASH programming gate charge?
Or is it enough to readback over the FLASH_VerifyProgram() command?
We are planing field updates for our application and want to maximize the durability of our System.
Appreciating your support!
Best regards
Alex
0 件の賞賛
返信
899件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

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

 

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2337778%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB%E3%82%88%E3%82%8BMCXA156%20FLASH%E3%83%AA%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2337778%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81NXP%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E7%9A%86%E6%A7%98%E3%80%81%3C%2FP%3E%3CP%3E%E7%8F%BE%E5%9C%A8%E3%80%81MCXA%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E3%83%BC%EF%BC%88MCXA156%EF%BC%89%E3%81%AEREMAP%E6%A9%9F%E8%83%BD%E3%82%92%E8%A9%A6%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E7%8F%BE%E5%A0%B4%E3%81%A7%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%82%92%E8%A1%8C%E3%81%86%E9%9A%9B%E3%81%AB%E3%80%812%E3%81%A4%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E9%A0%98%E5%9F%9F%E3%82%92%E5%85%A5%E3%82%8C%E6%9B%BF%E3%81%88%E3%82%8B%E7%90%86%E6%83%B3%E7%9A%84%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%8B%E3%82%89%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%8F%BE%E5%9C%A8%E3%80%81MCXA156%E3%83%81%E3%83%83%E3%83%97%E3%81%AE%E5%88%A9%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA1MB%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E5%8D%8A%E5%88%86%E3%82%92%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%86%E5%95%8F%E9%A1%8C%E3%81%AB%E7%9B%B4%E9%9D%A2%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%8F%82%E7%85%A7%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AE%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%82%E3%82%8B%20CMPA%20%E3%81%AE%E8%AA%AC%E6%98%8E%E3%81%AB%E3%82%88%E3%82%8B%E3%81%A8%E3%80%81%E3%83%84%E3%83%BC%E3%83%AB%E3%83%81%E3%83%83%E3%83%97%E3%81%AF%20FLASH_REMAP_SZ%20%E3%81%8C%E5%86%8D%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E7%AF%84%E5%9B%B2%E3%81%AE%2032KB%20%E5%A2%97%E5%88%86%E3%82%92%E8%A1%A8%E3%81%99%E3%81%93%E3%81%A8%E3%82%92%E7%A4%BA%E5%94%86%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%20(%E6%B7%BB%E4%BB%98%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E3%82%92%E5%8F%82%E7%85%A7)%E3%80%82%20%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Screenshot%202026-03-23%20175449.png%22%20style%3D%22width%3A%20986px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Screenshot%202026-03-23%20175449.png%22%20style%3D%22width%3A%20986px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Screenshot%202026-03-23%20175449.png%22%20style%3D%22width%3A%20986px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F380089i4E51C986C0AC6A9D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Screenshot%202026-03-23%20175449.png%22%20alt%3D%22Screenshot%202026-03-23%20175449.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E5%AF%BE%E7%85%A7%E7%9A%84%E3%81%AB%E3%80%81FMC0%E3%81%AEREMAP%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AF8KB%E3%81%AE%E5%A2%97%E5%88%86%E3%82%92%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%EF%BC%88%E7%AC%AC7%E7%AB%A0%20%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%EF%BC%88FMC%EF%BC%89%EF%BC%89%E3%80%82%3C%2FP%3E%3CBLOCKQUOTE%3E%3CP%3ELIM%20%3D%20LIMDP%20%3D%200%20%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81FMC%20%E3%81%AF%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E6%A9%9F%E8%83%BD%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82LIM%20%3D%20LIMDP%20%3D%20%E3%82%BC%E3%83%AD%E4%BB%A5%E5%A4%96%E3%81%AE%E5%80%A4%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E5%86%8D%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E7%AF%84%E5%9B%B2%E3%81%AF%20(LIM%20%2B%201)%20%C3%97%208%20KB%20%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E4%BE%8B%E3%81%88%E3%81%B0%EF%BC%9A%3CBR%20%2F%3E%20%E2%80%A2%3CBR%20%2F%3E%20LIM%20%3D%20LIMDP%20%3D%201%20%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E7%AF%84%E5%9B%B2%E3%81%AF%20%E2%89%A4%2016%20KB%20%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%E2%80%A2%3CBR%20%2F%3E%20LIM%20%3D%20LIMDP%20%3D%202%20%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E7%AF%84%E5%9B%B2%E3%81%AF%20%E2%89%A4%2032%20KB%20%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FBLOCKQUOTE%3E%3CP%3EFLASH_REMAP_SZ%E3%81%AE%E5%80%A4%E3%81%AF%E3%80%81REMAP%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AELIM%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%A8LIMDP%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%EF%BC%88ROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB%E3%82%88%E3%82%8B%EF%BC%9F%EF%BC%89%E6%AE%8B%E5%BF%B5%E3%81%AA%E3%81%8C%E3%82%89%E3%80%81CMPA%E3%81%AE%E8%AA%AC%E6%98%8E%E3%81%AB%E3%82%88%E3%82%8B%E3%81%A8%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E6%9C%80%E5%A4%A7%E5%80%A4%E3%81%AF0x1E%E3%81%A7%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E5%80%A4%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%80%8130%20*%208KB%E3%81%AE%E7%AF%84%E5%9B%B2%E3%81%8C%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E4%B8%8B%E5%8D%8A%E5%88%86%E3%81%8B%E3%82%89%E4%B8%8A%E5%8D%8A%E5%88%86%E3%81%AB%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%95%E3%82%89%E3%81%AB%E8%A3%9C%E8%B6%B3%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E7%A7%81%E3%81%AE%E5%AE%9F%E9%A8%93%E7%94%A8%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%A7%E3%81%AF%E3%80%81LIM%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%A8LIMDP%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AB0x3F%E3%82%92%E7%9B%B4%E6%8E%A5%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E7%9B%AE%E7%9A%84%E3%81%AE512KB%E3%82%92%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%93%E3%82%8C%E3%81%8C%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E3%83%AA%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%82%92%E8%A1%8C%E3%81%86%E3%81%9F%E3%82%81%E3%81%AE%E9%81%A9%E5%88%87%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%AA%E3%81%AE%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%82%82%E3%81%A3%E3%81%A8%E8%89%AF%E3%81%84%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%80%81%E7%A7%81%E3%81%AB%E3%81%AF%E3%82%88%E3%81%8F%E5%88%86%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E8%B3%AA%E5%95%8F%EF%BC%9A%3C%2FP%3E%3CP%3ECMPA%E3%81%AEFLASH_REMAP_SZ%E3%81%AE%E5%80%A4%E3%81%AFROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%80%8C%E3%82%B3%E3%83%94%E3%83%BC%E3%80%8D%E3%81%95%E3%82%8C%E3%82%8B%E3%80%81%E3%81%A8%E3%81%84%E3%81%86%E3%81%AE%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3EFLASH_REMAP_SZ%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E5%88%B6%E9%99%90%E3%82%92%E5%9B%9E%E9%81%BF%E3%81%97%E3%81%9F%E3%82%8A%E3%80%81%E4%BD%95%E3%82%89%E3%81%8B%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%A7%E5%9B%9E%E9%81%BF%E7%AD%96%E3%82%92%E8%AC%9B%E3%81%98%E3%81%A6%E3%80%81%E3%83%AA%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%81%AE%E7%AF%84%E5%9B%B2%E3%82%92%E5%BA%83%E3%81%92%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F(%26gt%3B%200x1E)%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%AC%E3%83%83%E3%82%AF%E3%82%B9%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2337778%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E3%83%96%E3%83%BC%E3%83%88ROM%7C%E3%83%96%E3%83%BC%E3%83%88%7C%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMCXA%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2338230%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCXA156%20FLASH%20remapping%20through%20ROM%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2338230%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E3%83%8F%E3%83%AA%E3%83%BC%E3%81%95%E3%82%93%E3%80%81%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%E8%BF%85%E9%80%9F%E3%81%AA%E3%81%94%E8%BF%94%E4%BF%A1%E3%81%A8%E7%A2%BA%E8%AA%8D%E3%82%92%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3EROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%EF%BC%88%2B%E6%8B%A1%E5%BC%B5%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%EF%BC%89%E3%81%AE%E6%A9%9F%E8%83%BD%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E8%BF%BD%E5%8A%A0%E3%81%AE%E8%B3%87%E6%96%99%E3%82%84%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%E7%A7%81%E3%81%AE%E7%90%86%E8%A7%A3%E3%81%A7%E3%81%AF%E3%80%81NXP%E3%81%AFROM%20API%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81FLASH%E3%81%B8%E3%81%AE%E5%AE%9A%E7%BE%A9%E6%B8%88%E3%81%BF%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E6%89%8B%E9%A0%86%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%84%8F%E5%9B%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3ENXP%E3%81%AF%E3%80%81%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%B2%E3%83%BC%E3%83%88%E3%83%81%E3%83%A3%E3%83%BC%E3%82%B8%E3%81%AE%E5%93%81%E8%B3%AA%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%BE%8C%E3%81%AB%E7%89%B9%E5%88%A5%E3%81%AA%E3%80%8C%E3%83%9E%E3%83%BC%E3%82%B8%E3%83%B3%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%8D%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%8E%A8%E5%A5%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%80%81FLASH_VerifyProgram()%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%AA%AD%E3%81%BF%E6%88%BB%E3%81%99%E3%81%A0%E3%81%91%E3%81%A7%E5%8D%81%E5%88%86%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%E5%BD%93%E7%A4%BE%E3%81%A7%E3%81%AF%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E7%8F%BE%E5%A0%B4%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%82%92%E8%A8%88%E7%94%BB%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E8%80%90%E4%B9%85%E6%80%A7%E3%82%92%E6%9C%80%E5%A4%A7%E9%99%90%E3%81%AB%E9%AB%98%E3%82%81%E3%81%9F%E3%81%84%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%EF%BC%81%3CBR%20%2F%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%E3%82%A2%E3%83%AC%E3%83%83%E3%82%AF%E3%82%B9%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2338184%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCXA156%20FLASH%20remapping%20through%20ROM%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2338184%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256858%22%20target%3D%22_blank%22%3E%40AlexRu%20%E3%81%95%E3%82%93%E3%80%82%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B320.5.4%E3%81%AE%E6%83%85%E5%A0%B1%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%E3%81%A8%E3%80%817.3.6%E3%80%81%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AE7.6.1.2%E9%A0%85%E3%81%A8%E7%85%A7%E3%82%89%E3%81%97%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E3%81%A8%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%B5%90%E8%AB%96%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FDIV%3E%0A%3CDIV%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Snipaste_2026-03-24_15-05-52.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Snipaste_2026-03-24_15-05-52.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Snipaste_2026-03-24_15-05-52.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F380156iA0367B784116A7FA%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Snipaste_2026-03-24_15-05-52.png%22%20alt%3D%22Snipaste_2026-03-24_15-05-52.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Snipaste_2026-03-24_15-06-23.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Snipaste_2026-03-24_15-06-23.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Snipaste_2026-03-24_15-06-23.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F380157i16CF4703578521AB%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Snipaste_2026-03-24_15-06-23.png%22%20alt%3D%22Snipaste_2026-03-24_15-06-23.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CP%3E1.%E5%AE%9F%E9%9A%9B%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%AA%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E7%AF%84%E5%9B%B2%E3%81%AF%E3%80%81FMC.REMAP%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%EF%BC%88LIM%2FLIMDP%EF%BC%89%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A68KB%E3%81%AE%E7%B2%92%E5%BA%A6%E3%81%A7%E6%B1%BA%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3EREMAP%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AFremap_address%5B19%3A13%5D%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%81%93%E3%82%8C%E3%81%AF%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C(LIM%20%2B%201)%20%C3%97%208%20KB%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%84%8F%E5%91%B3%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E1MB%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E4%B8%8B%E4%BD%8D%E5%8D%8A%E5%88%86%E3%81%AF512KB%E3%81%AA%E3%81%AE%E3%81%A7%E3%80%81%E6%9C%89%E5%8A%B9%E3%81%AALIM%E5%80%A4%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4%E3%81%AF0x3F%E3%81%A8%E3%81%AA%E3%82%8A%E3%80%81512KB%E3%81%AE%E3%83%95%E3%83%AB%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E2.%20CMPA%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89FLASH_REMAP_SZ%E3%81%AF%E3%80%81ROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%83%AD%E3%83%BC%E3%83%89%E3%81%95%E3%82%8C%E3%82%8B%E3%83%96%E3%83%BC%E3%83%88%E6%99%82%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E5%80%A4%E3%81%AB%E3%81%99%E3%81%8E%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3CBR%20%2F%3E%E3%81%9D%E3%81%AE%E6%9C%80%E5%A4%A7%E8%A8%B1%E5%AE%B9%E5%80%A4%E3%81%AF%E3%80%81CMPA%E3%81%AE%E6%A7%8B%E9%80%A0%2FROM%E3%81%AE%E5%88%B6%E9%99%90%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%88%B6%E9%99%90%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E3.%20%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AB%20FMC.REMAP%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%80%81%E5%85%AC%E5%BC%8F%E3%81%AB%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3EREMAP%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AF%E3%82%AD%E3%83%BC%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E6%96%B9%E5%BC%8F%EF%BC%88A5A5%2F5A5A%EF%BC%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81REMAPLK%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E9%99%90%E3%82%8A%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%8C%E8%A8%B1%E5%8F%AF%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E8%A8%B1%E5%8F%AF%E3%81%95%E3%82%8C%E3%82%8B%E4%BB%BB%E6%84%8F%E3%81%AE%E5%80%A4%E3%81%ABLIM%2FLIMDP%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%98%8E%E7%A2%BA%E3%81%AB%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%83%8F%E3%83%AA%E3%83%BC%3C%2FP%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2338949%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCXA156%20FLASH%20remapping%20through%20ROM%20Bootloader%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2338949%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256858%22%20target%3D%22_blank%22%3E%40AlexRu%20%E3%81%95%E3%82%93%E3%80%82%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EROM%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%E3%80%81MCXA156%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%ABMCXAP100M96FS6RM%E3%81%AE%E7%AC%AC20%E7%AB%A0%E3%81%A8AN14525%E3%82%92%E5%8F%82%E7%85%A7%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.nxp.com%2Fbundle%2FAN14525%2Fpage%2Ftopics%2Fmcx_a14x_a15x_secure_boot_based_on_mcuboot.html%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EAN14525%3A%20MCUBoot%20%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%20MCXA14x%2F15x%20%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%83%96%E3%83%BC%E3%83%88%20%7C%20NXP%20Semiconductors%E3%80%82%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EMCXA%E3%81%AEROM%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5API%E3%81%AB%E3%81%AF%E3%80%81%E3%83%9E%E3%83%BC%E3%82%B8%E3%83%B3%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E6%A9%9F%E8%83%BD%E3%81%AF%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E6%A9%9F%E8%83%BD%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Etypedef%20struct%20_flash_driver_interface%0A%7B%0A%20%20%20%20%2F*%20Flash%20driver%20*%2F%0A%20%20%20%20status_t%20(*flash_init)(flash_config_t%20*config)%3B%0A%20%20%20%20status_t%20(*flash_erase_sector)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes%2C%20uint32_t%20key)%3B%0A%20%20%20%20status_t%20(*flash_program_phrase)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint8_t%20*src%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*flash_program_page)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint8_t%20*src%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*flash_verify_program)(flash_config_t%20*config%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20start%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20lengthInBytes%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20uint8_t%20*expectedData%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20*failedAddress%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20uint32_t%20*failedData)%3B%0A%20%20%20%20status_t%20(*flash_verify_erase_phrase)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*flash_verify_erase_page)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*flash_verify_erase_sector)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*flash_get_property)(flash_config_t%20*config%2C%20flash_property_tag_t%20whichProperty%2C%20uint32_t%20*value)%3B%0A%20%20%20%20%2F*%20IFR%20driver%20*%2F%0A%23if%20!(defined(FSL_FEATURE_ROMAPI_IFR)%20%26amp%3B%26amp%3B%20(FSL_FEATURE_ROMAPI_IFR%20%3D%3D%200U))%0A%20%20%20%20status_t%20(*ifr_verify_erase_phrase)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*ifr_verify_erase_page)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20status_t%20(*ifr_verify_erase_sector)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint32_t%20lengthInBytes)%3B%0A%23endif%0A%20%20%20%20status_t%20(*flash_read)(flash_config_t%20*config%2C%20uint32_t%20start%2C%20uint8_t%20*dest%2C%20uint32_t%20lengthInBytes)%3B%0A%20%20%20%20%2F*%20version%20*%2F%0A%20%20%20%20uint32_t%20version%3B%0A%7D%20flash_driver_interface_t%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%83%8F%E3%83%AA%E3%83%BC%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E