Hello,
Along the lines of this question about flash size, I’m looking to reduce the TF-M partition RAM usage to gain some space in my application partition. Here are the current reports of my application (MbedTLS is taking a lot of RAM space in my application, and I require that in order to do secure TCP connections to AWS using an Ethernet controller):
[53/57] Linking C executable bin\tfm_s.axf
Memory region Used Size Region Size %age Used
FLASH: 163136 B 256 KB 62.23%
RAM: 56752 B 88 KB 62.98%
[441/443] Linking C executable zephyr\zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 566312 B 640 KB 86.41%
RAM: 150637 B 154264 B 97.65%
IDT_LIST: 0 GB 2 KB 0.00%
I have checked the docs but haven’t yet found a way to transfer some of those 88 kB from one partition to the other. It seems configuring addresses in the device tree doesn’t do anything:
/ {
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
// Default SRAM planning when building for nRF9160 with
// ARM TrustZone-M support
// - Lowest 88 kB SRAM allocated to Secure image (sram0_s).
// - 40 kB SRAM reserved for and used by the modem library
// (sram0_modem). This memory is Non-Secure.
// - Upper 128 kB allocated to Non-Secure image (sram0_ns).
// When building with TF-M, both sram0_modem and sram0_ns
// are allocated to the Non-Secure image.
sram0_s: image_s@20000000 {
/* Secure image memory */
//reg = <0x20000000 DT_SIZE_K(88)>;
reg = <0x20000000 DT_SIZE_K(68)>;
};
//sram0_modem: image_modem@20016000 {
sram0_modem: image_modem@20011000 {
/* Modem (shared) memory */
//reg = <0x20016000 DT_SIZE_K(40)>;
reg = <0x20011000 DT_SIZE_K(40)>;
};
//sram0_ns: image_ns@20020000 {
sram0_ns: image_ns@2001B000 {
/* Non-Secure image memory */
//reg = <0x20020000 DT_SIZE_K(128)>;
reg = <0x2001B000 DT_SIZE_K(148)>;
};
};
};
Any idea where to configure this? Thanks!