summaryrefslogtreecommitdiffstats
path: root/src/usr/lpc/lpcdd.C
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2017-05-10 15:55:40 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-06-02 09:23:59 -0400
commit6b508aaf86e1d397155ada70bd1678cf5efde9aa (patch)
tree6ff8cd3aa44c82263df9ce4dda351163f2568be0 /src/usr/lpc/lpcdd.C
parent3cbec65e0cf56eac08f826d3aa7fa618b9e7c1c9 (diff)
downloadtalos-hostboot-6b508aaf86e1d397155ada70bd1678cf5efde9aa.tar.gz
talos-hostboot-6b508aaf86e1d397155ada70bd1678cf5efde9aa.zip
Map BAR attributes based on data from Bootloader
If the master processor has no memory behind it the entire memory map must be modified. Each processor has its own statically defined map that covers both memory and MMIOs. If the master has no memory, its memory map is swapped with another processor. Each processor gets a new effective fabric id that is then used to compute all of the BAR values for those processors. The SBE boots with a certain memory map programmed into the master processor. That value is then passed up through the bootloader into Hostboot. This value is compared to the BAR values that Hostboot assumes it is using. Based on that comparison, various attributes are computed to match the effective fabric positions. Change-Id: I2b0d1959c303df8c9c28c8f0a5b5be1e77aa154f RTC: 173528 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40359 Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/lpc/lpcdd.C')
-rw-r--r--src/usr/lpc/lpcdd.C12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/usr/lpc/lpcdd.C b/src/usr/lpc/lpcdd.C
index c84253563..fd1fa54e1 100644
--- a/src/usr/lpc/lpcdd.C
+++ b/src/usr/lpc/lpcdd.C
@@ -47,7 +47,7 @@
#include <errl/errludlogregister.H>
#include <initservice/taskargs.H>
#include <config.h>
-
+#include <arch/memorymap.H>
trace_desc_t* g_trac_lpc;
TRAC_INIT( & g_trac_lpc, LPC_COMP_NAME, 2*KILOBYTE, TRACE::BUFFER_SLOW);
@@ -380,6 +380,16 @@ void block_lpc_ops( bool i_block )
Singleton<LpcDD>::instance().lock(i_block);
}
+/**
+ * @brief Return the value of the LPC BAR that the driver is using
+ */
+uint64_t get_lpc_bar( void )
+{
+ //@todo-RTC:173521-Return live value
+ return MMIO_GROUP0_CHIP0_LPC_BASE_ADDR;
+}
+
+
}; //namespace LPC
///////////////////////////////////////////////////////////////////////////////
OpenPOWER on IntegriCloud