YhLu YhLu@tyan.com writes:
Eric,
I have made two changes in raminit.c
- csbase counting
- fill_last to make sure kernel to scan NUMA successfully.
For s2880 it can work with 4*1G+2*256M RAM, and doesn't work with 4*1G+2*512M or 4*1G+2*1G.
I would try to substitute raminit.c with hardcode one to test for 6G, if it can help.
Please advise.
There has been enough code churn that my head is still spinning in trying to get in sync with the main tree.
I have updated raminit.c so that it now handles the case of each memory controller starting from 0 cleanly, and I have updated cpufixup.c so that we are handling > 4GB of memory properly. TOP_MEM2 was not getting set to the proper value.
fill_last was pretty much a duplicate of route_dram_access except different assumptions were made, so I have removed fill_last again.
If you have memory that doesn't get setup properly now holler.
So we should be pretty close. Before I can go much farther I need a test for pre rev c0 cpus. Because a lot of the remaining memory code needs to be conditional on it.
I am in the last stages of stabilizing an internal version to be used in large scale testing to search for hardware incompatibilities.
I also have a the links width and speed being automatically setup properly. But the way I discover the links is still kind of nasty, so I am not quite ready to push the code back yet.
I should be switching over to the new configuration system on Monday and once that is sorted out quite I can start putting hard codes where they belong in the board specific configuration.
Eric