Jump to content

    
Sign in to follow this  
chirik8807

Cyclone V SoC / soc_system.dts добавление ip блока

Recommended Posts

Всем привет!

 

Взял за основу пример для платы DE10_Standard -> DE10_Standard_GHRD (quartus, qsys, soc_system.dts)

1) Добавил блок Frame Buffer II (и соответственно тестовую таблицу и вывод видео)

2) Добавил в hps еще один интерфейс f2h_sdram1

soc_system.rar

 

Внес изменения в soc_system.dts но в нем есть места в которых я не уверен.

мой DE10_GHRD_vip_soc_system.dts: DE10_GHRD_vip_soc_system.txt

Описание в нем Frame Buffer II https://github.com/terasic/linux-socfpga/bl...eo/altvipfb.txt

alt_vip_vfr_0: vip@0x100010000 {

compatible = "altr,vip-frame-reader-1.0";

reg = <0x00000001 0x00010000 0x00000080>;

max-width = <640>;

max-height = <480>;

bits-per-color = <8>;

mem-word-width = <128>;

};

В нем почему то не строчки с клоком clocks = <&clk_0>; как в других блоках, так и должно быть?

 

По ангиологии поправил описание моста

hps_0_bridges: bridge@0xc0000000 {

compatible = "altr,bridge-16.1", "simple-bus";

reg = <0xc0000000 0x20000000>,

<0xff200000 0x00200000>;

reg-names = "axi_h2f", "axi_h2f_lw";

clocks = <&clk_0 &clk_0 &clk_0 &clk_0>;

clock-names = "h2f_axi_clock", "h2f_lw_axi_clock", "f2h_sdram0_clock", "f2h_sdram1_clock";

#address-cells = <2>;

#size-cells = <1>;

ranges = <0x00000001 0x00020000 0xff220000 0x00000008>,

<0x00000001 0x00030000 0xff230000 0x00000100>,

<0x00000001 0x00001000 0xff201000 0x00000008>,

<0x00000001 0x00005000 0xff205000 0x00000010>,

<0x00000001 0x00004000 0xff204000 0x00000010>,

<0x00000001 0x00003000 0xff203000 0x00000010>;

<0x00000001 0x00010000 0xff210000 0x00000080>;

Здесь жирным цветом, то что я добавил правильно ли?

 

И в описании клоков clocks

hps_0_f2s_sdram_ref_clk: hps_0_f2s_sdram_ref_clk {

compatible = "fixed-clock";

#clock-cells = <0>;

clock-frequency = <0>; /* 0.00 Hz */

clock-output-names = "hps_0_f2s_sdram_ref_clk-clk";

}; //end hps_0_f2s_sdram_ref_clk (hps_0_f2s_sdram_ref_clk)

этот клок не задан, не совсем понял, что это за клок и нужен ли он мне?

Edited by chirik

Share this post


Link to post
Share on other sites

Доброго времени суток. Оговорюсь сразу, что ответа на ваши вопросы я не знаю. Но темой интересуюсь, т.к. потихоньку, разбираюсь с платой DE10-Nano.

Если я правильно понимаю, то Device Tree Blob (DTB), в который в последствии должен конвертироваться .dts файл, читается при загрузке Linux различными модулями ядра (драйверами), причем, разные секции разными модулями, глядя по тому, какая информация об аппаратуре их интересует. Например про alt_vip_vfr_0 интересно знать графическим модулям, а про мост hps_0_bridges: bridge@0xc0000000, который вы добавляете, кто и что должен знать в системе? Кто будет его использовать? Мне кажется, от этого зависит что там должно быть.

Прошу поправить, если я что-то не так понимаю.

 

Share this post


Link to post
Share on other sites

ranges = <0x00000001 0x00020000 0xff220000 0x00000008>,
<0x00000001 0x00030000 0xff230000 0x00000100>,
<0x00000001 0x00001000 0xff201000 0x00000008>,
<0x00000001 0x00005000 0xff205000 0x00000010>,
<0x00000001 0x00004000 0xff204000 0x00000010>,
<0x00000001 0x00003000 0xff203000 0x00000010>;
<0x00000001 0x00010000 0xff210000 0x00000080>;

Бросается в глаза точка с запятой в конце предпоследней строки.

Наверное, надо исправить на запятую.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this