
рдореЗрдЬрдмрд╛рди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рд╕реНрддрд░, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ
рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдорд░реНрдерди рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
USB рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд▓реЙрдиреНрдЪ
рддреИрдпрд╛рд░реА: рдкреАрд╕реАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдпреВрдПрд╕рдмреА рдирд┐рдпрдВрддреНрд░рдХ
USB рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди
usb_init
рд╕реЗ
usb_init рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рддрдХ рдпреВрдПрд╕рдмреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рддрдХ
pcidev_list
рдкреАрд╕реАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рд╣реЛ рдЪреБрдХреА рд╣реЛрддреА рд╣реИред USB рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рд╕рднреА PCI рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд╡рд░реНрдЧ, рдЙрдкрд╡рд░реНрдЧ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЯрд╛рдЗрдк | рд╡рд░реНрдЧ | рдЙрдкрд╡рд░реНрдЧ | рдЗрдВрдЯрд░рдлрд╝реЗрд╕ |
---|
UHCI | 0Ch | 03h | 00h |
OHCI | 0Ch | 03h | 10h |
EHCI | 0Ch | 03h | 20h |
xHCI | 0Ch | 03h | 30h |
usb_init
рдкреАрд╕реАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ рдмрд╛рд░ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд░ рдмрд╛рд░ рдпреВрдПрд╕рдмреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред
BIOS рдирд┐рдпрдВрддреНрд░рдг рдЕрдХреНрд╖рдо рдХрд░рдирд╛
рдХреБрдЫ BIOS USB рдЪреВрд╣реЛрдВ, USB рдХреАрдмреЛрд░реНрдб рдФрд░ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ USB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЪреВрд╣реЛрдВ рдФрд░ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ PS / 2 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ PS / 2 рдорд╛рдЙрд╕ рдФрд░ / рдпрд╛ рдХреАрдмреЛрд░реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡
int 13h
рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдорд╛рдЙрд╕ рд╕рдорд░реНрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рд╕реА рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдЖрдк рдХрд┐рд╕реА рднреА рд░реБрдХрд╛рд╡рдЯ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рддрд╛рдХрд┐ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ BIOS рдЕрднреА рднреА рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗ, 486 рдХреЗ рджрд╢рдХ рдореЗрдВ рд╡рд╛рдкрд╕ (i386SL рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд╕рдЯреАрдХ рд╣реЛрдирд╛), рдЗрдВрдЯреЗрд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдб
рд╕рд┐рд╕реНрдЯрдо рдореИрдиреЗрдЬрдореЗрдВрдЯ рдореЛрдб (рдПрд╕рдПрдордПрдо) рдХреЗ рд╕рд╛рде рдЖрдпрд╛, рдЬрд┐рд╕рдореЗрдВ BIOS рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдкреНрд░рдгрд╛рд▓реАред рд╕реНрд╡рдпрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд╕рдПрдордПрдо рдореЗрдВ рдЖрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ; рдкреНрд░реЛрд╕реЗрд╕рд░ рдЗрд╕ рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдорджрд░рдмреЛрд░реНрдб рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖
рд╕рд┐рд╕реНрдЯрдо рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЗрдВрдЯрд░рдкреНрдЯ (SMI) рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддрд╛ рд╣реИред рдЪрд┐рдкрд╕реЗрдЯ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд USB рдирд┐рдпрдВрддреНрд░рдХ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рдмрдЬрд╛рдп рдПрд╕рдПрдордЖрдИ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
pcidev_list
рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рд▓рд╛ рдкрд╛рд╕ BIOS рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ USB рдирд┐рдпрдВрддреНрд░рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП BIOS рдХреЛ рдЕрдм рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕ рдкрд╛рд╕ рдкрд░ рд╕рднреА рд╕рд╛рдерд┐рдпреЛрдВ
рдХреЛ рдПрдХ рдпреБрдЧреНрдорд┐рдд рдИрдПрдЪрд╕реАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ
рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░реЛрд╣реА рдкреАрд╕реАрдЖрдИ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдЯреНрд░реИрд╡рд░реНрд╕рд┐рдВрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕ рдорд╛рд░реНрдЧ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рднреА EHCI рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛; рдЗрд╕рдиреЗ рдХрдИ рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рднреА BIOS рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдЧрд▓рдд рдХреНрд░рдо рдПрд╕рдПрдордПрдо рдХреЗ рдЕрдВрджрд░ рд╕рд┐рд╕реНрдЯрдо рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рд╕рдВрднрд╡ рд╣реИ:
- BIOS рдПрдХ EHCI рд╢рдЯрдбрд╛рдЙрди рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ;
- BIOS рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдбрд┐рдХрдВрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ;
- рдкреЛрд░реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдПрдХ рд╕рд╛рдереА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
- рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рднреА рдПрдХ рд╕рд╛рдереА рдХреЛ рдЬрд╛рддреА рд╣реИ;
- рд╕рд╛рдереА рдПрдХ рдирдП рдЙрдкрдХрд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ;
- рдЪреВрдВрдХрд┐ рд╕рд╛рдереА рдЕрднреА рднреА BIOS рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИ, рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрдкрдирд╛ рдорд╛рдирддрд╛ рд╣реИ, рдкрддрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ; рдПрдХ рдкреБрд░рд╛рдиреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рджреЗрдЦрддрд╛ рд╣реИ;
- рдФрд░ рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ BIOS рдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╕реНрдерд┐рдд рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ BIOS рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рднреВрд▓ рдЧрдпрд╛ рдерд╛ред рднреВрд▓ рдЧрдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рджреБрдЦрдж рдЕрдВрдд рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред
рдИрдПрдЪрд╕реАрдЖрдИ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдереА рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
BIOS рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ
{u,o,e}hci_kickoff_bios
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред UHCI, рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкрд╣рд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
uhci_kickoff_bios
рдмрд╕ SMI рдкреАрдврд╝реА рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред OHCI рдФрд░ EHCI рдореЗрдВ, BIOS рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ ... рдХреБрдЫ рд╡рд┐рд╡рд░рдг рд╣реИрдВред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рдХреБрдЫ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдХреБрдЫ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдмрд┐рдЯ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ; рдпрджрд┐ BIOS рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдХ рдПрд╕рдПрдордЖрдИ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрд╕рдПрдордПрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдЧрд╛ рдФрд░ BIOS рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, BIOS рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЕрдирд▓рд┐рдорд┐рдЯреЗрдб рдХрд░реЗрдЧрд╛, рджреВрд╕рд░реЗ рдмрд┐рдЯ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧрд╛ рдФрд░ рдПрд╕рдПрдордПрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред рдУрдПрдЪрд╕реАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдирд┐рдХрд▓рд╛ рдерд╛, BIOS рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд░реБрдХрд╛рд╡рдЯ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ; рдпрджрд┐ рдХреЛрдИ рдШрдЯрдирд╛ рдПрдХ рдЕрд╡рд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ рдФрд░ рдУрдПрдЪрд╕реАрдЖрдИ рдЪрд╛рд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрдЯрд░рдкреНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдлрд┐рд░ рд╕реЗ рд▓рдЯрдХ рдЬрд╛рдПрдЧрд╛ - рдУрдПрдЪрд╕реАрдЖрдИ рдмрд╛рд░-рдмрд╛рд░ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, BIOS рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рджреМрд░рд╛рди
ohci_kickoff_bios
рдЕрд╡рд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рднреА OHCI рд░реБрдХрд╛рд╡рдЯ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред EHCI рдореЗрдВ, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдЯ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ", рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ BIOS рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ; рдХреБрдЫ BIOS рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ "рд░рд┐рд▓реАрдЬрд╝" рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, SMI рдЬреЗрдирд░реЗрд╢рди рдмрд┐рдЯ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдмрд╛рд░-рдмрд╛рд░ SMI рдЬреЗрдирд░реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕рд┐рд╕реНрдЯрдо рдлрд┐рд░ рд╕реЗ рд╣реИрдВрдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ
рдЕрдЧрд░ рдкрд╣рд▓реА рдкрд╛рд╕
usb_init
USB рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ USB рдирд┐рдпрдВрддреНрд░рдХ рд╣реИрдВ, рддреЛ
usb_init
USB рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдПрдХ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ PCI рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реВрдЪреА рд╕реЗ рджреЛ рдФрд░ рдкрд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ USB рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП
usb_init_controller
рдХрд╣рддреЗ
usb_init_controller
, рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЛ
usb_hardware_func
рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ
usb_hardware_func
рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рдкрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдИрдПрдЪрд╕реАрдЖрдИ, рддреАрд╕рд░реА - рдпреВрдПрдЪрд╕реАрдЖрдИ рдФрд░ рдУрдПрдЪрд╕реАрдЖрдИред рдпрд╣рд╛рдВ рдИрдПрдЪрд╕реАрдЖрдИ рдХреЛ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдПрдЪрдПрд╕-рдбрд┐рд╡рд╛рдЗрд╕реЗрд╕ рдХреЛ рддреБрд░рдВрдд рдИрдПрдЪрд╕реАрдЖрдИ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП, рддрд╛рдХрд┐ рд╡реЗ рдЦреБрдж рдХреЛ рдПрдХ рд╕рд╛рдереА рдХреЛ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХреЗрдВ рдФрд░ рддреБрд░рдВрдд рдЙрд╕рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
usb_init_controller
рдлрд╝рдВрдХреНрд╢рди
usb_init_controller
рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдпрд╣
*hci_controller
/
usb_controller
рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрди рджреЛрдиреЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ
usb_controller
рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмреАрдЪ
usb_hardware_func
рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП
HardwareFunc
рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣
usb_hardware_func.Init
рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рднреА рдХрд╣рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде,
usb_init_controller
рд╕рд╛рдорд╛рдиреНрдп
usb_controllers_list
рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ USB рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЬрд╛рдЧреГрдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рд╡реЗрдХ-рдЕрдк рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗред
usb_hardware_func.Init
рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд░рдВрднреАрдХрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
- рдЪреИрдирд▓ рд╕рдореВрд╣реЛрдВ рдФрд░ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯрд░рдкреНрдЯ рдЪреИрдирд▓ рдХреЗ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
- рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
*hci_irq
; - рдореЗрдЬрдмрд╛рди рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕рд╣реА рдорд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ
*hci_controller
рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рднреМрддрд┐рдХ рдкрддрд╛ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ; - рд░реВрдЯ рд╣рдм
usb_controller.NumPorts
рдХреЗ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдкреНрдЯ рдЪреИрдирд▓реЛрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдореЗрдВ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░: рдпреВрдПрдЪрд╕реАрдЖрдИ

UHCI рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреЙрдЗрдВрдЯрд░
UhciBaseAddressReg
,
UhciBaseAddressReg
,
UhciBaseAddressReg
рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдПред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд░реЗрдо рдЖрдпрд░рди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдЖрд╡рдзрд┐рдХ рдкреНрд░рд╕рд╛рд░рдг рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдЗрдВрдЯрд░рдкреНрдЯ рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рд╕реВрдЪреА рдХреЗ рдЕрдВрддрд┐рдо рдЪреИрдирд▓ рд╕реЗ, рд▓рд┐рдВрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╕рд╛рд░рдг рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реЗ рдЪреИрдирд▓ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рд╣рд┐рдХрд╛рдУрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рднреА рдЪреИрдирд▓ рдПрдХ рдЕрдВрдЧреВрдареА рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рд╕рднреА рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИ; рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде, рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛, рдПрдХ рдирдпрд╛ рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдкреНрд░рд╕рд╛рд░рдг рддреБрд░рдВрдд рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпреВрдПрд╕рдмреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдкреВрд░реНрдг рдЕрдиреБрдкрд╛рд▓рди рдореЗрдВ, рдЗрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд▓рд╛рдн рд▓реЛрд╣реЗ рдХреА рд╕рд╛рджрдЧреА рд╣реИред рд╡рд┐рдкрдХреНрд╖: рдПрдХ рднрд╛рд░реА рднрд╛рд░ рдХреЗ рд╕рд╛рде, рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рдлреНрд░реЗрдо рдХреЗ рдЕрдВрдд рддрдХ рд╕рднреА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреИрдирд▓ рдЕрд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ - рдЬреЛ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ рдЬреЛ рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ - рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рд▓рдЧрд╛рддрд╛рд░ рдореЗрдореЛрд░реА рд╕реЗ рд╕рд┐рд░реНрдл рдкрдврд╝рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рдирдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ UHCI рдХреЗ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ред
рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░: OHCI

