Перейти к содержанию
    

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

Всем привет!

 

Взял за основу пример для платы 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)

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

Изменено пользователем chirik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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>;

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...