문서 ID: 000086394 콘텐츠 형태: 제품 정보 및 문서 마지막 검토일: 2018-10-17

Quartus® Prime Pro 플랫폼 디자이너의 클럭 설정과 일치하도록 인텔® Stratix® 10개의 SX 장치에 대한 Linux 장치 트리를 업데이트하려면 어떻게 합니까?

환경

    인텔® Quartus® Prime Pro Edition

Linux-socfpga 4.X

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

SoC FPGA Linux Kernel 버전 2018년 6월 4.17 이상, 4.18 이상:

  • 인텔® Stratix® 10 SX의 최상위 참조 클럭 주파수만 Linux 장치 트리에 지정되어 있습니다.
  • 인텔® Quartus® Prime Pro 플랫폼 디자이너 설계의 Stratix 10 HPS 구성 요소에 설정된 클럭 트리 설정은 클럭 관리자 드라이버가 FPGA 비트스트림에서 로드합니다.

SoC FPGA Linux Kernel 버전 4.17(2018년 6월 이전) 이전의 경우:

Linux Device Tree는 인텔® Stratix® 10 SX의 전체 클럭 구조에 대한 정보를 포함하고 있으며, 인텔® Quartus® Prime Pro 플랫폼 디자이너 디자인의 Stratix 10 HPS 구성 요소의 클럭 설정을 반영해야 합니다.

보드와 디자인을 반영하도록 클럭 구조가 업데이트되지 않은 경우, 주변 장치는 Linux에서 잘못 작동할 수 있습니다.

Linux 커널에는 인텔 Stratix 10 SX 개발 키트에 대한 일반 최상위 장치 트리와 예제 장치 트리가 포함되어 있습니다.

arch/arm64/boot/dts/altera/

socfpga_stratix10.dtsi #Generic 최상위 장치 트리

인텔 Stratix 10 SX 개발 키트의 Socfpga_stratix10_socdk.dts # 예제 장치 트리, 골든 하드웨어 참조 설계(GHRD), 골든 소프트웨어 참조 설계(GSRD)

 

참고:

  • 골든 하드웨어 참조 설계(GHRD)는 예시/하드웨어/폴더에 인텔 FPGA SoC EDS와 함께 배송됩니다.
  • 골든 소프트웨어 참조 디자인(GSRD)은 Rocketboards.org https://rocketboards.org/foswiki/Documentation/GSRD 다운로드할 수 있습니다.

이 문제는 이후 커널 버전(5.X)에서 해결되었습니다.

해결 방법

SoC FPGA Linux Kernel 버전 2018년 6월 4.17 이상, 4.18 이상:

인텔® Stratix® 10 SX의 최상위 참조 클럭 주파수만 Linux 장치 트리에 지정되어 있습니다.

clkmgr@ffd10000 {

클럭 {

osc1 { 클럭 주파수 = ;        };

};

};

 

SoC FPGA Linux Kernel 버전 4.17(2018년 6월 이전) 이전의 경우:

socfpga_stratix10.dtsi는 각 클럭 트리 구성 요소에 대한 가능한 설정을 보여줍니다.

peri_emacb_clk: peri_emacb_clk@ec {

#clock 셀 = ;

호환성 = "altr,socfpga-s10-perip-clk";

클럭 = , , , , ;

reg = ;

};

 

아래는 UART와 I2C를 공급하는 클럭을 보여주는 트리의 일부입니다.  기본적으로 IP의 소스 클럭이 설정되어 있지만 트리에 대한 연결이 설정되지 않았습니다.  IP 세트에는 noc_clk 의해 구동되지만 noc_clk 및 noc_free_clk 정의된 드라이버가 없는 l4_sp_clock 클럭이 설정됩니다.

:

main_noc_base_clk: main_noc_base_clk {

...

클럭 = ;

...

};

noc_free_clk: noc_free_clk@4c {

...

클럭 = , ,

, ,

;

...

};

noc_clk: noc_clk@30 {

...

클럭 = , ;

...

};

l4_sp_clk: l4_sp_clk {

...

클럭 = ;

...

};

i2c1: i2c@ffc02900 {

...

클럭 = ;

...

};

uart0: serial0@ffc02000 {

...

클럭 = ;

...

};

 

필요한 설정은 아래의 구문을 사용하여 보드용 .dts 파일을 통해 적용할 수 있습니다.

 

soc {

clkmgr@ffd10000 {

클럭 {

osc1 {

클럭 주파수 = ;

};

periph_pll@e4 {

peri_emaca_clk@e8{

클럭 = ;

};

peri_emacb_clk@ec {

클럭 = ;

};

};

noc_free_clk@4c {

클럭 = ;

};

noc_clk@30 {

클럭 = ;

};

emaca_free_clk {

클럭 = ;

};

emacb_free_clk {

클럭 = ;

};

emac0_clk {

클럭 = ;

};

emac1_clk {

클럭 = ;

};

emac2_clk{

클럭 = ;

};

};

};

};

};

 

위의 내용은 UART/I2C 문제를 해결하고 일부 이더넷 클럭을 정의합니다.   이제 시계 트리가 UART/I2C에서 주 PLL까지 완료되었습니다.   즉, 소스 클럭 주파수를 기반으로 UART와 I2C를 설정하는 논리가 올바른 계산을 할 수 있습니다.

장치 트리에 대한 자세한 내용은 Linux 커널 문서를 참조하십시오.

 

관련 제품

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

인텔® Stratix® 10 SX SoC FPGA

1

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