Due to a problem in the configuration of SDRAM memory in the Linux socfpga_agilex5_socdk.dts device tree in release 25.3 (socfpga-6.12.33-lts branch), Agilex™ 5 FPGA fails to boot Linux in the ATF to Linux Direct boot flow when booting from SD Card and QSPI. The incorrect SDRAM memory configuration does not affect any boot flow that uses U-Boot as a bootloader, because U-Boot patches the Linux device tree with the correct configuration as part of the loading and launching Linux process. However, in the ATF to Linux boot flow, the ATF does not update the Linux device tree, so Linux fully relies on the memory configuration defined in the device tree.
To workaround this problem, you need to indicate the correct SDRAM memory configuration in the Linux device tree. The following example illustrates the necessary fix for the socfpga_agilex5_socdk.dts device tree used for the Agilex™ 5 FPGA E-Series 065B development kit, in which 2 GB of memory is being defined:
memory {
device_type = "memory";
/* We expect the bootloader to fill in the reg */
- reg = <0x0 0x0 0x0 0x0>;
+ reg = <0 0x80000000 0 0x80000000>;
};
This problem will be fixed in a future release by providing a new Linux device tree specific to ATF to the Linux Direct boot flow.