In order to reserve memory to not be used by Linux running on the SoC Cortex-A9, the Linux kernel must be told what is the top of memory (highest addressable RAM address). All RAM addresses beyond this address can be used for other purposes outside the Linux OS.
The highest addressable RAM address can be set in U-boot by added the "mem=..." Linux boot argument to the bootargs U-boot environment variable.
Below is an example U-boot command line command to set the top of memory to 0x3E800000 :
setenv bootargs console=ttyS0,115200 mem=1000M
Please note that the "mmcboot", "ramboot" and "qspiboot" U-boot environment variables also override the bootargs environment variable. If using these variables, the bootargs may also need to be modified within these variables.
The default U-boot environment variables are defined for the SoC with the
"uboot-socfpga\include\configs\socfpga_common.h" C header file.