SMC_CONFIG is needed before the device tree is ready and some people
authorJens Rottmann <JRottmann@LiPPERTEmbedded.de>
Tue, 31 Aug 2010 19:19:16 +0000 (19:19 +0000)
committerMyles Watson <mylesgw@gmail.com>
Tue, 31 Aug 2010 19:19:16 +0000 (19:19 +0000)
would rather not have mainboard settings like sio_gp1x_config in the
device tree anyway.  So found a nice united home for both in Kconfig,
where users can change them without having to mess around in the C code.

Signed-off-by: Jens Rottmann <JRottmann@LiPPERTEmbedded.de>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5760 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/mainboard/lippert/roadrunner-lx/Kconfig
src/mainboard/lippert/roadrunner-lx/chip.h
src/mainboard/lippert/roadrunner-lx/mainboard.c
src/mainboard/lippert/roadrunner-lx/romstage.c
src/mainboard/lippert/spacerunner-lx/Kconfig
src/mainboard/lippert/spacerunner-lx/chip.h
src/mainboard/lippert/spacerunner-lx/mainboard.c
src/mainboard/lippert/spacerunner-lx/romstage.c

index db492220da4fd53b4a7d8f636b4ee01e1c95661e..fa140acfce30c9c763dc1dbabb83dae31815b05d 100644 (file)
@@ -11,6 +11,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        select PIRQ_ROUTE
        select UDELAY_TSC
        select CACHE_AS_RAM
+       # Standard chip is a 512 KB FWH. Replacing it with a 1 MB
+       # SST 49LF008A is possible.
        select BOARD_ROMSIZE_KB_512
 
 config MAINBOARD_DIR
@@ -29,4 +31,11 @@ config RAMBASE
        hex
        default 0x4000
 
+config ONBOARD_UARTS_RS485
+       bool "Switch on-board serial ports to RS485"
+       default n
+       help
+         If selected, both on-board serial ports will operate in RS485 mode
+         instead of RS232.
+
 endif # BOARD_LIPPERT_ROADRUNNER_LX
index b201059400c8c8d72ac2729bd4d5277d57d954e9..398d42405e1a968b53f168df40c5968c5c1d800d 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-/* Based on chip.h from AMD's DB800 mainboard. */
-
-#include <stdint.h>
-
 extern struct chip_operations mainboard_ops;
 
-struct mainboard_config {
-       /* bit5 = Live LED, bit2 = RS485_EN2, bit1 = RS485_EN1 */
-       u8 sio_gp1x_config;
-};
+struct mainboard_config {};
index e0d3fa703eac5a7c67e98b91b3e7e3575b8d9300..31fdd46e8f6d28030eeb3a77f97df37c663fc6f9 100644 (file)
 #include <device/pci_ids.h>
 #include "chip.h"
 
+/* Bit1 switches Com1 to RS485, bit2 same for Com2, bit5 turns off the Live LED. */
+#if CONFIG_ONBOARD_UARTS_RS485
+       #define SIO_GP1X_CONFIG 0x26
+#else
+       #define SIO_GP1X_CONFIG 0x20
+#endif
+
 static const u16 ec_init_table[] = {   /* hi=data, lo=index */
        0x1900,         /* Enable monitoring */
        0x0351,         /* TMPIN1,2 diode mode, TMPIN3 off */
@@ -40,7 +47,6 @@ static const u16 ec_init_table[] = {  /* hi=data, lo=index */
 
 static void init(struct device *dev)
 {
-       struct mainboard_config *mb = dev->chip_info;
        unsigned int gpio_base, i;
        printk(BIOS_DEBUG, "LiPPERT RoadRunner-LX ENTER %s\n", __func__);
 
@@ -61,7 +67,8 @@ static void init(struct device *dev)
                outb(val >> 8, 0x0296);
        }
 
-       outb(mb->sio_gp1x_config, 0x1220); /* Simple-I/O GP17-10 */
+       /* bit5 = Live LED, bit2 = RS485_EN2, bit1 = RS485_EN1 */
+       outb(SIO_GP1X_CONFIG, 0x1220); /* Simple-I/O GP17-10 */
        printk(BIOS_DEBUG, "LiPPERT RoadRunner-LX EXIT %s\n", __func__);
 }
 
index 767b42f2d38e59d6ba2a213cf9e2f2f0ad6988b2..717f51a5ac773bb641ac905ad34cd748a3bc93cc 100644 (file)
@@ -132,4 +132,3 @@ void main(unsigned long bist)
        /* Memory is setup. Return to cache_as_ram.inc and continue to boot. */
        return;
 }
