YH,
Looking at your hard_reset() in src/mainboard/tyan/s2895/auto.c src/nvidia/ck804/ck804_reset.c The two hard_reset's are different. I think one might be wrong. The one in auto.c writes a & e to cf9, that's a hard reset. The one in ck804_reset.c writes 2 and 6 to cf9, that's a soft reset. Also I'm not sure how you enable the cf9 port. I think you should write LPC:e8 in hard_reset() to be sure it's enabled.
Also I noticed in the commercial BIOS's hard_reset they include a loop forever or JMP * or L1: go to L1 after the cf9 writes.
Steve
-----Original Message----- From: linuxbios-bounces@openbios.org [mailto:linuxbios-bounces@openbios.org] On Behalf Of YhLu Sent: Wednesday, June 22, 2005 8:37 PM To: ebiederman@lnxi.com Cc: 'LinuxBIOS' Subject: RE: [LinuxBIOS] Merge complete....
ck804 is using cf9 to do reset, ......may be i lost the control of that port.
YH
-----Original Message----- From: ebiederman@lnxi.com [mailto:ebiederman@lnxi.com] Sent: Wednesday, June 22, 2005 5:29 PM To: YhLu Cc: 'LinuxBIOS' Subject: Re: [LinuxBIOS] Merge complete....
YhLu YhLu@tyan.com writes:
the code reset_bus and scan_bus seem quite neat.
but do one simutation, it doesn't work.
I set ht frq to 800Mhz in auto.c and reset that in hypertransport.c to 1GHz.
it hangs after print out "Reseting board..."
And the nice thing you get at most one reset of the board everything will be setup and tuned first.
my hard_reset for ck804 doesn't work? hard_reset is suposed to work, because i can do restart and hardwaremain already call that......
Sounds like that is the problem. Quite possibly there is a bus number change somewhere messing things up.
The other possibility is that there is some tuning problem and the board does not come back from the reset.
Eric
_______________________________________________ LinuxBIOS mailing list LinuxBIOS@openbios.org http://www.openbios.org/mailman/listinfo/linuxbios
* Stephen.Kimball@bench.com Stephen.Kimball@bench.com [050623 15:15]:
Looking at your hard_reset() in src/mainboard/tyan/s2895/auto.c src/nvidia/ck804/ck804_reset.c The two hard_reset's are different. I think one might be wrong. The one in auto.c writes a & e to cf9, that's a hard reset. The one in ck804_reset.c writes 2 and 6 to cf9, that's a soft reset. Also I'm not sure how you enable the cf9 port. I think you should write LPC:e8 in hard_reset() to be sure it's enabled.
0xcf9 is indeed not enabled. This causes problems with reboot from Linux in some circumstances. (ie when using ACPI with an FADT)
IIRC 0xcf9 needs to be enabled in devB:x41 register, set [D5].
Stefan
stephen,
that's right.
in auto.c stage, the hard reset is real one it will reset pci space and ht (freq/width). the soft reset will keep the ht (freq/width). the hard_reset is called when ram init exception.
in the linuxbios_ram stage totally in c ( from hardwaremain, or the root_reset_bus) is actually a soft reset, it will keep the ht (freq/width)
the problem i met is problem ck804 doesn't reconfig ht two times.
YH
On 6/23/05, Stephen.Kimball@bench.com Stephen.Kimball@bench.com wrote:
YH,
Looking at your hard_reset() in src/mainboard/tyan/s2895/auto.c src/nvidia/ck804/ck804_reset.c The two hard_reset's are different. I think one might be wrong. The one in auto.c writes a & e to cf9, that's a hard reset. The one in ck804_reset.c writes 2 and 6 to cf9, that's a soft reset. Also I'm not sure how you enable the cf9 port. I think you should write LPC:e8 in hard_reset() to be sure it's enabled.
Also I noticed in the commercial BIOS's hard_reset they include a loop forever or JMP * or L1: go to L1 after the cf9 writes.
Steve
-----Original Message----- From: linuxbios-bounces@openbios.org [mailto:linuxbios-bounces@openbios.org] On Behalf Of YhLu Sent: Wednesday, June 22, 2005 8:37 PM To: ebiederman@lnxi.com Cc: 'LinuxBIOS' Subject: RE: [LinuxBIOS] Merge complete....
ck804 is using cf9 to do reset, ......may be i lost the control of that port.
YH
-----Original Message----- From: ebiederman@lnxi.com [mailto:ebiederman@lnxi.com] Sent: Wednesday, June 22, 2005 5:29 PM To: YhLu Cc: 'LinuxBIOS' Subject: Re: [LinuxBIOS] Merge complete....
YhLu YhLu@tyan.com writes:
the code reset_bus and scan_bus seem quite neat.
but do one simutation, it doesn't work.
I set ht frq to 800Mhz in auto.c and reset that in hypertransport.c to 1GHz.
it hangs after print out "Reseting board..."
And the nice thing you get at most one reset of the board everything will be setup and tuned first.
my hard_reset for ck804 doesn't work? hard_reset is suposed to work, because i can do restart and hardwaremain already call that......
Sounds like that is the problem. Quite possibly there is a bus number change somewhere messing things up.
The other possibility is that there is some tuning problem and the board does not come back from the reset.
Eric
LinuxBIOS mailing list LinuxBIOS@openbios.org http://www.openbios.org/mailman/listinfo/linuxbios
LinuxBIOS mailing list LinuxBIOS@openbios.org http://www.openbios.org/mailman/listinfo/linuxbios