weird HAL2
Quoted 6 lines · Thomas Bogendoerfer
Quoted 2 lines · Ulf Carlsson
Is it possible to download the BIOS and disassemble it to check how to do it correctly?
should be doable, but I guess disassembling the IRIX driver might be easier. I've hoped someone at SGI could help us out.
I think we should ask them kindly then:
Does anyone at SGI know how the HAL2 works?
We can't get it working correctly, it doesn't come back to normal state after the reset. Even if we write 0x0018 to isr, to enable the chip, it still shows 0x0000. It's certainly off because we can't write to the indirect registers in this state
If we don't reset the HAL2, leaving it the way it is when after playing the boot sound, we can't write to the indirect registers. The busy bit doesn't go off.
The only thing which works correctly is reading the version register.
- Ulf
Quoted 9 lines · Ulf Carlsson
Quoted 6 lines · Thomas Bogendoerfer
Quoted 2 lines · Ulf Carlsson
Is it possible to download the BIOS and disassemble it to check how to do it correctly?
should be doable, but I guess disassembling the IRIX driver might be easier. I've hoped someone at SGI could help us out.
Quoted 9 lines
I think we should ask them kindly then:
Does anyone at SGI know how the HAL2 works?
We can't get it working correctly, it doesn't come back to normal state after the reset. Even if we write
0x0018to isr, to enable the chip, it still shows0x0000. It's certainly off because we can't write to the indirect registers in this state
I don't know anything about the HAL2, but looking in hal2.h it says 0=reset, so from what I can see you write 0x0018 to it and then it should read 0x0000 when it is reset. Maybe this part is working ok for you and the problem is further along?
There are other people who would know this better though!
Cheers, Alistair
Quoted 6 lines
If we don't reset the HAL2, leaving it the way it is when after playing the boot sound, we can't write to the indirect registers. The busy bit doesn't go off.
The only thing which works correctly is reading the version register.
- Ulf
Signature · 6 lines
Alistair Lambie [email protected] SGI Global Product Support SGI Voicemail/VNET: 234-1455 Level 5, Cigna House, M/S: INZ-3780 PO Box 24 093, Ph: +64-4-494 6325 40 Mercer St, Wellington, Fax: +64-4-494 6321 New Zealand Mobile: +64-21-635 262
Quoted 3 lines
I don't know anything about the HAL2, but looking in
hal2.hit says 0=reset, so from what I can see you write0x0018to it and then it should read0x0000when it is reset.
The spec says:
Bit 3, Global reset R/W:
Assertion of hardware reset i.e. RESET_N, set this to zero. Software brings the HAL2 out of reset by setting this bit and may reset the HAL2 by clearing it. Please note: this bit must be set before any other internal register access occurs.
RESET = 0;
ACTIVE = 1;
Bit 4, Codec reset R/W:
Value reflected to CODEC_RESET_N pin. To reset external codecs and other external devices.
RESET = 0; ACTIVE = 1;
This is exactly what I'm trying to do by first writing 0x0000 to isr, waiting some us, and then writing 0x0018. Then the card should be active and isr should IMHO contain 0x0018.
Quoted 1 line
Maybe this part is working ok for you and the problem is further along?
Nope.
- Ulf
Quoted 3 lines
This is exactly what I'm trying to do by first writing
0x0000to isr, waiting some us, and then writing0x0018. Then the card should be active and isr should IMHO contain0x0018.
Stupid question but does
write 0x0010
wait 10uS
write 0x0018
work ?
(ie do you have to bring them out of reset card, then codec ?
Thomas Bogendoerfer
maintainerQuoted 6 lines · Alan Cox
write
0x0010
wait 10uS
write0x0018work ?
not for me.
Thomas.
Signature · 3 lines
This device has completely bogus header. Compaq scores again :-|
It's a host bridge, but it should be called ghost bridge instead ;^)
[Martin `MJ' Mares on linux-kernel]Quoted 5 lines · Ulf Carlsson
Quoted 4 lines
I don't know anything about the HAL2, but looking in
hal2.hit says 0=reset, so from what I can see you write0x0018to it and then it should read0x0000when it is reset.
write 0x0
wait 50us
write 0x18
write to indirect data reg
write to indirect addr reg
spin until idirect status reg transaction status reg clears
.....
Quoted 24 lines
The spec says:
Bit 3, Global reset R/W:
Assertion of hardware reset i.e.RESET_N, set this to zero. Software brings the HAL2 out of reset by setting this bit and may reset the HAL2 by clearing it. Please note: this bit must be set before any other internal register access occurs.
RESET = 0;
ACTIVE = 1;Bit 4, Codec reset R/W:
Value reflected toCODEC_RESET_Npin. To reset external codecs and other external devices.
RESET = 0; ACTIVE = 1;This is exactly what I'm trying to do by first writing
0x0000to isr, waiting some us, and then writing0x0018. Then the card should be active and isr should IMHO contain0x0018.Quoted 1 line
Maybe this part is working ok for you and the problem is further along?
Nope.
- Ulf
Signature · 6 lines
Alistair Lambie [email protected] SGI Global Product Support SGI Voicemail/VNET: 234-1455 Level 5, Cigna House, M/S: INZ-3780 PO Box 24 093, Ph: +64-4-494 6325 40 Mercer St, Wellington, Fax: +64-4-494 6321 New Zealand Mobile: +64-21-635 262