Subject: Re: 1.3.3 panic: multiple consoles?
To: None <stanp@storm.ca>
From: None <drochner@zel459.zel.kfa-juelich.de>
List: port-alpha
Date: 02/11/1999 11:39:25
stanp@storm.ca said:
> vga0 at isa0 port 0xffffffff-0x664 wscons0 at vga0: console vga1 at
> isa0 port 0xffffffff-0x664 panic: wsconsmatch: multiple consoles? 

Here is a patch which I think is the correct solution.

> BTW, I had the same problem when I was
> installling 1.3E

This I can't explain, it should have the new common vga code.
Can you tell the exact error message?

A workaround would be to replace
vga* at isa?
by
vga0 at isa?
in the kernel config file.

best regards
Matthias

Index: vga_isa.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/isa/Attic/vga_isa.c,v
retrieving revision 1.8
diff -c -r1.8 vga_isa.c
*** vga_isa.c	1997/09/02 13:19:05	1.8
--- vga_isa.c	1999/02/11 10:27:42
***************
*** 58,64 ****
  	sizeof(struct vga_isa_softc), vga_isa_match, vga_isa_attach,
  };
  
! int vga_isa_console_tag;			/* really just a boolean. */
  struct vga_config vga_isa_console_vc;
  
  int
--- 58,64 ----
  	sizeof(struct vga_isa_softc), vga_isa_match, vga_isa_attach,
  };
  
! int vga_isa_console_tag, vga_isa_console_attached; /* really just booleans. 
*/
  struct vga_config vga_isa_console_vc;
  
  int
***************
*** 77,87 ****
  	    ia->ia_irq != IRQUNK || ia->ia_drq != DRQUNK)
  		return (0);
  
! 	if (vga_isa_console_tag)
! 		return (1);
  
- 	rv = vga_common_probe(ia->ia_iot, ia->ia_memt);
- 
  	if (rv) {
  		ia->ia_iobase = 0x3b0;
  		ia->ia_iosize = 0x30;
--- 77,87 ----
  	    ia->ia_irq != IRQUNK || ia->ia_drq != DRQUNK)
  		return (0);
  
! 	if (vga_isa_console_tag && !vga_isa_console_attached)
! 		rv = 1;
! 	else
! 		rv = vga_common_probe(ia->ia_iot, ia->ia_memt);
  
  	if (rv) {
  		ia->ia_iobase = 0x3b0;
  		ia->ia_iosize = 0x30;
***************
*** 102,110 ****
  	int console;
  
  	console = vga_isa_console_tag;
! 	if (console)
  		vc = sc->sc_vc = &vga_isa_console_vc;
! 	else {
  		vc = sc->sc_vc = (struct vga_config *)
  		    malloc(sizeof(struct vga_config), M_DEVBUF, M_WAITOK);
  
--- 102,111 ----
  	int console;
  
  	console = vga_isa_console_tag;
! 	if (console) {
  		vc = sc->sc_vc = &vga_isa_console_vc;
! 		vga_isa_console_attached = 1;
! 	} else {
  		vc = sc->sc_vc = (struct vga_config *)
  		    malloc(sizeof(struct vga_config), M_DEVBUF, M_WAITOK);