ok I after many attempts I think I am making some progress, but not to sure why at the moment. I will need to go back over the changes I have made and see if it is any one thing that has made it work.
The memory check passes up until A0000. I am assuming as this is resrvered for the VGA controller it is to be expected.
I have compared northbridge register dumps of both my epia boards, rev A and D but can see no difference, so I don't think there have not been any changes to the northbridge.
One difference between original bios and linuxbios is register 0x67. According to the datasheet it is reserved. However booting with the original bios this register contains 0xc4 and 0x00 with linuxbios. I am currently setting it to 0xc4 but not sure yet if that is why I have some success. I have made a few changes, while comparing the V2 to V1.
Anyway I am now getting as far as running filo but have another problem. This is what I get
Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-88) Type: WB DONE fixed MTRRs call enable_fixed_mtrr() Setting variable MTRR 0, base: 0MB, range: 256MB, type WB ADDRESS_MASK_HIGH=0xf
Unexpected Exception: 13 @ 10:00008891 - Halting Code: 0 eflags: 00010006 eax: 00000300 ebx: f0000800 ecx: 0000da00 edx: 0000000a edi: 0000da00 esi: 0000000f ebp: 00017ee0 esp: 00017ebc
Perhaps someone could explain this to me.
By booting from the original bios and resetting mid-boot and switching to linuxbios filo has got to the stage of looking for my kernel image although it couldn't find it (maybe bad typing on my part).
Unexpected Exception: 13 @ 10:00008891 - Halting
13 is a GPF. I suspect your ram is still not quite there yet.
Pull down memtest86, build it and use that as a payload. ('memtest' is the elf file ) That way you can really test if your ram is solid.
Note you will need to enable memtest's serial stuff in config.h. And you must have a terminal program that understands ANSI. minicom works.
Your memory is still wrong. 0x67 ... oh boy. I am working from memory here. At some point the chipset added two more DBR registers -- I wonder if this is it.
Sorry but it's been 6 years ... I will try to find my books and see what that might be.
thanks
ron
ron minnich wrote:
Your memory is still wrong. 0x67 ... oh boy. I am working from memory here. At some point the chipset added two more DBR registers -- I wonder if this is it.
Sorry but it's been 6 years ... I will try to find my books and see what that might be.
thanks
ron
I think maybe reg 0x67 is misleading. I have a feeling that the problem may not be with the configuration of the northbridge, but more to do with timing. Currently I am setting reg 0x67 at the end of sdram_set_registers(). If it is there the boot process gets further. If I take it out I get errors with something else, can't remember what exactly. I need to test if the extra delay is meaningful all be it very short, or if writing to the register is actually doing something. I originally tried setting reg 0x67 further down inside sdram_enable() but it did not have any effect there. Of course that could just mean it needs to be set earlier.
As far as I can see reg 0x67 has never been set in any of the version of Linuxbios I have looked at, and as it has worked in the past I think it is probably not important. Just because the original bios is setting it, doesn't mean that it is right either.
Who wrote the original vt8601 code ? The vt8601a datasheet makes mention of "VT8601A BIOS porting guide" but I can't find it anywhere. Perhaps I will have to email VIA and see if they would be good enough to send me a copy.
* Ben Hewson ben@hewson-venieri.com [060909 12:16]:
I will need to go back over the changes I have made and see if it is any one thing that has made it work.
Take into regard that you might not find the reason why it works in the datasheets.
The memory check passes up until A0000. I am assuming as this is resrvered for the VGA controller it is to be expected.
The failure in the VGA areas are pretty normal. I wonder what the best way is to fix these. Add the area as reserved to the e820 table? I saw the errors in that area on _every_ board so far so it supposedly needs fixing.
Unexpected Exception: 13 @ 10:00008891 - Halting Code: 0 eflags: 00010006 eax: 00000300 ebx: f0000800 ecx: 0000da00 edx: 0000000a edi: 0000da00 esi: 0000000f ebp: 00017ee0 esp: 00017ebc
Perhaps someone could explain this to me.
do you have vga emulation enabled?
Stefan