Hi!
This patch series implement OF memory manager.
I used arch/ppc/qemu/ofmem.c as a starting point, future plans in ofmem area would be to migrate common parts from working implementations (ppc and sparc64) into shared module.
Since ofmem declarations are to be used by different architectures it appears that using ucell type in ofmem.h is appropriate. This required changes to ppc/qemu code. Unfortunately mol, briq and pearpc configurations does not build in my setup so I did not touched those parts, and this change may be incomplete.
It seems useful to introduce CONFIG_OFMEM_OPTION to conditionally trace ofmem operations, so this is implemented as well. Also I introduce FMT_cell and other macros to help formatting log messages easily.
Client interface handler now uses ofmem implementation instead of walking hardware translation tables. Since setup code in entry.S does install it's own translations ofmem initialization routine simply copies entries from hardware. Properties "available" and "translations" are then populated as needed.
This implementation passes boot test with no visible changes on screen for HelenOS-0.4.0-sparc64.iso
Linux boot does not improve with this patch due to conflicts with memory mappings in low memory region. Also there is an issue with lazy conditional codes evaluation by qemu. If disrupting trap is taken before conditional branch is executed then upon return from trap conditional codes are not evaluated correctly. Visible effect is that with this patch series silo is no longer gets into second stage, stopping at SIL output. Patch for this issue is already posted to qemu-devel mailing list.
Signed-off-by: igor.v.kovalenko@gmail.com