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