I had the same problem, and maybe it can help. I wrote my own toy OS
with a PATA / IDE driver back in 2012 using older version of QEMU and
everything worked fine. These days, I tried that on a recent version
(2.5) and it failed with exactly the same behaviour - lots of zeros
being written during a DMA transfer.
After some research, I found that the behaviour that was changed with
1.3 is that the bus master configuration bit (bit 2 of the PCI command
register) is now emulated, and my driver did not set this bit.
Apparently, the BIOS does not set it either, so it was off and the DMA
transfer silently failed and only wrote zeros.
So I added some code to my init routine that sets this bit, and voila -
it worked. I have tried 1.2, 1.3 and 2.5.0 and this works with all of
I do not know the internals of QNX, but I learned that apparently also
Linux did not set this bit in older version, so it might very well be
that QNX does not set it either and this is the issue.
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
QNX 4 doesn't boot on qemu >= 1.3
Status in QEMU:
I am using virtual machine with QNX4 operating system installed on it. I
updated my qemu from version
to newer and QNX4 doesn't start any more. All is ok on version 1.2 but when I
try to use any newer version
(1.3, 1.4, 1.5) QNX4 doesn't boot. I tried on windows and linux ubuntu
hosts - effects are the same.
When virtual machine boots qnx bootloader loads and starts operating system.
In the next step
qnx starts its ide driver, which detects qemu harddisk and cdrom. Problem
starts when operating system
tries mount partition - an error occur and qnx stop booting procedure:
mount -p "No bios signature in partition sector on /dev/hd0"
I have tried install qnx from cdrom but it seems that there is the same
problem. QNX installer boot from
cdrom, detects hard disk and cdrom, but cdrom can't be mounted in the next
step of installation procedure.
To manage notifications about this bug go to: