<p>Marc Jones has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/23817">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">soc/amd/stoneyridge: Add UMA save function<br><br>Save the UMA values from AGESA to use in resource<br>allocation in ramstage.<br><br>Change-Id: I2a218160649d934f615b2637ff122c36b4ba617e<br>Signed-off-by: Marc Jones <marcj303@gmail.com><br>---<br>M src/soc/amd/stoneyridge/include/soc/iomap.h<br>M src/soc/amd/stoneyridge/include/soc/southbridge.h<br>M src/soc/amd/stoneyridge/sb_util.c<br>3 files changed, 58 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/17/23817/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/soc/amd/stoneyridge/include/soc/iomap.h b/src/soc/amd/stoneyridge/include/soc/iomap.h</span><br><span>index 2319b88..354a2db 100644</span><br><span>--- a/src/soc/amd/stoneyridge/include/soc/iomap.h</span><br><span>+++ b/src/soc/amd/stoneyridge/include/soc/iomap.h</span><br><span>@@ -68,5 +68,7 @@</span><br><span> </span><br><span> /* BiosRam Ranges at 0xfed80500 or I/O 0xcd4/0xcd5 */</span><br><span> #define BIOSRAM_CBMEM_TOP               0xf0 /* 4 bytes */</span><br><span style="color: hsl(120, 100%, 40%);">+#define BIOSRAM_UMA_SIZE            0xf4 /* 4 bytes */</span><br><span style="color: hsl(120, 100%, 40%);">+#define BIOSRAM_UMA_BASE            0xfa /* 8 bytes */</span><br><span> </span><br><span> #endif /* __SOC_STONEYRIDGE_IOMAP_H__ */</span><br><span>diff --git a/src/soc/amd/stoneyridge/include/soc/southbridge.h b/src/soc/amd/stoneyridge/include/soc/southbridge.h</span><br><span>index df78608..df1d755 100644</span><br><span>--- a/src/soc/amd/stoneyridge/include/soc/southbridge.h</span><br><span>+++ b/src/soc/amd/stoneyridge/include/soc/southbridge.h</span><br><span>@@ -340,6 +340,38 @@</span><br><span> uint32_t xhci_pm_read32(uint8_t reg);</span><br><span> void bootblock_fch_early_init(void);</span><br><span> /**</span><br><span style="color: hsl(120, 100%, 40%);">+ * @brief Save the UMA bize returned by AGESA</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param size = in bytes</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @return none</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+void save_uma_size(uint32_t size);</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span style="color: hsl(120, 100%, 40%);">+ * @brief Save the UMA base address returned by AGESA</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param base = 64bit base address</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @return none</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+void save_uma_base(uint64_t base);</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span style="color: hsl(120, 100%, 40%);">+ * @brief Get the saved UMA size</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param none</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @return size in bytes</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int32_t get_uma_size(void);</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span style="color: hsl(120, 100%, 40%);">+ * @brief Get the saved UMA base</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param none</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * @return 64bit base address</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int64_t get_uma_base(void);</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span>  * @brief program a particular set of GPIO</span><br><span>  *</span><br><span>  * @param gpio_ptr = pointer to array of gpio configurations</span><br><span>diff --git a/src/soc/amd/stoneyridge/sb_util.c b/src/soc/amd/stoneyridge/sb_util.c</span><br><span>index a98a334..eda3fc8 100644</span><br><span>--- a/src/soc/amd/stoneyridge/sb_util.c</span><br><span>+++ b/src/soc/amd/stoneyridge/sb_util.c</span><br><span>@@ -164,3 +164,27 @@</span><br><span> {</span><br><span>   return acpi_sleep_from_pm1(inw(pm_acpi_pm_cnt_blk()));</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void save_uma_size(uint32_t size)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   biosram_write32(BIOSRAM_UMA_SIZE, size);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void save_uma_base(uint64_t base)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   biosram_write32(BIOSRAM_UMA_BASE, (uint32_t) base);</span><br><span style="color: hsl(120, 100%, 40%);">+   biosram_write32(BIOSRAM_UMA_BASE + 4, (uint32_t) (base  >> 32));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int32_t get_uma_size(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    return biosram_read32(BIOSRAM_UMA_SIZE);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int64_t get_uma_base(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  uint64_t base;</span><br><span style="color: hsl(120, 100%, 40%);">+        base = biosram_read32(BIOSRAM_UMA_BASE);</span><br><span style="color: hsl(120, 100%, 40%);">+      base |= ((uint64_t)(biosram_read32(BIOSRAM_UMA_BASE + 4)) << 32);</span><br><span style="color: hsl(120, 100%, 40%);">+       return base;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23817">change 23817</a>. To unsubscribe, or for help writing mail filters, 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/23817"/><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: I2a218160649d934f615b2637ff122c36b4ba617e </div>
<div style="display:none"> Gerrit-Change-Number: 23817 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Marc Jones <marc@marcjonesconsulting.com> </div>