Author: rminnich Date: 2006-08-10 05:23:48 +0200 (Thu, 10 Aug 2006) New Revision: 2370
Modified: trunk/LinuxBIOSv2/src/mainboard/olpc/rev_a/auto.c trunk/LinuxBIOSv2/src/northbridge/amd/gx2/northbridge.c Log: change from AMD for the IRQ10 problem.
Modified: trunk/LinuxBIOSv2/src/mainboard/olpc/rev_a/auto.c =================================================================== --- trunk/LinuxBIOSv2/src/mainboard/olpc/rev_a/auto.c 2006-08-09 02:21:49 UTC (rev 2369) +++ trunk/LinuxBIOSv2/src/mainboard/olpc/rev_a/auto.c 2006-08-10 03:23:48 UTC (rev 2370) @@ -149,7 +149,18 @@ __builtin_wrmsr(0x40000021, 0x80fffe0, 0x20000000); }
- +static void gpio_init(void) +{ + unsigned long m; + + /* Make sure events enable for gpio 12 is off */ + + m = inl(GPIOL_EVENTS_ENABLE); + m &= ~GPIOL_12_SET; + m |= GPIOL_12_CLEAR; + outl(m, GPIOL_EVENTS_ENABLE); +} + static void main(unsigned long bist) { static const struct mem_controller memctrl [] = { @@ -166,6 +177,7 @@ * for cs5536 */ cs5536_setup_onchipuart(); + gpio_init(); uart_init(); console_init();
Modified: trunk/LinuxBIOSv2/src/northbridge/amd/gx2/northbridge.c =================================================================== --- trunk/LinuxBIOSv2/src/northbridge/amd/gx2/northbridge.c 2006-08-09 02:21:49 UTC (rev 2369) +++ trunk/LinuxBIOSv2/src/northbridge/amd/gx2/northbridge.c 2006-08-10 03:23:48 UTC (rev 2370) @@ -276,11 +276,20 @@
static void northbridge_init(device_t dev) { + unsigned long m; + struct northbridge_amd_gx2_config *nb = (struct northbridge_amd_gx2_config *)dev->chip_info; printk_debug("northbridge: %s()\n", __FUNCTION__); enable_shadow(dev); irq_init_steering(dev, nb->irqmap); + + /* HACK HACK HACK HACK */ + /* 0x1000 is where GPIO is being assigned */ + m = inl(0x1038); + m &= ~GPIOL_12_SET; + m |= GPIOL_12_CLEAR; + outl(m, 0x1038); }
/* due to vsa interactions, we need not not touch the nb settings ... */