This patch cleanes up the Wyse S50 port and unifies the memmory regions
authorNils Jacobs <njacobs8@hetnet.nl>
Fri, 14 May 2010 09:45:29 +0000 (09:45 +0000)
committerStefan Reinauer <stepan@openbios.org>
Fri, 14 May 2010 09:45:29 +0000 (09:45 +0000)
with Geode LX , adds gpl2 headers plus some white space fixes.

This is build and boot tested.(of course vsa loading is stil not fixed,it now
runs forever with :"Oops, exception 13 while executing option
rom")

Signed-off-by: Nils Jacobs <njacobs8@hetnet.nl>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5544 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/mainboard/wyse/Kconfig
src/mainboard/wyse/s50/Kconfig
src/mainboard/wyse/s50/chip.h
src/mainboard/wyse/s50/cmos.layout
src/mainboard/wyse/s50/devicetree.cb
src/mainboard/wyse/s50/irq_tables.c
src/mainboard/wyse/s50/mainboard.c
src/mainboard/wyse/s50/romstage.c

index a64504aea5de92da27da69c2787d4873e64ba0bd..c99132f02cbba6d4a4e38cc49df3c8eea4e5cc82 100644 (file)
@@ -1,3 +1,22 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2010 Nils Jacobs
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; version 2 of the License.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+##
+
 choice
        prompt "Mainboard model"
        depends on VENDOR_WYSE
index 635a86f4309416c46f4cef4694b2de8e094d251d..7163e9da3592a0d5bf6e57605adfd09f9134c755 100644 (file)
@@ -1,12 +1,11 @@
 ##
 ## This file is part of the coreboot project.
 ##
-## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
+## Copyright (C) 2010 Nils Jacobs
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
+## the Free Software Foundation; version 2 of the License.
 ##
 ## This program is distributed in the hope that it will be useful,
 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -49,3 +48,8 @@ config IRQ_SLOT_COUNT
        int
        default 3
        depends on BOARD_WYSE_S50
+
+config RAMBASE
+       hex
+       default 0x4000
+       depends on BOARD_WYSE_S50
index 2094b2392cbd806bac0e3829fc679948e7b1a1e0..94ca80bdf0f00e99028f4b77e95a0f933894e7fd 100644 (file)
@@ -1,3 +1,22 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Nils Jacobs
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
 extern struct chip_operations mainboard_ops;
 
 struct mainboard_config {
index c1354a2866feaeadd581311f1b6b018ce04bc92a..e5613589c0944aa157d7954cf12afea208cc2497 100644 (file)
@@ -1,3 +1,26 @@
+#
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2010 Nils Jacobs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 of
+# the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+
+# -----------------------------------------------------------------
+
 entries
 
 #start-bit length  config config-ID    name
index 76a8a04c6ee4b439bf2e1cccfc630a7365023fab..2c48e74dfb6dd39bc677c8e8e0954c0676c6ba68 100644 (file)
@@ -1,3 +1,24 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2010 Nils Jacobs
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; version 2 of
+## the License.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+## MA 02110-1301 USA
+##
+
 chip northbridge/amd/gx2
        register "irqmap" = "0xaa5b"
        register "setupflash" = "0"
index 0d3c8b06fd1f023d1102873da03a862c75403dae..3324d3a891976592f65f1afe20e1d25de62bc7d2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright (C) 200x TODO <TODO@TODO>
+ * Copyright (C) 2010 Nils Jacobs
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index ca13f6628275e64637a91dd630807db9b70f1a66..5431fe12447ce33ecd58529a826b890834729706 100644 (file)
@@ -1,3 +1,24 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Nils Jacobs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
 #include <console/console.h>
 #include <device/device.h>
 #include <device/pci.h>
index c8e25a6bb6dc9f847fcb7fd6e6382f6425a0682f..8a6e1213c95425bf2c18fdb7ee6fda0d05493237 100644 (file)
@@ -1,3 +1,24 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Nils Jacobs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
 #include <stdint.h>
 #include <device/pci_def.h>
 #include <arch/io.h>
@@ -20,16 +41,17 @@ static inline int spd_read_byte(unsigned device, unsigned address)
 
 #include "northbridge/amd/gx2/raminit.h"
 
+       /* This is needed because ROMCC doesn`t now the ctz bitop */
 static inline unsigned int ctz(unsigned int n)
 {
-        int zeros;
+       int zeros;
 
-        n = (n ^ (n - 1)) >> 1;
+       n = (n ^ (n - 1)) >> 1;
        for (zeros = 0; n; zeros++)
        {
          n >>= 1;
        }
-        return zeros;
+       return zeros;
 }
 
 static void sdram_set_spd_registers(const struct mem_controller *ctrl) 
@@ -42,7 +64,7 @@ static void sdram_set_spd_registers(const struct mem_controller *ctrl)
        msr_t msr;
        unsigned char module_banks, val;
        uint16_t dimm_size;
-       
+
        msr = rdmsr(MC_CF07_DATA);
 
        /* get module banks (sides) per dimm, SPD byte 5 */
@@ -97,35 +119,30 @@ static void sdram_set_spd_registers(const struct mem_controller *ctrl)
 
 #include "northbridge/amd/gx2/raminit.c"
 #include "lib/generic_sdram.c"
-
 #include "northbridge/amd/gx2/pll_reset.c"
 #include "cpu/amd/model_gx2/cpureginit.c"
 #include "cpu/amd/model_gx2/syspreinit.c"
 
 static void msr_init(void)
 {
-       /* total physical memory */
-       __builtin_wrmsr(0x1808,  0x11f6bf00, 0x21c00002);
-
-       /* traditional memory 0kB-512kB, 512kB-1MB */
-       __builtin_wrmsr(0x10000020, 0xfff80, 0x20000000);
-       __builtin_wrmsr(0x10000021, 0x80fffe0, 0x20000000);
-       __builtin_wrmsr(0x10000026, 0x400fffc0, 0x2dfbc040);
-       __builtin_wrmsr(0x10000028, 0x6bf00100, 0x2000001f);
-       __builtin_wrmsr(0x1000002c, 0xffff0003, 0x2000ffff);
-
-       __builtin_wrmsr(0x10000080, 0x3, 0x0);
-
-       __builtin_wrmsr(0x40000020, 0xfff80, 0x20000000);
-       __builtin_wrmsr(0x40000021, 0x80fffe0, 0x20000000);
-       __builtin_wrmsr(0x40000023, 0x400fffc0, 0x20000040);
-       __builtin_wrmsr(0x40000029, 0x6bf00100, 0x2000001f);
-       __builtin_wrmsr(0x4000002d, 0xffff0003, 0x2000ffff);
-
-       __builtin_wrmsr(0x40000080, 0x1, 0x0);
-
-       __builtin_wrmsr(0x50002001, 0x27, 0x0);
-       __builtin_wrmsr(0x4c002001, 0x1, 0x0);
+       /* Setup access to cache under 1MB.
+       __builtin_wrmsr(CPU_RCONF_DEFAULT,  0x1000a000, 0x24fffc02); /* Rom Properties: Write Serialize, WriteProtect.
+                                                                     * RomBase: 0xFFFC0
+                                                                     * SysTop to RomBase Properties: Write Serialize, Cache Disable.
+                                                                     * SysTop: 0x000A0
+                                                                     * System Memory Properties:  (Write Back) */
+
+       __builtin_wrmsr(CPU_RCONF_A0_BF,  0x00000000, 0x00000000); /* 0xA0000-0xBFFFF : (Write Back) */
+       __builtin_wrmsr(CPU_RCONF_C0_DF,  0x00000000, 0x00000000); /* 0xC0000-0xDFFFF : (Write Back) */
+       __builtin_wrmsr(CPU_RCONF_E0_FF,  0x00000000, 0x00000000); /* 0xE0000-0xFFFFF : (Write Back) */
+       
+       /* Setup access to memory under 1MB. Note: VGA hole at 0xA0000-0xBFFFF */
+       __builtin_wrmsr(MSR_GLIU0_BASE1, 0x000fff80, 0x20000000); /*    0x00000-0x7FFFF */
+       __builtin_wrmsr(MSR_GLIU0_BASE2, 0x080fffe0, 0x20000000); /*    0x80000-0x9FFFF */
+       __builtin_wrmsr(MSR_GLIU0_SHADOW, 0xffff0003, 0x2000ffff); /*   0xC0000-0xFFFFF */
+       __builtin_wrmsr(MSR_GLIU1_BASE1, 0x000fff80, 0x20000000); /*    0x00000-0x7FFFF */
+       __builtin_wrmsr(MSR_GLIU1_BASE2, 0x080fffe0, 0x20000000); /*    0x80000-0x9FFFF */
+       __builtin_wrmsr(MSR_GLIU1_SHADOW, 0xffff0003, 0x2000ffff); /*   0xC0000-0xFFFFF */
 
        /* put code in northbridge[init].c here */
 }
@@ -137,13 +154,13 @@ static void main(unsigned long bist)
        };
 
        SystemPreInit();
-       msr_init();
 
        cs5536_early_setup();
-
+       
        /* disable the power button */
        outl(0x00, PMS_IO_BASE + 0x40);
 
+       /* cs5536_disable_internal_uart  disable them. Set them up now... */
        cs5536_setup_onchipuart(1);
 
        uart_init();
@@ -157,6 +174,8 @@ static void main(unsigned long bist)
        sdram_initialize(1, memctrl);
        print_err("ram setup done\n");
 
+       msr_init();
+
        /* Check all of memory */
        /*ram_check(0x00000000, 640*1024);*/
        print_err("ram check done\n");