diff options
author | Iru Cai <mytbk920423@gmail.com> | 2019-01-02 16:24:03 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2019-11-17 15:10:46 +0800 |
commit | 2275cff4886350d377e07eb3fc00b138f3b71d6d (patch) | |
tree | a0b5c7fdf89981b66c16feae3fe9ed748c7f659c /src | |
parent | 8a4b5d119c40becba64012e3307d37d118cfd941 (diff) | |
download | coreboot-2275cff4886350d377e07eb3fc00b138f3b71d6d.tar.xz |
frag_usb_fffaf555
Diffstat (limited to 'src')
-rw-r--r-- | src/northbridge/intel/haswell/mrc_frags.c | 12 | ||||
-rw-r--r-- | src/northbridge/intel/haswell/pei_usb.asm | 26 |
2 files changed, 17 insertions, 21 deletions
diff --git a/src/northbridge/intel/haswell/mrc_frags.c b/src/northbridge/intel/haswell/mrc_frags.c index 40a3af53c2..bc2c34122b 100644 --- a/src/northbridge/intel/haswell/mrc_frags.c +++ b/src/northbridge/intel/haswell/mrc_frags.c @@ -800,6 +800,18 @@ void set_usb_overcurrent(PEI_USB *upd) } } +void frag_usb_fffaf555(PEI_USB *upd, int count); +void frag_usb_fffaf555(PEI_USB *upd, int count) +{ + u32 v = 0; + for (int i = 0; i < count; i++) { + if (upd->xhci_resume_info[0x11 + i] == 1) { + v |= (1 << i); + } + } + pci_update_config32(PCI_DEV(0, 0x14, 0), 0xd8, 0xffffffc0, v); +} + void frag_usb_fffaf75b(PEI_USB *upd); void frag_usb_fffaf75b(PEI_USB *upd) { diff --git a/src/northbridge/intel/haswell/pei_usb.asm b/src/northbridge/intel/haswell/pei_usb.asm index 2dcf7242fe..f7e2e1f4a6 100644 --- a/src/northbridge/intel/haswell/pei_usb.asm +++ b/src/northbridge/intel/haswell/pei_usb.asm @@ -20,6 +20,7 @@ extern frag_usb_loop1 extern frag_usb_loop2 extern frag_usb_loop3 extern frag_usb_loop4 +extern frag_usb_fffaf555 mrc_init_usb: push ebp @@ -502,28 +503,11 @@ push ebx call frag_usb_loop1 add esp, 12 -xor eax, eax -xor ecx, ecx -jmp short loc_fffaf555 ; jmp 0xfffaf555 - -loc_fffaf541: -mov edx, dword [ebp - 0x30] -cmp byte [edx + ecx + 0x66], 1 -jne short loc_fffaf554 ; jne 0xfffaf554 -mov edx, 1 -shl edx, cl -or eax, edx - -loc_fffaf554: -inc ecx +push dword [ebp - 0x34] +push dword [ebp - 0x30] +call frag_usb_fffaf555 +add esp, 8 -loc_fffaf555: -cmp ecx, dword [ebp - 0x34] -jne short loc_fffaf541 ; jne 0xfffaf541 -mov edx, dword [edi + 0xa00d8] -and edx, 0xffffffc0 -or edx, eax -mov dword [edi + 0xa00d8], edx mov ecx, dword [ebp - 0x34] lea ecx, [esi + ecx*4] mov dword [ebp - 0x2c], ecx |