เมื่อเปิดใช้งาน ECC ใน HPS External Memory Interface (EMIF) ในอุปกรณ์ Intel Agilex® 7 SoC ที่อยู่หน่วยความจําจะสร้างข้อมูล ECC สําหรับทั้งโหมด F2H SDRAM direct และโหมด F2H CCU ดังนั้นจึงกําหนดให้มาสเตอร์ FPGA-to-HPS ใช้ที่อยู่หน่วยความจําเดียวกันกับ MPU แม้ในโหมด FPGA-to-HPS SDRAM direct มิเช่นนั้น อาจเกิดข้อผิดพลาด ECC ข้อจํากัดนี้จะไม่มีผลบังคับใช้เมื่อ ECC ถูกปิด
เมื่อต้นแบบ FPGA-to-HPS และ MPU Master เข้าถึงพื้นที่หน่วยความจําที่ต่ํากว่า 2GB แอดเดรสหน่วยความจําจะถูกใช้จาก 0x0000 0000 ถึง 0x7FFF FFFF
เมื่อต้นแบบ FPGA-to-HPS และ MPU Master เข้าถึงพื้นที่หน่วยความจําที่ใหญ่กว่า 2GB MPU จะใช้ที่อยู่นามแฝงที่กําหนดไว้ในไฟล์ DTS เพื่อเข้าถึงแอดเดรสหน่วยความจําเหล่านี้ ต้นแบบ FPGA-to-HPS ต้องใช้ที่อยู่แทนที่อยู่ทางกายภาพสําหรับทั้งโหมด F2H SDRAM Direct และโหมด F2H CCU
นี่เป็นตัวอย่างของ HPS EMIF 4GB ในอุปกรณ์ Intel Agilex® 7 SoC:
ใน DTS หน่วยความจําจะถูกกําหนดเป็นสองภูมิภาคดังที่แสดงด้านล่าง จากนั้น FPGA-to-HPS master และ MPU ต้องใช้ที่อยู่จาก 0x1080000000 ถึง 0x10FFFFFFFF เพื่อเข้าถึงพื้นที่หน่วยความจํา 2GB ~ 4GB
หน่วยความจํา {
reg =
};
หากต้องการเปิดใช้งานการเข้าถึงพื้นที่หน่วยความจํา 4GB ทั้งหมดที่มีที่อยู่นามแฝงข้างต้น ควรตั้งค่าการลงทะเบียนต่อไปนี้ด้วย คุณสามารถตั้งค่าการลงทะเบียนเหล่านี้ในไฟล์ uboot uboot-socfpga\arch\arm\mach-socfpga\spl_agilex.c
writel(0x100000, 0xF8020110); region0addr_base
writel(0x0, 0xF8020114); region0addr_baseext
writel(0xFFFFFFFF, 0xF8020118); region0addr_limit (32 บิตที่ต่ํากว่า)
writel(0x10, 0xF802011C); region0addr_limitext (บน 32 บิต)
writel(0x1, 0xF8020104); enable_set สําหรับภูมิภาค