Skip to contentSkip to conversation

froom assembly to C in boot code

DISCUSSION Koala GNU 2 participants 2 messages Jul 25, 2003

lore
Share & tools
lore

Koala GNU

author
#0 lore raw

Hi all,

I forward to the lkml a mail I posted on kernelnewbies hoping someone of you can help me.
-------------------------------------------------------------------------------------------------------------------------

Hi,

for a couple of weeks I worked on some examples about boot process. In my previous post on kernelnewbies I post some of them.

Now I have a problem. My goal is to boot from a diskette, load the setup code (4 sectors), load the kernel at 0x10000 and move it at 0x1000 trying to execute a main C routine that should represent the start of the kernel. This C routine print simply "Hello Kernel".

For my job I used the examples of Berlin Brown at http://bama.ua.edu/~brown084/main.html because this code is a simplified version of the linux boot process.

Attached there is my code, hoping someone of you can give a look at it and tell me if there is something wrong (I think so).

Before the jump to 0x0100 all seems work fine. The problem happen when I switch in protected mode and try to jump to 0x0100.

Ahhhh!!! I use bochs for my test.

PS

To build my code type:

make clean (when necessary)
make all

to write on a diskette:
make disk

#1 lore raw
Quoted 5 lines · Koala GNU

Hi all,

I forward to the lkml a mail I posted on kernelnewbies hoping someone of you can help me.
-------------------------------------------------------------------------------------------------------------------------

Try post on alt.os.development they are usually a useful crowd for this kind of thing.

PS. If you want to write your own kernel, you are probably best making a multiboot kernel that can be loaded by grub. Saves a lot of heartache...

Signature · 3 lines
// Gianni Tedesco (gianni at scaramanga dot co dot uk)
lynx --source www.scaramanga.co.uk/gianni-at-ecsc.asc | gpg --import
8646BE7D: 6D9F 2287 870E A2C9 8F60 3A3C 91B5 7669 8646 BE7D