summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/asrock/b85m_pro4/romstage.c8
-rw-r--r--src/mainboard/asrock/h81m-hds/romstage.c4
-rw-r--r--src/mainboard/google/beltino/romstage.c4
-rw-r--r--src/mainboard/hp/folio_9480m/romstage.c4
-rw-r--r--src/mainboard/intel/baskingridge/romstage.c8
-rw-r--r--src/mainboard/lenovo/t440p/romstage.c4
-rw-r--r--src/mainboard/msi/h81m-p33/romstage.c4
-rw-r--r--src/mainboard/supermicro/x10slm-f/romstage.c8
-rw-r--r--src/northbridge/intel/haswell/raminit.c7
-rw-r--r--src/northbridge/intel/haswell/raminit.h2
10 files changed, 28 insertions, 25 deletions
diff --git a/src/mainboard/asrock/b85m_pro4/romstage.c b/src/mainboard/asrock/b85m_pro4/romstage.c
index 7a4e402d91..793a7d7b30 100644
--- a/src/mainboard/asrock/b85m_pro4/romstage.c
+++ b/src/mainboard/asrock/b85m_pro4/romstage.c
@@ -19,10 +19,10 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[1] = 0xa2;
- spdi->addresses[2] = 0xa4;
- spdi->addresses[3] = 0xa6;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[1] = 0x51;
+ spdi->addresses[2] = 0x52;
+ spdi->addresses[3] = 0x53;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/asrock/h81m-hds/romstage.c b/src/mainboard/asrock/h81m-hds/romstage.c
index 58f9697162..a5b667f053 100644
--- a/src/mainboard/asrock/h81m-hds/romstage.c
+++ b/src/mainboard/asrock/h81m-hds/romstage.c
@@ -19,8 +19,8 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[2] = 0xa4;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x52;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/google/beltino/romstage.c b/src/mainboard/google/beltino/romstage.c
index b69fb933b3..9904d5a9b9 100644
--- a/src/mainboard/google/beltino/romstage.c
+++ b/src/mainboard/google/beltino/romstage.c
@@ -42,8 +42,8 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[2] = 0xa4;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x52;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/hp/folio_9480m/romstage.c b/src/mainboard/hp/folio_9480m/romstage.c
index af3005f04c..865fcc6617 100644
--- a/src/mainboard/hp/folio_9480m/romstage.c
+++ b/src/mainboard/hp/folio_9480m/romstage.c
@@ -19,8 +19,8 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[2] = 0xa4;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x52;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/intel/baskingridge/romstage.c b/src/mainboard/intel/baskingridge/romstage.c
index 7580799898..0f2719a106 100644
--- a/src/mainboard/intel/baskingridge/romstage.c
+++ b/src/mainboard/intel/baskingridge/romstage.c
@@ -43,10 +43,10 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[1] = 0xa2;
- spdi->addresses[2] = 0xa4;
- spdi->addresses[3] = 0xa6;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[1] = 0x51;
+ spdi->addresses[2] = 0x52;
+ spdi->addresses[3] = 0x53;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/lenovo/t440p/romstage.c b/src/mainboard/lenovo/t440p/romstage.c
index 7840a1fffa..a85935b678 100644
--- a/src/mainboard/lenovo/t440p/romstage.c
+++ b/src/mainboard/lenovo/t440p/romstage.c
@@ -42,8 +42,8 @@ void mb_late_romstage_setup(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[2] = 0xa2;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x51;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/msi/h81m-p33/romstage.c b/src/mainboard/msi/h81m-p33/romstage.c
index 059ebdc1b6..97c888d9e7 100644
--- a/src/mainboard/msi/h81m-p33/romstage.c
+++ b/src/mainboard/msi/h81m-p33/romstage.c
@@ -19,8 +19,8 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[2] = 0xa4;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x52;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/mainboard/supermicro/x10slm-f/romstage.c b/src/mainboard/supermicro/x10slm-f/romstage.c
index 2ec993ffb3..e555bea29b 100644
--- a/src/mainboard/supermicro/x10slm-f/romstage.c
+++ b/src/mainboard/supermicro/x10slm-f/romstage.c
@@ -19,10 +19,10 @@ void mainboard_config_rcba(void)
void mb_get_spd_map(struct spd_info *spdi)
{
- spdi->addresses[0] = 0xa0;
- spdi->addresses[1] = 0xa2;
- spdi->addresses[2] = 0xa4;
- spdi->addresses[3] = 0xa6;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[1] = 0x51;
+ spdi->addresses[2] = 0x52;
+ spdi->addresses[3] = 0x53;
}
const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
diff --git a/src/northbridge/intel/haswell/raminit.c b/src/northbridge/intel/haswell/raminit.c
index d84d3fb12a..1f84ffa5cb 100644
--- a/src/northbridge/intel/haswell/raminit.c
+++ b/src/northbridge/intel/haswell/raminit.c
@@ -347,8 +347,11 @@ void perform_raminit(const int s3resume)
struct spd_info spdi = {0};
mb_get_spd_map(&spdi);
- for (size_t i = 0; i < ARRAY_SIZE(spdi.addresses); i++)
- pei_data.spd_addresses[i] = spdi.addresses[i];
+ /* MRC expects left-aligned SMBus addresses, and 0xff for memory-down */
+ for (size_t i = 0; i < ARRAY_SIZE(spdi.addresses); i++) {
+ const uint8_t addr = spdi.addresses[i];
+ pei_data.spd_addresses[i] = addr == SPD_MEMORY_DOWN ? 0xff : addr << 1;
+ }
/* Calculate unimplemented DIMM slots for each channel */
pei_data.dimm_channel0_disabled = make_channel_disabled_mask(&pei_data, 0);
diff --git a/src/northbridge/intel/haswell/raminit.h b/src/northbridge/intel/haswell/raminit.h
index 7eb3980544..ab245d85a1 100644
--- a/src/northbridge/intel/haswell/raminit.h
+++ b/src/northbridge/intel/haswell/raminit.h
@@ -17,7 +17,7 @@ struct spd_info {
extern const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS];
extern const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS];
-/* Mainboard callback to fill in the SPD addresses in MRC format */
+/* Mainboard callback to fill in the SPD addresses */
void mb_get_spd_map(struct spd_info *spdi);
void perform_raminit(const int s3resume);