ID do artigo: 000086394 Tipo de conteúdo: Documentação e informações do produto Última revisão: 17/10/2018

Como atualizar a Árvore de dispositivos Linux para dispositivos Intel® Stratix® 10 SX para corresponder às configurações do clock no Quartus® Prime Pro Platform Designer?

Ambiente

    Intel® Quartus® Prime Pro Edition

Linux-socfpga 4.X

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

SoC FPGA Linux Kernel versões 4.17 de junho de 2018 e mais recente, e 4.18 e mais recente:

  • Apenas as frequências de clock de referência de nível superior para o Intel® Stratix® 10 SX são especificadas na Árvore de Dispositivos Linux.
  • A configuração da árvore de clock conforme definida no componente Stratix 10 HPS no design da plataforma Intel® Quartus® Prime Pro Designer é carregada a partir do fluxo FPGA bitstream pelo driver do Gerenciador de Clock.

Para SoC FPGA Linux Kernel versão 4.17 (pré-junho de 2018) e anterior:

A Árvore de dispositivos Linux contém informações sobre a estrutura completa de clocking do Intel® Stratix® 10 SX e deve refletir a configuração do clock no componente de HPS Stratix 10 no design de designer de plataformas Intel® Quartus® Prime Pro.

Se a estrutura de clocking não for atualizada para refletir sua placa e seu design, os periféricos podem operar incorretamente no Linux.

O kernel Linux contém uma árvore de dispositivos genérica de alto nível e uma árvore de dispositivos de exemplo para o kit de desenvolvimento Intel Stratix 10 SX:

arch/arm64/boot/dts/altera/

socfpga_stratix10.dtsi #Generic árvore de dispositivos de alto nível

Socfpga_stratix10_socdk.dts # Árvore de dispositivos de exemplo para o kit de desenvolvimento Intel Stratix 10 SX, Design de referência de hardware dourado (GHRD) e Design de referência de software dourado (GSRD)

 

Nota:

  • O Design de referência de hardware dourado (GHRD) é enviado com Intel FPGA SoC EDS nos exemplos/hardware/pasta
  • O Design de referência de software dourado (GSRD) pode ser baixado Rocketboards.org https://rocketboards.org/foswiki/Documentation/GSRD

Este problema foi corrigido em versões mais recentes do kernel (5.X)

Resolução

SoC FPGA Linux Kernel versões 4.17 de junho de 2018 e mais recente, e 4.18 e mais recente:

Apenas as frequências de clock de referência de nível superior para o Intel® Stratix® 10 SX são especificadas na Árvore de Dispositivos Linux.

clkmgr@ffd10000 {

clocks {

osc1 { frequência do clock = ;        };

};

};

 

Para SoC FPGA Linux Kernel versão 4.17 (antes de junho de 2018) e anterior:

O socfpga_stratix10.dtsi mostra as configurações possíveis para cada componente da árvore de clock.

peri_emacb_clk: peri_emacb_clk@ec {

#clock-células = ;

compatível = "altr,socfpga-s10-perip-clk";

clocks = , , , , ;

reg = ;

};

 

Abaixo está parte da árvore mostrando o clock que fornece o UART e o I2C.  Observe que, por padrão, os clocks de origem para o IP estão definidos, mas sua conexão na árvore não está definida.  O conjunto de IP que há de l4_sp_clock, que é impulsionado por noc_clk, mas noc_clk e noc_free_clk não tem um driver definido:

:

main_noc_base_clk: main_noc_base_clk {

...

clocks = < e main_pll>;

...

};

noc_free_clk: noc_free_clk@4c {

...

clocks = , ,

, ,

< e f2s_free_clk>;

...

};

noc_clk: noc_clk@30 {

...

clocks = , < e boot_clk>;

...

};

l4_sp_clk: l4_sp_clk {

...

clocks = < e noc_clk>;

...

};

i2c1: i2c@ffc02900 {

...

clocks = < e l4_sp_clk>;

...

};

uart0: serial0@ffc02000 {

...

clocks = < e l4_sp_clk>;

...

};

 

As configurações necessárias podem ser aplicadas através do arquivo .dts para sua placa usando a sintaxe mostrada abaixo:

 

soc {

clkmgr@ffd10000 {

clocks {

osc1 {

frequência do clock = ;

};

periph_pll@e4 {

peri_emaca_clk@e8{

clocks = < e periph_pll>;

};

peri_emacb_clk@ec {

clocks = < e periph_pll>;

};

};

noc_free_clk@4c {

clocks = < e main_noc_base_clk>;

};

noc_clk@30 {

clocks = < e noc_free_clk>;

};

emaca_free_clk {

clocks = < e peri_emaca_clk>;

};

emacb_free_clk {

clocks = ;

};

emac0_clk {

clocks = ;

};

emac1_clk {

clocks = ;

};

emac2_clk{

clocks = ;

};

};

};

};

};

 

O acima corrije o problema para o UART/I2C e também define alguns clocks Ethernet.   A árvore do clock agora está completa desde UART/I2C até o PLL principal..   Isso significa que a lógica que configura o UART e o I2C com base na frequência do clock de origem pode fazer o cálculo certo.

Para obter mais informações sobre a Árvore de Dispositivos, consulte a documentação do Linux Kernel.

 

Produtos relacionados

Este artigo aplica-se a 1 produtos

FPGA Intel® Stratix® 10 SX SoC

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.