Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
Khởi tạo thiết bị (deinit)¶
Quá trình deinit rất phức tạp và có thể thay đổi. Tài liệu này cung cấp một mức độ cao tổng quan bằng cách sử dụng dòng Ampere GPU làm ví dụ. Mục đích là cung cấp một khái niệm tổng quan về quy trình để hỗ trợ hiểu mã hạt nhân tương ứng.
Khởi tạo thiết bị (devinit) là một chuỗi quan trọng của hoạt động đọc/ghi thanh ghi xảy ra sau khi thiết lập lại GPU. Trình tự deinit là cần thiết để cấu hình đúng phần cứng GPU trước khi có thể sử dụng.
Công cụ devinit là một chương trình thông dịch thường chạy trên PMU (Quản lý nguồn Unit) vi điều khiển của GPU. Trình thông dịch này thực thi một “tập lệnh” khởi tạo lệnh. Bản thân động cơ devinit là một phần của VBIOS ROM trong cùng hình ảnh ROM với Hình ảnh FWSEC (Firmware Security) (xem FWSEC (Bảo mật phần sụn) và VBIOS) và nó chạy trước trình điều khiển nova-core thậm chí còn được tải. Trên Ampere GPU, ucode devinit tách biệt với Mã FWSEC. Nó được khởi chạy bởi FWSEC, chạy trên GSP ở chế độ ‘bảo mật cao’, trong khi devinit chạy trên PMU ở chế độ ‘bảo vệ ánh sáng’.
Các chức năng chính của devinit¶
devinit thực hiện một số nhiệm vụ quan trọng:
Lập trình định thời bộ điều khiển bộ nhớ VRAM
Trình tự nguồn điện
Cấu hình đồng hồ và PLL (Vòng khóa pha)
Quản lý nhiệt
Luồng khởi tạo chương trình cơ sở cấp thấp¶
Khi thiết lập lại, một số bộ vi điều khiển trên GPU (chẳng hạn như PMU, SEC2, GSP, v.v.) chạy GPU mã chương trình cơ sở (gfw) để thiết lập GPU và các thông số cốt lõi của nó. Hầu hết GPU là được coi là không sử dụng được cho đến khi quá trình khởi tạo này hoàn tất.
Các thành phần phần sụn GPU cấp thấp này thường là:
Nằm trong VBIOS ROM trong cùng phân vùng ROM (xem VBIOS và FWSEC (Bảo mật phần sụn)).
Thực hiện theo trình tự trên các bộ vi điều khiển khác nhau:
Động cơ devinit thông thường nhưng không nhất thiết phải chạy trên PMU. - Trên Ampere GPU, FWSEC thường chạy trên GSP (Bộ xử lý hệ thống GPU) trong
chế độ bảo mật cao.
Trước khi trình điều khiển có thể tiến hành khởi tạo thêm, nó phải đợi tín hiệu cho biết quá trình khởi tạo lõi đã hoàn tất (được gọi là GFW_BOOT). Tín hiệu này là được xác nhận bởi FWSEC chạy trên GSP ở chế độ bảo mật cao.
Cân nhắc về thời gian chạy¶
Điều quan trọng cần lưu ý là trình tự devinit cũng cần chạy trong quá trình tạm dừng/tiếp tục hoạt động trong thời gian chạy, không chỉ trong lần khởi động đầu tiên, vì nó rất quan trọng đối với việc quản lý nguồn điện.
Kiểm soát an ninh và truy cập¶
Quá trình khởi tạo bao gồm việc quản lý đặc quyền cẩn thận. Ví dụ, trước đây truy cập vào các thanh ghi trạng thái hoàn thành nhất định, người lái xe phải kiểm tra mức đặc quyền mặt nạ. Một số thanh ghi chỉ có thể truy cập được sau khi chương trình cơ sở an toàn (FWSEC) hạ thấp mức đặc quyền để cho phép truy cập CPU (LS/bảo mật thấp). Đây là trường hợp, ví dụ, khi nhận được tín hiệu GFW_BOOT.