[LinuxBIOS] patch for geodelx in arch/x86

Jordan Crouse jordan.crouse at amd.com
Tue Nov 27 17:51:17 CET 2007


On 27/11/07 08:28 -0800, ron minnich wrote:
> add one debug print, move all smbus_read_byte to spd_read_byte.

Sorry, I didn't catch this before.  I think this might be a bad move - 
smbus isn't just for reading spd anymore.  There are thermal sensors,
GPIO extenders and other things out there that we might need to get on
top of.  We've already seen this in v2 with OLPC - we needed SMBUS to
talk to the display.

I don't mind the name spd_read_byte, but I think it should be a 
derivative of a core smbus_read_byte function rather then something that
just lives in an early stage (initram, or whatever it is kids are calling
it today).

Jordan

> attached.
> 
> ron

> Add a debug print. Change all smbus_read_byte to spd_read_byte.
> 
> Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
> 
> Index: arch/x86/geodelx/geodelx.c
> ===================================================================
> --- arch/x86/geodelx/geodelx.c	(revision 524)
> +++ arch/x86/geodelx/geodelx.c	(working copy)
> @@ -150,6 +150,7 @@
>  {
>  	struct msr msr_glcp_sys_pll;	/* GeodeLink PLL control MSR */
>  
> +	printk(BIOS_DEBUG, "pll_reset: read msr %#x\n", GLCP_SYS_RSTPLL);
>  	msr_glcp_sys_pll = rdmsr(GLCP_SYS_RSTPLL);
>  
>  	printk(BIOS_DEBUG, "_MSR GLCP_SYS_RSTPLL (%08x) value is: %08x:%08x\n",
> @@ -346,20 +347,20 @@
>  	 * Note: We only support a module width of 64.
>  	 */
>  	dimms = 0;
> -	spdbyte0 = smbus_read_byte(dimm0, SPD_PRIMARY_SDRAM_WIDTH);
> +	spdbyte0 = spd_read_byte(dimm0, SPD_PRIMARY_SDRAM_WIDTH);
>  	if (spdbyte0 != 0xFF) {
>  		dimms++;
>  		spdbyte0 = (u8)64 / spdbyte0 *
> -			   (u8)(smbus_read_byte(dimm0, SPD_NUM_DIMM_BANKS));
> +			   (u8)(spd_read_byte(dimm0, SPD_NUM_DIMM_BANKS));
>  	} else {
>  		spdbyte0 = 0;
>  	}
>  
> -	spdbyte1 = smbus_read_byte(dimm1, SPD_PRIMARY_SDRAM_WIDTH);
> +	spdbyte1 = spd_read_byte(dimm1, SPD_PRIMARY_SDRAM_WIDTH);
>  	if (spdbyte1 != 0xFF) {
>  		dimms++;
>  		spdbyte1 = (u8)64 / spdbyte1 *
> -			   (u8)(smbus_read_byte(dimm1, SPD_NUM_DIMM_BANKS));
> +			   (u8)(spd_read_byte(dimm1, SPD_NUM_DIMM_BANKS));
>  	} else {
>  		spdbyte1 = 0;
>  	}

> -- 
> linuxbios mailing list
> linuxbios at linuxbios.org
> http://www.linuxbios.org/mailman/listinfo/linuxbios

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.






More information about the coreboot mailing list