[coreboot] latest cumulative kontron patch

Peter Stuge peter at stuge.se
Sat Nov 15 04:17:17 CET 2008


ron minnich wrote:
> Cumulative set of changes. If there are no objections I'm going to
> commit.

I have some. :p


> +++ southbridge/intel/i82801gx/lpc.c	(working copy)
> @@ -128,6 +128,9 @@
>  {
>  	u8 reg8;
>  	u16 reg16;
> +#ifndef MAINBOARD_POWER_ON_AFTER_POWER_FAIL
> +#define MAINBOARD_POWER_ON_AFTER_POWER_FAIL 1
> +#endif
>  
>  	int pwr_on=MAINBOARD_POWER_ON_AFTER_POWER_FAIL;
>  	int nmi_option;

Could this go somewhere outside the function? Eventually I'd like
this particular setting to go into Kconfig and of course be
changeable at runtime. :)


> +++ northbridge/intel/i945/raminit.c	(working copy)

Big changes moving all the magic values around here and I don't have
the energy to look them all over. Maybe rework the changes to this
file and make a separate patch with just whitespace changes?


> +static const u32 dq2030[] = {
> +	0x08070706, 0x0a090908, 0x0d0c0b0a, 0x12100f0e, 
> +	0x1a181614, 0x22201e1c, 0x2a282624, 0x3934302d,
> +	0x0a090908, 0x0c0b0b0a, 0x0e0d0d0c, 0x1211100f, 
> +	0x19171513, 0x211f1d1b, 0x2d292623, 0x3f393531
> +};

These tables.. So ugly. sigh..


> +static const u8 dual_channel_slew_group_lookup[] = {
> +	DQ2030, CMD3210, CTL3215, CTL3215, CLK2030, CLK2030, DQ2030, CMD3210, 

yeah..


> +static const u32 * map(u32 *table, unsigned int i){
> +	const u32 *p = NULL;
> +	switch(table[i]) {
> +		case NC: p = nc; break;
> +		case DQ2030: p = dq2030; break;
> +		case CMD3210: p = cmd3210; break;
> +		case CTL3215: p = ctl3215; break;
> +		case CLK2030: p = clk2030; break;
> +		case CMD2710: p = cmd2710; break;
> +		case DQ2330: p = dq2330; break;
> +		default: printk(BIOS_ERR, "Missing table entry %p[0x%x]\n", table, i); die("fix raminit.c");
> +	}
> +	return p;
> +	
> +}
..

>  	/* Channel 0 */
> -	sdram_write_slew_rates(G1SRPUT, slew_group_lookup[idx * 8 + 0]);
> -	sdram_write_slew_rates(G2SRPUT, slew_group_lookup[idx * 8 + 1]);
> -	if ((slew_group_lookup[idx * 8 + 2] != nc) && (sysinfo->package == SYSINFO_PACKAGE_STACKED)) {
> +	sdram_write_slew_rates(G1SRPUT, map(slew_group_lookup, idx * 8 + 0));
> +	sdram_write_slew_rates(G2SRPUT, map(slew_group_lookup, idx * 8 + 1));
> +	if ((map(slew_group_lookup, idx * 8 + 2) != nc) && (sysinfo->package == SYSINFO_PACKAGE_STACKED)) {

What's this? Is this adding functionality?


> +static void i945_detect_chipset(void)

And here's a bunch of code moved from stage1 to raminit? Why?


> -static inline __attribute__ ((always_inline))
> -void pcie_write_config32(device_t dev, unsigned int where, u32 value)

> +++ northbridge/intel/i945/pcie_config.h	(working copy)
>  static inline __attribute__ ((always_inline))
> -u8 pcie_read_config8(device_t dev, unsigned int where)
> +u8 pcie_read_config8(u32 dev, unsigned int where)
>  {
>  	unsigned long addr;
>  	addr = DEFAULT_PCIEXBAR | dev | where;
> -	return read8(addr);
> +	return readb((void *)addr);
>  }

Was something said about functions in .h ?


//Peter




More information about the coreboot mailing list