Indy - problems with XL8

SGI hardware problems, solutions, tips, hacks, etc.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
johnnym
Donor
Donor
Posts: 185
Joined: Sun Sep 04, 2016 9:53 pm

Indy - problems with XL8

Unread postby johnnym » Wed Feb 15, 2017 3:55 am

Hi,

I got a problem with the graphics card in my first Indy. It's a XL8 and it yields a somewhat broken output.

graphics-output.jpg

On first use (second half of 2016) I assumed the output would be due to my 13W3 to HD15 adapter. This is the pinout I used for the adapter (actually a variation of the one used in the thread Indy2VGA hack):

Code: Select all

| SGI 13W3                    |               HD15 |
| --------------------------- | ------------------ |
| Designation     | Pin       | Pin |  Designation |
| --------------- | --------- | --- | ------------ |
| red             | A1        |   1 |          red |
| red ground      | A1 ground |   6 |   red ground |
| green           | A2        |   2 |        green |
| green ground    | A2 ground |   7 | green ground |
| blue            | A3        |   3 |         blue |
| blue ground     | A3 ground |   8 |  blue ground |
| horizontal sync | 4         |  13 |        hsync |
| vertical sync   | 5         |  14 |        vsync |
| digital ground  | 9         |  10 |  sync ground |


Silicon Graphics 13W3 connector

Code: Select all

.--------------------------------.
\  (o) (o)  5 o o o o o 1  (o)   /
 \  A3  A2  10 o o o o o 6  A1  /
  `----------------------------´

(o) Mini coax connector (female)

 o  D-sub like pin (male)


HD15 connector

Code: Select all

.---------------------.
\    5 o o o o o 1    /
 \   10 o o o o o 6  /
  \ 11 o o o o o 15 /
   `---------------´

 o  D-sub like pin (female)

The adapter works perfectly with my Octane2 (w/V6) and also my Octane (w/SSE,SE) though. As I didn't have a second Indy until recently, I couldn't check my adapter with another Indy graphics board. But since beginning of February I got a second Indy (w/XL24) and there the graphics output is OK when I'm using my adapter. Hence I assume it's not my adapter that has problems, but the XL8 graphics board.

Running the IDE (from IRIX 6.5.22) tells me the following for confirmation:

Code: Select all

Option? 3


                         Starting diagnostic program...

                       Press <Esc> to return to the menu.

SGI Version 6.5 IP22 IDE field  Oct  6, 2003

                   System: IP22
[...]
                 Graphics: Indy 8-bit
                SCSI Disk: scsi(0)disk(1)

Testing gfx in slot 0.
ERROR:  Failure detected on the graphics board.
 press <Enter> to continue

On pressing <Enter> I'm returned to the startup menu. But I know that the IDE has additional commands available which perhaps could be used to further isolate the problem (see below) - if they're specific to the XL boards, e.g. the commands starting with "ng1_". Is there a way to start the IDE and directly go to the ide>> prompt, skipping the initial tests?

I didn't recognize some obvious damage on the board itself. Maybe you have an idea, what could be wrong with the board (apart from old age, overheating in the past, etc.) or what I could check in addition.

xl8-top.jpg

xl8-bottom.jpg

IDE commands (IP22, IRIX 6.5.22)

Code: Select all

ide>> help all
           IDE Generic Commands
