diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2014-06-10 09:33:27 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-06-19 18:01:24 -0500 |
commit | 27ad3b81551ad9642c63103ab79e19155150490c (patch) | |
tree | 77c43e43e7082d3e1b0ff688680dee197952722f /src/usr/hwpf/hwp/mc_config | |
parent | 649ef8c06007157123abad8cf72bec53cd5eae11 (diff) | |
download | talos-hostboot-27ad3b81551ad9642c63103ab79e19155150490c.tar.gz talos-hostboot-27ad3b81551ad9642c63103ab79e19155150490c.zip |
Change to HWPs to support dynamic mirror base address
Change-Id: Ic0d247725b9f97ee77c756254ed768a2968791ce
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11530
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/mc_config')
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.C | 32 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.H | 7 |
2 files changed, 24 insertions, 15 deletions
diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.C b/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.C index 873b541d5..a031316bb 100644 --- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.C +++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.C @@ -20,7 +20,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: opt_memmap.C,v 1.16 2013/10/28 21:17:47 jmcgill Exp $ +// $Id: opt_memmap.C,v 1.18 2014-06-19 14:06:34 dcrowell Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/opt_memmap.C,v $ @@ -34,8 +34,7 @@ // *! DESCRIPTION : Layout non-mirrored/mirrored address map (FAPI) // *! // *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com -// *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com -// *! BACKUP NAME : Van Lee Email: vanlee@us.ibm.com +// *! BACKUP NAME : ??? Email: ???@us.ibm.com // *! //------------------------------------------------------------------------------ @@ -44,6 +43,7 @@ //------------------------------------------------------------------------------ // Version:| Author: | Date: | Comment: //---------|----------|---------|----------------------------------------------- +// 1.17 | dcrowell | 06/19/14| Switch from #define to attr for mirror origin // 1.16 | jmcgill | 10/28/13| Offset drawers by 32TB rather than 1TB // 1.15 | jmcgill | 09/17/13| Add logic to offset memory map based on // | | | drawer number (required for multi-drawer @@ -492,8 +492,18 @@ ReturnCode opt_memmap(std::vector<fapi::Target> & i_procs, bool i_init) break; } - FAPI_INF("opt_memmap called with i_init = %d, mirror_policy: %d", - (i_init)?(1):(0), l_mirror_policy); + uint64_t l_mirror_origin = 0; + rc = FAPI_ATTR_GET(ATTR_MIRROR_BASE_ADDRESS, + NULL, + l_mirror_origin); + if (!rc.ok()) + { + FAPI_ERR("Error querying ATTR_MIRROR_BASE_ADDRESS"); + break; + } + + FAPI_INF("opt_memmap called with i_init = %d, mirror_policy: %d, origin=%llX", + (i_init)?(1):(0), l_mirror_policy, l_mirror_origin); // first pass of execution if (i_init) @@ -505,12 +515,12 @@ ReturnCode opt_memmap(std::vector<fapi::Target> & i_procs, bool i_init) ENUM_ATTR_MEM_MIRROR_PLACEMENT_POLICY_NORMAL) { mem_base = OPT_MEMMAP_BASE_ORIGIN; - mirror_base = OPT_MEMMAP_OFFSET_ORIGIN; + mirror_base = l_mirror_origin; } else if (l_mirror_policy == ENUM_ATTR_MEM_MIRROR_PLACEMENT_POLICY_FLIPPED) { - mem_base = OPT_MEMMAP_OFFSET_ORIGIN; + mem_base = l_mirror_origin; mirror_base = OPT_MEMMAP_BASE_ORIGIN; } else if (l_mirror_policy == @@ -542,7 +552,7 @@ ReturnCode opt_memmap(std::vector<fapi::Target> & i_procs, bool i_init) } mem_base = drawer_id * 32 * OPT_MEMMAP_TB; - mirror_base = OPT_MEMMAP_OFFSET_ORIGIN + (mem_base / 2); + mirror_base = l_mirror_origin + (mem_base / 2); } rc = FAPI_ATTR_SET(ATTR_PROC_MEM_BASE, @@ -581,13 +591,13 @@ ReturnCode opt_memmap(std::vector<fapi::Target> & i_procs, bool i_init) { // non-mirrored at zero, mirrored at offset l_nm_base_curr = OPT_MEMMAP_BASE_ORIGIN; - l_m_base_curr = OPT_MEMMAP_OFFSET_ORIGIN; + l_m_base_curr = l_mirror_origin; } else if (l_mirror_policy == ENUM_ATTR_MEM_MIRROR_PLACEMENT_POLICY_FLIPPED) { // mirrored at zero, non-mirrored at offset - l_nm_base_curr = OPT_MEMMAP_OFFSET_ORIGIN; + l_nm_base_curr = l_mirror_origin; l_m_base_curr = OPT_MEMMAP_BASE_ORIGIN; } else if (l_mirror_policy == @@ -618,7 +628,7 @@ ReturnCode opt_memmap(std::vector<fapi::Target> & i_procs, bool i_init) } l_nm_base_curr = drawer_id * 32 * OPT_MEMMAP_TB; - l_m_base_curr = OPT_MEMMAP_OFFSET_ORIGIN + (l_nm_base_curr / 2); + l_m_base_curr = l_mirror_origin + (l_nm_base_curr / 2); } ProcChipMemmap p(&(*l_iter), l_mirror_policy); diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.H b/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.H index 0892086bc..685fc7e07 100644 --- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.H +++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/opt_memmap.H @@ -20,7 +20,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: opt_memmap.H,v 1.8 2013/09/26 17:55:25 jmcgill Exp $ +// $Id: opt_memmap.H,v 1.9 2014-06-19 14:06:35 dcrowell Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/opt_memmap.H,v $ */ @@ -34,8 +34,7 @@ // *! DESCRIPTION : Layout non-mirrored/mirrored address map (FAPI) // *! // *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com -// *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com -// *! BACKUP NAME : Van Lee Email: vanlee@us.ibm.com +// *! BACKUP NAME : ??? Email: ???@us.ibm.com // *! //------------------------------------------------------------------------------ @@ -44,6 +43,7 @@ //------------------------------------------------------------------------------ // Version:| Author: | Date: | Comment: //---------|----------|---------|----------------------------------------------- +// 1.9 | dcrowell | 06/19/14| Remove OPT_MEMMAP_OFFSET_ORIGIN // 1.7 | jmcgill | 07/10/13| Update to match new attributes, selective // | | | aligment policy changes // 1.6 | jmcgill | 05/24/13| Correct index name @@ -74,7 +74,6 @@ const uint64_t OPT_MEMMAP_TB = 0x0000010000000000ULL; // default origin for non-mirrored/mirrored address regions const uint64_t OPT_MEMMAP_BASE_ORIGIN = 0; // 0 -const uint64_t OPT_MEMMAP_OFFSET_ORIGIN = 0x0002000000000000LL; // 512TB const uint64_t OPT_MEMMAP_SELECTIVE_ORIGIN = 0x0000080000000000LL; // 8TB // maximum non-mirrored/mirrored regions supported |