문서 ID: 000090295 콘텐츠 형태: 문제 해결 마지막 검토일: 2023-02-28

인텔 AGILEX 7 SoC 장치에서 ECC가 켜져 있을 때 FPGA-HPS® 인터페이스 SDRAM 직접 모드를 구성하는 방법은 무엇입니까?

환경

    인텔® Quartus® Prime 디자인 소프트웨어
BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

인텔 AGILEX® 7 SoC 장치의 HPS 외부 메모리 인터페이스(EMIF)에서 ECC가 켜지면 메모리 주소는 F2H SDRAM 직접 모드와 F2H CCU 모드 모두에 대한 ECC 데이터를 생성합니다. 따라서 FPGA-HPS 마스터는 FPGA-HPS SDRAM 직접 모드에서도 MPU와 동일한 메모리 주소를 사용해야 합니다. 그렇지 않으면 ECC 오류가 트리거될 수 있습니다. ECC가 꺼져 있을 때는 이 제한이 적용되지 않습니다.

 

 

해결 방법

FPGA-HPS 마스터 및 MPU 마스터가 2GB 미만의 메모리 공간에 액세스하면 메모리 주소가 0x0000 0000에서 0x7FFF FFFF로 사용됩니다.

FPGA HPS 마스터와 MPU 마스터가 2GB보다 큰 메모리 공간에 액세스할 때 MPU는 DTS 파일에 정의된 별칭 주소를 사용하여 이러한 메모리 주소에 액세스합니다. FPGA-HPS 마스터는 F2H SDRAM 직접 모드와 F2H CCU 모드 모두에 대한 실제 주소 대신 동일한 별칭 주소를 사용해야 합니다.

다음은 인텔 Agilex® 7 SoC 장치의 4GB HPS EMIF 예입니다.

DTS에서 메모리는 아래와 같이 두 영역으로 정의됩니다. 그런 다음 FPGA-HPS 마스터 및 MPU는 2GB ~ 4GB 메모리 공간에 액세스하려면 0x1080000000 0x10FFFFFFFF 주소를 사용해야 합니다.

메모리 {

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

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

인텔® Agilex™ FPGAs 및 SoC FPGAs

1

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어서는 안 됩니다. 이 페이지의 영어 버전과 번역 사이에 모순이 있는 경우 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.