Hi list!
I've been trying to get LinuxBIOS to boot on my EPIA-V motherboard (VIA 8601A NB, VT8231 SB), and at first I followed the bundled HOWTO for the EPIA-M, before I discovered that EPIA-V was an entirely different creatures (it uses SDRAM, whereas I believe that the EPIA-M uses DDRAM), and the EPIA-M BIOS didn't boot, of course.
However, I've tried a number of different variations of the via/epia configuration now, and it doesn't seem to want to boot whatever I do. The new flash chip I used is a 512 KiB chip, as opposed to the original 256 KiB chip (which isn't a problem, though, because if I burn the original BIOS to it with a 256 KiB block from /dev/zero prepended to it, it boots just fine), so I tried the 512kbflash config file as well, but to no avail.
I'm using FILO as the payload.
I'm beginning to run out of options, and I don't know how to diagnose LinuxBIOS. The monitor doesn't turn on, so I'm guessing it might be something to do with the VGA BIOS. In the EPIA-M HOWTO it said to prepend the LinuxBIOS image with the original 64 KiB VGA BIOS image -- is that the same for the EPIA-V (and in that case, how would I do to generate a LinuxBIOS image that is suitable for prepending with the VGA BIOS)?
Thank you for your time!
Fredrik Tolf
I've been trying to get LinuxBIOS to boot on my EPIA-V motherboard (VIA 8601A NB, VT8231 SB), and at first I followed the bundled HOWTO for the
The 8601A is broken and we don't know why. It won't setup the RAM correctly anymore.
Sorry.. We really need to put this on the wiki. Use a serial console and enable the RAM test. you will see the failures.
If you feel up to the task of debugging it we will try to help though.
On Wed, 2006-08-23 at 19:02 -0500, Richard Smith wrote:
I've been trying to get LinuxBIOS to boot on my EPIA-V motherboard (VIA 8601A NB, VT8231 SB), and at first I followed the bundled HOWTO for the
The 8601A is broken and we don't know why. It won't setup the RAM correctly anymore.
Does "anymore" mean that it was working at some point?
Sorry.. We really need to put this on the wiki. Use a serial console and enable the RAM test. you will see the failures.
If you feel up to the task of debugging it we will try to help though.
That would be great. I'd just like to ask if anyone has any docs on it or something?
Another question, if it's OK -- I don't really know how all this VGA stuff works. When is the monitor supposed to be turned on, and what code is it that takes care of that stuff?
Fredrik Tolf
Does "anymore" mean that it was working at some point?
Yes. But some commit somewhere broke it. But nobody has yet to find the breaking point.
That would be great. I'd just like to ask if anyone has any docs on it or something?
Yeah... I've got some somewhere... Let me look. Somebody send me a copy a while ago.
Another question, if it's OK
Perfectly fine.
-- I don't really know how all this VGA stuff works. When is the monitor supposed to be turned on, and what code is it that takes care of that stuff?
Well most of the time it dosen't. :) VGA is always the last thing because it tricky to get going. RAM has to happen first. Use the serial link. Are you getting any serial output?
On Wed, 2006-08-23 at 20:04 -0500, Richard Smith wrote:
Does "anymore" mean that it was working at some point?
Yes. But some commit somewhere broke it. But nobody has yet to find the breaking point.
That's good news, I guess. :) Would you have any idea whatsoever of any time it did work? If so, I could much more easily look for when it broke.
That would be great. I'd just like to ask if anyone has any docs on it or something?
Yeah... I've got some somewhere... Let me look. Somebody send me a copy a while ago.
It would be great if I could get a copy!
-- I don't really know how all this VGA stuff works. When is the monitor supposed to be turned on, and what code is it that takes care of that stuff?
Well most of the time it dosen't. :) VGA is always the last thing because it tricky to get going. RAM has to happen first.
I was actually under the impression that the video card might turn itself on without CPU intervention. :)
Use the serial link. Are you getting any serial output?
No, not yet. I've only been trying for a couple of hours yet and have been overly optimistic. Therefore I haven't yet built myself a null modem cable. I'll get my hands on a couple of D-Subs first thing I do tomorrow. It's getting late right over here now.
Thank you very much for all your help so far!
Fredrik Tolf
On Wed, 2006-08-23 at 20:04 -0500, Richard Smith wrote:
Are you getting any serial output?
OK, I actually got myself a null modem cable now, but I don't really understand the output from LinuxBIOS, or if it's even supposed to be what it is... here is how it looks if I pipe it through od -t c:
0000000 340 \0 340 \0 \0 340 340 340 340 340 340 340 340 340 340 340 0000020 340 \0 340 340 \0 \0 \0 340 340 340 340 340 340 340 340 340 0000040 340 \0 340 \0 \0 340 340 340 340 340 340 340 340 340 340 340 0000060 340 \0 340 340 \0 \0 \0 340 340 340 340 340 340 340 340 340 0000100 340 340 \0 \0 340 \0 340 340 \0 \0 340 \0 \0 \0 340 340 0000120 \0 340 340 \0 340 340 340 340 340 340 \0 340 \0 \0 340 340 0000140 \0 \0 340 340 \0 340 340 \0 340 340 340 340 340 \0 340 \0 0000160 \0 \0 340 \0 340 \0 \0 \0 340 \0 \0 \0 \0 340 \0 \0 0000200 \0 \0 \0 340 340 \0 340 \0 340 340 \0 340 340 \0 \0 340 0000220 340 \0 340 340 \0 340 340 340 340 340 \0 \0 \0 340 340 340 0000240 \0 340 340 340 340 340 340 \0 \0 340 \0 340 340 340 340 340 0000260 340 \0 340 \0 \0 \0 \0 \0 \0 340 \0 \0 \0 \0 \0 340 0000300 \0 \0 \0 340 \0 340 \0 \0 340 \0 \0 \0 340 \0 340 \0 0000320 \0 \0 340 \0 \0 \0 340 \0 340 340 340 \0 340 340 \0 340 0000340 340 \0 340 340 340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 340 0000360 \0 \0 \0 340 \0 340 \0 340 340 340 \0 340 \0 \0 340 \0 0000400 340 340 340 \0 340 340 \0 340 340 340 \0 340 \0 340 \0 \0 0000420 340 \0 \0 340 \0 340 340 \0 \0 340 \0 \0 340 340 \0 340 0000440 340 \0 \0 \0 340 \0 \0 \0 340 \0 \0 \0 \0 340 \0 340 0000460 340 \0 340 340 340 \0 340 340 \0 340 340 \0 \0 340 \0 340 0000500 \0 340 340 340 \0 340 \0 \0 340 \0 340 340 340 \0 340 340 0000520 \0 340 340 340 \0 340 340 340 \0 \0 340 \0
Is this somehow wrong, or am I supposed to use some program to decode it?
Fredrik Tolf
0000360 \0 \0 \0 340 \0 340 \0 340 340 340 \0 340 \0 \0 340 \0 0000400 340 340 340 \0 340 340 \0 340 340 340 \0 340 \0 340 \0 \0 0000420 340 \0 \0 340 \0 340 340 \0 \0 340 \0 \0 340 340 \0 340 0000440 340 \0 \0 \0 340 \0 \0 \0 340 \0 \0 \0 \0 340 \0 340 0000460 340 \0 340 340 340 \0 340 340 \0 340 340 \0 \0 340 \0 340 0000500 \0 340 340 340 \0 340 \0 \0 340 \0 340 340 340 \0 340 340 0000520 \0 340 340 340 \0 340 340 340 \0 \0 340 \0
Is this somehow wrong, or am I supposed to use some program to decode it?
Nope its all ASCII. I think you have a baud rate problem 115200,N,8,1
On Thu, 2006-08-24 at 20:19 -0500, Richard Smith wrote:
0000360 \0 \0 \0 340 \0 340 \0 340 340 340 \0 340 \0 \0 340 \0 0000400 340 340 340 \0 340 340 \0 340 340 340 \0 340 \0 340 \0 \0 0000420 340 \0 \0 340 \0 340 340 \0 \0 340 \0 \0 340 340 \0 340 0000440 340 \0 \0 \0 340 \0 \0 \0 340 \0 \0 \0 \0 340 \0 340 0000460 340 \0 340 340 340 \0 340 340 \0 340 340 \0 \0 340 \0 340 0000500 \0 340 340 340 \0 340 \0 \0 340 \0 340 340 340 \0 340 340 0000520 \0 340 340 340 \0 340 340 340 \0 \0 340 \0
Is this somehow wrong, or am I supposed to use some program to decode it?
Nope its all ASCII. I think you have a baud rate problem 115200,N,8,1
It was indeed set to 115200 N81, but I just experimented a bit and found that it worked on 19200 baud (with some garbage at the top, though). :)
So I just recompiled and reburned LinuxBIOS with maximum logging, and I got this:
M-^_M-OM-&M-oM-mM-yM-?M-^?M-^M-}>M-v}M-^?M-?^?M-^_M-OM-&M-oM-mM-yM-?M-^?M-^M-}>M-v}M-^?M-?^?^M$ ^M$ LinuxBIOS-1.1.8.0Fallback Fri Aug 25 03:51:14 CEST 2006 starting...^M$ 87 is the comm register^M$ SMBus controller enabled^M$ vt8601 init starting^M$ 00000000 is the north$ 1106 0601^M$ 0120d4 is the computed timing$ NOP^M$ PRECHARGE^M$ DUMMY READS^M$ CBR^M$ MRS^M$ NORMAL^M$ set ref. rate^M$ enable multi-page open^M$ Slot 00 is SDRAM 08000000 bytes ^M$ 0100 is the chip size^M$ 000e is the MA type^M$ Slot 01 is empty^M$ Slot 02 is empty^M$ Slot 03 is empty^M$ vt8601 done^M$ Copying LinuxBIOS to ram.^M$ Jumping to LinuxBIOS.^M$
I guess that's a pretty good indication that RAM isn't working, right?
So to get back to debugging this, do you have any idea of a time when the 8601 code was working? Was it while LinuxBIOS existed in Subversion (there was a CVS repo some years ago, wasn't there)?
Fredrik Tolf
On 8/24/06, Fredrik Tolf fredrik@dolda2000.com wrote:
It was indeed set to 115200 N81, but I just experimented a bit and found that it worked on 19200 baud (with some garbage at the top, though). :)
Oh thats right.. There is some freaky divider issue with the EPIA... Need to document that somewhere.
Slot 00 is SDRAM 08000000 bytes ^M$ 0100 is the chip size^M$ 000e is the MA type^M$ Slot 01 is empty^M$ Slot 02 is empty^M$ Slot 03 is empty^M$ vt8601 done^M$ Copying LinuxBIOS to ram.^M$ Jumping to LinuxBIOS.^M$
I guess that's a pretty good indication that RAM isn't working, right?
Yeah. Look in the code and you will find a simple RAM test. It will show lots of bit errors and then total failure.
So to get back to debugging this, do you have any idea of a time when the 8601 code was working?
Sorry no.. You will just have to go through the entire log and pull revs all revs that deal with the 8601. Sorry I don't have any more info. Most of the people who worked on that don't seem to be on the list anymore.
Was it while LinuxBIOS existed in Subversion
(there was a CVS repo some years ago, wasn't there)?
Right but Stefan back ported all the stuff to svn.
Go back to V1 and see what that did.
Here is the sad story. I had to hard-code bits of 8601 setup since if you followed the manual, and did things right, the chip would lock up. the hard codes made certain dram types not work. Somebody got clever and fixed the hardcodes to be dynamic a la spd. From that point on, 8601 has been broken. When did this happen? don't know.
But it did work in v1.
ron
I assume the EPIA-V board is the oldest version ? VIA on their website only mention
EPIA EK , CN, EN, SP, ML, MII, M, but no V
Anyway I have tried to get linuxbios to boot on my EPIA 5000 (vt8601 northbridge) I do not even get any comms from the serial port. Have checked the cable is ok, by booting normally.
I only have 100Mhz memory installed, as it was going spare. Could this be a reason why it does not work ? Anyway have just downloaded the vt8601 datasheet so will have a read through it and the code when I get some time and go through the code. Perhaps I will try and get some 133Mhz ram and try with that also.
On 8/24/06, Fredrik Tolf fredrik@dolda2000.com wrote:
It was indeed set to 115200 N81, but I just experimented a bit and found that it worked on 19200 baud (with some garbage at the top, though). :)
Oh thats right.. There is some freaky divider issue with the EPIA... Need to document that somewhere.
Slot 00 is SDRAM 08000000 bytes ^M$ 0100 is the chip size^M$ 000e is the MA type^M$ Slot 01 is empty^M$ Slot 02 is empty^M$ Slot 03 is empty^M$ vt8601 done^M$ Copying LinuxBIOS to ram.^M$ Jumping to LinuxBIOS.^M$
I guess that's a pretty good indication that RAM isn't working, right?
Yeah. Look in the code and you will find a simple RAM test. It will show lots of bit errors and then total failure.
So to get back to debugging this, do you have any idea of a time when the 8601 code was working?
Sorry no.. You will just have to go through the entire log and pull revs all revs that deal with the 8601. Sorry I don't have any more info. Most of the people who worked on that don't seem to be on the list anymore.
Was it while LinuxBIOS existed in Subversion
(there was a CVS repo some years ago, wasn't there)?
Right but Stefan back ported all the stuff to svn.
I do not even get any comms from the serial port. Have checked the cable is ok, by booting normally.
I only have 100Mhz memory installed, as it was going spare. Could this be a reason why it does not work ?
Com port messages start happening pre-ram init. So No. You should at least some version info build date, and get to the "Jumping to LinuxBIOS..." string.
Something must be different with the Com port on that board.
Richard Smith wrote:
I do not even get any comms from the serial port. Have checked the cable is ok, by booting normally.
I only have 100Mhz memory installed, as it was going spare. Could this be a reason why it does not work ?
Com port messages start happening pre-ram init. So No. You should at least some version info build date, and get to the "Jumping to LinuxBIOS..." string.
Something must be different with the Com port on that board.
sorry didnt hit reply to all.
Ok thanks for the info, I guess I had better recheck the whole build process and make sure I am building what I think I am. Also I need to spend some time on seeing just exactly what linuxbios is doing and the order it does it in. Not really a good thing to just build code and expect it to work. I am not familiar with the BIOS boot process having mainly worked on much simpler embedded systems.
The Com port is ok when booting normally from original bios.
On Sat, 2006-08-26 at 04:48 -0500, Richard Smith wrote:
I do not even get any comms from the serial port. Have checked the cable is ok, by booting normally.
I only have 100Mhz memory installed, as it was going spare. Could this be a reason why it does not work ?
Com port messages start happening pre-ram init. So No. You should at least some version info build date, and get to the "Jumping to LinuxBIOS..." string.
Something must be different with the Com port on that board.
Alternatively, what flash chip are you using? I don't know about your EPIA 5000, but my EPIA V came with a 256 KiB flash chip from the factory, and I bought a 512 KiB one that I'm playing with. That means, however, that when I'm making a 256 KiB LinuxBIOS flash image, I have to make sure to prepend it with 256 KiB of padding, to ensure that it hits the top of the address space.
If that's the problem, you can just do this: dd if=/dev/zero bs=1k count=256 | cat - linuxbios.rom >512kbios flashrom -w 512kbios
Fredrik Tolf
Fredrik Tolf wrote:
On Sat, 2006-08-26 at 04:48 -0500, Richard Smith wrote:
I do not even get any comms from the serial port. Have checked the cable is ok, by booting normally.
I only have 100Mhz memory installed, as it was going spare. Could this be a reason why it does not work ?
Com port messages start happening pre-ram init. So No. You should at least some version info build date, and get to the "Jumping to LinuxBIOS..." string.
Something must be different with the Com port on that board.
Alternatively, what flash chip are you using? I don't know about your EPIA 5000, but my EPIA V came with a 256 KiB flash chip from the factory, and I bought a 512 KiB one that I'm playing with. That means, however, that when I'm making a 256 KiB LinuxBIOS flash image, I have to make sure to prepend it with 256 KiB of padding, to ensure that it hits the top of the address space.
If that's the problem, you can just do this: dd if=/dev/zero bs=1k count=256 | cat - linuxbios.rom >512kbios flashrom -w 512kbios
Fredrik Tolf
I have a bios savour installed which has the original bios in it and I am using the on-board flash for linuxbios. Both are 256k (39SF020A) part. I am assuming, maybe wrongly that EPIA V and the EPIA 5000 are the same board.
On Sat, 2006-08-26 at 13:25 +0100, Ben Hewson wrote:
Fredrik Tolf wrote:
On Sat, 2006-08-26 at 04:48 -0500, Richard Smith wrote:
Something must be different with the Com port on that board.
Alternatively, what flash chip are you using? I don't know about your EPIA 5000, but my EPIA V came with a 256 KiB flash chip from the factory, and I bought a 512 KiB one that I'm playing with. That means, however, that when I'm making a 256 KiB LinuxBIOS flash image, I have to make sure to prepend it with 256 KiB of padding, to ensure that it hits the top of the address space.
I have a bios savour installed which has the original bios in it and I am using the on-board flash for linuxbios. Both are 256k (39SF020A) part.
I see, then that's probably not it. I'm "hotplugging" the BIOS chips by hand.
I am assuming, maybe wrongly that EPIA V and the EPIA 5000 are the same board.
Since you're using SDRAM, I cannot imagine there being any larger differences, but just for reference, my board has a VT8601A northbridge and a VT8231 southbridge. If your board are using the same, then I guess that they are at least functionally equivalent.
Fredrik Tolf