FPGA / HPS / IRQ Неопределенности - PullRequest
0 голосов
/ 12 октября 2018

Hy ARM друзья, я работаю с GNU / Linux 4.3.0-gda24fe1-dirty, Cortex-A9, armv7l, Arria10 SoC.У меня есть несколько вопросов относительно HPS IRQ-номеров для UART-ядра FPGA-IP (модуль altera_uart.ko).Обычно мне приходится использовать 4 из этих IP-адресов.Несколько полезных советов, которые я извлек из поста «Ядро останавливается при доступе к последовательному устройству на ПЛИС», спросил 20 июня 16 года.Arria10 HPS TechRefMan (a10_5v4, 2017.07.22, 10.3.12 Generic Interrupt Controller) говорит для номеров FPGA-IRQ 16/17/18/19, сообщенных моим программистом FPGA / QSYS:

  • Номера прерываний GIC 67 до 70 для F2S_FPGA_IRQ16 - F2S_FPGA_IRQ19

Используемый и установленный драйвер ALTERA сообщает:

  • ff300000.uartcore0: ttyAL0 для MMIO 0xff300000 (irq = 37 , base_baud = 3125000) представляет собой Altera UART

.....

  • ff300300.uartcore3: ttyAL3 в MMIO 0xff300300 (irq = 40 , base_baud = 3125000) - это Altera UART

Моя запись DTR для FPGA-IP UART выглядит (только первая запись UART)):

uart2: uartcore0@0xff300000 {
   compatible = "altr,uart-1.0";
   reg = <0xff300000 0x100>;
   interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
   clock-frequency = <50000000>;
   current-speed = <115200>;
   status = "okay";
}; 

Я также изучал соответствующие статьи 'Cortex-A9 MPCore, Редакция: r4p1, Техническое справочное руководство', Универсальный контроллер прерываний ARM, Архитектура версии 1.0, Спецификация архитектуры 'и' ALTERA Using ARM, Универсальный контроллер прерываний для Quartus Prime 15.1».

Но нигде я не мог найти четких определений

  • , как выбрать номера IRQ
  • модель программного обеспечения, чтобы реагировать на произошедшее аппаратное прерывание
  • какзарегистрироваться в ARM / HPS для конкретного шаблона IRQ
  • для ISR

Спасибо за вашу поддержку этой таинственной и непрозрачной обработки DTS / прерываний!БР Эгон: -)

...