This patch has the fix and the memory size is now right.
thanks
ron p.s. will send memory image and instructions to anyone who wants to take a try.
On Thu, Oct 25, 2007 at 08:55:10PM -0700, ron minnich wrote:
- /* we are finding the return does not work on this
* board.
Do we know why?
//Peter
On 10/26/07, Peter Stuge peter@stuge.se wrote:
On Thu, Oct 25, 2007 at 08:55:10PM -0700, ron minnich wrote:
/* we are finding the return does not work on this
* board.
Do we know why?
I could never figure it out. that comment is actually from the msm800sev.
ron
On Thu, Oct 25, 2007 at 08:55:10PM -0700, ron minnich wrote:
p.s. will send memory image and instructions to anyone who wants to take a try.
Please rather make a wiki page out of the instructions, i.e.
http://linuxbios.org/index.php?title=PC_Engines_ALIX.1C_Build_Tutorial&a...
(and attach a license template, please, e.g. {{GPL}} or {{PD-self}} etc).
Later a full status table as we have for some other boards now would be great.
+static u8 spd_read_byte(unsigned device, unsigned address)
Maybe
static u8 spd_read_byte(u16 device, u16 address)
Are device and address of fixed size (16 bit)? Or rather 8 bit?
{
return smbus_read_byte(device, address);
- print_debug("spd_read_byte dev ");
- print_debug_hex8(device);
You use *hex8 here, but device is 16 bit above. One of them should be fixed.
- if (device != (0x50<<1)){
print_debug(" returns 0xff\n");
return 0xff;
- }
- print_debug(" addr ");
- print_debug_hex8(address);
Ditto.
- /* Switch from Cache as RAM to real RAM */
- /* There are two ways we could think about this.
1. If we are using the auto.inc ROMCC way, the stack is going to be re-setup in the code following this code.
Just wbinvd the stack to clear the cache tags. We don't care where the stack used to be.
2. This file is built as a normal .c -> .o and linked in etc. The stack might be used to return etc.
That means we care about what is in the stack. If we are smart we set the CAR stack to the same location
as the rest of LinuxBIOS. If that is the case we can just do a wbinvd. The stack will be written into real
RAM that is now setup and we continue like nothing happened. If the stack is located somewhere other than
where LB would like it, you need to write some code to do a copy from cache to RAM
We use method 1 on Norwich and on this board too.
- */
- /* Switch from Cache as RAM to real RAM
* There are two ways we could think about this.
*
* 1. If we are using the auto.inc ROMCC way, the stack is
* going to be re-setup in the code following this code. Just
* wbinvd the stack to clear the cache tags. We don't care
* where the stack used to be.
*
* 2. This file is built as a normal .c -> .o and linked in
* etc. The stack might be used to return etc. That means we
* care about what is in the stack. If we are smart we set
* the CAR stack to the same location as the rest of
* LinuxBIOS. If that is the case we can just do a wbinvd.
* The stack will be written into real RAM that is now setup
* and we continue like nothing happened. If the stack is
* located somewhere other than where LB would like it, you
* need to write some code to do a copy from cache to RAM
*
* We use method 1 on Norwich and on this board too.
*/
Yep, much better.
Uwe.
On 10/26/07, Uwe Hermann uwe@hermann-uwe.de wrote:
+static u8 spd_read_byte(unsigned device, unsigned address)
well, spd address are 10 bits, or 7 bits (*runs away screaming in fear*) depending on things I don't understand. The addresses? I'm not sure. Anyone?
{
return smbus_read_byte(device, address);
print_debug("spd_read_byte dev ");
print_debug_hex8(device);
You use *hex8 here, but device is 16 bit above. One of them should be fixed.
will do. I just have to figure out which is right.
ron
Uwe, how about this? I am leaving it inline. Are you ok with the rest of the patches I committed?
ron
Signed-off-by: Ronald G. Minnich rminnich@gmail.com Index: src/mainboard/pcengines/alix1c/cache_as_ram_auto.c =================================================================== --- src/mainboard/pcengines/alix1c/cache_as_ram_auto.c (revision 2899) +++ src/mainboard/pcengines/alix1c/cache_as_ram_auto.c (working copy) @@ -86,7 +86,7 @@ [SPD_tRRD] = 10, };
-static u8 spd_read_byte(unsigned device, unsigned address) +static u8 spd_read_byte(u8 device, u8 address) { print_debug("spd_read_byte dev "); print_debug_hex8(device);
On Fri, Oct 26, 2007 at 10:10:37AM -0700, ron minnich wrote:
Index: src/mainboard/pcengines/alix1c/cache_as_ram_auto.c
--- src/mainboard/pcengines/alix1c/cache_as_ram_auto.c (revision 2899) +++ src/mainboard/pcengines/alix1c/cache_as_ram_auto.c (working copy) @@ -86,7 +86,7 @@ [SPD_tRRD] = 10, };
-static u8 spd_read_byte(unsigned device, unsigned address) +static u8 spd_read_byte(u8 device, u8 address) { print_debug("spd_read_byte dev "); print_debug_hex8(device);
Looks good IMO. This was committed as r2924.
Uwe.