
On 24.02.21 22:55, Reinoud Zandijk wrote:
Dear Heinrich,
On Wed, Feb 24, 2021 at 06:57:08PM +0100, Heinrich Schuchardt wrote:
On 24.02.21 17:44, Reinoud Zandijk wrote:
Fixes IDE issues found on the Malta board under Qemu:
- DMA implied commands were sent to the controller in stead of the PIO
variants. The rest of the code is DMA free and written for PIO operation.
- direct pointer access was used to read and write the registers instead
of the inb/inw/outb/outw functions/macros. Registers don't have to be memory mapped and ATA_CURR_BASE() does not have to return an offset from address zero.
- Endian isues in ide_ident() and reading/writing data in general. Names
were corrupted and sizes misreported.
It is preferable to have each issue fixed in a separate patch.
They are related; 2 and 3 are really one and 1 could in theory be separate but it won't work on its own.
Thanks for the background.
Tested malta_defconfig and maltael_defconfig to work again in Qemu.
What about the other architectures which can use the driver?
As for testing, I compile tested an ARM board, edminiv2, successfully, but don't know how to invoke qemu for it. As for running the tests, my setup is not capable of running the tests since they seem to be for linux only.
Does the automatic testing check if disks are indeed found correctly and checking reading or writing to a disk image?
qemu-x86_64_defconfig and qemu-x86_defconfig have CONFIG_CMD_IDE=y.
Actually without your patch qemu-x86 cannot read the partition table from an IDE device. With your patch it works fine.
This was my QEMU command:
qemu-system-i386 -bios u-boot.rom -nographic sct-i386.img
Tested-by: Heinrich Schuchardt xypron.glpk@gmx.de