Hi.
Regarding SPD usage it seems like SPD don't used until set gVlvRefCodePkgTokenSpaceGuid.PcdEnableMemoryDown|0. But in this case i get the following output
*C1.D0: SPD not present.**
**MRC getting memory size from SeC ...**
**SeC Device ID: F18**
**SeC UMA Size Requested: 16384 KB**
**MRC SeCUmaSize memory size from SeC ... 10**
**MRC getting fTPM memory size from SeC ...**
**MRC SeCfTPMUmaSize memory size from SeC ... 0**
**PROGRESS CODE: V51002 I0**
**POSTCODE=<0025>**
**PROGRESS CODE: V51003 I0**
**POSTCODE=<0027>**
**Configuring Memory...**
*.....
*Current function  is MMRC_RcvnTrain*

And firmware hangs in last red function. But i belive that SPD is ok and programmed because when i use hardcoded memory settings gVlvRefCodePkgTokenSpaceGuid.PcdMemoryParameterPatchable|TRUE memtest86 and HWINFO shows me content of SPD.

How can i force firmware to use of SPD?

Grigory

15.08.2015 1:22, Krau, Michael P пишет:
Hello David,

Per your statement: "Our plan is to use the EDKII firmware and I see that memory 
parameters are hard-coded in the Vlv2TbltDevicePkg/PlatformPkgX64.dsc file. That seems to 
imply that if we did use different memories and set the MRC parameters correctly then the 
SPD data would not be essential (or required)."

You are correct.  There are three methods used in the firmware to configure 
memory in the MinnowBoard MAX firmware code:

1) The file: Vlv2TbltDevicePkg/PlatformPkgX64.dsc can be used to override all 
settings of the firmware and fix the memory parameters.  This is NOT The normal 
configuration of the code, as this mechanism has highest priority.
The switch " gVlvRefCodePkgTokenSpaceGuid.PcdMemoryParameterPatchable" controls 
this mechanism.  When set to TRUE the Values set in the .dsc will be used, (while 
mechanisms 2 and 3 are disregarded).  When set to FALSE, the values will be ignored and 
mechanisms 2 and 3 will be used.

2) The SPD data in the EEPROM will be used to configure the memory.  If the 
EEPROM  is blank (or the data is nonsensical) , this mechanism is skipped, and 
the mechanism 3 is used.  THisis the normal case for MinnowBoards as shipped 
form the factory.

Note, if the EEPROM contains data that is valid for (some) memory configuration, but not 
the configuration of the existing platform, there is a very real danger of "bricking 
the board".  Basically,  the memory reference will assume the data in the EEPROM is 
correct, and will use it to configure memory.  Since the configuration would match  the 
actual hardware memory components, the memory initialization will not be correct, and the 
memory subsystem will not work properly (if at all.  My advice, best leave this method 
alone, unless you have access to a hardware lab that can replace or reprogram the EEPROM 
to a configuration that is either correct, or blank.

3) The MinnowBoard MAX has several configurations set in the code.  The product 
is using a 2MB configuration, which is the standard configuration (which is 
identified by the use of the BOM_OPTION settings  several GPIO pins).  This is  
both the standard mechanism for the production units as well as the general the 
fallback position for the firmware.

The multiple mechanisms were established for the following reasons:
1) Allows developers to create derivative designs with different memory 
configurations and still use the standard Firmware sources.
2) This is the industry mechanism for memory configuration.  The EEPROM acts 
like the configuration storage on the memory DIMMs, I those systems that have 
'plug-able DDR3 DIMMS' in their memory.  (this maintains the standard)
3) The MinnowBoard MAX used this system as it is straight forward, and it makes 
a good safety net for the firmware.

Thank you,



Michael Krau
-----Original Message-----
From: elinux-MinnowBoard [mailto:[email protected]] 
On Behalf Of David Scully
Sent: Friday, August 14, 2015 2:35 PM
To: [email protected]
Subject: Re: [MinnowBoard] Purpose of EEPROM

Thank you both for your response.

John,
I wanted to clarify. Did you mean to say that if we're *not* using the exactly 
the same memory and same CPU then we'd need to populate the EEPROM with SPD 
data? I think a word might have been dropped there...

Our plan is to use the EDKII firmware and I see that memory parameters are 
hard-coded in the Vlv2TbltDevicePkg/PlatformPkgX64.dsc file. That seems to 
imply that if we did use different memories and set the MRC parameters 
correctly then the SPD data would not be essential (or required).

Though we do plan to use the same memory/CPU, so I think we'll be OK!

As for SMBus, I see now that Linux kernel support was one of the GSoC2015 
proposals. Makes sense why we we're having trouble.

Thanks again!



--
View this message in context: 
http://minnowboard.57273.x6.nabble.com/Purpose-of-EEPROM-tp1823p1831.html
Sent from the MinnowBoard mailing list archive at Nabble.com.
_______________________________________________
elinux-MinnowBoard mailing list
[email protected]
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
_______________________________________________
elinux-MinnowBoard mailing list
[email protected]
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard


_______________________________________________
elinux-MinnowBoard mailing list
[email protected]
http://lists.elinux.org/mailman/listinfo/elinux-minnowboard

Reply via email to