[parisc-linux] PCXS fixes
Jim Buttafuoco
jim@buttafuoco.net
Wed, 3 Oct 2001 07:58:17 -0400
John,
I have a couple of 710's and would love to test if you can provide me
with a kernel to net boot from.
Jim
> I just committed some PCXS fixes, some of which were based on the
ideas
> posted here in the last week or so for 720 support. One new fix is
that I
> program the Asp interrupts correctly, fixing a bug which was
preventing
> 710's from booting (I think there is at least one person on this list
> with such a machine).
>
> However, ls still hangs randomly (actually it is not random, it
depends on
> which directory the ls is done in). It gets stuck in a ldcw loop due
to
> the lock word not being 16 byte aligned. The problem is that we
fixed the
> alignment problems for static and dynamic allocations, but the align
> attribute is ignored for automatic (stack) allocations. Note that
> although ldcw requires 16 byte alignment for correct function, it does
> not cause an unaligned fault if the address is not aligned, it just
> doesn't work correctly!
>
> Here are some suggested fixes:
>
> 1) Fix the compiler to honor the aligned attribute for stack
> allocations. I'm not sure how difficult this would be. I'm
> not a compiler person, so someone else would have to do this.
> I would guess that this problem is in the machine independent
> part of the compiler. I'm not sure whether or not it would
> be considered a bug. It might be worth writing a test for
> the 386 version of gcc, and if it fails, report the "bug" and
> see what happens ...
>
> 2) Change the lock structure to have 4 contiguous lock words, each
> initialized to 1. Then the lock code can round the address up to
the
> nearest 16 byte aligned address and use that for the semaphore.
If we
> choose this solution we can just get rid of the aligned attribute,
> since it would no longer serve any purpose.
>
>
> John Marvin
> jsm@fc.hp.com
>
>
> _______________________________________________
> parisc-linux mailing list
> parisc-linux@lists.parisc-linux.org
> http://lists.parisc-linux.org/cgi-bin/mailman/listinfo/parisc-linux
>
>