James: (jvh@uclink4.berkeley.edu): Thanks for the hint on loading a Kernel, but:
Now I have a verified routine that loads the kernel (block by block) from my ATA-Disk into memory (at whatever I like. Currently at 0x00010000). I´m loading a zImage at 0x00010000, the bootsect at 0x9000, the setupsectors (4) at 0x9200. It´s just like the other loaders do it ...he?
I have the code like: static void (*v)() =(void *)KERNEL_START;
I start like: v();
and the machine (the openbios) throws me an exception 13. (general Protection Fault errorcode 0).
I tried nearly any combination of stack-location, entry-adress and kerneltype ... all fails ... I now read alot about descriptors and segments and so cause I suspect the problem is somewhere there ...
But I just dont get the point. What am I doing wrong now ?? I thought the kernel would just set up and start?
I figured out that already the jump done with the v(); is the one that causes the exception, no matter if there is a kernel or just dummy code (like: jmp $).
There must be something I misunderstood completely !! Help, I´m lost ...
greetinx, J.Winter
- To unsubscribe: send mail to majordomo@freiburg.linux.de with 'unsubscribe openbios' in the body of the message