<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Richard Smith wrote:
<blockquote
 cite="mid8a0c36780609061003u61604b8co61791929f91cd376@mail.gmail.com"
 type="cite">
  <blockquote type="cite">
    <pre wrap="">Just an idea - you could use QEMU to install an older (virtual) Linux distro
which has the required tools and build everything in QEMU, then copy the
files to you host OS...

    </pre>
  </blockquote>
  <pre wrap=""><!---->
My idea for Alex exactly but I thought I'd put out a larger call.  I
don't currently have the cycles available.  I went a bit overbudget
last night.

So all you folks asking about epia vt8601 support.  Here's your chance.

  </pre>
</blockquote>
I have been going over the vt8601 code, although only the stuff in
raminit.c as I assume that is probably where the problem lies.<br>
I did pull off rev 1179 (not 100% sure) managed to build it ok, but
when I booted it, it was coming up with smbus errors.<br>
Then tries version 1159, this wouldn't build, there were files missing.<br>
<br>
Anyway comparing the raminit.c for these and everything looks the same.
Even pulled out the last rev of V1 and the current C code it an almost
identical match for the assembly code in the V1.<br>
<br>
I have found a slight problem, maybe stack related ( what does
linuxbios do for a stack before ram is initialised ? )<br>
<br>
Anyway back to my probelm. Inside the function<br>
<br>
    static void sdram_set_registers(const struct mem_controller *ctrl) <br>
<br>
there is this bit of code.<br>
<br>
#if DIMM_CL2<br>
    pci_write_config8(north, 0x64, 0xd4);<br>
    pci_write_config8(north, 0x65, 0xd4);<br>
    pci_write_config8(north, 0x66, 0xd4);<br>
#else                // CL=3<br>
    pci_write_config8(north, 0x64, 0xe4);<br>
    pci_write_config8(north, 0x65, 0xe4);<br>
    pci_write_config8(north, 0x66, 0xe4);<br>
#endif<br>
<br>
<br>
<br>
as far as I can see from the datasheet it is correct. Now for debug I
was dumping out the vt8601 registers to do with ram at the end of
sdram_enable() just before the "vt8601 done" message. <br>
<br>
At this point register 0x64 has 0xec in it, which it shouldn't. The
extra bit(b3) is not used and should be 0. Now no where in the code is
this set so whats happening ?<br>
<br>
I put a print at the end of the sdram_set_registers() function and it
is wrong there also. However putting in that extra print hangs the
code. So I am thinking maybe its a stack issue.<br>
<br>
Anyway the power supply I was using for my dev board and blown up so I
need to get another one before I can go much further.<br>
<br>
Have been through the vt8601 datasheet quite a few times now, must be
one of the worst I have seen, anyway does anyone have any idea what the
"DRAM Controller Command Register Output" bit  is used for ? <br>
<br>
Also are the any utilities to dump the northbridge register contents on
a running system ?<br>
<br>
What sort of tools are we talking about to compile the earlier stuff ?<br>
<br>
<br>
</body>
</html>