xref: /openbmc/u-boot/arch/x86/cpu/queensbay/tnc.c (revision 2bb1cd53)
1 /*
2  * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #include <common.h>
8 #include <asm/io.h>
9 #include <asm/pci.h>
10 #include <asm/post.h>
11 #include <asm/arch/tnc.h>
12 #include <asm/fsp/fsp_support.h>
13 #include <asm/processor.h>
14 
15 static void unprotect_spi_flash(void)
16 {
17 	u32 bc;
18 
19 	bc = pci_read_config32(PCH_LPC_DEV, 0xd8);
20 	bc |= 0x1;	/* unprotect the flash */
21 	pci_write_config32(PCH_LPC_DEV, 0xd8, bc);
22 }
23 
24 int arch_cpu_init(void)
25 {
26 	struct pci_controller *hose;
27 	int ret;
28 
29 	post_code(POST_CPU_INIT);
30 #ifdef CONFIG_SYS_X86_TSC_TIMER
31 	timer_set_base(rdtsc());
32 #endif
33 
34 	ret = x86_cpu_init_f();
35 	if (ret)
36 		return ret;
37 
38 	ret = pci_early_init_hose(&hose);
39 	if (ret)
40 		return ret;
41 
42 	unprotect_spi_flash();
43 
44 	return 0;
45 }
46