Sbus graphic cards, resolutions, monitors

2008-10-15 Thread Norbert Gerhards

Trying to run an IBM TFT 15 monitor with
[EMAIL PROTECTED] with my Ultra-2 and
SBus graphic cards GX or TXplus,
I learned the following:

GX, GXplus with Bt458 DAC only support
the following resolutions:
1152 x 900 @ 66 Hz
1152 x 900 @ 76 Hz
1024 x 800 (!) @ 84 Hz (!)

The last value is something, most TFTs
cannot support, be it with the No. of
lines (800) or more often, the high
refresh frequency of 84 Hz. :-(

Most native resolution of TFT monitors
is 1024 x 768 @ 60 Hz.

With the TGX+ SBus card (Bt 467 DAC), the
choice of resolutions and/or refresh rates rises:
1152 x 900 @ 66 Hz
1152 x 900 @ 76 Hz
1024 x 800 (!) @ 84 Hz (!)
1024 x 768 @ 60 Hz (here it is!)
1024 x 768 @ 70 Hz
1024 x 768 @ 76 Hz (works well with most IBM TFTs)
1280 x 1024 @ 67 Hz
1280 x 1024 @ 76 Hz (should work with 19 TFTs)
1600 x 1280 @ 76 Hz
1920 x 1080 @ 72 Hz

So, if you have a TGX+ card available, you
should be able to find the matching resolution
and refresh rate for the most common monitors,
be it CRTs or TFTs.

The setting is easily done inside the Open
Boot PROM (OBP):
setenv output-device screen:r1152x900x76
for example.

My debian 2.6.18-6-sparc64-smp runs the correct
settings of OBP, but screen resolution shows
always the right chosen resolution with a very
wrong refresh rate of 30915 Hz  (ooops!).

BTW: this link from Brian brought me on the right
track:
More info can be found here:
http://mediacast.sun.com/users/Barton808/media/Sbus_cgsix_graphics_cards800-5114-10.pdf

(read only pages 1-10, 1-11 for sense pin, 9-7 for
GX cards, 9-22 for TGX+ cards)  :-)

I hope this will help others with their
monitor settings.

Regards,

Norbert


--
IBG Ingenieurbüro Gerhards
Dipl.-Ing. Norbert Gerhards
Laurentiusstr. 16 - 20
52072 Aachen
Tel.  0241-705 08-14
Fax   0241-705 08-99
mobil 0172-240 66 36
email [EMAIL PROTECTED]
URL   www.ib-gerhards.de


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Sbus graphic cards, resolutions, monitors

2008-10-15 Thread Mark Morgan Lloyd

Norbert Gerhards wrote:


The setting is easily done inside the Open
Boot PROM (OBP):
setenv output-device screen:r1152x900x76
for example.


It gets a bit more complex if you're having to do that sort of thing for 
two screens (Xinerama or whatever), I ended up having to use two 
separate OP settings hence


/proc/openprom/options$ cat output-device
screen:r1280x1024x76
/proc/openprom/options$ cat boot-command
 /SUNW,[EMAIL PROTECTED],0:r1280x1024x76 select-dev boot

Unfortunately this only works properly on a cold boot.

I've carefully stuck to NEC Multisyncs here since experience shows them 
to be good with Sun-style sync.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#501825: libjson-xs-perl_2.23-1(sparc/unstable): FTBFS on sparc, fails in tests

2008-10-15 Thread Niko Tyni
On Fri, Oct 10, 2008 at 09:00:21PM +0200, Martin Zobel-Helas wrote:
 Package: libjson-xs-perl
 Version: 2.23-1
 Severity: serious
 
 There was an error while trying to autobuild your package:
 
  Automatic build of libjson-xs-perl_2.23-1 on schroeder by sbuild/sparc 99.99
  Build started at 20081010-1421

  t/19_incr...dubious
  Test returned status 0 (wstat 10, 0xa)
  DIED. FAILED test 697
  Failed 1/697 tests, 99.86% okay

This is reproducible on sperger.d.o.

It's an alignment problem that only shows up with an optimization level
of at least -O2.

Program received signal SIGBUS, Bus error.
0xf7ec1134 in decode_json (string=0x192280, json=0x39f18, 
offset_return=0xff85b96c) at XS.xs:1443
1443  SvGROW (string, SvCUR (string) + 1); // should basically be a NOP
(gdb) bt
#0  0xf7ec1134 in decode_json (string=0x192280, json=0x39f18, 
offset_return=0xff85b96c) at XS.xs:1443
#1  0xf7ec2444 in XS_JSON__XS_incr_parse (my_perl=0x22008, cv=0x126d58) at 
XS.xs:1828
#2  0xf7dfab48 in Perl_pp_entersub () from /usr/lib/libperl.so.5.10
#3  0xf7df8f9c in Perl_runops_standard () from /usr/lib/libperl.so.5.10
#4  0xf7df4298 in perl_run () from /usr/lib/libperl.so.5.10
#5  0x00010b88 in main ()

