Re: 2.6 for DECstation, d-i
* Maciej W. Rozycki <macro@linux-mips.org> [2006-05-11 19:14]:
> > Zilog Z8530 support for DECstation hasn't been ported to 2.6 yet.
>
> Well, not exactly ported, but hacked up enough it worked the last time I
> tried, but you have to disable the virtual terminal (CONFIG_VT) as it is
Yeah, but the problem is that ZS is not a config option anymore. I
hacked up something to see if the driver works but I guess there's a
nicer solution.
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -51,6 +51,8 @@ obj-$(CONFIG_VIOCONS) += viocons.o
obj-$(CONFIG_VIOTAPE) += viotape.o
obj-$(CONFIG_HVCS) += hvcs.o
obj-$(CONFIG_SGI_MBCS) += mbcs.o
+obj-$(CONFIG_SERIAL_DZ) += decserial.o
+obj-$(CONFIG_SERIAL_ZS) += decserial.o
obj-$(CONFIG_PRINTER) += lp.o
obj-$(CONFIG_TIPAR) += tipar.o
diff --git a/drivers/char/decserial.c b/drivers/char/decserial.c
index aa14409..9a320c3 100644
--- a/drivers/char/decserial.c
+++ b/drivers/char/decserial.c
@@ -28,7 +28,7 @@ extern int zs_init(void);
extern int dz_init(void);
#endif
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
#ifdef CONFIG_ZS
extern void zs_serial_console_init(void);
@@ -43,7 +43,7 @@ extern void dz_serial_console_init(void)
/* rs_init - starts up the serial interface -
handle normal case of starting up the serial interface */
-#ifdef CONFIG_SERIAL
+#ifdef CONFIG_SERIAL_CORE
int __init rs_init(void)
{
@@ -70,7 +70,7 @@ __initcall(rs_init);
#endif
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
/* serial_console_init handles the special case of starting
* up the console on the serial port
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 7d22dc0..b16b99f 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -398,6 +398,27 @@ config SERIAL_DZ_CONSOLE
If unsure, say Y.
+config SERIAL_ZS
+ bool "DECstation Zilog Z8530 support"
+ depends on MACH_DECSTATION && TC
+ select SERIAL_CORE
+ help
+ Zilog Z8530 serial controllers on DECstation machines using the
+ TurboChannel bus.
+
+config SERIAL_ZS_CONSOLE
+ bool "Support console on DECstation Zilog Z8530"
+ depends on SERIAL_ZS=y
+ select SERIAL_CORE_CONSOLE
+ help
+ If you say Y here, it will be possible to use a serial port as the
+ system console (the system console is the device which receives all
+ kernel messages and warnings and which allows logins in single user
+ mode). Note that the firmware uses ttyS0 as the serial console on
+ the Maxine and ttyS2 on the others.
+
+ If unsure, say Y.
+
config SERIAL_21285
tristate "DC21285 serial port support"
depends on ARM && FOOTBRIDGE
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
diff --git a/drivers/tc/Makefile b/drivers/tc/Makefile
index 83b5bd7..885d82f 100644
--- a/drivers/tc/Makefile
+++ b/drivers/tc/Makefile
@@ -5,7 +5,7 @@
# Object file lists.
obj-$(CONFIG_TC) += tc.o
-obj-$(CONFIG_ZS) += zs.o
+obj-$(CONFIG_SERIAL_ZS) += zs.o
obj-$(CONFIG_VT) += lk201.o lk201-map.o lk201-remap.o
$(obj)/lk201-map.o: $(obj)/lk201-map.c
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c
index 2dffa8e..960f552 100644
--- a/drivers/tc/zs.c
+++ b/drivers/tc/zs.c
@@ -56,7 +56,7 @@
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/spinlock.h>
-#ifdef CONFIG_SERIAL_DEC_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
#include <linux/console.h>
#endif
@@ -137,10 +137,10 @@ struct dec_serial *zs_chain; /* list of
struct tty_struct zs_ttys[NUM_CHANNELS];
-#ifdef CONFIG_SERIAL_DEC_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
static struct console sercons;
#endif
-#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
+#if defined(CONFIG_SERIAL_CORE_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
!defined(MODULE)
static unsigned long break_pressed; /* break, really ... */
#endif
@@ -383,7 +383,7 @@ static void receive_chars(struct dec_ser
write_zsreg(info->zs_channel, R0, ERR_RES);
}
-#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
+#if defined(CONFIG_SERIAL_CORE_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
!defined(MODULE)
if (break_pressed && info->line == sercons.index) {
/* Ignore the null char got when BREAK is removed. */
@@ -446,7 +446,7 @@ static void status_handle(struct dec_ser
stat = read_zsreg(info->zs_channel, R0);
if ((stat & BRK_ABRT) && !(info->read_reg_zero & BRK_ABRT)) {
-#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
+#if defined(CONFIG_SERIAL_CORE_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && \
!defined(MODULE)
if (info->line == sercons.index) {
if (!break_pressed)
@@ -1560,7 +1560,7 @@ static int rs_open(struct tty_struct *tt
return retval;
}
-#ifdef CONFIG_SERIAL_DEC_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
if (sercons.cflag && sercons.index == line) {
tty->termios->c_cflag = sercons.cflag;
sercons.cflag = 0;
@@ -1643,7 +1643,7 @@ static void __init probe_sccs(void)
zs_channels[n_channels].data =
zs_channels[n_channels].control + 4;
-#ifndef CONFIG_SERIAL_DEC_CONSOLE
+#ifndef CONFIG_SERIAL_CORE_CONSOLE
/*
* We're called early and memory managment isn't up, yet.
* Thus request_region would fail.
@@ -1894,7 +1894,7 @@ int unregister_zs_hook(unsigned int chan
* Serial console driver
* ------------------------------------------------------------
*/
-#ifdef CONFIG_SERIAL_DEC_CONSOLE
+#ifdef CONFIG_SERIAL_CORE_CONSOLE
/*
@@ -2090,7 +2090,7 @@ void __init zs_serial_console_init(void)
{
register_console(&sercons);
}
-#endif /* ifdef CONFIG_SERIAL_DEC_CONSOLE */
+#endif /* ifdef CONFIG_SERIAL_CORE_CONSOLE */
#ifdef CONFIG_KGDB
struct dec_zschannel *zs_kgdbchan;
--
Martin Michlmayr
http://www.cyrius.com/
Reply to: