summaryrefslogtreecommitdiff
path: root/src/northbridge/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/intel')
-rw-r--r--src/northbridge/intel/haswell/mrc.asm26
-rw-r--r--src/northbridge/intel/haswell/mrc_misc.c16
-rw-r--r--src/northbridge/intel/haswell/mrc_misc.h1
3 files changed, 18 insertions, 25 deletions
diff --git a/src/northbridge/intel/haswell/mrc.asm b/src/northbridge/intel/haswell/mrc.asm
index 4ffd451bc5..9407cc9e6e 100644
--- a/src/northbridge/intel/haswell/mrc.asm
+++ b/src/northbridge/intel/haswell/mrc.asm
@@ -70,7 +70,6 @@ extern locate_hob
extern fcn_fffa1d20
global fcn_fffa56ac
global fcn_fffa7e71
-global fcn_fffa7e78
global fcn_fffa7ecd
global fcn_fffa8fb6
global fcn_fffa9196
@@ -224,6 +223,7 @@ extern frag_fffa5810
extern frag_fffa58f7
extern wait_5030
extern wait_5084
+global fcn_fffab1b6
;;
mrc_entry:
@@ -4613,30 +4613,6 @@ mov ebp, esp
pop ebp
ret
-fcn_fffa7e78: ; not directly referenced
-push ebp
-mov ebp, esp
-lea esp, [esp - 8]
-mov eax, dword [ebp + 8]
-mov edx, dword [eax + 0x103f]
-mov dword [edx + 0x5f08], 0x14
-cmp dword [eax + 0x297c], 2
-jne short loc_fffa7eab ; jne 0xfffa7eab
-mov edx, dword [eax + 0x103f]
-mov dword [edx + 0x48a8], 0x3000
-
-loc_fffa7eab: ; not directly referenced
-cmp dword [eax + 0x3cc3], 2
-jne short loc_fffa7ec4 ; jne 0xfffa7ec4
-mov edx, dword [eax + 0x103f]
-mov dword [edx + 0x48b0], 0x3000
-
-loc_fffa7ec4: ; not directly referenced
-call fcn_fffab1b6 ; call 0xfffab1b6
-xor eax, eax
-leave
-ret
-
fcn_fffa7ecd: ; not directly referenced
push ebp
xor ecx, ecx
diff --git a/src/northbridge/intel/haswell/mrc_misc.c b/src/northbridge/intel/haswell/mrc_misc.c
index ac0d8bf574..f2ae37ec4a 100644
--- a/src/northbridge/intel/haswell/mrc_misc.c
+++ b/src/northbridge/intel/haswell/mrc_misc.c
@@ -1645,3 +1645,19 @@ int MRCABI wait_5084(void *ramdata)
} while (ts < end_ts);
return 0x11;
}
+
+void MRCABI fcn_fffab1b6(void*);
+int fcn_fffa7e78(void *ramdata)
+{
+ PRINT_FUNC;
+
+ MCHBAR32(0x5f08) = 0x14;
+ if (*(int *)(ramdata + 0x297c) == 2) {
+ MCHBAR32(0x48a8) = 0x3000;
+ }
+ if (*(int *)(ramdata + 0x3cc3) == 2) {
+ MCHBAR32(0x48b0) = 0x3000;
+ }
+ fcn_fffab1b6(ramdata);
+ return 0;
+}
diff --git a/src/northbridge/intel/haswell/mrc_misc.h b/src/northbridge/intel/haswell/mrc_misc.h
index 6dc54df413..20a7c1a482 100644
--- a/src/northbridge/intel/haswell/mrc_misc.h
+++ b/src/northbridge/intel/haswell/mrc_misc.h
@@ -58,3 +58,4 @@ int fcn_fffa7a1c(void *ramdata);
int fcn_fffc7720(void *ramdata);
int MRCABI wait_5030(void *ramdata);
int MRCABI wait_5084(void *ramdata);
+int fcn_fffa7e78(void *ramdata);