NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-hppa/52162 (712/60 hangs during sti(4) probe)



The following reply was made to PR port-hppa/52162; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-hppa/52162 (712/60 hangs during sti(4) probe)
Date: Sat, 10 Jul 2021 19:51:18 +0900

 > Synopsis: 712/60 hangs during sti(4) probe
  :
 > State-Changed-Why:
 > We need some method to check whether sti(4) framebuffer being probed is
 > on-board (primary) one and skip the revision check in sti_sgc_getrom()   
 > in such case.
 
 If there is no suggestion I would like to commit the following klduge.
 All sti0 at mainbus0 info was taken from port-hp700@ and port-hppa@ lists
 and confirmed working on 712/60.
 
 ---
 Index: dev/sti_sgc.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/hppa/dev/sti_sgc.c,v
 retrieving revision 1.2
 diff -u -p -d -r1.2 sti_sgc.c
 --- dev/sti_sgc.c	15 Apr 2019 20:40:37 -0000	1.2
 +++ dev/sti_sgc.c	10 Jul 2021 10:41:50 -0000
 @@ -73,6 +73,16 @@ extern int stidebug;
  #define	STI_ROMSIZE	(sizeof(struct sti_dd) * 4)
  #define	STI_ID_FDDI	0x280b31af	/* Medusa FDDI ROM id */
  
 +/*
 + * hpa addresses to check on-board variants
 + * XXX should check via device_register(9)?
 + * 
 + * 0xf4000000: HPA1991AC19 on 715/33, 715/50
 + * 0xf8000000: HPA1439A on 735/99, HPA208LCxxx on 715/80, 715/100, 712
 + */
 +#define	STI_ONBOARD_HPA0	0xf4000000
 +#define	STI_ONBOARD_HPA1	0xf8000000
 +
  /* gecko optional graphics */
  #define	STI_GOPT1_REV	0x17
  #define	STI_GOPT2_REV	0x70
 @@ -118,7 +128,9 @@ sti_sgc_getrom(struct confargs *ca)
  	rom = PAGE0->pd_resv2[1];
  	hppa_pagezero_unmap(pagezero_cookie);
  
 -	if (ca->ca_type.iodc_sv_model == HPPA_FIO_GSGC) {
 +	if (ca->ca_type.iodc_sv_model == HPPA_FIO_GSGC &&
 +	    ca->ca_hpa != STI_ONBOARD_HPA0 &&
 +	    ca->ca_hpa != STI_ONBOARD_HPA1) {
  		int i;
  		for (i = sizeof(sti_sgc_opt); i--; )
  			if (sti_sgc_opt[i] == ca->ca_type.iodc_revision)
 


Home | Main Index | Thread Index | Old Index