Hi All,
I am getting ever so closer to booting VMWare with LinuxBIOS. I can boot FILO with VGA within VMWare now but I have a final hurdle. I am getting IDE problems within FILO when it's trying to read sector 0 of the boot drive. I get a 'read sector failed' error so because of this it just jumps straight to the GRUB menu.
Anyone have any ideas what the problem might be? Below is a copy of the output from LinuxBIOS from start to end.
Thanks guys.
LinuxBIOS-2.0.0.0Fallback Tue Apr 24 12:30:11 BST 2007 starting... Northbridge prior to SDRAM init: PCI: 00:00.00 00: 86 80 90 71 06 00 10 02 01 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 ad 15 76 19 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 40 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 Set register 0x00000050 to 0xff00a00c Set register 0x00000057 to 0x00000008 Set register 0x00000059 to 0x00000010 Set register 0x0000005a to 0x00000011 Set register 0x0000005b to 0x00000001 Set register 0x0000005c to 0x00000000 Set register 0x0000005d to 0x00000030 Set register 0x0000005e to 0x00000013 Set register 0x0000005f to 0x00000011 Set register 0x00000060 to 0x00000000 Set register 0x00000061 to 0x00000000 Set register 0x00000062 to 0x00000000 Set register 0x00000063 to 0x00000000 Set register 0x00000064 to 0x00000000 Set register 0x00000065 to 0x00000000 Set register 0x00000066 to 0x00000000 Set register 0x00000067 to 0x00000000 Set register 0x00000068 to 0x00000000 Set register 0x00000074 to 0x00000000 Set register 0x00000076 to 0x00000000 Set register 0x00000078 to 0x0000ff00 Set register 0x0000007a to 0x00000000 RAM Enable 1: Apply NOP Sending RAM command 0x0020 to 0x00000000 RAM Enable 2: Precharge all Sending RAM command 0x0040 to 0x00000000 RAM Enable 3: CBR Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 Sending RAM command 0x0080 to 0x00000000 RAM Enable 4: Mode register set Sending RAM command 0x0060 to 0x000001d0 RAM Enable 5: Normal operation Sending RAM command 0x0000 to 0x00000000 RAM Enable 6: Enable refresh Northbridge following SDRAM init: PCI: 00:00.00 00: 86 80 90 71 06 00 10 02 01 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 ad 15 76 19 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 08 80 00 ff 00 00 00 00 01 30 33 33 33 33 00 00 60: 40 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 70: 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 Copying LinuxBIOS to RAM. Jumping to LinuxBIOS. LinuxBIOS-2.0.0.0Fallback Tue Apr 24 12:30:11 BST 2007 booting... clocks_per_usec: 19933 Enumerating buses... Initializing VMWare keyboard Finding PCI configuration type. PCI: Using configuration type 1 PCI_DOMAIN: 0000 enabled PCI: pci_scan_bus for bus 00 PCI: 00:00.0 [8086/7190] enabled PCI: 00:01.0 [8086/7191] enabled PCI: 00:07.0 [8086/7110] enabled PCI: 00:07.1 [8086/7111] enabled PCI: 00:07.3 [8086/7113] enabled PCI: 00:0f.0 [15ad/0405] enabled PCI: 00:10.0 [1000/0030] disabled PCI: 00:11.0 [1022/2000] enabled PCI: pci_scan_bus for bus 01 PCI: pci_scan_bus returning with max=001 PCI: pci_scan_bus returning with max=001 done Allocating resources... Reading resources... PCI: 00:01.0 1c <- [0x000000f000 - 0x000000efff] bus 01 io PCI: 00:01.0 24 <- [0x00fff00000 - 0x00ffefffff] bus 01 prefmem PCI: 00:01.0 20 <- [0x00fff00000 - 0x00ffefffff] bus 01 mem Done reading resources. Allocating VGA resource PCI: 00:0f.0 Setting PCI_BRIDGE_CTL_VGA for bridge PCI_DOMAIN: 0000 Setting PCI_BRIDGE_CTL_VGA for bridge Root Device Setting resources... I would like to set RAM size to 1024MB PCI: 00:07.1 20 <- [0x0000001080 - 0x000000108f] io PCI: 00:0f.0 10 <- [0x0000001090 - 0x000000109f] io PCI: 00:0f.0 14 <- [0x00f0000000 - 0x00f7ffffff] mem PCI: 00:0f.0 18 <- [0x00f8000000 - 0x00f87fffff] mem PCI: 00:0f.0 30 <- [0x00f8810000 - 0x00f8817fff] romem PCI: 00:11.0 10 <- [0x0000001000 - 0x000000107f] io PCI: 00:11.0 30 <- [0x00f8800000 - 0x00f880ffff] romem Done setting resources. Done allocating resources. Enabling resources... PCI: 00:00.0 cmd <- 146 PCI: 00:01.0 bridge ctrl <- 0083 PCI: 00:01.0 cmd <- 140 PCI: 00:07.0 subsystem <- 00/00 PCI: 00:07.0 cmd <- 147 PCI: 00:07.1 cmd <- 141 PCI: 00:07.3 cmd <- 141 PCI: 00:0f.0 cmd <- 143 PCI: 00:11.0 cmd <- 143 done. Initializing devices... Root Device init PCI: 00:00.0 init PCI: 00:07.0 init PCI: 00:07.1 init Enabling primary IDE interface PCI: 00:07.3 init PCI: 00:0f.0 init rom address for PCI: 00:0f.0 = f8810000 copying VGA ROM Image from 0xf8810000 to 0xc0000, 0x8000 bytes entering emulator halt_sys: file /root/LinuxBIOSv2/src/devices/emulator/x86emu/ops.c, line 4387 PCI: 00:11.0 init rom address for PCI: 00:11.0 = f8800000 Class Code mismatch ROM 00000003, dev 00020000 copying non-VGA ROM Image from 0xf8800000 to 0xd0000, 0x8800 bytes entering emulator halt_sys: file /root/LinuxBIOSv2/src/devices/emulator/x86emu/ops.c, line 4387 Devices initialized Moving GDT to 0x500...ok Adjust low_table_end from 0x00000530 to 0x00001000 Adjust rom_table_end from 0x000f0000 to 0x000f0000 Wrote linuxbios table at: 00000530 - 000006d4 checksum 4765
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.3
rom_stream: 0xfffd0000 - 0xfffeffff Found ELF candidate at offset 0 header_offset is 0 Try to load at offset 0x0 New segment addr 0x100000 size 0x41da0 offset 0xc0 filesize 0x17da8 (cleaned up) New segment addr 0x100000 size 0x41da0 offset 0xc0 filesize 0x17da8 New segment addr 0x141da0 size 0x48 offset 0x17e80 filesize 0x48 (cleaned up) New segment addr 0x141da0 size 0x48 offset 0x17e80 filesize 0x48 Dropping non PT_LOAD segment Dropping non PT_LOAD segment Loading Segment: addr: 0x0000000000100000 memsz: 0x0000000000041da0 filesz: 0x0000000000017da8 Clearing Segment: addr: 0x0000000000117da8 memsz: 0x0000000000029ff8 Loading Segment: addr: 0x0000000000141da0 memsz: 0x0000000000000048 filesz: 0x0000000000000048 Jumping to elf boot code at 0x111314 FILO version 0.5 (root@devilenc-linux.first4internet.co.uk) Tue Apr 24 12:22:22 BST 2007 collect_sys_info: boot eax = 0xe1fb007 collect_sys_info: boot ebx = 0x3fff59e0 collect_sys_info: boot arg = 0x3fff59e0 malloc_diag: alloc: 0 bytes (0 blocks), free: 16376 bytes (1 blocks) malloc_diag: alloc: 24 bytes (1 blocks), free: 16352 bytes (1 blocks) collect_elfboot_info: Bootloader: elfboot collect_elfboot_info: Version: 1.3 malloc_diag: alloc: 40 bytes (2 blocks), free: 16336 bytes (1 blocks) collect_linuxbios_info: Searching for LinuxBIOS tables... find_lb_table: Found canidate at: 00000530 find_lb_table: header checksum o.k. find_lb_table: table checksum o.k. find_lb_table: record count o.k. collect_linuxbios_info: Found LinuxBIOS table at: 00000530 convert_memmap: 0x00000000000000 0x00000000001000 16 convert_memmap: 0x00000000001000 0x0000000009f000 1 convert_memmap: 0x000000000c0000 0x00000000030000 1 convert_memmap: 0x000000000f0000 0x00000000010000 16 convert_memmap: 0x00000000100000 0x0000003ff00000 1 collect_sys_info: 0000000000001000-00000000000a0000 collect_sys_info: 00000000000c0000-00000000000f0000 collect_sys_info: 0000000000100000-0000000040000000 collect_sys_info: RAM 1024 MB relocate: Current location: 0x100000-0x141de7 relocate: Relocating to 0x3ffbe210-0x3ffffff7... ok setup_timers: CPU 2414 MHz pci_init: Scanning PCI: found 8 devices malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks) pci_init: 00:00.0 8086:7190 0600 00 pci_init: 00:01.0 8086:7191 0604 00 pci_init: 00:07.0 8086:7110 0601 00 pci_init: 00:07.1 8086:7111 0101 8a pci_init: 00:07.3 8086:7113 0680 00 pci_init: 00:0f.0 15ad:0405 0300 00 pci_init: 00:10.0 1000:0030 0100 00 pci_init: 00:11.0 1022:2000 0200 00 menu: hda1:/boot/grub/menu.lst malloc_diag: alloc: 160 bytes (4 blocks), free: 16216 bytes (1 blocks) file_open: dev=hda1, path=/boot/grub/menu.lst find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb IDE time out Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
* Joe Pub joepubber@googlemail.com [070424 18:45]:
Hi All,
I am getting ever so closer to booting VMWare with LinuxBIOS. I can boot FILO with VGA within VMWare now but I have a final hurdle. I am getting IDE problems within FILO when it's trying to read sector 0 of the boot drive. I get a 'read sector failed' error so because of this it just jumps straight to the GRUB menu.
Anyone have any ideas what the problem might be? Below is a copy of the output from LinuxBIOS from start to end.
Thanks guys.
FILO version 0.5 (root@devilenc-linux.first4internet.co.uk) Tue Apr 24 12:22:22 BST 2007
[..]
setup_timers: CPU 2414 MHz
.. is this the native clock of your CPU? .. [..]
find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4
[..]
ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb IDE time out Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
the IDE driver in FILO is not very good, and emulators such as VMware are usually not very accurate. So there's some timing problem here.
Can you get Peter Stuge's Patch posted under "[LinuxBIOS] filo ide speedup patch!" a couple of days ago and see if it helps?
Yea, the CPU speed reported within the boot log is my native CPU speed. I have applied the patch at no avail, I get the following now, but still have the timeout issue.
find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb ide_readmany: sector 0 to 0011d760 IDE time out Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
On Tue, Apr 24, 2007 at 07:47:44PM +0100, Joe Pub wrote:
I have applied the patch at no avail, I get the following now, but still have the timeout issue.
Hm.
ide_readmany: sector 0 to 0011d760 IDE time out
Please apply the attached patch to a clean FILO tree and test again, it provides more precise debugging output for timeouts.
If it happens to work then great, but I doubt it. :) If it doesn't work you could try setting IDE_DISK_POLL_DELAY=1 in Config to see if that makes a difference. But I definately want to fix FILO so that it isn't needed.
Thanks!
//Peter
Hi Peter,
I have applied the patch, and also enabled the IDE polling option. Timeout still occurs. Log included below.
One thing that I have changed which I don't think will affect things (might be wrong here), but my version of GCC/as doesn't support the option -Wno-pointer-sign so I removed it.
log ----
menu: hda1:/boot/grub/menu.lst malloc_diag: alloc: 160 bytes (4 blocks), free: 16216 bytes (1 blocks) file_open: dev=hda1, path=/boot/grub/menu.lst find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb ide_readmany: sector 0 to 0011d7c0 IDE time out waiting for not_bsy Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
On 24/04/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
On Tue, Apr 24, 2007 at 07:47:44PM +0100, Joe Pub wrote:
I have applied the patch at no avail, I get the following now, but still have the timeout issue.
Hm.
ide_readmany: sector 0 to 0011d760 IDE time out
Please apply the attached patch to a clean FILO tree and test again, it provides more precise debugging output for timeouts.
If it happens to work then great, but I doubt it. :) If it doesn't work you could try setting IDE_DISK_POLL_DELAY=1 in Config to see if that makes a difference. But I definately want to fix FILO so that it isn't needed.
Thanks!
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
Hi Joe,
On Wed, Apr 25, 2007 at 07:26:25AM +0100, Joe Pub wrote:
I have applied the patch, and also enabled the IDE polling option. Timeout still occurs. Log included below.
:(
One thing that I have changed which I don't think will affect things (might be wrong here), but my version of GCC/as doesn't support the option -Wno-pointer-sign so I removed it.
Yes, that's ok.
ide_readmany: sector 0 to 0011d7c0 IDE time out waiting for not_bsy
This should be a 32 second timeout. Is it? (32s delay before the time out error) If not, the problem is with timing.
Attached is a new patch with a bit more detailed debugging output, sorry for the hassle, I should already have had this in place. :\
I've also made some small changes to the timer code, not sure if it should matter though.. Try it out.
//Peter
Hi Peter,
Yea, it seems to wait for that length of time before the error appears. Here is the log output of the latest patch.
menu: hda1:/boot/filo/menu.lst malloc_diag: alloc: 160 bytes (4 blocks), free: 16216 bytes (1 blocks) file_open: dev=hda1, path=/boot/filo/menu.lst find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb ide_readmany: sector 0 to 0x0011d8e0 IDE timeout after 32000 ms while waiting for not_bsy() pio_data_in: Device not ready before sending command Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
On 25/04/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
Hi Joe,
On Wed, Apr 25, 2007 at 07:26:25AM +0100, Joe Pub wrote:
I have applied the patch, and also enabled the IDE polling option. Timeout still occurs. Log included below.
:(
One thing that I have changed which I don't think will affect things (might be wrong here), but my version of GCC/as doesn't support the option -Wno-pointer-sign so I removed it.
Yes, that's ok.
ide_readmany: sector 0 to 0011d7c0 IDE time out waiting for not_bsy
This should be a 32 second timeout. Is it? (32s delay before the time out error) If not, the problem is with timing.
Attached is a new patch with a bit more detailed debugging output, sorry for the hassle, I should already have had this in place. :\
I've also made some small changes to the timer code, not sure if it should matter though.. Try it out.
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
On Thu, 26 Apr 2007 07:39:21 +0100 "Joe Pub" joepubber@googlemail.com wrote:
Peter, Joe. Could it be VMware's misconfiguration?
I would done the following: use etherboot payload, then try to mount /dev/hda1 partition. Or rather test - dd if=/dev/hda bs=1k count=1 of=/dev/null If there's an error in the latter case - obviously VMware to blame.
Hi Peter,
Yea, it seems to wait for that length of time before the error appears. Here is the log output of the latest patch.
menu: hda1:/boot/filo/menu.lst malloc_diag: alloc: 160 bytes (4 blocks), free: 16216 bytes (1 blocks) file_open: dev=hda1, path=/boot/filo/menu.lst find_ide_controller: found PCI IDE controller 8086:7111 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=2097152 init_drive: Init device params... ok hda: LBA 1073MB: VMware Virtual IDE Hard Drive init_drive: Testing for hdb init_drive: Testing for hdb ide_readmany: sector 0 to 0x0011d8e0 IDE timeout after 32000 ms while waiting for not_bsy() pio_data_in: Device not ready before sending command Disk read error dev=1 drive=0 sector=0 devread: read sector failed open_pc_partition: device read failed devopen: can't open partition 1 malloc_diag: alloc: 144 bytes (3 blocks), free: 16232 bytes (1 blocks)
On 25/04/07, Peter Stuge stuge-linuxbios@cdy.org wrote:
Hi Joe,
On Wed, Apr 25, 2007 at 07:26:25AM +0100, Joe Pub wrote:
I have applied the patch, and also enabled the IDE polling option. Timeout still occurs. Log included below.
:(
One thing that I have changed which I don't think will affect things (might be wrong here), but my version of GCC/as doesn't support the option -Wno-pointer-sign so I removed it.
Yes, that's ok.
ide_readmany: sector 0 to 0011d7c0 IDE time out waiting for not_bsy
This should be a 32 second timeout. Is it? (32s delay before the time out error) If not, the problem is with timing.
Attached is a new patch with a bit more detailed debugging output, sorry for the hassle, I should already have had this in place. :\
I've also made some small changes to the timer code, not sure if it should matter though.. Try it out.
//Peter
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios
-- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios