what's usually going on here is that /sbin/init starts and tries (and fails) to open a console. IIRC there are some hardware checks in the ttyS0 code that look for bits set "correctly" in the hardware. Another typical problem is interrupt setup -- there may not be any interrupts.
can you ssh in to the box when it is up? There are lots of simple tests to try if so.
ron