Rev 3626 | Rev 4423 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3626 | Rev 3908 | ||
---|---|---|---|
Line 52... | Line 52... | ||
52 | ; hangoff. |
52 | ; hangoff. |
53 | ; Thus, process controllers in PCI order. |
53 | ; Thus, process controllers in PCI order. |
54 | mov esi, pcidev_list |
54 | mov esi, pcidev_list |
55 | push 0 |
55 | push 0 |
56 | .kickoff: |
56 | .kickoff: |
57 | mov esi, [esi+PCIDEV.fd] |
57 | mov esi, [esi+PCIDEV.list.next] |
58 | cmp esi, pcidev_list |
58 | cmp esi, pcidev_list |
59 | jz .done_kickoff |
59 | jz .done_kickoff |
60 | cmp word [esi+PCIDEV.class+1], 0x0C03 |
60 | cmp word [esi+PCIDEV.class+1], 0x0C03 |
61 | jnz .kickoff |
61 | jnz .kickoff |
62 | mov eax, uhci_kickoff_bios |
62 | mov eax, uhci_kickoff_bios |
Line 90... | Line 90... | ||
90 | ; but seems less natural.) |
90 | ; but seems less natural.) |
91 | ; 4a. Loop over all PCI devices, call usb_init_controller |
91 | ; 4a. Loop over all PCI devices, call usb_init_controller |
92 | ; for all EHCI controllers. |
92 | ; for all EHCI controllers. |
93 | mov eax, pcidev_list |
93 | mov eax, pcidev_list |
94 | .scan_ehci: |
94 | .scan_ehci: |
95 | mov eax, [eax+PCIDEV.fd] |
95 | mov eax, [eax+PCIDEV.list.next] |
96 | cmp eax, pcidev_list |
96 | cmp eax, pcidev_list |
97 | jz .done_ehci |
97 | jz .done_ehci |
98 | cmp [eax+PCIDEV.class], 0x0C0320 |
98 | cmp [eax+PCIDEV.class], 0x0C0320 |
99 | jnz .scan_ehci |
99 | jnz .scan_ehci |
100 | mov edi, ehci_hardware_func |
100 | mov edi, ehci_hardware_func |
Line 103... | Line 103... | ||
103 | .done_ehci: |
103 | .done_ehci: |
104 | ; 4b. Loop over all PCI devices, call usb_init_controller |
104 | ; 4b. Loop over all PCI devices, call usb_init_controller |
105 | ; for all UHCI and OHCI controllers. |
105 | ; for all UHCI and OHCI controllers. |
106 | mov eax, pcidev_list |
106 | mov eax, pcidev_list |
107 | .scan_usb1: |
107 | .scan_usb1: |
108 | mov eax, [eax+PCIDEV.fd] |
108 | mov eax, [eax+PCIDEV.list.next] |
109 | cmp eax, pcidev_list |
109 | cmp eax, pcidev_list |
110 | jz .done_usb1 |
110 | jz .done_usb1 |
111 | mov edi, uhci_hardware_func |
111 | mov edi, uhci_hardware_func |
112 | cmp [eax+PCIDEV.class], 0x0C0300 |
112 | cmp [eax+PCIDEV.class], 0x0C0300 |
113 | jz @f |
113 | jz @f |