cpu/intel/car/cache_as_ram.inc: Remove broken HT code
Remove Hyperthreading related code that was missing setup of SIPI vector and did not work. Change-Id: I27e329a7b667ce4405fe07a637edbc6b5be22f2d Signed-off-by: Keith Hui <buurin@gmail.com> Reviewed-on: https://review.coreboot.org/21375 Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
b8e325a714
commit
47b283605a
1 changed files with 0 additions and 75 deletions
|
@ -29,81 +29,6 @@
|
|||
movl %eax, %ebp
|
||||
|
||||
CacheAsRam:
|
||||
/* Check whether the processor has HT capability. */
|
||||
movl $01, %eax
|
||||
cpuid
|
||||
btl $28, %edx
|
||||
jnc NotHtProcessor
|
||||
bswapl %ebx
|
||||
cmpb $01, %bh
|
||||
jbe NotHtProcessor
|
||||
|
||||
/*
|
||||
* It is a HT processor. Send SIPI to the other logical processor
|
||||
* within this processor so that the CAR related common system
|
||||
* registers are programmed accordingly.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Use some register that is common to both logical processors
|
||||
* as semaphore. Refer Appendix B, Vol.3.
|
||||
*/
|
||||
xorl %eax, %eax
|
||||
xorl %edx, %edx
|
||||
movl $MTRR_FIX_64K_00000, %ecx
|
||||
wrmsr
|
||||
|
||||
/*
|
||||
* Figure out the logical AP's APIC ID; the following logic will
|
||||
* work only for processors with 2 threads.
|
||||
* Refer to Vol 3. Table 7-1 for details about this logic.
|
||||
*/
|
||||
movl $0xFEE00020, %esi
|
||||
movl (%esi), %ebx
|
||||
andl $0xFF000000, %ebx
|
||||
bswapl %ebx
|
||||
btl $0, %ebx
|
||||
jnc LogicalAP0
|
||||
andb $0xFE, %bl
|
||||
jmp Send_SIPI
|
||||
LogicalAP0:
|
||||
orb $0x01, %bl
|
||||
Send_SIPI:
|
||||
bswapl %ebx /* EBX - logical AP's APIC ID. */
|
||||
|
||||
/*
|
||||
* Fill up the IPI command registers in the Local APIC mapped to
|
||||
* default address and issue SIPI to the other logical processor
|
||||
* within this processor die.
|
||||
*/
|
||||
Retry_SIPI:
|
||||
movl %ebx, %eax
|
||||
movl $0xFEE00310, %esi
|
||||
movl %eax, (%esi)
|
||||
|
||||
/* SIPI vector - F900:0000 */
|
||||
movl $0x000006F9, %eax
|
||||
movl $0xFEE00300, %esi
|
||||
movl %eax, (%esi)
|
||||
|
||||
movl $0x30, %ecx
|
||||
SIPI_Delay:
|
||||
pause
|
||||
decl %ecx
|
||||
jnz SIPI_Delay
|
||||
|
||||
movl (%esi), %eax
|
||||
andl $0x00001000, %eax
|
||||
jnz Retry_SIPI
|
||||
|
||||
/* Wait for the Logical AP to complete initialization. */
|
||||
LogicalAP_SIPINotdone:
|
||||
movl $MTRR_FIX_64K_00000, %ecx
|
||||
rdmsr
|
||||
orl %eax, %eax
|
||||
jz LogicalAP_SIPINotdone
|
||||
|
||||
NotHtProcessor:
|
||||
/* Set the default memory type and enable fixed and variable MTRRs. */
|
||||
movl $MTRR_DEF_TYPE_MSR, %ecx
|
||||
xorl %edx, %edx
|
||||
|
|
Loading…
Reference in a new issue