aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/intel/i5000/halt_second_bsp.S
blob: a1a1b156db8910358746cf3222634b66b9663a05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
	/* Save BIST result */

	movl	%eax, %ebp

	/* Read the semaphore register of i5000 (BOFL0).
	   If it returns zero, it means there was already
	   another read by another CPU */

	movl	$0x800080c0, %eax
	movw	$0xcf8, %dx
	outl	%eax, %dx

	addw	$4, %dx
	inl	%dx, %eax
	cmp	$0, %eax
	jne	1f

	/* degrade BSP to AP */
	mov	$0x1b, %ecx
	rdmsr
	andl $(~0x100), %eax
	wrmsr

	cli
loop:	hlt
	jmp	loop

1:	/* Restore BIST */
	mov	%ebp, %eax