[coreboot-gerrit] Patch set updated for coreboot: 7f5845e src/superio/smsc/lpc47m15x: Avoid #include early_serial.c
Edward O'Callaghan (eocallaghan@alterapraxis.com)
gerrit at coreboot.org
Wed Jul 16 10:45:04 CEST 2014
Edward O'Callaghan (eocallaghan at alterapraxis.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5924
-gerrit
commit 7f5845efe943806f2cdfd892cdbeaba11350974e
Author: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Date: Tue Jun 3 08:40:34 2014 +1000
src/superio/smsc/lpc47m15x: Avoid #include early_serial.c
Provide proper header and function type-signatures for Super I/O
romstage component.
Fix mainboard's bogous romstage component to match.
Change-Id: Icd02199690d0c428b2daadf702d50714dc367692
Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
---
src/mainboard/intel/d945gclf/romstage.c | 38 +++++--------------------------
src/superio/smsc/lpc47m15x/Makefile.inc | 2 +-
src/superio/smsc/lpc47m15x/early_serial.c | 5 +++-
src/superio/smsc/lpc47m15x/lpc47m15x.h | 11 ++++++---
4 files changed, 19 insertions(+), 37 deletions(-)
diff --git a/src/mainboard/intel/d945gclf/romstage.c b/src/mainboard/intel/d945gclf/romstage.c
index 586e035..fbec052 100644
--- a/src/mainboard/intel/d945gclf/romstage.c
+++ b/src/mainboard/intel/d945gclf/romstage.c
@@ -28,16 +28,16 @@
#include <lib.h>
#include <arch/acpi.h>
#include <cbmem.h>
-#include "superio/smsc/lpc47m15x/lpc47m15x.h"
+#include <superio/smsc/lpc47m15x/lpc47m15x.h>
#include <pc80/mc146818rtc.h>
#include <console/console.h>
#include <cpu/x86/bist.h>
-#include "superio/smsc/lpc47m15x/early_serial.c"
#include "northbridge/intel/i945/i945.h"
#include "northbridge/intel/i945/raminit.h"
#include "southbridge/intel/i82801gx/i82801gx.h"
-#define SERIAL_DEV PNP_DEV(0x2e, W83627THG_SP1)
+#define SERIAL_DEV PNP_DEV(0x2e, LPC47M15X_SP1)
+#define PME_DEV PNP_DEV(0x2e, LPC47M15X_PME)
void setup_ich7_gpios(void)
{
@@ -68,34 +68,6 @@ static void ich7_enable_lpc(void)
pci_write_config32(PCI_DEV(0, 0x1f, 0), 0x84, 0x007c0681);
}
-/* This box has two superios, so enabling serial becomes slightly excessive.
- * We disable a lot of stuff to make sure that there are no conflicts between
- * the two. Also set up the GPIOs from the beginning. This is the "no schematic
- * but safe anyways" method.
- */
-static void early_superio_config_lpc47m15x(void)
-{
- device_t dev;
-
- dev=PNP_DEV(0x2e, LPC47M15X_SP1);
- pnp_enter_conf_state(dev);
-
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, 0);
- pnp_set_iobase(dev, PNP_IDX_IO0, 0x3f8);
- pnp_set_irq(dev, PNP_IDX_IRQ0, 4);
- pnp_set_enable(dev, 1);
-
- /* Enable SuperIO PM */
- dev=PNP_DEV(0x2e, LPC47M15X_PME);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, 0);
- pnp_set_iobase(dev, PNP_IDX_IO0, 0x680);
- pnp_set_enable(dev, 1);
-
- pnp_exit_conf_state(dev);
-}
-
static void rcba_config(void)
{
/* Set up virtual channel 0 */
@@ -194,7 +166,9 @@ void main(unsigned long bist)
enable_lapic();
ich7_enable_lpc();
- early_superio_config_lpc47m15x();
+ /* Enable SuperIO PM */
+ lpc47m15x_enable_serial(PME_DEV, 0x680);
+ lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */
/* Set up the console */
console_init();
diff --git a/src/superio/smsc/lpc47m15x/Makefile.inc b/src/superio/smsc/lpc47m15x/Makefile.inc
index d5b69e4..610d87c 100644
--- a/src/superio/smsc/lpc47m15x/Makefile.inc
+++ b/src/superio/smsc/lpc47m15x/Makefile.inc
@@ -17,5 +17,5 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
+romstage-$(CONFIG_SUPERIO_SMSC_LPC47M15X) += early_serial.c
ramstage-$(CONFIG_SUPERIO_SMSC_LPC47M15X) += superio.c
-
diff --git a/src/superio/smsc/lpc47m15x/early_serial.c b/src/superio/smsc/lpc47m15x/early_serial.c
index 7d75bae..5686f52 100644
--- a/src/superio/smsc/lpc47m15x/early_serial.c
+++ b/src/superio/smsc/lpc47m15x/early_serial.c
@@ -20,6 +20,9 @@
/* Pre-RAM driver for the SMSC LPC47M15X Super I/O chip */
#include <arch/io.h>
+#include <device/pnp.h>
+#include <stdint.h>
+
#include "lpc47m15x.h"
static void pnp_enter_conf_state(device_t dev)
@@ -34,7 +37,7 @@ static void pnp_exit_conf_state(device_t dev)
outb(0xaa, port);
}
-static inline void lpc47m15x_enable_serial(device_t dev, u16 iobase)
+void lpc47m15x_enable_serial(device_t dev, u16 iobase)
{
pnp_enter_conf_state(dev);
pnp_set_logical_device(dev);
diff --git a/src/superio/smsc/lpc47m15x/lpc47m15x.h b/src/superio/smsc/lpc47m15x/lpc47m15x.h
index 04f1729..32cff48 100644
--- a/src/superio/smsc/lpc47m15x/lpc47m15x.h
+++ b/src/superio/smsc/lpc47m15x/lpc47m15x.h
@@ -17,8 +17,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef SUPERIO_SMSC_LPC47M15X_LPC47M15X_H
-#define SUPERIO_SMSC_LPC47M15X_LPC47M15X_H
+#ifndef SUPERIO_SMSC_LPC47M15X_H
+#define SUPERIO_SMSC_LPC47M15X_H
#define LPC47M15X_FDC 0 /* Floppy */
#define LPC47M15X_PP 3 /* Parallel Port */
@@ -31,4 +31,9 @@
#define LPC47M15X2_MAX_CONFIG_REGISTER 0x5F
-#endif
+#include <arch/io.h>
+#include <stdint.h>
+
+void lpc47m15x_enable_serial(device_t dev, u16 iobase);
+
+#endif /* SUPERIO_SMSC_LPC47M15X_H */
More information about the coreboot-gerrit
mailing list