Обработка IRQ

Kernel architecture questions
  • С msi я разобрался. Особых проблем не видно, если не только не опасаться нехватки векторов прерываний. Никакие данные msi в обработчик передать не может, как и обычное прерывание. На драйвер нагрузка тоже не велика, большую часть операций должно делать ядро. Например драйвер вызывает attach_msi_irq(bdf, cfg_addr, user_data) и ядро само выбирает свободный вектор и программирует железо.

    Мне понравилась реализация irq в R600+. Аналог командного процессора но наоборот. Устройство пишет в кольцевой буфер 128 бит в следующем формате

    Code: Select all

    /*        r600 IV Ring
     * Each IV ring entry is 128 bits:
     * [7:0]    - interrupt source id
     * [31:8]   - reserved
     * [59:32]  - interrupt source data
     * [127:60]  - reserved
     *
     * The basic interrupt vector entries
     * are decoded as follows:
     * src_id  src_data  description
     *      1         0  D1 Vblank
     *      1         1  D1 Vline
     *      5         0  D2 Vblank
     *      5         1  D2 Vline
     *     19         0  FP Hot plug detection A
     *     19         1  FP Hot plug detection B
     *     19         2  DAC A auto-detection
     *     19         3  DAC B auto-detection
     *     21         4  HDMI block A
     *     21         5  HDMI block B
     *    176         -  CP_INT RB
     *    177         -  CP_INT IB1
     *    178         -  CP_INT IB2
     *    181         -  EOP Interrupt
     *    233         -  GUI Idle
    
    Сдаётся мне что между src_id=1 src_id=233 занято намного больше значений.
  • Удалил функции 41,42,44,45. Ф. 43 кандидат на удаление в ближайшее время. Смысла в ней уже давно нет, потому что есть прямой доступ к портам, защищённый битовой картой доступа. Если кто-то использует ф.43 замените её обычными командами in/out.
  • А есть уверенность, что какая-нибудь из сетевых программ не использует эти функции?
  • А зачем им ? Только ppp работает с COM портом. Дайлап ещё актуален ?
  • Не знаю, но не мешало бы проверить исходники на SVN, чтобы потом "грабли" не кричать. :wink:
  • А всё равно пришлось бы убирать. Так с прерываниями не работают.
  • Залил расшареные обработчики на SVN. Весь код собран в core/irq.inc. Дальше буду частями заливать APIC.
    Last edited by Serge on Wed Aug 24, 2011 5:39 pm, edited 1 time in total.
  • core/irq.inc, FTFY. Не нужно травмировать людей.
    in code we trust
  • Уже исправил. И не только irq.inc.
  • Ох уж эти сишники. :wink:
  • Who is online

    Users browsing this forum: No registered users and 7 guests