[coreboot] r917 - coreboot-v3/superio/fintek/f71805f

svn at coreboot.org svn at coreboot.org
Sat Oct 11 19:42:23 CEST 2008


Author: cozzie
Date: 2008-10-11 19:42:23 +0200 (Sat, 11 Oct 2008)
New Revision: 917

Modified:
   coreboot-v3/superio/fintek/f71805f/dts
   coreboot-v3/superio/fintek/f71805f/f71805f.h
   coreboot-v3/superio/fintek/f71805f/stage1.c
   coreboot-v3/superio/fintek/f71805f/superio.c
Log:
Make some changes to the Fintek F71805f:

* Read port for early serial console from Kconfig
* Change naming from SP (serial port) to COM to be consistent with 
Kconfig

Signed-off-by: Corey Osgood <corey.osgood at gmail.com>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>



Modified: coreboot-v3/superio/fintek/f71805f/dts
===================================================================
--- coreboot-v3/superio/fintek/f71805f/dts	2008-10-11 01:01:07 UTC (rev 916)
+++ coreboot-v3/superio/fintek/f71805f/dts	2008-10-11 17:42:23 UTC (rev 917)
@@ -33,19 +33,17 @@
 	ppio = "0x378";
 	ppirq = "7";
 	
-	/* Note: renaming from comx to spx may have broken the DTS
-	 * We'll find out later */
 	/* Serial Port 1 */
-	sp1dev = "2";
-	sp1enable = "1";
-	sp1io = "0x3f8";
-	sp1irq = "4";
+	com1dev = "2";
+	com1enable = "1";
+	com1io = "0x3f8";
+	com1irq = "4";
 
 	/* Serial Port 2 */
-	sp2dev = "3";
-	sp2enable = "1";
-	sp2io = "0x2f8";
-	sp2irq = "3";
+	com2dev = "3";
+	com2enable = "1";
+	com2io = "0x2f8";
+	com2irq = "3";
 
 	/* Hardware Monitor */
 	hwmdev = "0xb";

Modified: coreboot-v3/superio/fintek/f71805f/f71805f.h
===================================================================
--- coreboot-v3/superio/fintek/f71805f/f71805f.h	2008-10-11 01:01:07 UTC (rev 916)
+++ coreboot-v3/superio/fintek/f71805f/f71805f.h	2008-10-11 17:42:23 UTC (rev 917)
@@ -26,12 +26,12 @@
  *  - Revision: V0.25P
  */ 
 
-void f71805f_enable_serial(u8, u8, u16);
+void f71805f_enable_serial(u8);
 
 /* Logical Device Numbers (LDN). */
 #define	F71805F_FDC	0x00	/* Floppy */
-#define	F71805F_SP1	0x01	/* UART1 */
-#define	F71805F_SP2	0x02	/* UART2 */
+#define	F71805F_COM1	0x01	/* UART1 */
+#define	F71805F_COM2	0x02	/* UART2 */
 #define	F71805F_PP	0x03	/* Parallel Port */
 #define	F71805F_HWM	0x04	/* Hardware Monitor */
 #define	F71805F_GPIO	0x06	/* General Purpose I/O (GPIO) */

Modified: coreboot-v3/superio/fintek/f71805f/stage1.c
===================================================================
--- coreboot-v3/superio/fintek/f71805f/stage1.c	2008-10-11 01:01:07 UTC (rev 916)
+++ coreboot-v3/superio/fintek/f71805f/stage1.c	2008-10-11 17:42:23 UTC (rev 917)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright 2007 Corey Osgood <corey.osgood at gmail.com>
+ * Copyright 2008 Corey Osgood <corey.osgood at gmail.com>
  *
  * 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
@@ -18,24 +18,32 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include <io.h>
+#include <config.h>
 #include <device/pnp.h>
 #include "f71805f.h"
 
-static inline void f71805f_rawpnp_enter_ext_func_mode(u8 dev)
+void f71805f_enable_serial(u8 dev)
 {
-	/* Fintek F71805f needs this only once, but Winbond needs it twice.
-	 * Perhaps modify rawpnp_enter_ext_func_mode() to only do it once,
-	 * then modify the winbond to call it twice? */
-	outb(0x87, dev);
-}
+	u8 serial_ldn;
+	u16 serial_iobase;
 
-void f71805f_enable_serial(u8 dev, u8 serial, u16 iobase)
-{
-	f71805f_rawpnp_enter_ext_func_mode(dev);
-	rawpnp_set_logical_device(dev, serial);
+	/* Serial port info from Kconfig (FTW!). Would be even more 
+	 * awesome if we could get 'dev' from Kconfig or dts */
+	/* TODO: Get/set serial port speed divisor from Kconfig as well */
+#if defined (CONFIG_CONSOLE_SERIAL_COM1) && CONFIG_CONSOLE_SERIAL_COM1
+	serial_ldn = F71805F_COM1;
+	serial_iobase = 0x3f8;
+#elif defined (CONFIG_CONSOLE_SERIAL_COM2) && CONFIG_CONSOLE_SERIAL_COM2
+	serial_ldn = F71805F_COM2;
+	serial_iobase = 0x2f8;
+#else /* No serial console */
+	return;
+#endif
+
+	rawpnp_enter_ext_func_mode(dev);
+	rawpnp_set_logical_device(dev, serial_ldn);
 	rawpnp_set_enable(dev, 0);
-	rawpnp_set_iobase(dev, PNP_IDX_IO0, iobase);
+	rawpnp_set_iobase(dev, PNP_IDX_IO0, serial_iobase);
 	rawpnp_set_enable(dev, 1);
 	rawpnp_exit_ext_func_mode(dev);
 }

Modified: coreboot-v3/superio/fintek/f71805f/superio.c
===================================================================
--- coreboot-v3/superio/fintek/f71805f/superio.c	2008-10-11 01:01:07 UTC (rev 916)
+++ coreboot-v3/superio/fintek/f71805f/superio.c	2008-10-11 17:42:23 UTC (rev 917)
@@ -79,15 +79,15 @@
 		return;
 	
 	switch (dev->path.pnp.device) {
-	case F71805F_SP1: 
+	case F71805F_COM1: 
 		res0 = find_resource(dev, PNP_IDX_IO0);
-		//TODO: needed? fix or remove?
-		//init_uart8250(res0->base, &conf->sp1);
+		/* TODO: Fix these */
+		//uart8250_init(res0->base, &conf->sp1);
 		break;
 		
-	case F71805F_SP2:
+	case F71805F_COM2:
 		res1 = find_resource(dev, PNP_IDX_IO0);
-		//init_uart8250(res0->base, &conf->sp2);
+		//uart8250_init(res0->base, &conf->sp2);
 		break;
 		
 	/* No KBC on F71805f */
@@ -106,8 +106,8 @@
 };
 
 static struct pnp_info pnp_dev_info[] = {
-	{ &f71805f_ops, F71805F_SP1,  PNP_IO0 | PNP_IRQ0, { 0x7f8, 0 }, },
-	{ &f71805f_ops, F71805F_SP2,  PNP_IO0 | PNP_IRQ0, { 0x7f8, 0 }, },
+	{ &f71805f_ops, F71805F_COM1, PNP_IO0 | PNP_IRQ0, { 0x7f8, 0 }, },
+	{ &f71805f_ops, F71805F_COM2, PNP_IO0 | PNP_IRQ0, { 0x7f8, 0 }, },
 	/* TODO: Everything else */
 };
 





More information about the coreboot mailing list