errlog     - errlog [ "on"|"off" ]
runcached  - runcached [ "on"|"off" ]
qmode      - qmode [ "on"|"off" ]
c_on_error - c_on_error [ "on"|"off" ]
xenv       - xenv
clear_log  - clear all pass/fail info in IDE's diagnostic result log
dump_log   - display IDE's diagnostic result log
printregs  - printregs
boot       - boot [-f FILE] [-n] [ARGS]
dump       - dump [-(b|h|w)] [-(o|d|u|x|c|B)] ADDR1:ADDR2|ADDR#COUNT
echo       - echo ["STRING"|VAL ...]
exit       - exit [VAL]
fill       - fill [-(b|h|w)] [-v VAL] ADDR1:ADDR2|ADDR#COUNT
g          - g [-(b|h|w)] ADDRESS
help       - type help for help usage
hinv       - inventory
ls         - filelist
p          - put
printenv   - printenv [ENV_VAR_LIST]
printf     - printf "FORMAT" [ARG1 ARG2...]
quit       -
read       -
setenv     - setenv ENV_VAR STRING
source     - source SOURCE_PATH
spin       - spin [[-c COUNT] [-v VAL] [-(r|w)[+](b|h|w) ADDR]]*
unsetenv   - unsetenv ENV_VAR
version    - version
wait       - Wait for <CR> to continue (usage: wait ["message"])
symbols    - symbols [ -l | -k KEY | -t {cmds|udefs|diags|vars|globals|ints|strs|sets|setops|debug|all} ]
ide_delay  - ide_delay { -u USECS|-m MSECS|-s SECS }
exec       - exec -f FN1[,FN2..] { [-v VID1[,VID2..]]|[-s SET1[,SET2..]] } [-a ARG0[,ARG1..]]

           IDE Architecture-Specific Commands:

            IP22 Diagnostics:
