<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/26706">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">cpu/intel/car/cache_as_ram_ht.inc: Allow setting non eviction mode<br><br>This is needed on CPU's from model_2065x on.<br><br>Change-Id: Iefd484a95fff8d1cb78b4dcf5b31df7086e4431f<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/cpu/intel/car/cache_as_ram_ht.inc<br>1 file changed, 34 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/06/26706/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/cpu/intel/car/cache_as_ram_ht.inc b/src/cpu/intel/car/cache_as_ram_ht.inc</span><br><span>index 0eb58d1..58dbf29 100644</span><br><span>--- a/src/cpu/intel/car/cache_as_ram_ht.inc</span><br><span>+++ b/src/cpu/intel/car/cache_as_ram_ht.inc</span><br><span>@@ -28,6 +28,8 @@</span><br><span> #define CACHE_AS_RAM_SIZE CONFIG_DCACHE_RAM_SIZE</span><br><span> #define CACHE_AS_RAM_BASE CONFIG_DCACHE_RAM_BASE</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define NoEvictMod_MSR 0x2e0</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>    /* Save the BIST result. */</span><br><span>  movl    %eax, %ebp</span><br><span> </span><br><span>@@ -299,6 +301,15 @@</span><br><span>        invd</span><br><span>         movl    %eax, %cr0</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_CPU_HAS_NO_EVICT_MODE)</span><br><span style="color: hsl(120, 100%, 40%);">+  /* enable the 'no eviction' mode */</span><br><span style="color: hsl(120, 100%, 40%);">+   movl    $NoEvictMod_MSR, %ecx</span><br><span style="color: hsl(120, 100%, 40%);">+ rdmsr</span><br><span style="color: hsl(120, 100%, 40%);">+ orl     $1, %eax</span><br><span style="color: hsl(120, 100%, 40%);">+      andl    $~2, %eax</span><br><span style="color: hsl(120, 100%, 40%);">+     wrmsr</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      /* Clear the cache memory region. This will also fill up the cache. */</span><br><span>       cld</span><br><span>  xorl    %eax, %eax</span><br><span>@@ -306,6 +317,14 @@</span><br><span>    movl    $(CACHE_AS_RAM_SIZE >> 2), %ecx</span><br><span>        rep     stosl</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_CPU_HAS_NO_EVICT_MODE)</span><br><span style="color: hsl(120, 100%, 40%);">+       /* enable the 'no eviction run' state */</span><br><span style="color: hsl(120, 100%, 40%);">+      movl    $NoEvictMod_MSR, %ecx</span><br><span style="color: hsl(120, 100%, 40%);">+ rdmsr</span><br><span style="color: hsl(120, 100%, 40%);">+ orl     $3, %eax</span><br><span style="color: hsl(120, 100%, 40%);">+      wrmsr</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      post_code(0x2d)</span><br><span>      /* Enable Cache-as-RAM mode by disabling cache. */</span><br><span>   movl    %cr0, %eax</span><br><span>@@ -370,8 +389,23 @@</span><br><span> </span><br><span>        post_code(0x32)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_CPU_HAS_NO_EVICT_MODE)</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Disable the no eviction run state */</span><br><span style="color: hsl(120, 100%, 40%);">+       movl    $NoEvictMod_MSR, %ecx</span><br><span style="color: hsl(120, 100%, 40%);">+ rdmsr</span><br><span style="color: hsl(120, 100%, 40%);">+ andl    $~2, %eax</span><br><span style="color: hsl(120, 100%, 40%);">+     wrmsr</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      invd</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_CPU_HAS_NO_EVICT_MODE)</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Disable the no eviction mode */</span><br><span style="color: hsl(120, 100%, 40%);">+    rdmsr</span><br><span style="color: hsl(120, 100%, 40%);">+ andl    $~1, %eax</span><br><span style="color: hsl(120, 100%, 40%);">+     wrmsr</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      post_code(0x33)</span><br><span> </span><br><span>  /* Enable cache. */</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/26706">change 26706</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/26706"/><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: Iefd484a95fff8d1cb78b4dcf5b31df7086e4431f </div>
<div style="display:none"> Gerrit-Change-Number: 26706 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>