Cache devtree nodes for target lookup
Cache devtree nodes for target lookup

This commit adds functionality to cache the physical path -> node
mapping for device tree synchronization.

The libfdt function fdt_node_offset_by_prop_value, which is used to
look up the device tree node associated with a target from its
physical path attribute, iterates (potentially) the entire device tree
(every attribute on every node) to locate the node corresponding to
that physical path's target. This function is called once for every
target in the system blueprint, and so it consumes a considerable
amount of execution time.

Rather than iterate the entire device tree for every target, this
commit creates an in-memory mapping from target handle to device tree
node, using a single iteration of the device tree. This reduces the
complexity of lookup by nearly an order of magnitude, and improves IPL
speeds.

Change-Id: Ie1f5a3e0ba9b31dfa129d69aba66ec0cbe5e64f4
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/111023
Reviewed-by: Ilya Smirnov <2c7a6ec38cfb553b896499595cca9c656159f2a4@us.ibm.com>
Tested-by: Jenkins Server <8e3f934e4c44875bc48d33da3ea13d93ba9a233f@us.ibm.com>
Tested-by: Jenkins OP Build CI <e610bd72261d3c0a48f1e8ae36832ab00774d426@us.ibm.com>
Tested-by: Jenkins Combined Simics CI <8312af3886dfc9bb930f549023677220805b137e@us.ibm.com>
Tested-by: FSP CI Jenkins <aa9e4d9ac7cd25905e9c0dd36d4150516e73dd86@us.ibm.com>
Tested-by: Jenkins OP HW <0eb0fff262f74a65a832afbcc7b153e391c9a3fd@us.ibm.com>
Tested-by: Hostboot CI <52521565bd8ea18a2b112942dce4f4220a97c2c8@us.ibm.com>
Reviewed-by: Matt Derksen <7e9f2fc2ed13c4ee3c2ab17f188630a0f557de86@us.ibm.com>
Reviewed-by: Corey V Swenson <6b585c7446d4a0351ef146912eaabcae3d9a2e28@us.ibm.com>
Reviewed-by: Nicholas E Bofferding <fb8db48116bc8a69e29dd8cdb037246f232f4af5@us.ibm.com>

open-power/hostboot,open-power/hostboot,open-power/hostboot,open-power/hostboot,open-power/hostboot