diff options
author | Iru Cai <mytbk920423@gmail.com> | 2019-01-02 11:38:38 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2019-11-17 15:10:46 +0800 |
commit | bc959d55b740b1a40de68e7da5432e1b6fe341e2 (patch) | |
tree | 78a68b8f9917b000ee292e83504c044514ab91c8 | |
parent | f4252ae2939cc82181d5d29331fc9bf3e5a72b88 (diff) | |
download | coreboot-bc959d55b740b1a40de68e7da5432e1b6fe341e2.tar.xz |
frag_usb_fffaf210
-rw-r--r-- | src/northbridge/intel/haswell/mrc_frags.c | 12 | ||||
-rw-r--r-- | src/northbridge/intel/haswell/pei_usb.asm | 20 |
2 files changed, 18 insertions, 14 deletions
diff --git a/src/northbridge/intel/haswell/mrc_frags.c b/src/northbridge/intel/haswell/mrc_frags.c index 26fc654d66..b79a356011 100644 --- a/src/northbridge/intel/haswell/mrc_frags.c +++ b/src/northbridge/intel/haswell/mrc_frags.c @@ -687,6 +687,18 @@ void frag_usb_fffaeb10(PEI_USB *upd, void *ebar) } } +void frag_usb_fffaf210(void *ebx, u32 *esi, int count); +void frag_usb_fffaf210(void *ebx, u32 *esi, int count) +{ + for (int i = 0; i < count; i++) { + void *addr = ebx + esi[i]; + u32 tmp = read32(addr); + tmp &= 0x7ffffffd; + tmp |= 0x80000000; + write32(addr, tmp); + } +} + /* from loc_fffaf684 to loc_fffaf75b */ void set_usb_overcurrent(PEI_USB *upd); void set_usb_overcurrent(PEI_USB *upd) diff --git a/src/northbridge/intel/haswell/pei_usb.asm b/src/northbridge/intel/haswell/pei_usb.asm index 196c3b446b..4a64e26972 100644 --- a/src/northbridge/intel/haswell/pei_usb.asm +++ b/src/northbridge/intel/haswell/pei_usb.asm @@ -16,6 +16,7 @@ extern frag_usb_fffaeb10 extern set_usb_overcurrent extern frag_usb_fffaf75b extern frag_usb_fffaf7d8 +extern frag_usb_fffaf210 mrc_init_usb: push ebp @@ -268,22 +269,13 @@ test al, 0x20 jne short loc_fffaf226 ; jne 0xfffaf226 jmp near loc_fffaf9e7 ; jmp 0xfffaf9e7 -loc_fffaf210: -mov ecx, dword [esi + edx*4] -add ecx, ebx -mov eax, dword [ecx] -and eax, 0x7ffffffd -or eax, 0x80000000 -mov dword [ecx], eax -inc edx -jmp short loc_fffaf228 ; jmp 0xfffaf228 - loc_fffaf226: -xor edx, edx +push dword [ebp - 0x34] +push esi +push ebx +call frag_usb_fffaf210 +add esp, 12 -loc_fffaf228: -cmp edx, dword [ebp - 0x34] -jne short loc_fffaf210 ; jne 0xfffaf210 mov eax, dword [ebp - 0x34] mov dword [ebp - 0x2c], 0xa lea eax, [esi + eax*4] |