-
index 0f5cde727fe4796f11465340b5cf85aaf6794c59..a7e0eba22bb49092e801df935e2fe71e2ff86e70 100644 (file)
@@ -12,6 +12,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        select PIRQ_ROUTE
        select UDELAY_TSC
        select CACHE_AS_RAM
+       # Board is equipped with a 1 MB SPI flash, however, due to limitations
+       # of the IT8712F Super I/O, only the top 512 KB are directly mapped.
        select BOARD_ROMSIZE_KB_512
 
 config MAINBOARD_DIR
@@ -30,4 +32,17 @@ config RAMBASE
        hex
        default 0x4000
 
+config ONBOARD_UARTS_RS485
+       bool "Switch on-board serial ports to RS485"
+       default n
+       help
+         If selected, both on-board serial ports will operate in RS485 mode
+         instead of RS232.
+
+config ONBOARD_IDE_SLAVE
+       bool "Make on-board SSD act as Slave"
+       default n
+       help
+         If selected, the on-board SSD will act as IDE Slave instead of Master.
+
 endif # BOARD_LIPPERT_SPACERUNNER_LX
index 422b04ab2bfa5e809c7bac6755bcc507a63e152a..398d42405e1a968b53f168df40c5968c5c1d800d 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-/* Based on chip.h from AMD's DB800 mainboard. */
-
-#include <stdint.h>
-
 extern struct chip_operations mainboard_ops;
 
-struct mainboard_config {
-       /* bit2 = RS485_EN2, bit1 = RS485_EN1, bit0 = Live LED */
-       u8 sio_gp1x_config;
-};
+struct mainboard_config {};
index 7977969315ca4eafa541b95aa71c67dbe14c9bde..34cd8c40f9a5308cc98aa543acd1377fdb93d72e 100644 (file)
 #include <device/pci_ids.h>
 #include "chip.h"
 
+/* Bit0 turns off the Live LED, bit1 switches Com1 to RS485, bit2 same for Com2. */
+#if CONFIG_ONBOARD_UARTS_RS485
+       #define SIO_GP1X_CONFIG 0x07
+#else
+       #define SIO_GP1X_CONFIG 0x01
+#endif
+
 static const u16 ec_init_table[] = { /* hi=data, lo=index */
        0x1900,         /* Enable monitoring */
        0x3050,         /* VIN4,5 enabled */
@@ -41,7 +48,6 @@ static const u16 ec_init_table[] = { /* hi=data, lo=index */
 
 static void init(struct device *dev)
 {
-       struct mainboard_config *mb = dev->chip_info;
        unsigned int gpio_base, i;
        printk(BIOS_DEBUG, "LiPPERT SpaceRunner-LX ENTER %s\n", __func__);
 
@@ -65,7 +71,9 @@ static void init(struct device *dev)
                outb(val >> 8, 0x0296);
        }
 
-       outb(mb->sio_gp1x_config, 0x1220); /* Simple-I/O GP17-10 */
+       /* bit2 = RS485_EN2, bit1 = RS485_EN1, bit0 = Live LED */
+       outb(SIO_GP1X_CONFIG, 0x1220); /* Simple-I/O GP17-10 */
+
        printk(BIOS_DEBUG, "LiPPERT SpaceRunner-LX EXIT %s\n", __func__);
 }
 
index a62ad91c0eada81c2f127c2adab1ed6398604855..5c640cb021c22726e283afecc312fb7b1273a6f6 100644 (file)
 #include "superio/ite/it8712f/it8712f_early_serial.c"
 
 /* Bit0 enables Spread Spectrum, bit1 makes on-board SSD act as IDE slave. */
-#define SMC_CONFIG 0x01
+#if CONFIG_ONBOARD_IDE_SLAVE
+       #define SMC_CONFIG      0x03
+#else
+       #define SMC_CONFIG      0x01
+#endif
 
 #define ManualConf 1           /* No automatic strapped PLL config */
 #define PLLMSRhi 0x0000059C    /* Manual settings for the PLL */
@@ -201,4 +205,3 @@ void main(unsigned long bist)
        /* Memory is setup. Return to cache_as_ram.inc and continue to boot. */
        return;
 }
-