hi ian,
The first is that I think the comments in the code may be a bit misleading (apologies to the original author!)
AIUI the registers at 0x56 and 0x57 (and 0x5E and 0x5F as well) should be set to the same value as 0x5D i.e. the DRAM ending address for your highest populated bank of memory.
Looking through northbridge/via/vt8623/raminit.inc it looks like 0x56 and 0x56 are set to 0x10, which I think would equate to 128MB as you are seeing.
hmmm
I think if you possibly remove the references to 0x56 and 0x57 in northbridge.c (and set the number of banks to 4), then set the values in raminit.inc to what you want i.e.
0x5A = 0x20 0x5B = 0x40 0x5C = 0x40 0x5D = 0x40 0x56 = 0x40 0x57 = 0x40
then the size detect code might just work.
Of course if your 512MB module actually has two banks of memory then you might need to add some extra code to initialise the second bank (not sure about this though.
I need to get this working for the project I'm working on (as well as getting banks 2 and 3 going too),
all the work which has to be done (regarding this) is almost impossible without the knowledge of the registers.
because of that i cannot help much ... i dont want to write wrong code just because of lack of information.
but at the moment I'm trying to get the VGA working so it might be a few days before I will the time to do some proper investigation.
so we need to wait for you, because it seems that you know how to program the beast :)
Hope this helps anyway
as i sayed -- this is not urgent for me.
it is just a bit annoying that via (and also other companies) are really slowing down the process of developement. i dont see the point in doing this. any fully working software make the companies, who produce hardware, more famous -> more money. hiding information is not a good way in my opinion.
niki