libpayload: Fix passing BAR to EHCI driver
The EHCI driver never looked for the base address handed to it but instead used an uninitialized field for that information. Change-Id: I89fe0cc212092672b36e978083e3de78419b1eb5 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: http://review.coreboot.org/10179 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
cc4d30924a
commit
7746606891
|
@ -816,8 +816,8 @@ ehci_init (unsigned long physical_bar)
|
||||||
controller->poll_intr_queue = ehci_poll_intr_queue;
|
controller->poll_intr_queue = ehci_poll_intr_queue;
|
||||||
init_device_entry (controller, 0);
|
init_device_entry (controller, 0);
|
||||||
|
|
||||||
EHCI_INST(controller)->capabilities = phys_to_virt(controller->reg_base);
|
EHCI_INST(controller)->capabilities = phys_to_virt(physical_bar);
|
||||||
EHCI_INST(controller)->operation = (hc_op_t *)(phys_to_virt(controller->reg_base) + EHCI_INST(controller)->capabilities->caplength);
|
EHCI_INST(controller)->operation = (hc_op_t *)(phys_to_virt(physical_bar) + EHCI_INST(controller)->capabilities->caplength);
|
||||||
|
|
||||||
/* Set the high address word (aka segment) if controller is 64-bit */
|
/* Set the high address word (aka segment) if controller is 64-bit */
|
||||||
if (EHCI_INST(controller)->capabilities->hccparams & 1)
|
if (EHCI_INST(controller)->capabilities->hccparams & 1)
|
||||||
|
|
Loading…
Reference in New Issue