This is cleaner than the patches I sent in March, although we want to re-use parts of the mach-default code, not replace it entirely. Hence my interest in the multi-subarch generic kernel. I'd be glad to look into it.In my current Xen patch, I split the mach-default/setup.c into setup.c and setup-memory.c; Xen uses setup.c as-is, and then provides its own setup-xen.c. That solves my immediate problem, but I don't know if it generalizes enough; certainly factoring default/setup.c into a cluster of reusable setup-*.c pieces is a pretty lightweight way of reusing those pieces.