<p>Marshall Dawson has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/22724">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">amd/stoneyridge: Add BIOS RAM R/W functions<br><br>The internal FCH contains 256 bytes of "BiosRam" that maintains its<br>state until RSMRST# is asserted or standby power is lost.  Add functions<br>to support read and write operations.<br><br>Change-Id: I2ddf58a63e69b2775de9a8163534b13dad2ea2fe<br>Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com><br>---<br>M src/soc/amd/stoneyridge/include/soc/southbridge.h<br>M src/soc/amd/stoneyridge/sb_util.c<br>2 files changed, 55 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/24/22724/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/soc/amd/stoneyridge/include/soc/southbridge.h b/src/soc/amd/stoneyridge/include/soc/southbridge.h<br>index c7d0dda..bdd5895 100644<br>--- a/src/soc/amd/stoneyridge/include/soc/southbridge.h<br>+++ b/src/soc/amd/stoneyridge/include/soc/southbridge.h<br>@@ -303,6 +303,12 @@<br> void smi_write8(uint8_t offset, uint8_t value);<br> void smi_write16(uint8_t offset, uint16_t value);<br> void smi_write32(uint8_t offset, uint32_t value);<br>+uint8_t biosram_read8(uint8_t offset);<br>+void biosram_write8(uint8_t offset, uint8_t value);<br>+uint32_t biosram_read16(uint8_t offset);<br>+void biosram_write16(uint8_t offset, uint16_t value);<br>+uint32_t biosram_read32(uint8_t offset);<br>+void biosram_write32(uint8_t offset, uint32_t value);<br> uint16_t pm_acpi_pm_cnt_blk(void);<br> uint16_t pm_acpi_pm_evt_blk(void);<br> int s3_load_nvram_early(int size, u32 *old_dword, int nvram_pos);<br>diff --git a/src/soc/amd/stoneyridge/sb_util.c b/src/soc/amd/stoneyridge/sb_util.c<br>index 36dccaa..0774eae 100644<br>--- a/src/soc/amd/stoneyridge/sb_util.c<br>+++ b/src/soc/amd/stoneyridge/sb_util.c<br>@@ -71,11 +71,60 @@<br>    return read8((void *)(APU_SMI_BASE + offset));<br> }<br> <br>+<br> void smi_write8(uint8_t offset, uint8_t value)<br> {<br>         write8((void *)(APU_SMI_BASE + offset), value);<br> }<br> <br>+uint8_t biosram_read8(uint8_t offset)<br>+{<br>+   outb(offset, BIOSRAM_INDEX);<br>+ return inb(BIOSRAM_DATA);<br>+}<br>+<br>+void biosram_write8(uint8_t offset, uint8_t value)<br>+{<br>+    outb(offset, BIOSRAM_INDEX);<br>+ outb(value, BIOSRAM_DATA);<br>+}<br>+<br>+uint32_t biosram_read16(uint8_t offset)<br>+{<br>+      int i;<br>+       uint32_t value = 0;<br>+  for (i = 1 ; i >= 0 ; i--)<br>+                value = (value << 8) | biosram_read8(offset + i);<br>+      return value;<br>+}<br>+<br>+uint32_t biosram_read32(uint8_t offset)<br>+{<br>+   int i;<br>+       uint32_t value = 0;<br>+  for (i = 3 ; i >= 0 ; i--)<br>+                value = (value << 8) | biosram_read8(offset + i);<br>+      return value;<br>+}<br>+<br>+void biosram_write16(uint8_t offset, uint16_t value)<br>+{<br>+      int i;<br>+       for (i = 0 ; i < 2 ; i++) {<br>+               biosram_write8(offset + i, value & 0xff);<br>+                value >>= 8;<br>+   }<br>+}<br>+<br>+void biosram_write32(uint8_t offset, uint32_t value)<br>+{<br>+  int i;<br>+       for (i = 0 ; i < 4 ; i++) {<br>+               biosram_write8(offset + i, value & 0xff);<br>+                value >>= 8;<br>+   }<br>+}<br>+<br> uint16_t pm_acpi_pm_cnt_blk(void)<br> {<br>      return pm_read16(PM1_CNT_BLK);<br></pre><p>To view, visit <a href="https://review.coreboot.org/22724">change 22724</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/22724"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I2ddf58a63e69b2775de9a8163534b13dad2ea2fe </div>
<div style="display:none"> Gerrit-Change-Number: 22724 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Marshall Dawson <marshalldawson3rd@gmail.com> </div>