Page 1 of 1
QEMU Bug, kernel problem, or grub bug?
Posted: Sat Aug 07, 2010 9:46 am
by kfreezen
I have implemented a floppy driver in my kernel and my boot device is not a valid floppy. The boot device number is 0xFFFFFF (as reported by grub multiboot)
EDIT: I don't think it is a bug in qemu because Virtual box reports the same boot device.
Re: QEMU Bug, kernel problem, or grub bug?
Posted: Sat Aug 07, 2010 12:24 pm
by blobmiester
kfreezen wrote:g, kernel problem, or grub bug?
I have implemented a floppy driver in my kernel and my boot device is not a valid floppy. The boot device number is 0xFFFFFF (as reported by grub multiboot)
EDIT: I don't think it is a bug in qemu because Virtual box reports the same boot device.
I'm fairly sure that the 'standard-ish' boot device number is 0 not 0xFFFFFF for floppy disk drive #0. Maybe check to see if there is something wrong with the way you access the multiboot information?
Oh and it is definitely not a problem with QEMU, BOCHS, GRUB, etc. Many people on here have made workable floppy drivers with the same QEMU and GRUB setup.
Re: QEMU Bug, kernel problem, or grub bug?
Posted: Sat Aug 07, 2010 2:10 pm
by kfreezen
I do not believe that I am accessing the boot information wrong because mem_upper is the correct amount of upper memory in my qemu setup.
also, the boot device entry is at mboot_info+12, and the bit indicating that the boot device is valid is 1.
Re: QEMU Bug, kernel problem, or grub bug?
Posted: Sat Aug 07, 2010 3:59 pm
by Combuster
considering that grub/emulators are rarely at fault, it's hard to trust your claim. Hence, please proof that your kernel is correct. Most likely you'll find the bug in the process.
Re: QEMU Bug, kernel problem, or grub bug?
Posted: Sat Aug 07, 2010 4:05 pm
by xenos
It seems you are misinterpreting the boot_device field. The drive number is only one byte, so it cannot by any chance be 0xFFFFFF. For a floppy the drive number should be 0x00, and the following 3 bytes should be 0xFF, indicating that there are no partitions. Probably your 0xFFFFFF comes just from these 3 bytes.