Các bus và thiết bị PCI / PCIe có luôn được liệt kê theo cùng một thứ tự không?


7

Tôi đang xem xét một tình huống có nhiều mô-đun PCIe DAQ giống hệt nhau (National Cụ) trong khung PCI / PCIe, được kết nối thông qua bộ điều khiển khung đơn hoặc kép. Trong trường hợp xấu nhất có thể có 8 mô-đun giống hệt nhau trên xe buýt.

Tôi đã được tin rằng việc liệt kê PCI là không xác định - tức là không có gì đảm bảo rằng, khởi động để khởi động, bus PCI sẽ được liệt kê theo cùng một thứ tự. Điều này có đúng không?

Có phải điều này cũng ám chỉ rằng các giá trị bus / thiết bị / chức năng / PCI / e có thể thay đổi, khởi động để khởi động, ngay cả khi bố trí phần cứng vật lý không?

Nói tóm lại, tôi hiểu rằng việc liệt kê PCI ban đầu được thực hiện bởi BIOS và hệ điều hành khởi động (RHEL 6, trong trường hợp của tôi) sử dụng danh sách liệt kê này cho phần cứng được xác định. Danh sách này có luôn chứa các thiết bị tìm thấy theo cùng một thứ tự hay không?

Đây là một gợi ý trong Bugzilla mũ đỏ điều đó hàm ý rằng thứ tự BIOS luôn giống nhau.

Xin lưu ý rằng tôi chưa (chưa) nói về thứ tự mà HĐH xử lý các thiết bị (ví dụ: trong Linux, xác định thứ tự / dev / name).

Cảm ơn!


2
Không phản hồi. Vì đăng bài chéo được tán thành, làm thế nào để tôi chuyển cái này sang, ví dụ, Stack Overflow?
KevinM

Câu trả lời:


5

Câu trả lời ngắn gọn là "Có", nếu BIOS (thực hiện phép liệt kê ban đầu) tuân thủ thông số kỹ thuật PCI.

Theo: "Kiến trúc hệ thống PCI Express" R. Budruk, D. Anderson, T. Shanley, ADDISON-WESLEY DevelopER PRESS, 2003. ISBN: 0-321-15630-7, trang 743:

Thông số kỹ thuật nói rằng phần mềm liệt kê phải thực hiện   tìm kiếm theo chiều sâu, vì vậy trước khi tiến hành khám phá các chức năng bổ sung /   thiết bị trên bus 0, nó phải tiến hành tìm kiếm bus 1.

Va cho VĂN 6 :

9. Trình điều khiển thiết bị và thiết bị

Đặt hàng thiết bị PCI

Trong Red Hat Enterprise Linux 6, việc đặt hàng thiết bị PCI dựa trên thiết bị PCI   liệt kê. Phép liệt kê thiết bị PCI dựa trên thuật toán liệt kê PCI (độ sâu   đầu tiên sau đó là chiều rộng) và không đổi trên mỗi loại hệ thống. Ngoài ra, một khi các thiết bị được   được phát hiện, quá trình tải mô-đun được tuần tự hóa, cung cấp việc đặt tên liên tục của   các giao diện.

Tuy nhiên, (một số phiên bản?) Linux hỗ trợ tham số kernel "pci = bfsort", thay đổi thuật toán liệt kê Linux thành "chiều rộng đầu tiên". Điều này sẽ thay đổi thứ tự mà hạt nhân Linux tải và khởi tạo các thiết bị PCI viết về cách thức hoạt động của BIOS.

Trong mọi trường hợp, từ boot-to-boot, danh sách liệt kê sẽ vẫn chứa các mục được phát hiện theo cùng một thứ tự.


@hbogert Cả hai đều khác nhau? Cụm từ chính là "hằng số cho mỗi loại hệ thống". Cơ hội mà một trong các hệ thống của bạn đang thực hiện tìm kiếm đầu tiên là gì?
KevinM

Có vẻ như là một con sán và không thể tái sản xuất, bỏ qua
hbogert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.