USB và Bộ điều khiển Bộ điều khiển máy chủ
Hệ điều hành mang cho một bộ điều khiển máy chủ đờng truyền (USB) Tuần tự Phổ thông tới một trạng thái thao tác sử dụng sau đây những bớc :
- Tải bộ điều khiển bộ điều khiển máy chủ và tìm thấy bộ điều khiển máy chủ.
- Xác minh bộ điều khiển máy chủ và cấp phát những tài nguyên hệ thống. - Cầm điều khiển của bộ điều khiển máy chủ.
- Thiết lập những vùng truyền thông bộ điều khiển sổ đăng ký và máy chủ bộ điều khiển máy chủ ( HCCA).
- Khởi động sự gửi Khởi động của những dấu hiệu Khung ( SOF) trên USB. - Mục này khảo sát bớc ba của quá trình - cầm điều khiển của bộ điều khiển máy chủ - trong ngữ cảnh của việc cung cấp một giải pháp tới vấn đề của sự hỗ trợ bàn phím và chuột di sản khi một bàn phím USB, con chuột, hoặc cả hai gắn liền tới PC. Thông tin trong mục này ứng dụng vào cả Microsoftđ Windowsđ 98 lẫn Windows 2000.
- USB hỗ trợ trong Windows 98 và Windows 2000 đợc thiết kế dựa vào những sự giả thiết này :
- Những nhà cung cấp Hệ thống muốn hỗ trợ những bàn phím và những con chuột USB khi BIOS có điều khiển của Hệ thống ( cho ví dụ, bàn phím USB làm việc khi chơng trình cài đặt BIOS là việc chạy hoặc Hệ thống đang chạy trong MS - kiểu DOSđ).
- Những nhà cung cấp phần cứng và vi chơng trình bộ điều khiển máy chủ cung cấp số lợng nào đó của sự hỗ trợ cho sự mô phỏng của PS / những bàn phím và những con chuột 2 thích hợp bởi những bàn phím và những con chuột USB.
Dới những điều kiện nơi những sự giả thiết này đợc gặp, mục này mô tả cách mà bộ điều khiển máy chủ Windows mà những bộ điều khiển trao bàn phím USB và con chuột bên ngoài ngắt xử lý giữa hệ điều hành và BIOS. Bộ điều khiển Bộ điều khiển máy chủ Giao diện ( UHCI) Bộ điều khiển đợc sử dụng bởi bộ điều khiển Bộ điều khiển máy chủ Giao diện ( OHCI) Bộ điều khiển máy chủ và máy chủ chung Mở những thi hành khác bởi vì những sự khác nhau cơ bản trong OHCI và những thuyết minh UHCI. Cả hai sự thi hành đợc mô tả trong mục này.
Hệ điều hành / BIOS handoff của sự hỗ trợ bàn phím và chuột di sản Là một quá trình hai chiều. Nói cách khác, handoff có thể xuất hiện từ BIOS đến hệ điều hành hoặc từ hệ điều hành đến BIOS. Cả hai phơng hớng handoff đợc mô tả trong mục này. Một sự nối tiếp ví dụ của những sự kiện mà kéo handoff của)bộ điều khiển máy chủ vào cả hai phơng hớng là Hình 1 đợc đa vào
Hình 1. Sự nối tiếp Ví dụ của những sự kiện trong handoff của bộ điều khiển máy chủ.
Thời gian hàng trong Hình 1 bắt đầu với một nguồn điện - Lên trên ( mồi nguội) Sự kiện trên PC.
Ngay lập tức sau nguồn điện - Lên trên và cho thời hạn nào đó, BIOS điều khiển PC và bộ điều khiển máy chủ. Trong thời gian này interval, Một ngời dùng cần phải có thể sử dụng một bàn phím USB để vào Cài đặt BIOS và sử dụng những tất cả chìa khóa trên bàn phím USB mà hợp lệ Trong thời gian Cài đặt BIOS.
Nếu ngời dùng không chọn vào Cài đặt BIOS, BIOS khởi động hệ điều hành ở tại điểm nào đó và hệ điều hành cầm điều khiển của PC và bộ điều khiển máy chủ. Nh Hình 1 đợc đa vào, mã trong một thờng lệ trong bộ điều khiển bộ điều khiển máy chủ hệ điều hành thực hiện những bớc cần thiết để trao ra khỏi điều khiển của hàm hỗ trợ bàn phím gia tài từ BIOS đến bộ điều khiển bộ điều khiển máy chủ hệ điều hành ( trong mục này, thờng lệ đó đợc gọi StopBIOS).
Hình 1 đợc đa vào sự kiện tiếp theo Xuất hiện khi ngời dùng thuê danh sách Đóng cửa để đóng tới MS-DOS. Cái này gây ra bộ điều khiển bộ điều khiển máy chủ sẽ đợc tháo gỡ; trớc khi tháo gỡ, nó thực hiện một thờng lệ mà
thực hiện cần thiết những bớc để trao ra khỏi điều khiển của bàn phím di sản hỗ trợ hàm tới BIOS ( trong mục này, bộ điều khiển bộ điều khiển chủ nhà đó thờng lệ đợc gọi StartBIOS). Bàn tay Ra khỏi cho Bộ điều khiển máy chủ OHCI
Bộ điều khiển bộ điều khiển máy chủ chịu trách nhiệm Cho Một - Tập hợp bộ điều khiển máy chủ của dữ liệu gọi là dữ liệu thiết bị. ở tại khởi động và sự đóng cửa, bộ điều khiển bộ điều khiển máy chủ quản lý bộ điều khiển máy chủ xuyên qua một tập hợp của)những sổ đăng ký Thao tác. Những sổ đăng ký này là bộ điều khiển bộ phận của máy chủ và đợc truy nhập bởi bộ điều khiển bộ điều khiển máy chủ sử dụng những sự tham khảo bộ nhớ xuyên qua một con trỏ thực tế noncached.
Nh thuyết minh đợc định nghĩa trong OHCI, sự mô phỏng bàn phím và chuột di sản do một tập hợp cung cấp những sổ đăng ký kiểm soát bởi mã chạy trong Kiểu Quản lý Hệ thống ( SMM). Khi dữ liệu nhận đợc từ bàn phím hoặc con chuột, mã mô phỏng SMM đợc thông báo và dịch bàn phím USB / dữ liệu chuột thành một dãy dữ liệu mà tơng đơng tới cái gì đợc sản sinh bởi một PS / bàn phím 2 thích hợp / giao diện chuột. Sơ đồ mô phỏng này đợc mô tả bên trong " Lý thuyết Thao tác " Mục) của Phụ lục B Trong thuyết minh OHCI.
Những ngắt đợc phát sinh bởi phần cứng mô phỏng bộ điều khiển máy chủ khi bàn phím USB hoặc dữ liệu chuột thì nhận đợc Lái bởi phần cứng bộ điều khiển máy chủ tới hoặc một ngắt quản lý hệ thống ( SMI) hoặc ngắt bộ điều khiển máy chủ chuẩn. Bộ điều khiển máy chủ sử dụng những quy tắc này để lái interrupt:
- Khi InterruptRouting cắn trong bộ điều khiển HcControl máy chủ sổ đăng ký bị sạch, ngắt Lái tới ngắt bộ điều khiển máy chủ chuẩn.
- Khi mẩu InterruptRouting là tập hợp, ngắt Lái tới ngắt SMI.
Ghi nhớ rằng SMM là một kiểu bộ xử lý trong những nền tảng Kiến trúc Intelđ mà trong suốt tới hệ điều hành và phần mềm ứng dụng. SMM đợc dự định cho sự sử dụng chỉ bởi vi chơng trình. SMM là những chế độ điều hành chính của một trong số bộ xử lý, ở mức trung bình với kiểu bảo vệ, kiểu địa chỉ thực tế, hoặc thực tế - 86 kiểu. Một tín hiệu ngoài, SMI#, Gây ra bộ xử lý để chuyển cho SMM; cái này đợc biết nh SMI ngắt. Tín hiệu SMI# có thể đợc phát sinh, chẳng hạn, bởi việc đóng nắp vung của một máy tính xách tay. Khi bộ xử lý đoán nhận rằng một SMI# báo hiệu, bộ xử lý đợi những tất cả các kho để hoàn thành và cất giữ trạng thái. Rồi bộ xử lý bắt đầu để thực hiện ngời điều khiển SMM trong vi chơng trình.
Nguồn điện - Lên trên xử lý
Bộ điều khiển SMM có điều khiển của bộ xử lý trớc mọi bộ điều khiển khác. Bộ điều khiển SMM phải đặt những mẩu InterruptRouting để gây ra tất
cả ngắt bộ điều khiển máy chủ sẽ bị đánh tan tác cho SMI ngắt. Bộ điều khiển SMM rồi đặt những lĩnh vực chuyên biệt về hệ thống trong những căn bản bộ điều khiển máy chủ, Mà lại đợi ít nhất thời gian tối thiểu chỉ rõ trong Thuyết minh USB cho sự khẳng định sự oa trữ Trên USB, Và sau đó thiết lập bộ điều khiển máy chủ.
Hệ điều hành cầm Điều khiển củ) Bộ điều khiển máy chủ OHCI
Về sau, khi bộ điều khiển bộ điều khiển máy chủ là đã nạp và việc chạy, nó có thể xác định rằng bộ điều khiển SMM thì tích cực bởi vì mẩu InterruptRouting là tập hợp trong sổ đăng ký HcControl. Khi nó muốn những ngắt lái tới bộ điều khiển máy chủ chuẩn interrupt, Bộ điều khiển bộ điều khiển máy chủ đặt mẩu OwnershipChangeRequest trong căn bản HcCommandStatus, Mà lại rồi những màn hình InterruptRouting cắn để xác định khi quyền sở hữu thay đổi cầm đem lại.
Giả mã sau cho thấy cấu trúc và lôgic của toàn bộ StopBIOS thờng lệ trong bộ điều khiển bộ điều khiển máy chủ OHCI Windows.Chú ý rằng StopBIOS thờng lệ là chỗ đợc gọi từ cái duy nhất trong bộ điều khiển bộ điều khiển máy chủ ,từ OpenHCI_InitializeHardware thờng lệ
BIOS cầm Điều khiển của Bộ điều khiển máy chủ OHCI
Giả mã sau cho thấy cấu trúc và lôgic của toàn bộ mô đun StartBIOS trong bộ điều khiển bộ điều khiển máy chủ OHCI Windows. Chú ý rằng StartBIOS th- ờng lệ thì đợc gọi chỉ sau máy chủ bộ điều khiển bộ điều khiển sẽ không chạm phần cứng lần nữa.
Bàn tay Ra khỏi cho Bộ điều khiển Chủ nhà UHCI
Mục 5 của Giao diện Bộ điều khiển máy chủ chung ( UHCI) Thiết kế Hớng dẫn, sự Duyệt lại 1.1 đa cho một sự thi hành ví dụ của di sản chuột và bàn phím hỗ trợ và mô tả một cách để trao điều khiển bên ngoài của Bộ điều khiển máy chủ giữa BIOS và bộ điều khiển Bộ điều khiển máy chủ UHCI trong hệ điều hành. Sổ đăng ký UHCI chìa khóa đợc sử dụng trong ví dụ là di sản hỗ trợ sổ đăng ký ( LEGSUP). Cho những sự thi hành trong một thiết bị PCI, sổ đăng ký LEGSUP đợc định vị ở tại mầm C0 - C1h, bên trong vận hành 2 không gian cấu hình PCI.
Bộ điều khiển bộ điều khiển máy chủ UHCI Microsoft cũng sử dụng sổ đăng ký LEGSUP nh giao diện sơ cấp trong việc thực hiện handoff của bộ điều khiển máy chủ giữa hệ điều hành và BIOS; lôgic thi hành bộ điều khiển bộ điều khiển máy chủ Microsoft đợc mô tả trong mục này của mục
Cấu trúc sổ đăng ký LEGSUP. Sổ đăng ký LEGSUP là một bitmap chứa đựng những 16 bít. ý nghĩa của mỗi 16 bít hoàn toàn đợc chỉ rõ trong Mục 5 của Giao diện Bộ điều khiển máy chủ chung ( UHCI) Thiết kế Hớng dẫn, sự Duyệt lại 1.1. Một sự mô tả tóm lợc đã cho trong sau đây bảng nh vậy ngời đọc có thể giải thích những giá trị bất biến bitmap đợc sử dụng trong về sau những mục của mục này mà không tham chiếu tới Thiết kế Hớng dẫn.
Đặt lên bảng 1. Cấu trúc sổ đăng ký LEGSUP
Bit Name Description
15 (R/WC) A20PTS 1 = A20GATE passthrough sequence has ended.
14 Reserved.
13 (R/W) USBPIRQDEN 1 = USB interrupt is routed to PIRQD (default). 0 = Not routed to PIRQD. This bit can be used to prevent the host controller from generating an interrupt. generating an interrupt.
12 (RO) USBIRQS 1 = USB IRQ is active.
11 (R/WC) TBY64W 1 = Write to port 64h has occurred.10 (R/WC) TBY64R 1 = Read to port 64h has occurred. 10 (R/WC) TBY64R 1 = Read to port 64h has occurred. 9 (R/WC) TBY60W 1 = Write to port 60h has occurred. 8 (R/WC) TBY60R 1 = Read to port 60h has occurred.
7 (R/W) SMIEPTE 1 = Enable generation of an SMI when A20GATE passthrough sequence has ended.0 = Disable (default). 0 = Disable (default).
6 (RO) PSS 1 = A20GATE passthrough sequence is currently in progress.0 = Not executing (default).5 (R/W) A20PTEN 1 = Enable A20GATE0 = Disable (default). passthrough sequence. 5 (R/W) A20PTEN 1 = Enable A20GATE0 = Disable (default). passthrough sequence. 4 (R/W) USBSMIEN 1 = Enable SMI# generation on USB IRQ.0 = Disable (default). 3 (R/W) 64WEN 1 = Enable I/O Trap and SMI# generation of port 64h write.0 = Disable (default). 2 (R/W) 64REN 1 = Enable I/O Trap and SMI# generation of port 64h read.0 = Disable (default). 1 (R/W) 60WEN 1 = Enable I/O Trap and SMI# generation of port 60h write.0 = Disable (default). 0 (R/W) 60REN 1 = Enable I/O Trap and SMI# generation of port 60h read.0 = Disable (default).
Làm sao bộ điều khiển bộ điều khiển máy chủ Microsoft sử dụng LEGSUP đăng ký. Microsoft mà bộ điều khiển bộ điều khiển máy chủ UHCI viết sau đây mà giá trị tới LEGSUP cho HCD bình thờng sử dụng : 0 x2000. Chú ý rằng những tập hợp này cắn 13 và những sự xóa cắn 4, những tuyến đ- ờng nào USB ngắt tới PIRQD và vô hiệu hóa thế hệ SMI# trên một sự kiện USB IRQ. Bộ điều khiển bộ điều khiển máy chủ đặt mẩu 4 cho BIOS / sự sử dụng SMI, mà cho phép thế hệ SMI# trên một sự kiện USB IRQ.
SOF Sửa đổi sổ đăng ký. SOF Sửa đổi đăng ký là một một - sổ đăng ký bai mà có thể sử dụng để Sửa đổi giá trị đã phát sinh sự tính toán thời gian trên USB. ( Cho nhiều thông tin hơn, mục 2.1.6 của Hớng dẫn Thiết kế Giao diện ( UHCI) Bộ điều khiển máy chủ chung, sự Duyệt lại 1.1.) nguyên tắc chỉ đạo Cho sự cải biến của khung định giờ đợc chứa đựng trong Chơng 7 của Thuyết minh USB.
Làm sao bộ điều khiển bộ điều khiển chủ nhà Microsoft sử dụng SOF Sửa đổi sổ đăng ký. Khi Microsoft tiêu khiển bộ điều khiển bộ điều khiển cầm điều khiển của bộ điều khiển máy chủ Từ BIOS, Nó luôn luôn đọc giá trị của SOF Sửa đổi mà giá trị sổ đăng ký thiết lập bởi BIOS và cất giữ nó bên trong Một - Thiết bị, - Cấu trúc dữ liệu bộ điều khiển máy chủ
Cấu trúc sổ đăng ký Lệnh USB ( USBCMD). Sổ đăng ký USBCMD là một mẩu - bản đồ chứa đựng những 16 bít. ý nghĩa của mỗi 16 bít hoàn toàn đ- ợc chỉ rõ trong Mục 2.1.1 của Giao diện Bộ điều khiển máy chủ chnug (UHCI) Thiết kế Hớng dẫn, sự Duyệt lại 1.1. Một sự mô tả tóm lợc đã cho trong sau đây bảng nh vậy ngời đọc có thể , mà không tham chiếu tới Hớng dẫn Thiết kế, giải thích những mẩu CMDREG mà là tập hợp và những mục bị sạch trong giả mã trong về sau của mục này.
Đặt lên bảng 2. Cấu trúc sổ đăng ký USBCMD
Bit Name Description
15:8 Reserved.
7 (R/W) MAXP 10 = 32 bits. = 64 bits.
6 (R/W) CF Host controller driver software sets this bit as the last action in its process of configuring the host controller; has no effect on the hardware. Provided only as a semaphore service for the software. semaphore service for the software.
5 (R/W) SWDBG 10 = Normal mode. = Debug mode.4 (R/W) FGR 1 = host controller sends Global Resume signal on the USB. 4 (R/W) FGR 1 = host controller sends Global Resume signal on the USB.
3 (R/W) EGSM 1 = host controller enters Global Suspend mode.
2 (R/W) GRESET 1 = host controller sends Global Reset signal on the USB and then resets all its logic.1 (R/W) HCRESET 1 = host controller resets its internal timers, counters, state machines, and so on to their initial values. 1 (R/W) HCRESET 1 = host controller resets its internal timers, counters, state machines, and so on to their initial values. 0 (R/W) RS 1 = Run (host controller proceeds with execution of the schedule).0 = Stop (host controller completes current transaction and then halts).
Làm sao bộ điều khiển bộ điều khiển máy chủ Microsoft sử dụng USBCMD đăng ký. Khi nó cầm điều khiển của)bộ điều khiển máy chủ Từ BIOS, Bộ điều khiển bộ điều khiển máy chủ Microsoft làm sạch mẩu RS để dừng bộ điều khiển máy chủ và làm sạch mẩu CF.
Cấu trúc sổ đăng ký Tình trạng USB ( USBSTS). Sổ đăng ký USBSTS là một bitmap chứa đựng những 16 bít. ý nghĩa của mỗi 16 bít hoàn toàn đợc chỉ rõ trong Mục 2.1.2 của Giao diện Bộ điều khiển máy chủ Phổ thông ( UHCI) Thiết kế Hớng dẫn, sự Duyệt lại 1.1. Một sự mô tả tóm lợc (thì) đã cho trong sau đây bảng nh vậy ngời đọc có thể , mà không tham chiếu tới Hớng dẫn Thiết kế, giải thích những mẩu CMDSTS mà là tập hợp và những mục bị sạch trong giả mã trong về sau của mục này.
Đặt lên bảng 3. Cấu trúc sổ đăng ký USBSTS
Bit Name Description
15:6 Reserved.
5 (R/WC) HcHalted Set to 1 by host controller when it is halted.
4 (R/WC) Host Controller Process Error Set to 1 by host controller when it encounters a consistency check error while processing a Transfer Descriptor.3 (R/WC) Host System Error Set to 1 by host controller when a serious error occurs during a host system access. 3 (R/WC) Host System Error Set to 1 by host controller when a serious error occurs during a host system access. 2 (R/WC) Resume Detect Set to 1 by host controller when it receives a RESUME signal from a USB device. 1 (R/W) USB Error Interrupt Set to 1 by host controller when completion of a USB transaction results in an error condition. 0 (R/W) USBINT Set to 1 by host controller either when completion of a USB transaction causes an interrupt or when a short packet is detected.
Làm sao bộ điều khiển bộ điều khiển máy chủ Microsoft sử dụng USBSTS đăng ký. Trong thời gian quá trình của việc cầm điều khiển của bộ điều khiển máy chủ Từ BIOS, Bộ điều khiển bộ điều khiển máy chủ Microsoft theo dõi mẩu HcHalted để xác định nếu và khi bộ điều khiển máy chủ đợc dừng.
Hệ điều hành cầm Điều khiển của Bộ điều khiển máy chủ UHCI
Khi bộ điều khiển bộ điều khiển máy chủ là đã nạp và việc chạy, nó có thể xác định liệu có phải nền tảng có một USB BIOS bởi những mẩu bắt đầu mà LEGSUP đăng ký. Một USB BIOS là Một BIOS mà chứa đựng mã Tới :
- Định hình bộ điều khiển máy chủ.
- Cho phép một bàn phím và con chuột USB. - Thiết lập bộ lập lịch biểu bộ điều khiển máy chủ.
- Bàn phím và thao tác chuột USB Tuyến đờng tới 8042 Bộ điều khiển Bàn phím ( KBC).
Khi một USB BIOS khởi động, nếu nó chứa đựng những mã mà những hàm liệt kê ở trên và có di sản hay không bàn phím hỗ trợ cho phép, thì CNTT cần phải luôn luôn đặt mẩu 4 của sổ đăng ký LEGSUP bộ điều khiển máy chủ và làm cho mẩu chắc chắn là 13 bị sạch. Nói chuyện, khi một BIOS khởi động