Vladimir Serbinenko
56c0a46068
ehci: Split core code from PCI part.
...
On ARM often EHCI is present without PCI and just declared in device
tree. So splitcore from PCI part.
2020-09-21 11:32:45 -04:00
Vladimir Serbinenko
ca028db3d4
usbtrans: Fix memory coherence and use-after-free.
2016-02-27 13:40:52 +01:00
Vladimir Serbinenko
0f076d75d0
ehci: Fix memory coherence
...
This is a no-op on x86 but necessarry on ARM and may be necessarry on MIPS.
2016-02-27 13:40:52 +01:00
Vladimir Serbinenko
054d1325e9
Improve EHCI logging
...
Add dprintf's on common error paths and remove some entries which are too
noisy.
2016-02-22 20:07:10 +01:00
Colin Watson
95440b41d3
ahci, ehci: Fix typos
2016-01-16 20:37:15 +00:00
Andrei Borzenkov
47490ada3d
ohci: fix memory leak
...
Found by: Coverity scan.
CID: 96679
2015-06-20 23:38:19 +03:00
Andrei Borzenkov
cf0b0306d8
usb: fix use after free
...
Found by: Coverity scan.
CID: 96704
2015-06-20 23:38:18 +03:00
Vladimir Serbinenko
9d25b0da9a
Remove emu libusb support.
...
It's disabled by default and has been broken for a long time.
As nobody is interested in fixing and maintaining it, remove it.
2015-03-03 20:59:36 +01:00
Vladimir Serbinenko
9ff9d5a54e
uhci: Fix null pointer dereference.
...
Found by: Coverity scan.
2015-01-24 20:38:12 +01:00
Vladimir Serbinenko
30e177a05b
grub-core/fs/minix.c (grub_minix_read_file): Avoid reading past the end of file.
2015-01-21 17:42:06 +01:00
Andrey Borzenkov
954fe77163
cleanup: grub_cpu_to_XXX_compile_time for constants
...
This tries to catch all cases where grub_cpu_to_XXX was used for constant
expressions (including sizeof).
2014-09-22 20:47:10 +04:00
Aleš Nesrsta
e3ef0d30cf
* grub-core/bus/usb/ehci.c: Fix handling of newborn transfers.
...
Avoid confusing them with already completed transfers.
2013-12-18 18:59:49 +01:00
Vladimir Serbinenko
7e47e27bd8
Add gcc_struct to all packed structures when compiling with mingw.
...
Just "packed" doesn't always pack the way we expect.
2013-12-15 14:14:30 +01:00
Vladimir Serbinenko
1e4b358720
Add PCI command activation to all PCI drivers as required for coreboot
...
and maybe some other firmwares.
2013-11-26 14:21:11 +01:00
Vladimir Serbinenko
9f8acdaa5d
* grub-core/term/serial.c: Add option for enabling/disabling
...
RTS/CTS flow control.
2013-11-08 18:20:20 +01:00
Vladimir Serbinenko
3f63b4d89f
* grub-core/bus/usb/ehci.c (grub_ehci_restore_hw): Return right enum
...
type.
(grub_ehci_fini_hw): Likewise.
* grub-core/bus/usb/usbhub.c (grub_usb_add_hub): Likewise.
2013-11-07 00:45:15 +01:00
Vladimir Serbinenko
dac6ce73be
* include/grub/usb.h (grub_usb_controller_dev): Make portstatus
...
return grub_usb_err_t for cosistency. All users updated.
2013-11-07 00:35:56 +01:00
starous@volny.cz
7c680e1f17
USB EHCI: SMI disabled in all cases
2013-09-23 20:30:52 +02:00
Melki Christian
d755342abe
* grub-core/bus/usb/usbhub.c (poll_nonroot_hub): Fix the type of
...
"changed".
2013-09-23 14:39:13 +02:00
starous@volny.cz
306950e137
USB EHCI QH handling patch
2013-09-21 15:39:51 +02:00
Melki Christian
897c3bc634
* grub-core/bus/usb/usb.c (grub_usb_device_initialize): Add condition
...
to break endless loop.
2013-09-18 13:27:05 +02:00
Vladimir 'phcoder' Serbinenko
efa8640adb
* grub-core/bus/usb/usbhub.c: Fix recheck logic.
2013-07-11 14:52:46 +02:00
Vladimir 'phcoder' Serbinenko
96f33fed86
Make PCI init in i386-qemu port more robust.
2013-04-29 15:09:39 +02:00
Vladimir 'phcoder' Serbinenko
e2f27a8c53
Enforce disabling of firmware disk drivers when native drivers kick in.
2013-04-29 12:16:46 +02:00
Vladimir 'phcoder' Serbinenko
f7bf6c31f3
* grub-core/bus/usb/uhci.c: Fix DMA handling and enable on all PCI
...
platforms.
2013-04-29 12:05:19 +02:00
Vladimir 'phcoder' Serbinenko
d70dbab77a
* grub-core/bus/usb/ehci.c (grub_ehci_fini_hw): Ignore errors, not
...
much we can do about it anyway.
2013-04-12 20:51:11 +02:00
Aleš Nesrsta
51a4c3e3b0
Fix handling of split transfers.
2013-04-12 20:42:46 +02:00
Vladimir 'phcoder' Serbinenko
2cd5ce6cdb
* grub-core/bus/usb/usbtrans.c (grub_usb_bulk_readwrite_packetize):
...
Init err.
2013-04-04 08:56:45 +02:00
Vladimir 'phcoder' Serbinenko
8fe05def12
Slight improve in USB-related boot-time checkpoints.
2013-03-20 17:21:13 +01:00
Vladimir 'phcoder' Serbinenko
ef8810e9f3
Fix a conflict between ports structures with 2 controllers of
...
same kind.
2013-03-20 17:07:08 +01:00
Vladimir 'phcoder' Serbinenko
f6df57d216
Initialize USB ports in parallel to speed-up boot.
2013-03-19 23:06:44 +01:00
Vladimir 'phcoder' Serbinenko
d745dda77e
Fix USB devices not being detected when requested
...
due to delayed attach.
2013-03-19 20:35:21 +01:00
Vladimir 'phcoder' Serbinenko
e744219bb6
Implement boot time analysis framework.
2013-03-19 20:25:09 +01:00
Vladimir 'phcoder' Serbinenko
e5a2dd7b55
remove get_endpoint_descriptor and change all functions needing
...
descriptor to just receive it as argument rather than endpoint
address.
2013-03-19 11:19:36 +01:00
Vladimir 'phcoder' Serbinenko
5dd6f58789
Better estimate the maximum USB transfer size.
2013-03-19 08:17:51 +01:00
Vladimir 'phcoder' Serbinenko
66a93674b2
Implement USBDebug (full USB stack variant).
2013-02-01 21:49:29 +01:00
Vladimir 'phcoder' Serbinenko
cfe1288b8d
* grub-core/bus/usb/usb.c (grub_usb_device_attach): Add missing
...
grub_print_error.
2013-02-01 21:43:49 +01:00
Vladimir 'phcoder' Serbinenko
e42b99698c
* grub-core/bus/usb/serial/common.c (grub_usbserial_attach): Fix missing
...
zero-out of port structure.
2013-02-01 21:32:17 +01:00
Colin Watson
5fdbaed168
Remove nested functions from USB iterators.
...
* include/grub/usb.h (grub_usb_iterate_hook_t): New type.
(grub_usb_controller_iterate_hook_t): Likewise.
(grub_usb_iterate): Add hook_data argument.
(grub_usb_controller_iterate): Likewise.
(struct grub_usb_controller_dev.iterate): Likewise.
Update all implementations and callers.
2013-01-21 21:02:24 +00:00
Vladimir 'phcoder' Serbinenko
b879aa7b47
Split long USB transfers into short ones.
2013-01-20 22:45:53 +01:00
Colin Watson
ca3a74469a
Remove nested functions from PCI iterators.
...
* grub-core/bus/pci.c (grub_pci_iterate): Add hook_data argument,
passed to hook. Update all callers to pass appropriate hook data.
* grub-core/bus/emu/pci.c (grub_pci_iterate): Likewise.
* include/grub/pci.h (grub_pci_iteratefunc_t): Add data argument.
Remove NESTED_FUNC_ATTR from here and from all users.
(grub_pci_iterate): Update prototype.
* grub-core/bus/cs5536.c (grub_cs5536_find: hook): Make static
instead of nested. Rename to ...
(grub_cs5536_find_iter): ... this.
* grub-core/kern/efi/mm.c (stop_broadcom: find_card): Likewise.
* grub-core/kern/mips/loongson/init.c (init_pci: set_card):
Likewise.
* grub-core/kern/vga_init.c (grub_qemu_init_cirrus: find_card):
Likewise.
* grub-core/video/bochs.c (grub_video_bochs_setup: find_card):
Likewise.
* grub-core/video/cirrus.c (grub_video_cirrus_setup: find_card):
Likewise.
* grub-core/video/efi_uga.c (find_framebuf: find_card): Likewise.
* grub-core/video/radeon_fuloong2e.c
(grub_video_radeon_fuloong2e_setup: find_card): Likewise.
* grub-core/video/sis315pro.c (grub_video_sis315pro_setup:
find_card): Likewise.
* grub-core/video/sm712.c (grub_video_sm712_setup: find_card):
Likewise.
2013-01-13 01:10:41 +00:00
Colin Watson
33a68ac643
* grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): Remove incorrect
...
__attribute__ ((unused)).
* grub-core/video/bochs.c (find_card): Likewise.
* grub-core/video/cirrus.c (find_card): Likewise.
* grub-core/video/radeon_fuloong2e.c (find_card): Likewise.
* grub-core/video/sis315pro.c (find_card): Likewise.
* grub-core/video/sm712.c (find_card): Likewise.
2012-12-30 09:57:58 +00:00
starous
39b27f1eaf
EHCI and OHCI PCI bus master
2012-07-22 21:09:30 +02:00
Vladimir 'phcoder' Serbinenko
c8ca585593
* grub-core/bus/usb/serial/ftdi.c (real_config): Handle 1.5 stop bits.
...
(ftdi_hw_configure): Likewise.
* grub-core/bus/usb/serial/pl2303.c (GRUB_PL2303_STOP_BITS_1_5): New
define.
(real_config): Handle 1.5 stop bits.
(pl2303_hw_configure): Likewise.
2012-06-08 20:40:40 +02:00
Christer Weinigel
bda36bfa77
Fix EHCI low-speed.
...
* grub-core/bus/usb/ehci.c (GRUB_EHCI_MULT_ONE): Fix the value.
(GRUB_EHCI_MULT_TWO): Likewise.
(GRUB_EHCI_MULT_THREE): Likewise.
(GRUB_EHCI_CMASK_MASK): New enum value.
(GRUB_EHCI_SMASK_MASK): Likewise.
(GRUB_EHCI_CMASK_OFF): Likewise.
(GRUB_EHCI_SMASK_OFF): Likewise.
(grub_ehci_pci_iter): Enable periodic schedule.
(grub_ehci_parse_notrun): Likewise.
(grub_ehci_restore_hw): Likewise.
(grub_ehci_setup_qh): Set flags for low speed transfers.
(grub_ehci_find_qh): Use periodic list for low speed.
(grub_ehci_setup_transfer): Check periodic queue as well.
(grub_ehci_check_transfer): Likewise.
(grub_ehci_cancel_transfer): Cancel periodic transfer.
2012-05-31 14:02:46 +02:00
Vladimir 'phcoder' Serbinenko
d61386e21d
Improve string. Gettextize.
2012-02-12 15:25:25 +01:00
Vladimir 'phcoder' Serbinenko
a9cdb3cf18
* grub-core/bus/usb/ehci.c (grub_ehci_ehcc_read32): Restructure to
...
conserve alignment invariants.
(grub_ehci_ehcc_read16): Likewise.
(grub_ehci_oper_read32): Likewise.
(grub_ehci_oper_write32): Likewise.
(grub_ehci_pci_iter) [!GRUB_HAVE_UNALIGNED_ACCESS]: Check alignment.
Conserve alignment invariants.
2012-02-09 23:18:53 +01:00
Vladimir 'phcoder' Serbinenko
01783768d2
Convert UHCI to DMA framework.
...
* grub-core/bus/usb/uhci.c (grub_uhci): Add chunk and phys members.
(grub_uhci_pci_iter): Fill new members
(grub_alloc_td): Use P2V and V2P functions.
(grub_free_queue): Likewise.
(grub_alloc_qh): Likewise.
(grub_uhci_setup_transfer): Likewise.
(grub_uhci_check_transfer): Likewise.
2012-02-09 15:00:05 +01:00
Vladimir 'phcoder' Serbinenko
9c4b5c13e6
Improve gettext support. Stylistic fixes and error handling fixes while
...
on it.
2012-02-08 19:26:01 +01:00
Vladimir 'phcoder' Serbinenko
d3e3fab52a
Fix ehci on amd64.
...
* grub-core/bus/usb/usbhub.c (grub_usb_hub_add_dev): Use %p to print
pointers.
* grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): Likewise.
(grub_ehci_setup_qh): Likewise.
(grub_ehci_find_qh): Likewise.
(grub_ehci_transaction): Likewise.
(grub_ehci_setup_transfer): Likewise.
(grub_ehci_check_transfer): Likewise.
(grub_ehci_portstatus): Likewise.
(grub_ehci_detect_dev): Likewise.
(grub_ehci_transfer_controller_data): New field td_last_phys.
(grub_ehci_setup_transfer): Fill td_last_phys.
(grub_ehci_check_transfer): Use td_last_phys.
2012-02-01 16:13:17 +01:00