On Thu, Apr 9, 2020 at 6:58 AM Simon Glass <s...@chromium.org> wrote: > > With P2SB the initial BAR (base-address register) is set up by TPL and > this is used unchanged right through U-Boot. > > At present the reading of this address is split between the ofdata() and > probe() methods. There are a few problems that are unique to the p2sb. > One is that its children need to call pcr_read32(), etc. which needs to > have the p2sb address correct. Also some of its children are pinctrl > devices and pinctrl is used when any device is probed. So p2sb really > needs to get its base address set up in ofdata_to_platdata(), before it is > probed. > > Another point is that reading the p2sb BAR will not work if the p2sb is > hidden. The FSP-S seems to hide it, presumably to avoid confusing PCI > enumeration. > > Reading ofdata in ofdata_to_platdata() is the correct place anyway, so > this is easy to fix. > > Move the code into one place and use the early-regs property in all cases > for simplicity and to avoid needing to probe any PCI devices just to read > the BAR. > > Signed-off-by: Simon Glass <s...@chromium.org> > Reviewed-by: Wolfgang Wallner <wolfgang.wall...@br-automation.com> > Tested-by: Wolfgang Wallner <wolfgang.wall...@br-automation.com> > --- > > Changes in v5: None > Changes in v4: None > Changes in v3: > - Fix indenting error mentioned by Andy Shevchenko > > Changes in v2: None > > arch/x86/cpu/intel_common/p2sb.c | 33 +++++++++++--------------------- > 1 file changed, 11 insertions(+), 22 deletions(-) >
applied to u-boot-x86, thanks!