OHCI рдореЗрдВ рд╕рд╛рдд рдкреВрд░реНрдгрд╛рдВрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЫрд╣ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ
OhciHCCAReg
рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ (рд╕рдордХрд╛рд▓рд┐рдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд) рдХреЗ рд╕рдорд╛рди рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА
OhciPeriodCurrentEDReg
рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛
OhciPeriodCurrentEDReg
рд╡рд░реНрддрдорд╛рди рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрддрдирд╛ рдЙрджрд╛рд╕реАрди рд╣реИ рдХрд┐ рдпрд╣ рдЖрд░реЗрдЦ рдореЗрдВ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЪреИрдирд▓ рд╕реНрд╡рддрдВрддреНрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреА рдореЗрдВ рджреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ: рд╕реВрдЪреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░
Ohci{Control,Bulk}HeadEDReg
рдФрд░ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╡рд░реНрддрдорд╛рди рдЪреИрдирд▓
Ohci{Control,Bulk}CurrentEDReg
ред рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рддреАрди рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ; рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪреА USB рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд░реЗрдо рдирд┐рдпрдВрддреНрд░рдХ рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдпреВрдПрдЪрд╕реАрдЖрдИ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдЦреЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╣реА рд╕реВрдЪреА рдХреЗ рд╕рднреА рдЪреИрдирд▓ рд╕рдорд╛рди рд╣реИрдВ; рдпрд╣ UHCI рдХреЗ рдкрд╣рд▓реЗ рдорд╛рдЗрдирд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред OHCI рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рднреА рджреЛ рдмрд┐рдЯреНрд╕ рд╣реИрдВ "рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдпрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╣реИ", рдирд┐рдпрдВрддреНрд░рдг рдЪреИрдирд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ, рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЪреИрдирд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдПрдХ рдирдпрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдЬреЛрдбрд╝рддреЗ рд╕рдордп рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдереЛрдбрд╝рд╛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд┐рдЯ рдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ; рдпрджрд┐ рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдХ рд╕реВрдЪреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╕реВрдЪреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ UHCI рдХреЗ рджреВрд╕рд░реЗ рдорд╛рдЗрдирд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ: EHCI

