ID บทความ: 000086179 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 26/07/2018

ฉันจะกําหนดค่าระบบ SoC ของฉันเพื่อเข้าถึงแคชที่สอดคล้องกันจากตรรกะซอฟต์ลอจิกFPGAไปยังหน่วยความจํา HPS ได้อย่างไร

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

หากต้องการอนุญาตให้มีการเข้าถึงที่สอดคล้องกันกับแคชจากตรรกะซอฟต์ลอจิกFPGAไปยังจํานวนหน่วยความจํา HPS ต้องอยู่ในสถานที่:

  • ตารางหน้า MMU
  • การตั้งค่าการรักษาความปลอดภัย NOC
  • การกําหนดค่า CoreLink™ Level 2 Cache Controller L2C-310
  • สัญญาณ sideband AXI: Axi_cache_security Bridge
    • AxCache และ AxUser
    • AXPROT

ตารางหน้า MMU

ต้องตั้งค่าตารางหน้า MMU เพื่อกําหนดพื้นที่หน่วยความจําเป้าหมายที่สามารถแคชได้ และปลอดภัยหรือไม่ปลอดภัย   ดูเอกสารประกอบ Linux และ ARM สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับคุณลักษณะการจัดสรรตารางหน้า MMU และโหมดที่ปลอดภัย (โซนความเชื่อถือ)

  • ต้องทําเครื่องหมายหน่วยความจําเป็น Write back Write Allocate (WBWA)
  • เพื่อให้เข้าถึงหน่วยความจําจากแอปพลิเคชันพื้นที่ผู้ใช้ Linux หรือ Kernel โหมดความปลอดภัยควรไม่ปลอดภัย
  • ควรใช้การรักษาความปลอดภัยเพื่อให้หน่วยความจําเข้าถึงได้โดยกระบวนการที่ทํางานอยู่ในสถานะปลอดภัยของ ARM (อย่าสับสนกับโหมดผู้ควบคุม)

เปิดใช้งานโหมดปลอดภัยหาก CP15: SDR:NS = 1   หมายเหตุ: การลงทะเบียน NS จะพร้อมใช้งานในโหมดผู้ควบคุมเท่านั้น

 

การตั้งค่าการรักษาความปลอดภัย NOC

Arria® 10 SoC Network บน Chip iinterconnect (NOC) สามารถกําหนดค่าได้ด้วยไฟร์วอลล์บนแต่ละบริดจ์และตลอดทั้งการเชื่อมต่อ   เพื่ออนุญาตการเข้าถึงผ่านบริดจ์ HPS

  • ต้องกําหนดค่าไฟร์วอลล์เพื่อให้สามารถทําธุรกรรมผ่านบริดจ์ได้
  • ต้องตั้งค่าการควบคุมหลักเพื่ออนุญาต/ไม่อนุญาตให้มีการเข้าถึงที่ปลอดภัย
  • หากตั้งค่าหลักให้ไม่อนุญาตให้มีการเข้าถึงที่ปลอดภัย ธุรกรรมทั้งหมดจะถูกเปลี่ยนเป็นสถานะไม่ปลอดภัย ซึ่งสามารถทําลายการทํางานร่วมกันได้

U-boot ที่สร้างขึ้นจากซอฟต์แวร์ SoC EDS เวอร์ชั่น 16.0 และใหม่กว่าจะปิดใช้งานไฟร์วอลล์ NOC แต่ตั้งค่ามาสเตอร์ให้ไม่อนุญาตให้มีการเข้าถึงที่ปลอดภัย

เพื่ออนุญาตการเข้าถึงที่ปลอดภัยผ่านบริดจ์ FPGA2HPA:

ตั้งค่าfpga2soc_ctrlลงทะเบียน: allow_secureเป็น 1 (ค่าเริ่มต้น = 0 ไม่อนุญาตให้มีความปลอดภัย)

 

การกําหนดค่าคอนโทรลเลอร์แคชระดับ 2

การกําหนดค่า CoreLink™ Level 2 Cache Controller L2C-310

ขอแนะนําให้ตั้งค่าบิตการลงทะเบียนตัวควบคุม Aux [22]: ตั้ง การแทนที่คุณลักษณะที่ใช้ร่วมกัน เป็นเปิดบิต    การตั้งค่านี้จะปิดใช้งานการเพิ่มประสิทธิภาพในคอนโทรลเลอร์แคช L2 ซึ่งเปลี่ยนการเข้าถึงที่ไม่สามารถแคชบางส่วนจากคอร์ MPU หรือพอร์ต ACP เป็นการเข้าถึงที่ไม่สามารถจัดสรรแคชได้ และย้ายจุดที่สอดคล้องกันจาก SDRAM ไปยังแคช L2     การเปลี่ยนแปลงในจุดที่สอดคล้องกันอาจทําให้เกิดปัญหาหากผู้เชี่ยวชาญเข้าถึง SDRAM ผ่าน L3 หรือบริดจ์ FPGA2SDRAM

