เมื่อเปิดใช้งานรหัสการแก้ไขข้อผิดพลาด (ECC) ใน HPS External Memory Interface (EMIF) ในอุปกรณ์ Intel® Stratix® 10 SX ที่อยู่หน่วยความจําจะสร้างข้อมูล ECC สําหรับอินเทอร์เฟซ F2H และ F2SDRAM0/1/2 ต้องใช้FPGA-to-HPS masters เพื่อใช้ที่อยู่หน่วยความจําเดียวกันกับ MPU แม้ในขณะที่ใช้อินเทอร์เฟซ F2SDRAM0/1/2 ไม่เช่นนั้น อาจเกิดข้อผิดพลาด ECC ข้อจํากัดนี้จะไม่มีผลบังคับใช้เมื่อ ECC ถูกปิด
เมื่อมาสเตอร์ FPGA-to-HPS และ MPU เข้าถึงพื้นที่หน่วยความจําที่ต่ํากว่า 2 GB แอดเดรสหน่วยความจําจะถูกใช้จาก 0x0000 0000 ถึง 0x7FFF FFFF
เมื่อต้นแบบ FPGA-to-HPS และมาสเตอร์ MPU เข้าถึงพื้นที่หน่วยความจําที่ใหญ่กว่า 2 GB MPU จะใช้ที่อยู่นามแฝงที่กําหนดไว้ในไฟล์ DTS เพื่อเข้าถึงแอดเดรสหน่วยความจําเหล่านี้ ต้นแบบ FPGA-to-HPS ต้องใช้ที่อยู่แทนที่อยู่ทางกายภาพสําหรับอินเทอร์เฟซ F2SDRAM0/1/2 ทั้งหมด
นี่เป็นตัวอย่างของ HPS EMIF 4 GB ในอุปกรณ์ Intel® Stratix® 10 SX:
ใน DTS หน่วยความจําจะถูกกําหนดเป็นสองภูมิภาคดังที่แสดงด้านล่าง จากนั้น FPGA-to-HPS master และ MPU ต้องใช้แอดเดรสจาก 0x1080000000 ถึง 0x10FFFFFFFF เพื่อเข้าถึงพื้นที่หน่วยความจํา 2 GB ~ 4 GB
หน่วยความจํา {
reg = <0 0x00000000 0 0x80000000>
<0x10 0x80000000 0 0x80000000>
};
หากต้องการเปิดใช้งานการเข้าถึงพื้นที่หน่วยความจํา 4 GB ทั้งหมดด้วยที่อยู่นามแฝงที่แสดงด้านบน ควรตั้งค่าการลงทะเบียนไฟร์วอลล์ F2SDRAM ต่อไปนี้ด้วย:
#Example การกําหนดค่าภูมิภาค F2SDRAM0 yสามารถกําหนดค่าได้ในแหล่ง U-Boot เช่น uboot-socfpga\arch\arm\mach-socfpga\spl_s10.c
writel(0x1000000, 0xF8020210); region0addr_base
writel(0x0, 0xF8020214); region0addr_baseext
writel(0xFFFFFFFF, 0xF8020218); region0addr_limit (32 บิตที่ต่ํากว่า)
writel(0x10, 0xF802021C); region0addr_limitext (บน 32 บิต)
writel(0x1, 0xF8020204); enable_setสําหรับภูมิภาค