ttyprint   - Control printing to serial port
clock      - clock counters carry
dcache1    - Data cache data parity test
dram       - [-p] [RANGE] DRAM (>4MB) data/address, parity test
duart      - (-i|e)(0-1) DUART internal/external loopback
emfail     - Produce "Electronics Module" failure message
fpu        - Floating point diagnostics
help_mem   - Print memory diagram
hinv       - Hardware Inventory
hpc3       - HPC3 registers and fifos
icache1    - Instruction cache data parity test
icache2    - Instruction cache misc test
int2       - int2 interrupt mask registers
ldram      - [-p] DRAM (0-4MB) data/address, parity test
memtest    - CPU memory test
nvram5     - eeprom pin signals
parity     - memory parity checking mechanism
resetcons  - Reset graphics console
scache1    - Secondary cache misc test
scsi       - SCSI
timer      - timer frequency
tlb        - TLB
utlb       - UTLB miss exception
wait       - Wait for <CR> to continue (usage: wait ["message"])
xscsi      - Exercise all SCSI disk drives found
gr2_bp     - Test VM2( bitplanes)
gr2_bptool - Bit Plane troubleshooting tool
gr2_chkbt457 - Tests bt457
gr2_cpure3 - Test DMA between host and RE3
gr2_cpushram - Test DMA between host and ge7 shared ram
gr2_ctxsw  - Test context switching
gr2_delay  - Set the amount to DELAY
gr2_gebus  - Test the ring bus in the GE7
gr2_gefloat - Test the integer/floating arithmetics of GE7
gr2_getGR2ver - Gr2 Version #
gr2_getMonType - Get Monitor Type
gr2_hq2test - Test HQ2
gr2_initclock - Initialize clock generator (usage: initclock <timing table>
gr2_inithq - Initialize HQ2 internal registers
gr2_initvc1 - Load video timing tables to VC1
gr2_load_ucode - Load GE/HQ microcode
gr2_lt     - Load timing tables (usage: lt <timing table>)
gr2_probe  - Probe for GR2 graphics
gr2_ram12  - Test internal ge ram
gr2_rdhqint - Reads HQ2 internal registers
gr2_wrhqint - Reads HQ2 internal registers
gr2_reset  - Reset graphics
gr2_seedrom - Test the seed rom
gr2_setboard - Set the gfx board slot #
gr2_shram  - Test the shram
gr2_shramre3 - Shram and re3
gr2_sqrom  - Test the square root rom
gr2_stride - Test stride dma between shram to re3
gr2_tram   - Tests for GE7URAM, HQ2URAM, FIFO, SHRAM,and GE7RAM0
gr2_wram   - Write RAM
gr2_rdram  - Read RAM
gr2_txmap  - Check parts of xmap
gr2_txmap_clut - Check clut of xmap
gr2_unstall - Unstall HQ2/GE7 and set hq_ge pc to 0.
gr2_vc1_sram - Checks VC1 SRAM
gr2_videoclk - Select type of video clock
gr2_vinitdac -  Initialize RAM DAC (usage: initdac <pattern> <sync off>)
gr2_wrconfig - Set board configuration register (usage: wrconfig (optional value to set)
gr2_boardvers - Get board vers
gr2_wrpll  - Write to PLL clock
gr2_wrfifo - Write HQ2 token # and stream of data to HQ FIFO
gr2_xcol   - Check color modes of XMAP5
gr2_zb     - Test ZB4(z-buffer)
gr2_zb_small - Test ZB4(z-buffer)
gr2_zbtool - Z-buffer troubleshooting tool
gr2_cachefdma - Test cache flushing VDMA (usage: gr2_cachefdma [npixels] [rtest])
gr2_yzoomdma - Test y-zoomed VDMA (usage: gr2_yzoomdma [npixels][yzoom][flush_cache])
gr2_stridedma - Test positive/negative DMA (usage:gr2_stridedma [pixels][stride][flush_cache])
gr2_wrx    - Write to Xmap
gr2_rdx    - Read from XMAP
gr2_xrgb   - Write RGB value
gr2_rvc1   - Read VC1 register
gr2_wvc1   - Write VC1 register
gr2_tvc1   - Test VC1 register
gr2_wrgb   - Write RGB value to DAC
gr2_vwrdac - Write value to DAC
gr2_vrddac - Read value from DAC
audiofield - run field audio test
ng1_setboard - Set the current graphics board
ng1_probe  - Probe for NG1 graphics
ng1_reset  - Basic initialization of the Rex chip
ng1_planes - Select bitplanes
ng1_drawdepth - Select drawn depth
ng1_dblsrc - Select double source
ng1_yflip  - Select yflip
ng1_rwpacked - Select rwpacked
ng1_ystride - Select ystride
ng1_hostdepth - Change hostdepth
ng1_rwdouble - Select rwdouble
ng1_swapendian - Select swapendian
ng1_compare - Select compare
ng1_rgbmode - Use RGB mode
ng1_cmode  - Use color index mode
ng1_dither - Change dither
ng1_fastclear - Use fastclear
ng1_blend  - Use blend
ng1_sfactor - Use sfactor
ng1_dfactor - Use dfactor
ng1_backblend - Use backblend
ng1_prefetch - Use prefetch
ng1_logicop - Set the logicop
ng1_lslength - Set lslength
ng1_lspattern - Set lspattern
ng1_zpattern - Set zpattern
ng1_color  - Set color index
ng1_colorback - Set color background
ng1_rgbcolor - Set RGB color
ng1_slope  - Set color slope
ng1_hostrw - Set hostrw value
ng1_writemask - Set the writemask
ng1_setsmask - Set the smask
ng1_drawcid - Use draw cid plane
ng1_setvisual - Set a visual
ng1_fbdepth - Set the Frame Buffer Depth
ng1_buswidth - Set the Bus Width
ng1_xywin  - Set xy origin
ng1_delay  - Sets a delay of 1/100 of a sec.
ng1_point  - Draw a point
ng1_line   - Draw a line
ng1_linesd - Draw a single dash line
ng1_linedd - Draw a double dash line
ng1_block  - Draw a block
ng1_blockimg - Draw a image block
ng1_blockstip - Draw a stipple block
ng1_blockopstip - Draw an opaque stipple block
ng1_blockystride - Draw a block with YSTRIDE
ng1_readblock - Read the pixels from a block.
ng1_span   - Draw a span
ng1_spanstip - Draw a stippled span
ng1_spanopstip - Draw a opaque stippled span
ng1_scrtoscr - Screen to Screen copy
ng1_rrex   - Read REX register
ng1_wrex   - Write REX register
ng1_rexregs - REX register r/w test
ng1_vram   - Test VRAM
ng1_cid    - CID/PUP DRAM
ng1_patterns - Test rex with patterns
ng1_bars   - Display color bars
ng1_regdump - Rex3 register dump
ng1_wbt445 - Write Bt445 register
ng1_rbt445 - Read Bt445 register
ng1_bt445test - Test Bt445 register
ng1_wcmap  - Write Cmap register
ng1_rcmap  - Read Cmap register
ng1_cmaptest - Test Cmap register
ng1_wxmap9 - Write Xmap9 register
ng1_rxmap9 - Read Xmap9 register
ng1_xmap9test - Test Xmap9 register
ng1_wvc2   - Write Vc2 register
ng1_rvc2   - Read Vc2 register
ng1_vc2test - Test Vc2 register
ng1_vc2cursor - Set Vc2 cursor
ng1_vc2cursormode - Set Vc2 cursor type
ng1_dmatest - DMA test (Write & Read)
ng1_displayfb - Display Frame Buffer Depth.
repeat n cmd
        -- repeat `cmd' n times
while ( expr ) cmd
        -- execute `cmd' while expr is true
for ( expr1; expr2; expr3 ) cmd
        -- execute `cmd' while expr2 is true
{ cmd ; cmd ... }
        -- commands may grouped with `{' and `}'
if ( expr ) cmd1 [ else cmd2 ] [fi]
        -- execute cmd1 if expr is true, cmd2 otherwise; `fi' is optional
ide>>
:Indy: :O2: :Octane: :Octane2: :O200: = :O200: - :O200: = :O200: (O200 cluster w/2 GIGAchannel cabinets)
[ ( hp ) ] 712/80 c3000 (dead) :hpserv: (J5600) c3700 c3750 c8000 rp2470 :rx2600: (rx2620) rx4640
| d | i | g | i | t | a | l | AXPpci33 AlphaStation 200 AlphaStation 255 PWS 500au AlphaServer DS20E AlphaServer DS25
C O B A L T Qube 2 Qube 3 RaQ RaQ 2 RaQ 4r RaQ XTR

robespierre
Posts: 1570
Joined: Mon Sep 12, 2011 2:28 pm
Location: Boston

Re: Indy - problems with XL8

Unread postby robespierre » Wed Feb 15, 2017 10:54 am

johnnym wrote:Is there a way to start the IDE and directly go to the ide>> prompt, skipping the initial tests?

Yes, type ^C.

IDE has commands to show the error log and set verbose modes (dumplog, errlog, qmode, etc...)
:PI: :O2: :Indigo2IMP: :Indigo2IMP:

User avatar
johnnym
Donor
Donor
Posts: 185
Joined: Sun Sep 04, 2016 9:53 pm

Re: Indy - problems with XL8

Unread postby johnnym » Thu Feb 16, 2017 7:38 am

robespierre wrote:
johnnym wrote:Is there a way to start the IDE and directly go to the ide>> prompt, skipping the initial tests?

Yes, type ^C.

Thanks for this hint.

IDE has commands to show the error log and set verbose modes (dumplog, errlog, qmode, etc...)

I have now tried the following:

Code: Select all

ide>> clear_log
  < 253 log entries cleared >
ide>> xenv
  error_logging (cmdname: `errlog') is ON
  icached_exec (cmdname: `runcached') is OFF
  quick_mode (cmdname: `qmode') is ON
  continue_on_err (cmdname: `c_on_error') is OFF
ide>> qmode off
ide>> c_on_error on
ide>> xenv
  error_logging (cmdname: `errlog') is ON
  icached_exec (cmdname: `runcached') is OFF
  quick_mode (cmdname: `qmode') is OFF
  continue_on_err (cmdname: `c_on_error') is ON
ide>> ng1
ERROR:  Failure detected on the graphics board.
 press <Enter> to continue
ide>> dump_log

Display results of all diags that have been run
  buffon:  1 run; no skips or failures
  vid 0(1 run): 1 pass/0 skip/0 fail
  emfail:  1 run; 1 failure 0 skip  total
  vid 0(1 run): 0 pass/0 skip/1 fail
  ng1_setboard:  1 run; 1 failure 0 skip  total
  vid 0(1 run): 0 pass/0 skip/1 fail
  ng1_probe:  1 run; 1 failure 0 skip  total
  vid 0(1 run): 0 pass/0 skip/1 fail
  ng1_rexregs:  1 run; no skips or failures
  vid 0(1 run): 1 pass/0 skip/0 fail
  ng1_bt445test:  1 run; no skips or failures
  vid 0(1 run): 1 pass/0 skip/0 fail
  ng1_cmaptest:  1 run; no skips or failures
  vid 0(1 run): 1 pass/0 skip/0 fail
  ng1_xmap9test:  1 run; 0 failure 1 skip  total
  vid 0(1 run): 0 pass/1 skip/0 fail
 

So the tests/commands that fail are ng1_setboard and ng1_probe. Repeating ng1_setboard with 1 seems to pass:

Code: Select all

ide>> ng1_setboard 1
ide>> dump_log

Display results of all diags that have been run
  buffon:  1 run; no skips or failures
  vid 0(1 run): 1 pass/0 skip/0 fail
  emfail:  1 run; 1 failure 0 skip  total
  vid 0(1 run): 0 pass/0 skip/1 fail
  ng1_setboard:  2 runs; 1 failure 0 skip s total
[...]

...but ng1_probe seems to always fail.

Looks like it's FUBAR, what? :(
:Indy: :O2: :Octane: :Octane2: :O200: = :O200: - :O200: = :O200: (O200 cluster w/2 GIGAchannel cabinets)
[ ( hp ) ] 712/80 c3000 (dead) :hpserv: (J5600) c3700 c3750 c8000 rp2470 :rx2600: (rx2620) rx4640
| d | i | g | i | t | a | l | AXPpci33 AlphaStation 200 AlphaStation 255 PWS 500au AlphaServer DS20E AlphaServer DS25
C O B A L T Qube 2 Qube 3 RaQ RaQ 2 RaQ 4r RaQ XTR

User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: Indy - problems with XL8

Unread postby dexter1 » Fri Feb 17, 2017 6:39 am

The REX3 seems to be doing its job, interfacing the graphics subsystem with the Indy. You could check for any lifted pins on the individual ASIC's although the REX3 (under the heatsink) is the most probable victim for these kinds of errors.

Before you trash it and source a new XL8 (They are somewhat common and not that expensive) can you check if the XL8 also produces the same stripe pattern in your other Indy?
You don't need to reconfigure that Indy, a quick boot into ARCS should be enough to tell you if it really is the XL8 or something not right on the Indy mainboard where the XL8 came from
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

computron
Posts: 153
Joined: Thu Apr 18, 2013 4:08 am
Location: france

Re: Indy - problems with XL8

Unread postby computron » Sat Feb 18, 2017 9:21 am

looks like a colormap error ......

Maybe try to melt again all the welding point withg an iron.

Cheers

Eve

User avatar
johnnym
Donor
Donor
Posts: 185
Joined: Sun Sep 04, 2016 9:53 pm

Re: Indy - problems with XL8

Unread postby johnnym » Tue Feb 21, 2017 6:19 am

Sorry for the delay - an Indigo and an Indigo² needed my attention - and thanks for the suggestions.

dexter1 wrote:The REX3 seems to be doing its job, interfacing the graphics subsystem with the Indy. You could check for any lifted pins on the individual ASIC's although the REX3 (under the heatsink) is the most probable victim for these kinds of errors.

Sadly I didn't find any lifted pins. :?

dexter1 wrote:Before you trash it and source a new XL8 (They are somewhat common and not that expensive) can you check if the XL8 also produces the same stripe pattern in your other Indy?

It does indeed behave the same in my second Indy. The afterwards reinstalled XL24 still works find though, so the XL8 didn't do any harm to the second Indy. Hence I assume the error is on the XL8 alone and both Indy system boards are OK.

computron wrote:looks like a colormap error ......

Maybe try to melt again all the welding point withg an iron.

Sorry, but I sadly don't have proper SMD soldering equipment to try this. :(
:Indy: :O2: :Octane: :Octane2: :O200: = :O200: - :O200: = :O200: (O200 cluster w/2 GIGAchannel cabinets)
[ ( hp ) ] 712/80 c3000 (dead) :hpserv: (J5600) c3700 c3750 c8000 rp2470 :rx2600: (rx2620) rx4640
| d | i | g | i | t | a | l | AXPpci33 AlphaStation 200 AlphaStation 255 PWS 500au AlphaServer DS20E AlphaServer DS25
C O B A L T Qube 2 Qube 3 RaQ RaQ 2 RaQ 4r RaQ XTR


Return to “SGI: Hardware”

Who is online

Users browsing this forum: No registered users and 2 guests