อ้างอิง: CoreLink™ Level 2 Cache Controller L2C-310, การปรับปรุงแก้ไข: คู่มืออ้างอิงทางเทคนิค r3p3 (ARM DDI 0246H (ID080112):: คุณลักษณะที่ใช้ร่วมกันได้หัวข้อ 2.3.2

ข้างต้นได้รับการตั้งค่าตามค่าเริ่มต้นในเวอร์ชั่น u-boot-socfpga ล่าสุดที่มีให้ใช้งานจาก https://github.com/altera-opensource/u-boot-socfpga

 

ขับเคลื่อนสัญญาณ sideband AXI จาก Qsys: Axi_cache_security Bridge

ควรใช้บริดจ์ Axi_cache_security เพื่อขับเคลื่อนสัญญาณ Sideband AxCache/AxUser/AxProt ไปยังค่าที่ถูกต้อง  Axi_cache_security Bridge สามารถพบได้ในตัวอย่าง Arria 10 Bridge https://www.altera.com/support/support-resources/design-examples.h tml

 

สัญญาณ Sideband AxCache[3:0]

การตั้งค่า AxCache [3:0] ที่ถูกต้องจะขึ้นอยู่กับการตั้งค่าตารางหน้า MMU

ดู คู่มืออ้างอิงสถาปัตยกรรม ARM® ARMv7-A และ ARMv7-R edition (ARM DDI 0406C.c (ID051414) ) : ประเภทและคุณลักษณะของหน่วยความจํา A3.5 และรุ่นการสั่งซื้อหน่วยความจํา AxCache[1] ต้องเป็น 1 สําหรับการเข้าถึงที่สอดคล้องกัน

อ้างอิง: Cortex-A9™ MPCore® Revision: คู่มืออ้างอิงทางเทคนิค r3p0 (ARM DDI 0407G (ID072711): พอร์ตร่วมตัวเร่งความเร็ว 2.4

แคช AW®[3:0]

[3] - เขียนแบบจัดสรรได้

[2] - อ่านต่อได้

[1] - แคชได้

[0] - บัฟเฟอร์

ค่าเริ่มต้นที่แนะนําสําหรับแคช AW®[3:0]

awcache = 0xF; 4'b1111 Write Allocate, การจัดสรรการอ่าน, บัฟเฟอร์, แคชได้

arcache = 0xF; 4'b1111 Write Allocate, การจัดสรรการอ่าน, บัฟเฟอร์, แคชได้

หมายเหตุ: ควรแก้ไขการตั้งค่าเหล่านี้ตามกรณีการใช้งาน

 

สัญญาณ Sideband AxUser[4-0]

สัญญาณ AxUser จะถูกใช้เพื่อส่งผ่านข้อมูลเพิ่มเติม และสําหรับธุรกรรม ACP ที่ใช้เพื่อส่งผ่านข้อมูลแคชภายในและภายนอก

ผู้ใช้ AW®[3:0]

[0] - คุณลักษณะที่ใช้ร่วมกันต้องตั้งค่าเป็น 1 สําหรับการเข้าถึงที่สอดคล้องกัน

[3:1] - ไม่ได้ตีความโดย SCU เนื่องจาก ACP ไม่มีนโยบายแคชภายใน และจะถูกส่งผ่านไปยัง L2 Cache Controller สําหรับใช้หากแคชถูกตั้งค่าในโหมดพิเศษ

ข้อมูลอ้างอิง: Cortex-A9™ MPCore® Revision: คู่มืออ้างอิงทางเทคนิค r3p0 (ARM DDI 0407G (ID072711): พอร์ตร่วมตัวเร่งความเร็ว 2.4,

ค่าเริ่มต้นที่แนะนําสําหรับ AxUSER[4:0]

awuser = 0x1; 5'b00001

aruser = 0x1; 5'b00001

หมายเหตุ: ใน Arria 10 แอททริบิวต์ที่ใช้ร่วมกันของ AXI จะผูกกับ "1" ภายใน

 

สัญญาณ Sideband ของ AxProt[2:0]

AxProt ระบุสถานะที่ปลอดภัยของทรานแซคชัน และต้องตรงกับสถานะความปลอดภัยของหน่วยความจําเป้าหมายเพื่อให้แน่ใจว่าแคชถูกโจมตี

AW®PROT[2:0]

[2] - การดึงข้อมูลคําสั่ง

[1] - การเข้าถึงแบบไม่ปลอดภัย

[0] - สิทธิ์การเข้าถึง

 

ค่าเริ่มต้นที่แนะนําสําหรับ AxProt[2:0]

การตั้งค่าความปลอดภัยของหน่วยความจําตารางหน้า MMU และการตั้งค่าความปลอดภัยของ CPU และสถานะความปลอดภัยธุรกรรม ACP ต้องตรงกันทั้งหมดเพื่อให้แน่ใจว่าแคชถูกโจมตี

ธุรกรรม ACP ที่ไม่ปลอดภัยไปยังตําแหน่งหน่วยความจําที่ปลอดภัยที่เข้าถึงโดย CPU ในสถานะที่ปลอดภัยจะส่งผลให้แคชพลาด และการเข้าถึงที่สอดคล้องกัน

 

 

สรุปสถานการณ์ที่รองรับ:

ไม่ปลอดภัย

  • ตารางหน้า MMU ถูกตั้งค่าให้กําหนดพื้นที่หน่วยความจําเป้าหมายว่าไม่ปลอดภัย
  • มีการตั้งค่าไฟร์วอลล์ NOC เพื่อให้สามารถเข้าถึงพื้นที่เป้าหมายได้อย่างปลอดภัย
  • F2H Bridge ช่วยให้เข้าถึงพื้นที่เป้าหมายได้อย่างปลอดภัยหรือไม่ปลอดภัย

ปลอดภัย

  • ตารางหน้า MMU ถูกตั้งค่าให้กําหนดพื้นที่หน่วยความจําเป้าหมายว่าปลอดภัย
  • มีการตั้งค่าไฟร์วอลล์ NOC เพื่อให้สามารถเข้าถึงพื้นที่เป้าหมายได้อย่างปลอดภัย
  • บริดจ์ F2H ดําเนินการเข้าถึงพื้นที่เป้าหมายอย่างปลอดภัย

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

Intel® Arria® 10 SX SoC FPGA

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้