
Am Montag, den 22.02.2021, 18:05 +0100 schrieb Reinoud Zandijk:
Patch 0001 re-enables FDT inclusion into the u-boot binary to make them boot again. The code might not have adjusted well enough in the past to handle the separate one.
what exactly is the issue? Do you see it just on real hardware?
Booting all Malta variants in Qemu is contained in official U-Boot CI and showed no boot failures until now. Unfortuneately I don't have Malta hardware myself for testing.
Also CONFIG_OF_EMBED is just a debug option and should be avoided for production builds. So if there is a real problem, I would prefer to rather fix that instead of enabling CONFIG_OF_EMBED.
Patch 0002 fixes IDE issues found on the Malta board:
- 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.
With the fixes, malta_defconfig and maltael_defconfig work again in Qemu.
Reinoud Zandijk (2): Re-embed the FDTs for the Malta targets. Fix IDE commands issued, fix endian issues, fix non MMIO
configs/malta64_defconfig | 1 + configs/malta64el_defconfig | 1 + configs/malta_defconfig | 1 + configs/maltael_defconfig | 1 + drivers/block/ide.c | 143 ++++++++++----------------------
include/ata.h | 3 +- 6 files changed, 46 insertions(+), 104 deletions(-)
Signed-off-by: Reinoud Zandijk reinoud@NetBSD.org