Jump to content

    

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

Всем привет.

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

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

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

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

Share this post


Link to post
Share on other sites
19 минут назад, BSACPLD сказал:

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Скажем так.

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

https://opencores.org/projects/ata

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

Share this post


Link to post
Share on other sites
20 minutes ago, BSACPLD said:

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

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

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

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

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

Share this post


Link to post
Share on other sites
6 minutes ago, aaarrr said:

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

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

Share this post


Link to post
Share on other sites

А в документации на ваше ядро ничего не сказано по этому поводу?

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Я IP-core имел в виду. На первый взгляд, оно ни с чем не совместимо.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
8 hours ago, BSACPLD said:

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

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

21 minutes ago, new123 said:

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

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

Share this post


Link to post
Share on other sites
12 minutes ago, gosha-z said:

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

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

Share this post


Link to post
Share on other sites
13 hours ago, new123 said:

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now