EHCI рджреЛ рдкреЙрдЗрдВрдЯрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ,
EhciPeriodicListReg
, рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рдорд╛рди, рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░,
EhciAsyncListReg
, рд╡рд░реНрддрдорд╛рди рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓ рдПрдХ рд░рд┐рдВрдЧ рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдм рдпрд╣ рдПрдХ рд╢рд░реНрдд рд╣реИ, UHCI рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЖрд╡рдзрд┐рдХ рдФрд░ рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рд╕рднреА рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕рдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЗрдВрдЯреЗрд▓ рдиреЗ рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдЪреИрдирд▓реЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдЪреИрдирд▓ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рддрд╛рдХрд┐ рдЧреИрд░-рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ, рд╕реНрдореГрддрд┐ рд╕реЗ рдЕрдВрддрд╣реАрди рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рди рд╣реЛрдВ, рд░рд┐рдВрдЧ рдореЗрдВ рдореМрдЬреВрдж рдЪреИрдирд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд░рд┐рдВрдЧ рдХреА "рд╢реБрд░реБрдЖрдд" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рд╕рдХреНрд░рд┐рдп рдЧрд┐рдпрд░реНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдП рдмрд┐рдирд╛ рд░рд┐рдВрдЧ рдХреЗ "рд╢реБрд░реБрдЖрдд" рд╕реЗ рджреВрд╕рд░реА рдмрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреВрдареА рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдСрдкрд░реЗрд╢рди
USB рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреА рдПрдХ рддрд╕реНрд╡реАрд░ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЬреНрдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ:

рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрд╢рди
рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди, рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдУрдПрдЪрд╕реАрдЖрдИ рдФрд░ рдИрдПрдЪрд╕реАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпреВрдПрдЪрд╕реАрдЖрдИ, рдЕрдлрд╕реЛрд╕ рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпреВрдПрдЪрд╕реАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде, рдпреВрдПрд╕рдмреА рд╕реНрдЯреНрд░реАрдо рд╕рдордп-рд╕рдордп рдкрд░ рдЦреБрдж рд╕реЗ рдЙрдарддрд╛ рд╣реИ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреЛрд░реНрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдорддрджрд╛рди рдЕрдВрддрд░рд╛рд▓
UHCI_POLL_INTERVAL
рдЯрд╛рдЗрдорд░ рдЯрд┐рдХ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдкрд░ 1 рд╕реЗрдХрдВрдб рд╣реИред
рдХрдиреЗрдХреНрдЯреЗрдб рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╛рд╡рд░реНрдб рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдирдП USB рдЙрдкрдХрд░рдг рдХрд╛ рдЖрд░рдВрдн ... 100 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдПрдХ рдард╣рд░рд╛рд╡ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ USB рдбрд┐рд╡рд╛рдЗрд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рдЪреАрдЯрд░ рдФрд░ рдХрдИ рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди / рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рдИрд╡реЗрдВрдЯ рд╕рдВрднрд╡ рд╣реИрдВред рдЙрд╕реА рдкреЛрд░реНрдЯ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде, рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЬрдм рдкрд╛рд╡рд░реНрдб рд╕реНрдЯреЗрдЯ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 100 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрдерд┐рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдЕрдЧрд▓реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЪрд░рдг
*hci_new_port
рдЖрдЧреЗ
*hci_new_port
ред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛, рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдЧрд▓реЗ рдХрдИ рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд▓реЗ рдЪрд░рдг рд╕реЗ рдкрд╣рд▓реЗ, рдирдП рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗ рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд▓рд┐рдпрд╛ рд╣реЛред рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЕрдВрдд
*hci_new_port.reset
рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐
*hci_new_port
рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдпрджрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдИ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ
usb_hardware_func.InitiateReset
рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдЧрд▓рд╛,
*hci_new_port.reset
рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛
*hci_new_port.reset
рд╣реИред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд░реАрд╕реЗрдЯ рдХрдо рд╕реЗ рдХрдо 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред OHCI рдЕрдкрдиреЗ рдЖрдк рд╣реА рд╕рдордп рдХреЛ рдЧрд┐рдирддрд╛ рд╣реИ, рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдпрд╣ рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд╡рд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╣реИрдВрдбрд▓рд░ USB рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИред UHCI рдФрд░ EHCI рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдЪрдХреНрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдорд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд╛рдЧрдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпреВрдПрд╕рдмреА рд╕реНрдЯреНрд░реАрдо рдФрд░ рд╕реЛ рдЬрд╛рддрд╛ рд╣реИред KolibriOS рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ 100 рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЯрд┐рдХ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рд╣рд░ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкрд░ред рдиреНрдпреВрдирддрдо 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд░реАрд╕реЗрдЯ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рджреЛ рдЯрд╛рдЗрдорд░ рдирдореВрдиреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЯрд╛рдЗрдорд░ рдХреЗ рджреВрд╕рд░реЗ рдЯрд┐рдХ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ,
*hci_port_reset_done
, рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред
USB2 рдореЗрдВ, рд░реАрд╕реЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рд╕реЗ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдИрдПрдЪрд╕реАрдЖрдИ рдХреЗрд╡рд▓ рд╣рд╛рдИрд╕реНрдкреАрдб рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпреВрдПрд╕рдмреА 1 рдЧрддрд┐ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рдпреВрдПрд╕рдмреА 1 рд╕рд╛рдереА рдпрд╛ рд╣рдм рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрд┐рдВрджреБ рд╕реЗ, рд░реАрд╕реЗрдЯ рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж, EHCI рдпрд╛ рддреЛ рдкреЛрд░реНрдЯ рдХреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐, рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж, рдкреЛрд░реНрдЯ рдЕрдХреНрд╖рдо рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ USB2 рдЧрддрд┐ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рд╕рд╛рдереА рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ; рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд╛рдереА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрдиреЗрдХреНрд╢рди рдИрд╡реЗрдВрдЯ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдЧрд╛ред
рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж, рдХрдИ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдХрдо рд╕реЗ рдХрдо 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдард╣рд░рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐
рдкрд░реАрдХреНрд╖рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдард╣рд░рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЗ рд╕рдорд╛рди, USB рд╕реНрдЯреНрд░реАрдо рджреЛ рдЯрд╛рдЗрдорд░ рдЧрдгрдирд╛рдУрдВ рдореЗрдВ рд╕реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рдмрд╛рд░ OHCI рд╕рд╣рд┐рдд рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдПред
рдПрдХ рд░реАрд╕реЗрдЯ рдФрд░ рдПрдХ рдмрд╛рдж рдХреЗ рдард╣рд░рд╛рд╡ рдХреЗ рдмрд╛рдж, рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рджреЛ рдореЗрдВ рд╕реЗ рдПрдХ "рдЖрдзрд╛ рдХрд╛рдо" рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рд╢реВрдиреНрдп рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд░рдВрднрд┐рдХ рдирд╣реАрдВ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ USB рдмрд╕ рдкрд░ рд╢реВрдиреНрдп рдкрддреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ: рдЕрдиреНрдпрдерд╛, рджреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рдХрд▓ рдЧрдП рд╣реЛрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмрд╛рдж рдХреА рд╕реЗрдЯрд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╢реВрдиреНрдп рд╕рдорд╛рдкрди рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдпрд╣ рдЪреИрдирд▓ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЪреИрдирд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ - рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЧрддрд┐, рдмрд╕ рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрддрд╛, рд╕реВрдЪрдХ рд╕реЗ
usb_controller
ред
*hci_port_init
рдХреЛрдб рдЬрд┐рд╕реЗ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ,
*hci_new_device
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ
*hci_new_device
рд╣реИ, рдЬреЛ рдХрд┐
usb_hardware_func.NewDevice
рд╣рдм рдХреЗ рд▓рд┐рдП API рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдПрдХ рдЫрджреНрдо рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рднрд░рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪреИрдирд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдп рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░, рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдкреЛрд░реНрдЯ рдХреЛрдб рд╕реНрд╡рддрдВрддреНрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ
usb_new_device
рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдЬрд┐рдХрд▓
usb_new_device
рдХреЗ
usb_new_device
рдлрдВрдХреНрд╢рди рдкрд░ рдХрдВрдЯреНрд░реЛрд▓
usb_new_device
рдХрд░рддрд╛ рд╣реИ; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рддрдХ рдЙрдкрдХрд░рдг рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдкреЛрд░реНрдЯ рдХреЛрдб рдХреЗрд╡рд▓ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЪреИрдирд▓ рдЦреЛрд▓рдиреЗ рдФрд░ рдЪреИрдирд▓ рдкреНрд░рд╕рд╛рд░рдг

рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреВрд░реЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднрд╛рдЧ, рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдПрдХрд▓-рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ, рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рднреМрддрд┐рдХ рдкрддрд╛ рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╣реИ, рдЕрдЧрд▓реЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рднреМрддрд┐рдХ рдкрддрд╛ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдореЗрдВ рд╣реИред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╣рд╛рдВ рдЕрдЧрд▓реЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдкрддрд╛ рд▓рд┐рдЦрдХрд░ рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рдЬрдм рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХрддрд╛рд░ рдЪрд▓ рд░рд╣реА рд╣реИ, рддреЛ рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдкреЛрд░реНрдЯ рдХреЛрдб рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рдкрддреЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЦрд╛рд▓реА рд╡рд┐рд╡рд░рдгрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╣реИрдВрдбрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИред рдЬрдм рдХреЛрдб рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рднрд░рддрд╛ рд╣реИ, рдЕрдЧрд▓реЗ рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рдирдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдбрд╛рд▓рддрд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдм рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрддрд╛рд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЪреИрдирд▓ рдЦреЛрд▓рдирд╛ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдЯреНрд░рд╛рдВрд╕рдореАрд╢рди рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдЬрдм рдЖрдк
usb_hardware_func.InitPipe = *hci_init_pipe
рддреЛ рдЖрдк рдорджрдж рдХрд░рддреЗ рд╣реИрдВ:
- рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдЪреИрдирд▓ рдпрд╛ рдЫрджреНрдо рдЪреИрдирд▓ рд╕реЗ рдЙрдкрдХрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ,
- рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреИрдирд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднрд░реЗрдВ,
- рдЪреИрдирд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЦрд╛рд▓реА рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХрд╛ рднреМрддрд┐рдХ рдкрддрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ,
- рдПрдХ рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ,
- рдЕрдВрддрд┐рдо рдЪрд░рдг рдЪреИрдирд▓ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕реВрдЪреА рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред
рдЖрд╡рдзрд┐рдХ рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рд╡рд╛рдВрдЫрд┐рдд рд╕реВрдЪреА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдпрд╣ рдпреЛрдЬрдирд╛рдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ, рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рдореИрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд░реВрдВрдЧрд╛ред рдХрддрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг
usb_hardware_func.AllocTransfer = *hci_alloc_transfer
рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг
usb_hardware_func.AllocTransfer = *hci_alloc_transfer
рдПрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП
usb_hardware_func.AllocTransfer = *hci_alloc_transfer
рдХреЛ рднрд░рдиреЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рджреЛ рдпрд╛ рддреАрди рдмрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА
usb_hardware_func.InsertTransfer = *hci_insert_transfer
рдлрд╝рдВрдХреНрд╢рди AllocTransfer
рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЪрд░рдг рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рднрд░рддрд╛ рд╣реИ, рдПрдХ рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди InsertTransfer
рдкреВрд░реНрд╡ рдЦрд╛рд▓реА рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИредрдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рдПрдХ рдЖрдИрдУрд╕реА рдмрд┐рдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ IOC рдмрд┐рдЯ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдкреЛрд░реНрдЯ рдХреЛрдб рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рдЕрдВрддрд┐рдо рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИредOHCI - , ( IOC) : , .
ohci_controller
, , . OHCI ┬л┬╗ , .
UHCI EHCI , UHCI EHCI , , , .
USB,
*hci_process_finalized_td
. тАФ , ; . тАФ , callback- , .
. , , тАФ ( ┬л ┬╗ ). ,
usb_hardware_func.SetDeviceAddress
: . ,
usb_hardware_func.SetEndpointPacketSize
: . UHCI тАФ , , . , .
, . EHCI , , , . , : , , , , .
OHCI EHCI , , . , . OHCI . EHCI
Interrupt on Async Advance Doorbell : ┬л , ┬╗ . , .
, .
: тАФ OHCI EHCI, UHCI тАФ
usb_device_disconnected
, . , 100 , .
1:2: -3: -
4:5:6: