summaryrefslogtreecommitdiffstats
path: root/src/kernel/kernel.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-04-07 09:27:21 -0500
committerPatrick Williams <iawillia@us.ibm.com>2011-04-07 09:27:21 -0500
commitf696ed61ff611faef2c93cc9e207557ac84cde00 (patch)
treedfda200b018fcb12b7333c02fac24a785b0789dc /src/kernel/kernel.C
parent557aba52655dec84a73bdbc19c59b62ec916159d (diff)
downloadblackbird-hostboot-f696ed61ff611faef2c93cc9e207557ac84cde00.tar.gz
blackbird-hostboot-f696ed61ff611faef2c93cc9e207557ac84cde00.zip
VBU: dcbz cache lines after code image to ensure they are in the L3.
Diffstat (limited to 'src/kernel/kernel.C')
-rw-r--r--src/kernel/kernel.C10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/kernel/kernel.C b/src/kernel/kernel.C
index dc073631e..f39290a09 100644
--- a/src/kernel/kernel.C
+++ b/src/kernel/kernel.C
@@ -10,6 +10,7 @@
#include <kernel/taskmgr.H>
#include <kernel/vmmmgr.H>
#include <kernel/timemgr.H>
+#include <sys/vfs.h>
#include <stdlib.h>
@@ -74,6 +75,15 @@ void Kernel::cppBootstrap()
void Kernel::memBootstrap()
{
+ // Populate L3 cache lines after code space.
+ uint64_t* cache_line = (uint64_t*) VFS_LAST_ADDRESS;
+ uint64_t* end_cache_line = (uint64_t*) VmmManager::FULL_MEM_SIZE;
+ while (cache_line != end_cache_line)
+ {
+ dcbz(cache_line);
+ cache_line++;
+ }
+
PageManager::init();
HeapManager::init();
VmmManager::init();
OpenPOWER on IntegriCloud