The instruction that causes the bus error is a double-word load (ldd):

0xf7ec1130 decode_json+132:   ld  [ %l1 ], %g1
0xf7ec1134 decode_json+136:   ldd  [ %g1 + 8 ], %g2
0xf7ec1138 decode_json+140:   inc  %g2
0xf7ec113c decode_json+144:   cmp  %g3, %g2

The preprocessor output for the above SvGROW() macro invocation is

  (((XPV*) (string)-sv_any)-xpv_len  (((XPV*) (string)-sv_any)-xpv_cur + 
1) ? Perl_sv_grow(((PerlInterpreter 
*)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0), string,((XPV*) 
(string)-sv_any)-xpv_cur + 1) : ((string)-sv_u.svu_pv));

and the above assembly is the compiled form of the first comparison
at -O2.  The compiler is using a double-word instruction to load both
xpv_cur and xpv_len in one go.

Now, this apparently requires that ((XPV*) (string)-sv_any)-xpv_cur
is aligned on a double-word (64-bit) boundary, which fails here:

$1 = {sv_any = 0x25714, sv_refcnt = 1, sv_flags = 536888326, sv_u = {svu_iv = 
1662248, svu_uv = 1662248, 
svu_rv = 0x195d28, svu_pv = 0x195d28 [42], svu_array = 0x195d28, svu_hash 
= 0x195d28, 
svu_gp = 0x195d28}}
(gdb) print ((XPV*) (string)-sv_any)-xpv_cur
$2 = (STRLEN *) 0x2571c
(gdb) print ((XPV*) (string)-sv_any)-xpv_len
$3 = (STRLEN *) 0x25720

(Delving somewhat further, I see the 64-bit alignment of string-sv_any
 is lost in libperl's sv_chop(), invoked from incr_skip() at XS.xs:1855
 or so.)

This suggests to me that gcc is being too aggressive on optimizing here.
I don't see how it can consider the double word instruction safe.

Cc'ing the sparc porters list in the hope that somebody gets interested
in this.

I suppose a workaround is to use -O1 on sparc.
-- 
Niko Tyni   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Bug#501825: libjson-xs-perl_2.23-1(sparc/unstable): FTBFS on sparc, fails in tests

2008-10-15 Thread Julien Cristau
On Wed, Oct 15, 2008 at 23:39:52 +0300, Niko Tyni wrote:

 This is reproducible on sperger.d.o.
 
 It's an alignment problem that only shows up with an optimization level
 of at least -O2.
 
 Program received signal SIGBUS, Bus error.
 0xf7ec1134 in decode_json (string=0x192280, json=0x39f18, 
 offset_return=0xff85b96c) at XS.xs:1443
 1443  SvGROW (string, SvCUR (string) + 1); // should basically be a NOP
 (gdb) bt
 #0  0xf7ec1134 in decode_json (string=0x192280, json=0x39f18, 
 offset_return=0xff85b96c) at XS.xs:1443
 #1  0xf7ec2444 in XS_JSON__XS_incr_parse (my_perl=0x22008, cv=0x126d58) at 
 XS.xs:1828
 #2  0xf7dfab48 in Perl_pp_entersub () from /usr/lib/libperl.so.5.10
 #3  0xf7df8f9c in Perl_runops_standard () from /usr/lib/libperl.so.5.10
 #4  0xf7df4298 in perl_run () from /usr/lib/libperl.so.5.10
 #5  0x00010b88 in main ()
 
 The instruction that causes the bus error is a double-word load (ldd):
 
 0xf7ec1130 decode_json+132:   ld  [ %l1 ], %g1
 0xf7ec1134 decode_json+136:   ldd  [ %g1 + 8 ], %g2
 0xf7ec1138 decode_json+140:   inc  %g2
 0xf7ec113c decode_json+144:   cmp  %g3, %g2
 
 The preprocessor output for the above SvGROW() macro invocation is
 
   (((XPV*) (string)-sv_any)-xpv_len  (((XPV*) (string)-sv_any)-xpv_cur + 
 1) ? Perl_sv_grow(((PerlInterpreter 
 *)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0), string,((XPV*) 
 (string)-sv_any)-xpv_cur + 1) : ((string)-sv_u.svu_pv));
 
 and the above assembly is the compiled form of the first comparison
 at -O2.  The compiler is using a double-word instruction to load both
 xpv_cur and xpv_len in one go.
 
 Now, this apparently requires that ((XPV*) (string)-sv_any)-xpv_cur
 is aligned on a double-word (64-bit) boundary, which fails here:
 
[...]
 
 This suggests to me that gcc is being too aggressive on optimizing here.
 I don't see how it can consider the double word instruction safe.
 
__alignof__(XPV) is 8, so gcc is allowed to assume that any XPV is
64-bit aligned, as far as I can tell.  xpv_cur's offset is 8, so it
should also be 64-bit aligned.

Cheers,
Julien


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]