mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	On x86 it is common to use 'post codes' which are 8-bit hex values emitted from the code and visible to the user. Traditionally two 7-segment displays were made available on the motherboard to show the last post code that was emitted. This allows diagnosis of a boot problem since it is possible to see where the code got to before it died. On modern hardware these codes are not normally visible. On Chromebooks they are displayed by the Embedded Controller (EC), so it is useful to emit them. We must enable this feature for the EC to see the codes, so add an option for this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
		
			
				
	
	
		
			30 lines
		
	
	
		
			529 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			529 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2014 Google, Inc
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| .globl early_board_init
 | |
| early_board_init:
 | |
| 	/* Enable post codes to EC */
 | |
| #ifdef CONFIG_EARLY_POST_CROS_EC
 | |
| 	mov    $0x1b, %ecx
 | |
| 	rdmsr
 | |
| 	and    $0x100, %eax
 | |
| 	test   %eax, %eax
 | |
| 	je     1f
 | |
| 
 | |
| 	mov    $0x8000f8f0, %eax
 | |
| 	mov    $0xcf8, %dx
 | |
| 	out    %eax, (%dx)
 | |
| 	mov    $0xfed1c001, %eax
 | |
| 	mov    $0xcfc, %dx
 | |
| 	out    %eax, (%dx)
 | |
| 	mov    $0xfed1f410, %esp
 | |
| 	mov    (%esp), %eax
 | |
| 	and    $0xfffffffb, %eax
 | |
| 	mov    %eax, (%esp)
 | |
| 1:
 | |
| #endif
 | |
| 	jmp	early_board_init_ret
 |