Originally posted by jpd
AMD Athlon + VIA chipset + complete lockup = infinite loop.
Had to fight this problem myself early this year. It is caused by a faulty AGP driver from VIA.
Uninstall the VIA 4in1 driver set completely, and use the Microsoft stock IDE drivers and AGP drivers. Then the lockups should no longer happen.
A brief explanation maybe in order about what is going on:
The AGP portion of the northbridge maintains a command/data queue for pending transactions, which works both ways. AGP transactions are always 64 bits. The problem starts when the software initiates a transfer starting on an odd DWORD boundary. The transaction must be completed in two cycles instead of one.
When, after the first cycle is complete but before the second cycle starts, the AGP card itself also request a transfer transaction, and this transaction for some reason requires the one from the CPU to be completed first, both transactions deadlock each other.
The interrupted transaction can no longer complete, as the video card will reject it, pending completion of it's own transaction. The AGP card's transaction cannot complete either, as it requires completion of the one initiated from the CPU. Because of the bouncing of the second part of the split CPU transaction, Microsoft has named this problem 'infinite loop'. Because of the lockout in the northbridge of the chipset, the processor is permanently locked out of all memory access, and thus cannot execute any other instructions, nor can it respond to interrupts. This will cause a soundcard to repeat it's last loaded sound fragment ad infinitum, for example.
Intel has documented this particular sitiuation in it's official AGP specification, with an explicit warning to software/driver developers to make sure the above described situation is to be avoided at all times, as it will completely freeze the system. It can be avoided completely by assuring that software drivers initiate memory transfers on even DWORD boundaries only, as the AGP transaction will then only need one uninterruptable cycle and thus avoids the deadlock situation. Unfortunately, the VIA programmers haven't made sure their drivers follow this advice.
Jan Peter