Bad block on NAND / only serial boot works

I've got a problem with my Beagleboard Rev C2. When I switch it on and watch serial output, all it says is "40V". Pressing the user button while applying power doesn't have any effect. The only way I've been able to bring up the board was using pserial and ukermit[1]. However, if x-load.bin and u-boot.bin are transmitted in this way, the boot process continues normally, i.e., if there's a bootable system on sdcard, the system boots and works as expected. Recovery sdcrads ([2,3]) appear to work in this context, however, both after typing "reset" at the u-boot prompt or after reapplying power, the situation is as before.
Without a bootable system on sdcard or when I cancel booting, I get a u-boot prompt. Looking around, I typed "nand bad" and got:

Device 0 bad blocks

My understanding of this situation is that the NAND block containing x-load.bin is bad, thus (almost) nothing happens when I apply power. Now I wonder how to recover my beagleboard so that it can boot without an x86 attached to the serial port.

a) Is there any way to avoid the bad block when flashing the bootloader? Maybe either the bad block could be marked or x-load.bin could be written to an address "after" the bad block.
b) Alternatively - is it possible to make pserial and work on ARM? I've got a second beagleboard and it would be more practical for me to use that rather than an x86. I've compiled the programs successfully, they seem to work when I type "pserial --help" / "ukermit --help", however, they quit with "Aborted" when I really want to use them.

I'm afraid I need detailed instructions.