2017-01-20 8 views
0

У меня есть устройство с двумя PCI-картами xilinx, подключенными к PCIe, а архитектура устройства - PowerPC. Я могу переключить версию ядра, сделав символическую ссылку в каталоге/boot.Почему где-то между linux kernel 3.14 и 4.9 Именование имен PCI изменилось?

на 3,14 ядро ​​Утилита lspci производит:

0000:00:00.0 Class 0604: Device 1957:0070 (rev 21) 
0000:01:00.0 Class 0200: Device 1234:0045 (rev 78) 
0001:02:00.0 Class 0604: Device 1957:0070 (rev 21) 
0001:03:00.0 Class 0200: Device 1234:0100 (rev 63) 

А на 4,9 ядре Утилита lspci производит:

9000:00:00.0 Class 0604: Device 1957:0070 (rev 21) 
9000:01:00.0 Class 0200: Device 1234:0045 (rev 78) 
a000:02:00.0 Class 0604: Device 1957:0070 (rev 21) 
a000:03:00.0 Class 0200: Device 1234:0100 (rev 63) 

выхода Утилита lspci соответствует SYS/шины/PCI/устройство/содержание/каталог. Мой вопрос в том, почему между ядром 3.14 и 4.9 имя устройства pci изменилось? Для обоих ядер мы имеем одно и то же оборудование, дерево устройств dtb и все остальное общее.

+0

Что-то случилось с endianess или поддержкой PCI PowerPC. Попробуйте сначала найти ближайшие две версии, работающие нерабочие. Затем запустите на нем 'git bisect'. Кроме того, попробуйте использовать ядра v3.14.x и v4.9.x из стабильного дерева. – 0andriy

+1

Я бы предположил, что это причина: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1560514. Если вы согласитесь, я сделаю это в ответ. – michaeljt

+0

Пожалуйста, сначала проверьте, что упомянутый патч исправляет вашу проблему. Но, с первого взгляда, он действительно делает что-то для нумерации устройств. – 0andriy

ответ

0

Я бы предположил, что в вашей системе есть другие устройства PCI. Если это действительно так, вы видите разницу с другими устройствами PCI в контексте вывода lspci между этими двумя ядрами?

Рами Розен

0

Re-исполняю свой комментарий в качестве ответа, так как их не было никакого ответа на мой комментарий. Вопрос в том, почему сообщаемые части домена идентификаторов PCI, которые были 0 и 1 с Linux 3.19, являются 0x9000 и 0xa000 с Linux 4.9. Commit 63a72284 в Linux 4.7 изменяет значения, назначенные для доменов, чтобы быть предсказуемыми значениями на основе информации дерева устройств вместо последовательных чисел, начиная с 0. Я думаю, что это безопасное предположение, что это коммит является причиной изменения.