Saturday, August 19, 2006

free() and the IDE Driver; eMachines?

Well it appears I had a big ol' bug in my paging code, making it crash. I fixed it on all but one of my computers. The eMachines T1220 I have still page faults when the kernel attempts to access 0x07800000, one of the last blocks of memory on that computer. I have no clue why.

But now I have a new problem. Right before my IDE init function (KsHardDisk) returns, it free()s the memory it needed. Apparently my free() is broken because it page faults attempting to access 0xD0D0D0D8 when it attempts to free(). I ran my IDE driver through valgrind (taking out the inb/outb) and it reported no memory leaks, so it HAS to be my malloc and/or free is buggy. But the problem is, when I had someone else try it on their computer, it worked and returned properly. So I have no clue why it doesn't work on any of my computers but it works on all of his computers.

I invite you to test my kernel and see if it works on your computer. As I said before I have all my code on svn, just download it.

svn checkout http://awos.googlecode.com/svn/trunk awos
cd awos/src/kernel
make all
cp kernel.bin /media/floppy

I also downloaded the ATA-6 specification from T13. So at least I'll have a correct IDE driver (even if my OS doesn't have an malloc/free :) ).

Well I best be off to code. Until next time...

No comments: