KolibriOS рдореЗрдВ USB рд╕рдорд░реНрдерди: рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ? рднрд╛рдЧ 3: рд╣реЛрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдкреЛрд░реНрдЯ рдХреЛрдб

рдореЗрдЬрдмрд╛рди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рд╕реНрддрд░, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдорд░реНрдерди рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

USB рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд▓реЙрдиреНрдЪ


рддреИрдпрд╛рд░реА: рдкреАрд╕реАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдпреВрдПрд╕рдмреА рдирд┐рдпрдВрддреНрд░рдХ


USB рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди usb_init рд╕реЗ usb_init рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рддрдХ рдпреВрдПрд╕рдмреА рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рддрдХ pcidev_list рдкреАрд╕реАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рд╣реЛ рдЪреБрдХреА рд╣реЛрддреА рд╣реИред USB рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рд╕рднреА PCI рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЗ рд╡рд░реНрдЧ, рдЙрдкрд╡рд░реНрдЧ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЯрд╛рдЗрдкрд╡рд░реНрдЧрдЙрдкрд╡рд░реНрдЧрдЗрдВрдЯрд░рдлрд╝реЗрд╕
UHCI0Ch03h00h
OHCI0Ch03h10h
EHCI0Ch03h20h
xHCI0Ch03h30h
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 рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ {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 рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд░рдВрднреАрдХрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

рдЗрдВрдЯрд░рдкреНрдЯ рдЪреИрдирд▓реЛрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдореЗрдВ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░: рдпреВрдПрдЪрд╕реАрдЖрдИ



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:

Source: https://habr.com/ru/post/In183284/


All Articles