I have been on other things for a while but had a chance to look at this again.
Recap: on the smartcore P3, etherboot 5.0.7 fails because all inw() operations return 0. Two inw()s in a row sometimes return the right value on the second one.
I thought this might be a memory config problem so I brought down memtest 3.0, and am now running it. Unfortunately, it runs just fine. Memory configuration, at least judging by the memtest results, is correct on this machine. I'm up to test 4, running for 7 minutes now, and usually memory problems if they existed would have shown up by now.
So, back to the original issue: inw operations acting wrong. The first inw() always reads 0, the seconds reads what looks like the right value. Anybody have an idea on what kind of north/south configuration problems could make this happen?
ron