ID de l'article: 000086394 Type de contenu: Information et documentation de produit Dernière révision: 17/10/2018

Comment mettre à jour l’arbre de périphériques Linux pour Intel® Stratix® les périphériques 10 SX pour correspondre aux paramètres d’horloge de Quartus® Prime Pro Platform Designer ?

Environnement

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

    BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    SoC FPGA versions 4.17 juin 2018 et ultérieures du noyau Linux, ainsi que les versions 4.18 et ultérieures :

    • Seules les fréquences d’horloge de référence de haut niveau pour les Intel® Stratix® 10 SX sont spécifiées dans l’Arbre des périphériques Linux.
    • La configuration de l’arbre d’horloge telle que définie sur le composant Stratix 10 HPS du Intel® Quartus® conception Prime Pro Platform Designer est chargé à partir du FPGA flux binaire par le pilote du Gestionnaire d’horloge.

    Pour les SoC FPGA noyau Linux version 4.17 (avant juin 2018) et antérieures :

    L’arbre de périphériques Linux contient des informations sur la structure d’horloge complète du Intel® Stratix® 10 SX et doit refléter la configuration de l’horloge dans le composant Stratix 10 HPS dans la conception Intel® Quartus® Prime Pro Platform Designer.

    Si la structure d’horloge n’est pas mise à jour pour refléter votre carte et votre conception, les périphériques peuvent fonctionner de manière incorrecte sous Linux.

    Le noyau Linux contient un arbre de périphérique générique de haut niveau et un arbre d’appareil exemple pour le kit de développement Intel Stratix 10 SX :

    arch/arm64/boot/dts/altera/

    socfpga_stratix10.dtsi #Generic arbre des appareils de haut niveau

    Socfpga_stratix10_socdk.dts # Exemple d’arbre de périphérique pour le kit de développement Intel Stratix 10 SX, Gold Hardware Reference Design (GHRD) et Gold Software Reference Design (GSRD)

     

    Note:

    • La conception de référence matérielle Gold (GHRD) est expédiée avec Intel FPGA SoC EDS dans les exemples/matériel/dossier
    • Le GSRD (Golden Software Reference Design) peut être téléchargé depuis Rocketboards.org https://rocketboards.org/foswiki/Documentation/GSRD

    Ce problème a été résolu dans les versions ultérieures du noyau (5.X)

    Résolution

    SoC FPGA versions 4.17 juin 2018 et ultérieures du noyau Linux, ainsi que les versions 4.18 et ultérieures :

    Seules les fréquences d’horloge de référence de haut niveau pour les Intel® Stratix® 10 SX sont spécifiées dans l’Arbre des périphériques Linux.

    clkmgr@ffd10000 {

    horloges {

    osc1 { fréquence d’horloge = ;        };

    };

    };

     

    Pour les SoC FPGA noyau Linux version 4.17 (avant juin 2018) et antérieures :

    Le socfpga_stratix10.dtsi montre les paramètres possibles pour chaque composant de l’arbre d’horloge.

    peri_emacb_clk : peri_emacb_clk@ec {

    cellules #clock = ;

    compatible = « altr, socfpga-s10-perip-clk » ;

    horloges = , , , , ;

    reg = ;

    };

     

    Vous trouverez ci-dessous une partie de l’arbre montrant l’horloge fournissant l’UART et l’I2C.  Notez que par défaut, les horloges source de l’IP sont définies, mais que leur connexion dans l’arbre n’est pas définie.  L’IP définie y est l4_sp_clock, pilotée par noc_clk, mais noc_clk et noc_free_clk ne dispose pas d’un pilote défini :

    :

    main_noc_base_clk : main_noc_base_clk {

    ...

    horloges = < et main_pll> ;

    ...

    };

    noc_free_clk : noc_free_clk@4c {

    ...

    horloges = , < et peri_noc_base_clk>

    < et f2s_free_clk>

    ...

    };

    noc_clk : noc_clk@30 {

    ...

    horloges = , < et boot_clk> ;

    ...

    };

    l4_sp_clk : l4_sp_clk {

    ...

    horloges = < et noc_clk> ;

    ...

    };

    i2c1 : i2c@ffc02900 {

    ...

    horloges = < et l4_sp_clk> ;

    ...

    };

    uart0 : serial0@ffc02000 {

    ...

    horloges = < et l4_sp_clk> ;

    ...

    };

     

    Les paramètres requis peuvent être appliqués dans le fichier .dts de votre carte en utilisant la syntaxe indiquée ci-dessous :

     

    soc {

    clkmgr@ffd10000 {

    horloges {

    osc1 {

    fréquence d’horloge = ;

    };

    periph_pll@e4 {

    peri_emaca_clk@e8{

    horloges = < et periph_pll> ;

    };

    peri_emacb_clk@ec {

    horloges = < et periph_pll> ;

    };

    };

    noc_free_clk@4c {

    horloges = < et main_noc_base_clk> ;

    };

    noc_clk@30 {

    horloges = < et noc_free_clk> ;

    };

    emaca_free_clk {

    horloges = < et peri_emaca_clk> ;

    };

    emacb_free_clk {

    horloges = < et peri_emacb_clk> ;

    };

    emac0_clk {

    horloges = ;

    };

    emac1_clk {

    horloges = ;

    };

    emac2_clk{

    horloges = ;

    };

    };

    };

    };

    };

     

    Ce qui précède résout le problème de l’UART /I2C et définit également certaines horloges Ethernet.   L’arbre de l’horloge est maintenant terminé depuis L’UART /I2C jusqu’à la PLL principale.   Cela signifie que la logique qui définit l’UART et l’I2C en fonction de la fréquence d’horloge source peut faire le bon calcul.

    Pour plus d’informations sur Device Tree, consultez la documentation sur le noyau Linux.

     

    Produits associés

    Cet article concerne 1 produits

    FPGA SoC Intel® Stratix® 10 GX

    Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.