Re: PYXIS bug detection

From: Jay Estabrook (
Date: Thu Dec 13 2001 - 13:02:18 EST

On Tue, Dec 11, 2001 at 04:22:18PM +0100, Kurt Garloff wrote:
> The attached patch has two routines to try, but both fail:
> check_pyxis_pagecross_bug2 does not find any corruption.

The code here looks fine.

> check_pyxis_pagecross_bug apparently does not read from the memory region I
> intended and will thus always report corruption.

Correct; this is invalid code and should be discarded.

> What am I doing wrong? (I'm still new to Alpha, so my understanding of PTEs
> and the MMU setup on alpha is limited.)

Well, it's not so much what you're doing wrong, but that what you're
doing won't go wrong (at least that's our current thinking).

The PYXIS error is associated with crossing an 8K (page) boundary
using scatter/gather with burst DMA READs, the critical part being
"burst". We don't believe that you can cause a "burst" DMA to occur
with the programmed I/O accesses that you are doing. At best, you
might be able to program the ISA DMA engine to provide the "burst";
you'd have to activate it via the IDE controller, which seems an
awful lot of bother.

However, if one assumes that the only MIATA to have successful PYXIS
fixes is the MIATA GL, you should be able to detect this via HWRPB
(checking for MIATA sys_type) and then look for a builtin QLogic SCSI
controller on the motherboard (it will have been assigned IRQ 27
decimal). One possible way to set this up would be:

1. for all MIATAs, initially set the flag AVOID_DMA_OVER_8K_BOUNDARIES ;-}

2. in "miata_map_irq()", clear that flag if returning IRQ 27, which
   will only happen if on a MIATA GL

How does this sound?


Jay A Estabrook Alpha Engineering - LINUX Project
Compaq Computer Corp. - MRO1-2/K15 (508) 467-2080
200 Forest Street, Marlboro MA 01752
To unsubscribe from this list: send the line "unsubscribe linux-alpha" in
the body of a message to
More majordomo info at

This archive was generated by hypermail 2b29 : Sat Dec 15 2001 - 21:00:33 EST