문서 ID: 000086392 콘텐츠 형태: 문제 해결 마지막 검토일: 2018-10-18

10 HPS UART/I2C/SPI 주변 장치 인텔® Stratix® 잘못된 속도로 실행되거나 Linux에서 작동하지 않는 이유는 무엇입니까?

환경

  • 인텔® Quartus® Prime Pro Edition
  • Linux-socfpga 4.X

    BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    두 가지 다른 문제로 인해 UART, I2C 및 SPI IP의 인텔® Stratix® 10 SoC FPGA 하드 프로세서 시스템(HPS) 장치는 이전 커널 버전에서 잘못된 속도로 실행될 수 있습니다.

    기본값이 아닌 MPU 클럭 주파수가 사용되는 경우 SoC FPGA Linux Kernels 4.17 이상(2018년 6월 이후): 23d4f7b2c6000e09539a6266ef35c213f93649e를 커밋하기 https://github.com/altera-opensource/linux-socfpga 고정 및 패치 업로드

    • SoC FPGA Linux 4.17 커널 이상에서는 Stratix 10 클럭 관리자 드라이버가 FPGA 비트스트림에서 클럭 정보를 추출합니다. 장치 트리에는 참조 클럭 주파수만 지정됩니다.
    • 문제로 인해 MPU 주파수가 기본값이 아닌 값으로 설정된 경우 일부 주파수가 올바르지 않을 수 있습니다.

    SoC FPGA Linux Kernels 2018년 6월 이전 4.17 및 4.16 이전:

    • Linux Device Tree에는 인텔® Stratix® 10 SoC FPGA 하드 프로세서 시스템(HPS)의 클럭 구조에 대한 정보가 포함되어 있습니다. 인텔® Quartus® Prime Pro 플랫폼 디자이너 시스템에서 하드 프로세서 시스템 인텔 Stratix 10 FPGA IP의 클럭 설정을 반영해야 합니다.  보드와 디자인을 반영하도록 클럭 구조가 업데이트되지 않은 경우, 주변 장치는 Linux에서 잘못 작동할 수 있습니다.  일반적인 문제는 UART 또는 I2C 인터페이스가 u-boot에서 작동하지만 Linux에서 작동하지 않는 것입니다.
    • 문제로 인해 MPU 주파수가 기본값이 아닌 값으로 설정된 경우 일부 주파수가 올바르지 않을 수 있습니다(아래 해결 방법).

    이 문제는 최신 커널 버전에 대해 해결되었습니다. 클럭 정보는 FPGA 구성 비트스트림 및 업데이트된 클럭 드라이버에서 읽습니다.

    해결 방법

    기본값이 아닌 MPU 클럭 주파수가 사용되는 경우 SoC FPGA Linux Kernels 4.17 이상(2018년 6월 이후)

    또한 관련 KDB: HPS 참조 클럭으로 f2s_free_clock 사용할 때 인텔® Stratix® 10 SoC에서 Linux가 부팅되지 않는 이유는 무엇입니까?

     

    Soc FPGA Linux Kernels 4.17 2018년 6월 이전 및 4.16 이전 :

    디자인의 클럭 설정을 반영하기 위해 Linux Device Tree를 업데이트하는 방법에 대한 자세한 내용은 플랫폼 디자이너의 클럭 설정과 일치하도록 Stratix 10 SX용 Linux Device Tree를 업데이트하는 방법을 참조하십시오.

    기본 MPU 클럭 주파수가 아닌 경우 수학 오류를 해결하려면

    - 장치 트리에서 수동으로 L3,L4 L4 저속 클럭 주파수 설정

    ○ PLL을 설명하는 논리를 남겨 두십시오.

    ○ L3 디바이더에서 클럭 재정의

     

    l3_main_free_clk: l3_main_free_clk {

    #clock 셀 = ;

    #compatible = "altr,socfpga-s10-perip-clk";

    #clocks = ;

    #fixed 분할기 = ;

    클럭 주파수 = ;

    호환성 = "고정 클럭"

                        

    };

     

    l4_sys_free_clk: l4_sys_free_clk {

    #clock 셀 = ;

    #compatible = "altr,socfpga-s10-perip-clk";

    #clocks = ;

    #fixed 분할기 = ;

    클럭 주파수 = ;

    호환성 = "고정 클럭"

    };

     

    l4_main_clk: l4_main_clk {

    #clock 셀 = ;

    #compatible = "altr,socfpga-s10-gate-clk";

    #clocks = ;

    클럭 주파수 = ;

    호환성 = "고정 클럭";

    #div-reg = ;

    #clk 게이트 = ;

    };

     

    l4_mp_clk: l4_mp_clk {

    #clock 셀 = ;

    #compatible = "altr,socfpga-s10-gate-clk";

    #clocks = ;

    클럭 주파수 = ;

    호환성 = "고정 클럭";

    #div-reg= ;

    #clk 게이트 = ;

    };

     

    l4_sp_clk: l4_sp_clk {

    #clock 셀 = ;

    #compatible = "altr,socfpga-s10-gate-clk";

    #clocks = ;

    클럭 주파수 = ;

    호환성 = "고정 클럭";

    #div-reg= ;

    #clk 게이트 = ;

    };

    관련 제품

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

    인텔® Stratix® 10 SX SoC FPGA

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