Hello all,
just wanted to report that I have gotten my EPIA-M10000 to boot LinuxBIOS 2184, then FILO 0.4.2, then Ubuntu with kernel 2.6.12 into X without problems. This time round (for learning purposes) I extracted the VGA BIOS from the BIOS upgrade file, and not from a running EPIA. (Still note that there is an error in the EPIA HOWTO about how to extract the VGA BIOS from memory. -- See my messages of the past few days for context.)
For completeness, here is a small diff, plus an adapted Makefile that made this work.
Thanks for all the work you guys have put into it.
Next up is inclusion of the ACPI table.
Regards,
Leon.
--- Index: src/mainboard/via/epia-m/mainboard.c =================================================================== --- src/mainboard/via/epia-m/mainboard.c (revision 2184) +++ src/mainboard/via/epia-m/mainboard.c (working copy) @@ -30,7 +30,7 @@ device_t dev;
printk_info("write_protect_vgabios\n"); - dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); + dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0); if(dev) pci_write_config8(dev, 0x61, 0xaa); } Index: targets/via/epia-m/Config.lb =================================================================== --- targets/via/epia-m/Config.lb (revision 2184) +++ targets/via/epia-m/Config.lb (working copy) @@ -55,7 +55,7 @@ # payload /usr/share/etherboot/5.1.9pre2-lnxi-lb/tg3--ide_disk.zelf # payload ../../../../tg3--ide_disk.zelf # payload ../../../../../lnxieepro100.ebi - payload /filo.elf + payload /home/leon/sandbox/linuxbios-2184/filo.elf end
buildrom ./linuxbios.rom ROM_SIZE "fallback" Index: targets/via/epia-m/Config.vga.filo =================================================================== --- targets/via/epia-m/Config.vga.filo (revision 2184) +++ targets/via/epia-m/Config.vga.filo (working copy) @@ -38,20 +38,14 @@ option ROM_SECTION_OFFSET=0x10000 option ROM_SECTION_SIZE=0x18000 option LINUXBIOS_EXTRA_VERSION=".0Normal" -# payload /usr/share/etherboot/5.1.9pre2-lnxi-lb/tg3--ide_disk.zelf -# payload ../../../../tg3--ide_disk.zelf -# payload ../../../../../lnxieepro100.ebi - payload /filo.elf + payload /home/leon/sandbox/linuxbios-2184/filo.elf end
romimage "fallback" option USE_FALLBACK_IMAGE=1 option ROM_IMAGE_SIZE=0xc000 option LINUXBIOS_EXTRA_VERSION=".0Fallback" -# payload /usr/share/etherboot/5.1.9pre2-lnxi-lb/tg3--ide_disk.zelf -# payload ../../../../tg3--ide_disk.zelf -# payload ../../../../../lnxieepro100.ebi - payload /filo.elf + payload /home/leon/sandbox/linuxbios-2184/filo.elf end
buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback" ---
--- # File: via/epia-m/epia-m/Makefile is autogenerated
all: ./linuxbios.rom
include Makefile.settings
fallback/linuxbios.rom: if (cd fallback; \ make linuxbios.rom)\ then true; else exit 1; fi;
clean: fallback-clean
fallback-clean: (cd fallback; make clean)
./linuxbios.rom: fallback/linuxbios.rom cat /home/leon/sandbox/linuxbios-2184/vgabios.bin fallback/linuxbios.rom > ./linuxbios.rom
.PHONY: all clean fallback-clean fallback/linuxbios.rom
Makefile: /home/leon/sandbox/linuxbios-2184/targets/via/epia-m/epia-m/config.py /home/leon/sandbox/linuxbios-2184/targets/via/epia-m/Config.lb (cd /home/leon/sandbox/linuxbios-2184/targets ; via/epia-m/epia-m/config.py via/epia-m/Config.lb /home/leon/sandbox/linuxbios-2184) ---
This is intriguing.
- dev = dev_find_device(PCI_VENDOR_ID _VIA, 0x3123, 0); + dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
I think what this means is that we need a new mainboard directory. can you give me more info about the exact mainboard.
Another option, is to do something like tihs: dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if (! dev) dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
or some such. But if you could tell us the exact vendor etc. that would be good to know.
thanks
ron
* ron minnich rminnich@gmail.com [060225 06:44]:
This is intriguing.
dev = dev_find_device(PCI_VENDOR_ID
_VIA, 0x3123, 0);
dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
I think what this means is that we need a new mainboard directory. can you give me more info about the exact mainboard.
Another option, is to do something like tihs: dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if (! dev) dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
or some such. But if you could tell us the exact vendor etc. that would be good to know.
Or, to look for a VGA class device from VIA.
Stefan
Hello Ron,
first my *unchanged* 2177 already worked in the console, but did make it into X; it reported:
VIA(0): Bad V-BIOS checksum.
Chris Suehs then responded to me off-list (Thanks Chris!): --- I have had the same problem for the via X driver. There is a failure in the LinuxBios Code for newer Epia M
The vga bios section is not write protected, because the protection failt for a false Device ID
You should try to change the code to the right ID in mainboard.c for the Epia to 3122 in the write_protect_vgabios function
regards chris ---
So I tried again with 2184 and this single change and it worked; I get into my X server without a hiss now.
ron minnich wrote:
This is intriguing.
dev = dev_find_device(PCI_VENDOR_ID
_VIA, 0x3123, 0);
dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
I think what this means is that we need a new mainboard directory. can you give me more info about the exact mainboard.
Another option, is to do something like tihs: dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if (! dev) dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
or some such. But if you could tell us the exact vendor etc. that would be good to know.
Ron, what exactly do you want to know further than this?
VIA EPIA-M10000, PCB revision.B
I could output lspci -vv or so if that helps?
Regards,
Leon Woestenberg.
Ron,
Another option, is to do something like tihs: dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if (! dev) dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
or some such. But if you could tell us the exact vendor etc. that would be good to know.
FYI:
leon@nehemiah:~$ sudo lspci -v -s 01:00.0 0000:01:00.0 VGA compatible controller: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03) (prog-if 00 [VGA]) Subsystem: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics Flags: bus master, medium devsel, latency 32, IRQ 5 Memory at d8000000 (32-bit, prefetchable) [size=64M] Memory at dc000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [60] Power Management version 2 Capabilities: [70] AGP version 2.0
leon@nehemiah:~$ lspci -n -s 01:00.0 0000:01:00.0 0300: 1106:3122 (rev 03)
I realize we should do a pci class, but this fix ought to work.
Leon, can you test?
[rminnich@q epia-m]$ svn diff mainboard.c Index: mainboard.c =================================================================== --- mainboard.c (revision 2188) +++ mainboard.c (working copy) @@ -30,6 +30,11 @@ device_t dev;
printk_info("write_protect_vgabios\n"); + /* there are two possible devices. Just do both. */ + dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0); + if(dev) + pci_write_config8(dev, 0x61, 0xaa); + dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if(dev) pci_write_config8(dev, 0x61, 0xaa);
ron
Hello Ronald,
Ronald G Minnich wrote:
I realize we should do a pci class, but this fix ought to work.
Leon, can you test?
Yes, the fix works.
Regards,
Leon.
[rminnich@q epia-m]$ svn diff mainboard.c Index: mainboard.c =================================================================== --- mainboard.c (revision 2188) +++ mainboard.c (working copy) @@ -30,6 +30,11 @@ device_t dev;
printk_info("write_protect_vgabios\n");
/* there are two possible devices. Just do both. */
dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);
if(dev)
pci_write_config8(dev, 0x61, 0xaa);
dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0); if(dev) pci_write_config8(dev, 0x61, 0xaa);
ron
one last request: can you give us exact details of who you ordered your system from, part #s, etc? I want to make it very easy for people to get this working.
thanks again
ron