2392848_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2392848_en-US

2392848_en-US

Clarification on IVT usage at multiple AB_SWAP locations (S32K328)

Hi NXP team,

I am working on an S32K328 memory layout using AB_SWAP and HSE_B, and I need clarification on how IVT locations should be treated.

From the S32K3xx Reference Manual:

  • The IVT is the main boot entry structure defined at a fixed location in flash.
  • IVT contains pointers to application images, boot configuration, and optional authentication data.
  • In AB_SWAP configurations, there are multiple defined flash regions/addresses associated with boot and image selection, depending on the device and setup.

In the memory map for S32K328, I see:

  • IVT at 0x0040_0000 (active bank)
  • Another aligned region at 0x0060_0000 (in the same bank), which appears to be related to boot/priority handling or reserved space in some layouts.

Questions:

  1. IVT placement

    • Is the IVT expected to exist only at the primary location (e.g., 0x0040_0000) for each bank?
    • Or is there any requirement (or supported case) where an IVT (or IVT‑like structure) must also be present at another address such as 0x0060_0000?
  2. Multiple IVT addresses in AB_SWAP

    • When the RM shows multiple IVT‑related addresses (e.g., 0x0040_0000, 0x0050_0000, 0x0060_0000, etc.), do these represent:
      • separate IVT instances, or
      • alternative boot slots / priority locations used by the same IVT concept?
  3. Use of secondary/alternate region

    • If a region like 0x0060_0000 is not explicitly documented as containing an IVT:
      • Should it be kept reserved, or
      • Can it be safely used for application data/metadata?
  4. Best practice

    • For AB_SWAP + HSE secure boot systems, what is the recommended interpretation of these additional aligned addresses in relation to IVT?

Context:

  • Device: S32K328
  • Boot mode: AB_SWAP
  • Security: HSE_B with secure boot enabled
  • Goal: correct boot behavior and safe memory allocation

    S32K3 #s32k328 
Re: Clarification on IVT usage at multiple AB_SWAP locations (S32K328)

Hi @venkatesh-kv 

1. One IVT at any available defined address is sufficient. It doesn’t have to be primary location like 0x40_0000. It’s up to SBAF to search for valid IVT in given order.
There’s an option to use second IVT as a backup if something goes wrong during update of IVT which is typically done when enabling secure boot by BOOT_SEQ bit in Boot Configuration Word in IVT.

2. S32K328 in AB_SWAP mode has three possible locations of IVT: 0x40_0000, 0x60_0000, 0x1000_0000. SBAF searches for valid IVT in this order. The lower address, the highest priority. For example, if there’s valid IVT at 0x40_0000, SBAF will use this one and it does not check other locations.

3. It’s not necessary to keep the area reserved, you can use it for your code or data.

4. For this use case, other IVT locations can be used as a backup as mentioned earlier. It’s also discussed in Secure Boot Application Note in section “6.2 Update IVT”.
It can be downloaded from:
https://www.nxp.com/products/S32K3
Application note can be found here:
Documentation -> Secure Files -> Secure Boot Application note v0.1.1.0 (AN744511)
Associated demo project can be downloaded here:
Design Resources -> Software -> Secure Files -> SecureBootAppNoteDemo (SW745310)

Regards,
Lukas

Tags (1)
No ratings
Version history
Last update:
Friday
Updated by: