Oops, this was my bad.  after looking back at your previous posts, Jörg, I think Ronald is correct.  Which brings me back to an earlier question.  Namely are you loading a zImage or a bzImage?  If you carefully look through the head.S code, you will notice it deciding whether the kernel is loaded high or low.  I believe it does this by checking a value generated at compile time.  Anyway, my understanding is that the big (bzImage) kernels are loaded high 0x101000 and the smaller (zImage) kernels are loaded into low memory  at 0x1000. 

Assuming OpenBIOS puts the processor into protected mode with a 4g address space (a good bet as Ronald has already confirmed this), all you should have to do is jump to the kernel.  If you already have access to the 4g address space while you are loading the kernel from flash this should be the case.

One last question though, did you say you were loading a vmlinux image (uncompressed) into memory?  If so, head.S assumes the image is compressed and trys to uncompress it. 

        Gary