Ok got to the stage where Epia-m is booting linux, though with lots of things broken and running only to the serial port (i.e. no vga yet).
I have a couple of issues:
To get the code to run the cpu initialisation sequences I've had to change the epia-m Config.lb from
...
chip cpu/via/model_centaur
...
to
... device apic_cluster 0 on chip cpu/via/model_centaur device apic 0 on end end end
This is so that the code in the northbridge has appropriate device structures to work with. Now this processor does not have a lapic, so this construct seems bizare to me. Is there a more appropriate construct where no lapic is present?
A quick grep shows that there are several other motherboards which use the same style of configuartion in their Config.lb and their northbridge code. Do these need changing as well?
Additionally 'src/arch/i386/lib/cpu.c' needs changing to support the case where no lapic is present:
in function cpu_initialize there needs to be a conditional around some lines as follows:
#if CONFIG_SMP || CONFIG_IOAPIC if (cpu->path.u.apic.apic_id != lapicid()) { printk_err("CPU ..... // return without setting ... } else { #endif
and a similar condition around the closing brace a few lines later
Nick Barker