On Thu, Jan 17, 2008 at 01:40:54AM +0100, Thomas Bogendoerfer wrote:

> ----------------------------------------------------------------------
> void spin(void *a0)
> {
>       while (1) {
>               asm volatile(
>               "    .set mips3       \n"
>               "    sync             \n"
>               "1:  ll $5, 0($4)     \n"
>               "    sc $3, 0($4)     \n"
>               "    beqz $3, 1b      \n"
>               "    .word 0x7c03e83b \n" /* rdhwr */
>               "    lw $3, 0($4)     \n"
>               "    nop              \n"
>               );
>       }
> }
> 
> int main()
> {
>       int a;
> 
>       spin(&a);
> }
> ----------------------------------------------------------------------
> 
> this kills my IP28 after a few seconds. If I drop rdhwr or sync the
> machine hasn't locked up after running for several minutes. Looks
> like we are hiting a strange condition.

SYNC on the R10000 will only graduate if the external signal SyncGblPerf
is asserted.  A simple system could simply always set it.  I wonder if
that has any affect.  Logic analyzer time ...

  Ralf


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to