LINUX.ORG.RU

портировать драйвер с линукса на FreeBSD

 , , ,


0

2

Приветствую,

Есть потребность портировать PCIe драйвер на BSD, версия BSD неизвестна но думаю на данном этапе это не страшно, так как хочу понять какие компоненты потребуют особенного внимания. Удобно то, что драйвер уже поделен на две части, OS independent (то есть библиотека абстракций для каждой OS, спинлоки, ф-ции выделения памяти и пр.) и OS dependent.

  • инициализационный код для BSD (аналог init_module, cleanup_module и сопутствующее на линуксе)
  • код для регистрации PCI драйвера в ядре
  • код для регистрации char device и соответствующих file_operations
  • DMA операции

На что еще обратить внимание, что еще я упустил? Если есть полезные ссылки на разработку драйверов под BSD, с удовольствием приму :)

Спасибо.

★★

Я бы просто писал с нуля, обильно заглядывая в код бздёвого драйвера... стоп, надо наоборот. Но тоже с нуля бы...

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Ты бы написал, что за устройство. Для звуковых карт свои особенности, для сетевых плат свои. Но обычно всё весьма просто.

Для pci, говоришь? Тогда тебе понадобятся маны:

man 9 pci, man 9 bus_space, man 9 bus_dma

Для создания именно драйвера нужно определить только 3 метода device_probe, device_attach, device_detach. Маны по теме:

man 9 devclass, man 9 device, man 9 driver, man 9 device_get_softc

anonymous
()
Ответ на: комментарий от anonymous

Ты можешь открыть в редакторе код любого драйвера и списать скелет оттуда.

Смотри /usr/src/sys/dev/

Вопросы можешь задавать сюда, я постараюсь ответить

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Устройство представляет из себя аппаратный ускоритель операций шифрования.

cruz7 ★★
() автор топика
Ответ на: комментарий от anonymous

Спасибо за ссылки. Есть ли принципиальная разница в написании PCI драйверов под FreeBSd 6.x, 9.x и 10.x?

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

Вряд ли. Хотя зачем тебе такое старьё как 6-я версия надо — ума не приложу

anonymous
()
Ответ на: комментарий от cruz7

А в линуксе ты как им пользуешься?

anonymous
()

FreeBSD_Device_Drivers_A_Guide_For_The_Intrepid_(2012).pdf (книжка на аглицком)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.