[LinuxBIOS] r395 - in LinuxBIOSv3/mainboard: adl/msm800sev amd/norwich artecgroup/dbe61 emulation/qemu-x86
Uwe Hermann
uwe at hermann-uwe.de
Thu Jun 28 23:17:18 CEST 2007
On Thu, Jun 28, 2007 at 06:48:40PM +0200, svn at openbios.org wrote:
> Modified: LinuxBIOSv3/mainboard/artecgroup/dbe61/initram.c
> ===================================================================
> --- LinuxBIOSv3/mainboard/artecgroup/dbe61/initram.c 2007-06-28 16:21:38 UTC (rev 394)
> +++ LinuxBIOSv3/mainboard/artecgroup/dbe61/initram.c 2007-06-28 16:48:40 UTC (rev 395)
> @@ -43,9 +43,15 @@
> */
> #define GPIO_BASE 0x6100
>
> +/* empty function to always fail smbus reads */
Is this done because every board needs this function but this one
doesn't use it?
> +int smbus_read_byte(unsigned device, unsigned address)
No unsigned, please use u16 or something.
> +{
> + return -1;
> +}
> +
> static void init_gpio(void)
> {
> - msr_t msr;
> + struct msr_struct msr;
> printk(BIOS_DEBUG, "Initializing GPIO module...\n");
>
> // initialize the GPIO LBAR
> @@ -63,7 +69,7 @@
> * width in bits (byte 6,7)
> * = Density per side (byte 31) * number of sides (byte 5) */
> /* 1. Initialize GLMC registers base on SPD values, do one DIMM for now */
> - msr_t msr;
> + struct msr_struct msr;
>
> msr.hi = 0x10075012;
> msr.lo = 0x00000040;
> @@ -101,13 +107,21 @@
> /* Hold Count - how long we will sit in reset */
> #define PLLMSRlo 0x00DE0000
>
> +struct wmsr {
> + u32 reg;
> + struct msr_struct msr;
> +} dbe61_msr[] = {
> + {.reg = 0x10000020, {.lo = 0xfff80, .hi = 0x20000000}},
> + {.reg = 0x10000021, {.lo = 0x80fffe0, .hi = 0x20000000}},
> + {.reg = 0x40000020, {.lo = 0xfff80, .hi = 0x20000000}},
> + {.reg = 0x40000021, {.lo = 0x80fffe0, .hi = 0x20000000}},
> +};
> +
> static void dbe61_msr_init(void)
> {
> - __builtin_wrmsr(0x10000020, 0xfff80, 0x20000000);
> - __builtin_wrmsr(0x10000021, 0x80fffe0, 0x20000000);
> -
> - __builtin_wrmsr(0x40000020, 0xfff80, 0x20000000);
> - __builtin_wrmsr(0x40000021, 0x80fffe0, 0x20000000);
> + int i;
> + for(i = 0; i < sizeof(dbe61_msr)/sizeof(dbe61_msr[0]); i++)
We want an ARRAY_SIZE macro in some header file for this, it's even
recommnended by the coding guidelines.
> + wrmsr(dbe61_msr[i].reg, dbe61_msr[i].msr);
> }
>
> int main(void)
Uwe.
--
http://www.hermann-uwe.de | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20070628/5fdbd4bc/attachment.sig>
More information about the coreboot
mailing list