Problems related to pm static file for nrf54l15

I am working on project with nrf54l15dk/nrf54l15, and the project runs on cpuapp without utilizing flpr. So, I decided to release the allocated section of flpr on rram_controller to be used by cpuapp. Now, while building the project, it builds successfully and when flashed to nrf54l15dk, it does not provide output on uart, but when same project built and flashed without my pm_static file, it works fine and can see the output on uart. So, there is some issue in my pm_static file. Can, anyone help me solve this.


pm_static_nrf54l15dk_nrf54l15_cpuapp.yaml

mcuboot:
  address: 0x0
  end_address: 0xf000
  region: flash_primary
  size: 0xf000

mcuboot_pad:
  address: 0xf000
  end_address: 0xf800
  region: flash_primary
  size: 0x800

app:
  address: 0xf800
  end_address: 0x165000
  region: flash_primary
  size: 0x157800

mcuboot_primary:
  address: 0xf000
  end_address: 0x165000
  orig_span: &id001
    - mcuboot_pad
    - app
  region: flash_primary
  size: 0x158000
  span: *id001

mcuboot_primary_app:
  address: 0xf800
  end_address: 0x165000
  orig_span: &id002
    - app
  region: flash_primary
  size: 0x157800
  span: *id002

mcuboot_secondary:
  address: 0x165000
  end_address: 0x17d000
  region: flash_primary
  size: 0x18000

settings_storage:
  address: 0x17d000
  end_address: 0x180000
  region: flash_primary
  size: 0x3000

sram_primary:
  address: 0x20000000
  end_address: 0x20040000
  region: sram_primary
  size: 0x40000



nrf54l15.overlay
&rram_controller {
    /delete-node/ cpuflpr_sram;
    /delete-node/ cpuflpr_rram;
};

/* Adjust the cpuapp_sram to include the freed up cpuflpr_sram */
&cpuapp_sram {
    reg = <0x20000000 DT_SIZE_K(256)>;
    ranges = <0x0 0x20000000 0x20040000>;
};

/* Adjust the cpuapp_rram to include the freed up cpuflpr_rram */
&cpuapp_rram {
    reg = <0x0 DT_SIZE_K(1524)>;
};

Parents
  • Hi Shivam, 
    My understanding is that if you don't use pm_static.yml it runs correct ? 
    Could you find the partitions.yml file in build folder ? We can check what's the difference with a working (partitions.yml) and non-working (pm_static.yml) 

  • Hi Hung,
    Here is the partitions.yml file from the build folder which works fine

    partitions.yml

    EMPTY_0:
      address: 0xd800
      end_address: 0xe000
      placement:
        after:
        - mcuboot
      region: flash_primary
      size: 0x800
    EMPTY_1:
      address: 0x17a000
      end_address: 0x17b000
      placement:
        after:
        - mcuboot_secondary
      region: flash_primary
      size: 0x1000
    app:
      address: 0xe800
      end_address: 0xc4000
      region: flash_primary
      size: 0xb5800
    bootconf:
      address: 0xffd080
      end_address: 0xffd084
      region: bootconf
      size: 0x4
    mcuboot:
      address: 0x0
      end_address: 0xd800
      placement:
        align:
          end: 0x1000
        before:
        - mcuboot_primary
      region: flash_primary
      size: 0xd800
    mcuboot_pad:
      address: 0xe000
      end_address: 0xe800
      placement:
        align:
          start: 0x1000
        before:
        - mcuboot_primary_app
      region: flash_primary
      size: 0x800
    mcuboot_primary:
      address: 0xe000
      end_address: 0xc4000
      orig_span: &id001
      - mcuboot_pad
      - app
      region: flash_primary
      sharers: 0x1
      size: 0xb6000
      span: *id001
    mcuboot_primary_app:
      address: 0xe800
      end_address: 0xc4000
      orig_span: &id002
      - app
      region: flash_primary
      size: 0xb5800
      span: *id002
    mcuboot_secondary:
      address: 0xc4000
      end_address: 0x17a000
      placement:
        after:
        - mcuboot_primary
        align:
          start: 0x1000
      region: flash_primary
      share_size:
      - mcuboot_primary
      size: 0xb6000
    otp:
      address: 0xffd500
      end_address: 0xffd9fc
      region: otp
      size: 0x4fc
    settings_storage:
      address: 0x17b000
      end_address: 0x17d000
      placement:
        after:
        - app
        align:
          start: 0x1000
        before:
        - end
      region: flash_primary
      size: 0x2000
    sram_primary:
      address: 0x20000000
      end_address: 0x20040000
      region: sram_primary
      size: 0x40000
    




    custom_pm_static.yml file
    # this is partion which stores the MCUboot size in the flash (currect: 60 KB)
    mcuboot:
      address: 0x0
      end_address: 0xf000
      region: flash_primary
      size: 0xf000
    
    mcuboot_pad:
      address: 0xf000
      end_address: 0xf800
      region: flash_primary
      size: 0x800
    
    # this is partion which stores the app size in the flash (currect: 1366 KB)
    app:
      address: 0xf800
      end_address: 0x165000
      region: flash_primary
      size: 0x157800
    
    mcuboot_primary:
      address: 0xf000
      end_address: 0x165000
      orig_span: &id001
        - mcuboot_pad
        - app
      region: flash_primary
      size: 0x158000
      span: *id001
    
    mcuboot_primary_app:
      address: 0xf800
      end_address: 0x165000
      orig_span: &id002
        - app
      region: flash_primary
      size: 0x157800
      span: *id002
    
    mcuboot_secondary:
      address: 0x165000
      end_address: 0x17d000
      region: flash_primary
      size: 0x18000
    
    settings_storage:
      address: 0x17d000
      end_address: 0x180000
      region: flash_primary
      size: 0x3000
    
    sram_primary:
      address: 0x20000000
      end_address: 0x20040000
      region: sram_primary
      size: 0x40000
    

  • Hi Shivam, 

    Do you have any explanation for what you used in pm_static.yml file ? Where did those numbers come from ? 
    I don't think it's correct to have the mcuboot_primary size of 0x158000 when the mcuboot_secondary size is only 0x18000. 
    Generally they should be equal. How do you plan to receive DFU image ? 

    Most often we create the pm_static.yml based on the auto generated partitions.yml and fine tune it for the need. 

  • Hi Hung,

    I saw my fault and was providing off values to my pm_static file. I worked on the file according to the default dynamic partition file provided by system, and its working.

    Thank you.

Reply Children
No Data
Related