[coreboot] r834 - in coreboot-v3: arch/x86 include mainboard/amd/serengeti

svn at coreboot.org svn at coreboot.org
Thu Aug 28 03:57:14 CEST 2008


Author: hailfinger
Date: 2008-08-28 03:57:14 +0200 (Thu, 28 Aug 2008)
New Revision: 834

Modified:
   coreboot-v3/arch/x86/stage1.c
   coreboot-v3/include/globalvars.h
   coreboot-v3/mainboard/amd/serengeti/initram.c
Log:
BIST handling. Unless I'm mistaken, we already die() in stage1_main() if
processor BIST is nonzero. Checking it in initram makes no sense. Having
it as global variable is unnecessary as well. Link BIST is an entirely
different animal.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>


Modified: coreboot-v3/arch/x86/stage1.c
===================================================================
--- coreboot-v3/arch/x86/stage1.c	2008-08-28 01:31:24 UTC (rev 833)
+++ coreboot-v3/arch/x86/stage1.c	2008-08-28 01:57:14 UTC (rev 834)
@@ -143,7 +143,9 @@
  * This function is called from assembler code with its argument on the
  * stack. Force the compiler to generate always correct code for this case.
  * We have cache as ram running and can start executing code in C.
- * @param bist Built In Self Test value
+ * @param bist Built In Self Test, which is used to indicate status of self test.
+ * bist is defined by the CPU hardware and is present in EAX on first instruction of coreboot. 
+ * Its value is implementation defined.
  * @param init_detected This (optionally set) value is used on some platforms (e.g. k8) to indicate
  * that we are restarting after some sort of reconfiguration. Note that we could use it on geode but 
  * do not at present. 
@@ -174,6 +176,7 @@
 
 	// before we do anything, we want to stop if we dont run
 	// on the bootstrap processor.
+#warning We do not want to check BIST here, we want to check whether we are BSC!
 	if (bist==0) {
 		// stop secondaries
 		stop_ap();
@@ -183,7 +186,6 @@
 	 * NEVER run this on an AP!
 	 */
 	global_vars_init(&globvars);
-	globvars.bist = bist;
 	globvars.init_detected = init_detected;
 
 	hardware_stage1();

Modified: coreboot-v3/include/globalvars.h
===================================================================
--- coreboot-v3/include/globalvars.h	2008-08-28 01:31:24 UTC (rev 833)
+++ coreboot-v3/include/globalvars.h	2008-08-28 01:57:14 UTC (rev 834)
@@ -47,7 +47,6 @@
 #endif
 	unsigned int loglevel;
 	/* these two values are of interest in many stages */
-	u32 bist;
 	u32 init_detected;
 	struct sys_info sys_info;
 };

Modified: coreboot-v3/mainboard/amd/serengeti/initram.c
===================================================================
--- coreboot-v3/mainboard/amd/serengeti/initram.c	2008-08-28 01:31:24 UTC (rev 833)
+++ coreboot-v3/mainboard/amd/serengeti/initram.c	2008-08-28 01:57:14 UTC (rev 834)
@@ -86,12 +86,11 @@
 
 /** 
   * main for initram for the AMD Serengeti
- * @param bist Built In Self Test, which is used to indicate status of self test
  * @param init_detected Used to indicate that we have been started via init
  * @returns 0 on success
  * The purpose of this code is to not only get ram going, but get any other cpus/cores going. 
  * The two activities are very tightly connected and not really seperable. 
- * The BSP (boot strap processor? ) Core 0 is responsible for all training or all sockets. Note that
+ * The BSP (boot strap processor) Core 0 (BSC) is responsible for all training or all sockets. Note that
  * this need not be socket 0; one great strength of coreboot, as opposed to other BIOSes, is that it could
  * always boot with with a CPU in any socket, and even with empty sockets (as opposed to, e.g., the BIOS
  * that came installed on the Sun Ultra 40, which would freeze if one CPU were not installed).
@@ -100,9 +99,6 @@
  * 
   */
 /* 
- * bist is defined by the CPU hardware and is present in EAX on first instruction of coreboot. 
- * Its value is implementation defined. 
- * 
  * init_detected is used to determine if we did a soft reset as required by a reprogramming of the 
  * hypertransport links. If we did this kind of reset, bit 11 will be set in the MTRRdefType_MSR MSR. 
  * That may seem crazy, but there are not lots of places to hide a bit when the CPU does a reset. 
@@ -111,7 +107,7 @@
 int main(void)
 {
 	void enable_smbus(void);
-	u32 bist, u32 init_detected;
+	u32 init_detected;
 	static const u16 spd_addr[] = {
 			//first node
                         RC0|DIMM0, RC0|DIMM2, 0, 0,
@@ -139,17 +135,11 @@
 	post_code(POST_START_OF_MAIN);
 	sysinfo = &(global_vars()->sys_info);
 
-	bist = sysinfo->bist;
 	init_detected = sysinfo->init_detected;
-	/* We start out by looking at bist. Where was bist set? */
 	/* well, here we are. For starters, we need to know if this is cpu0 core0. 
 	 * cpu0 core 0 will do all the DRAM setup. 
 	 */
-	if (bist) {
-		printk(BIOS_EMERG, "Bist 0x%x\n", bist);
-		die("bist failure");
-	} else
-		bsp_apicid = init_cpus(init_detected, sysinfo);
+	bsp_apicid = init_cpus(init_detected, sysinfo);
 
 //	dump_mem(DCACHE_RAM_BASE+DCACHE_RAM_SIZE-0x200, DCACHE_RAM_BASE+DCACHE_RAM_SIZE);
 





More information about the coreboot mailing list