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

Как прописать ATA контроллер в Device Tree для Linux?

Всем привет.

В FPGA части реализован ATA контролер.

Нужно чтобы Linux на HPS мог с ним работать с помощью одного из стандартных драйверов.

Насколько я понимаю, для этого нужно прописать ATA контроллер в Device Tree.

Подскажите, пожалуйста, как правильно это сделать.

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


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

19 минут назад, BSACPLD сказал:

Нужно чтобы Linux на HPS мог с ним работать с помощью одного из стандартных драйверов.

Насколько я понимаю, для этого нужно прописать ATA контроллер в Device Tree.

Подскажите, пожалуйста, как правильно это сделать.

зачем вам сложности на этом этапе?

смотрите подходящий "стандартный" драйвер в ядре, собираете модулем, потом в его функции _probe анализируете чего ему надо из шин, портов и прочих ресурсов, далее адаптируете свою прошивку в фпга или хардкодите ресурсы в драйвере

грузите драйвер и лечите ошибки и так пока probe не отработает на 0

а вот потом уже делаете секцию в dts с описанием, из драйвера выносите хардкод-настройки в dts, для общего понимания google->"kernel ata dts"

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


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

На всякий случай, некая библия для создателей драйверов. Вдруг пригодится в будущем

https://lwn.net/Kernel/LDD3/

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


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

Скажем так.

Я пытаюсь использовать "стандартный" ATA контроллер.

https://opencores.org/projects/ata

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

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


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

20 minutes ago, BSACPLD said:

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

Все относительно просто:

1. Определиться, с чем на самом деле совместим (и совместим ли вообще) этот "стандартный" контроллер

2. Прошерстить имеющиеся dts, найти пример использования

3. Сделать свой по образцу и подобию

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


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

6 minutes ago, aaarrr said:

Определиться, с чем на самом деле совместим (и совместим ли вообще) этот "стандартный" контроллер

В этом то как раз и проблема. Я не знаю откуда взять информацию о поддерживаемых контроллерах.

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


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

Честно говоря я не знаю в каком разделе документации искать данную информацию.

Дистрибутив Angstrom Linux.

Я брал уже собранный под плату SoCkit.

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


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

1 hour ago, BSACPLD said:

Честно говоря я не знаю в каком разделе документации искать данную информацию.

 

драйвера под линукс пишутся однотипно, я бы для начала изучил просто принципы: из чего состоят, как писать под linux kernel... вам уже дали совет про __probe как стартовую точку.

Вообще если погуглить, в linux kernel есть готовый API для ATA, надо просто написать свой модуль и юзать этот api

https://www.kernel.org/doc/html/v5.1/driver-api/libata.html

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


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

Вот еще вариант, если погуглить, внизу раздел Kernel configuration

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842339/SATA

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


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

8 hours ago, BSACPLD said:

Подскажите, пожалуйста, как правильно это сделать.

Читать сюда. Как я уже говорил, Generic AHCI вам все равно придется делать, это как минимум.

21 minutes ago, new123 said:

Вот еще вариант

Судя по слову 'HPS' у товарища Intel/Altera.

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


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

12 minutes ago, gosha-z said:

у товарища Intel/Altera.

у меня тоже. Но удивительный момент. Массу ответов в сложных для себя ситуациях всегда находил на форумах Xilinx =)) Безмерно полезный ресурс.

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


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

13 hours ago, new123 said:

Вот еще вариант, если погуглить, внизу раздел Kernel configuration

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842339/SATA

Я думаю это правильный вариант. Там есть Devicetree пример

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


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

Вроде на pudn есть готовый драйвер под OCIDEC.

http://en.pudn.com/Download/item/id/1090382.html

Коллеги, у кого есть там аккаунт, помогите, пожалуйста, скачать.

Уже скачал :smile: Для регистрации использовал кучу учебных примеров еще со времен учебы в университете :blum3:

Вечно эти китайцы любят создавать ненужный гемморой :ireful3:

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


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

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

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

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

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

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

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

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

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

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