2026-04-13 6:39 AM
Dear All,
I am currently working with STM32MP257 however it gives me lot of confusions. Looking into the Linker script the memory has been defined as follows:
MEMORY
{
FLASH (xrw) : ORIGIN = 0x80100600, LENGTH = 8387072
NS_VECTOR_TBL (xrw) : ORIGIN = 0x80100000, LENGTH = 1536
VIRTIO_SHMEM (xrw) : ORIGIN = 0x812f8000, LENGTH = 32K
IPC_SHMEM_1 (xrw) : ORIGIN = 0x81200000, LENGTH = 992K
RAM (xrw) : ORIGIN = 0x80a00000, LENGTH = 1024K
}
Where I fail to understand why the RAM has been divided as I had already set them in RISAB. My understanding or assumption was the memory should have been divided into SRAMs, RETRAM, SYSRAM etc as per RISAB configuration.
I don't if I have to add them manually again in linker script.
Moreover, the device tree (.dtsi) for OpenSTlinux also does not mention any memory divisions as in examples. The file: stm32mp257f-hrt-mc-stm32mp2-mx-resmem.dtsi only has the following code:
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
* Copyright (C) 2026, STMicroelectronics - All Rights Reserved
* Author: STM32CubeMX code generation for STMicroelectronics.
*/
/* For more information on Device Tree configuration, please refer to
* https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
*/
/ {
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* USER CODE BEGIN reserved-memory */
/*Applicative memory mapping can be defined in this section deduced from OP-TEE one*/
/* USER CODE END reserved-memory */
};
};
There is a huge lack of information on what parts of the code need to be manually configured and which are configured through CubeMX.
Thank you.
With regards
Amit