[LinuxBIOS] Epia-M patch

Nick Barker nick.barker9 at btinternet.com
Fri Oct 28 16:51:03 CEST 2005

I attach a patch file for the Via Epia-m target which makes this target now
compile and work.

I have tried to keep all changes local to the directories relevent to this
target i.e.
- mainboard/via/epia-m
- northbridge/via/vt8623
- southbridge/via/vt8623
- southbridge/ricoh
- superio/via/vt1211
- targets/via/epia-m

However there are 4 files which are modified elsewhere in the sources:
- devices/cardbus_device.c - which needed another io resource probing -
comments suggest no-one else is using this anyway
- include/device/cardbus.h - to include another function definition
- cpu/via/model_centaur/model_centaur.c - to add more processor id codes and
to get it to set up mtrr's
- arch/i386/lib/cpu.c - to conditionally test for SMP & IOAPIC systems -
this board/processor has no APIC's and would otherwise fail on the call to

In addition to making it work again, I have added the following
- Dynamic memory sizing - which has been tested so far with:
- - 256Mb 1 bank (i.e. single sided)
- - 256Mb 2 bank (i.e. double sided)
- - 512Mb 2 bank (i.e. double sided)

- A minimalist ACPI dsdt table free of any intellectual property and can
thus be distributed with sources.

- Compact Flash boot working.

- I have also written an EPIA-M howto which I have attached seperately.
Maybe that can get onto the web site.

Things still not resolved:
I spent a great deal of time trying to get the vga to initialise through the
emulator, but I have failed. I feel that I now know the workings of the
emulator inside out, but it would take a good deal more effort to resolve
the issues.

As an interim solution, therefore, I have re-implemented the old real mode
vga-bios.c which works a treat on this board. To keep the main source tree
clean of this, it is implemented locally within the mainboard/via/epia-m
directory, and in a way which does not require any changes to the main
source tree (e.g. it implements its own temporary gdt's and idt's). Maybe
one day I shall return to this problem.

Whilst attempting to get the emulator to work, I had to start using a
fallback only image for sizing reasons, and this is how the patch is
configured. Without both real-mode vga and the emulator it may be possible
to go back to a dual image.

My original epia-m port set up 2 mtrr's over the vga framebuffer and agp
bridge as per the Award bios, and this makes a noticeable difference in
performance. Without changing the current mtrr stuff I see no way of making
a request for these to be set up, and so this version doesn't attempt to. It
would be nice to see this sort of functionality return into the core if
anyone is interested - perhaps as another type of memory resource different
to main memory and non contiguous from main memory. The type of these mtrr's
is write combining rather than write back as used for main memory.

Nick Barker

-------------- next part --------------
A non-text attachment was scrubbed...
Name: epia-m.patch.gz
Type: application/x-gzip
Size: 28946 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20051028/2d3ed7d9/attachment.gz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: EPIA-M-howto
Type: application/octet-stream
Size: 22447 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20051028/2d3ed7d9/attachment.obj>

More information about the coreboot mailing list