From 6236804f35b0c04f3687e7ff39211a2b8f247535 Mon Sep 17 00:00:00 2001 From: Vasant Hegde Date: Fri, 27 Nov 2020 18:35:05 +0530 Subject: hw/ocmb: Clear top bit from offset before searching addr range Looks like HBRT sets top bit in pcbaddress before making OCMB SCOM request. We have to clear that bit so that we can find proper address range for SCOM operation. Sample failure: [ 2578.156011925,3] OCMB: no matching address range! [ 2578.156044481,3] scom_read: to 80000028 off: 8006430d4008c000 rc = -26 Also move HRMOR_BIT macro to common include file (hdata/spira.h -> skiboot.h). Signed-off-by: Vasant Hegde --- include/skiboot.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/skiboot.h') diff --git a/include/skiboot.h b/include/skiboot.h index 7b71ebd..d33c025 100644 --- a/include/skiboot.h +++ b/include/skiboot.h @@ -143,6 +143,12 @@ static inline bool is_pow2(unsigned long val) #define PCI_DEV(bdfn) (((bdfn) >> 3) & 0x1f) #define PCI_FUNC(bdfn) ((bdfn) & 0x07) +/* + * To help the FSP to distinguish between physical address and TCE mapped address. + * Also to help hostboot to distinguish physical and relative address. + */ +#define HRMOR_BIT (1ul << 63) + /* Clean the stray high bit which the FSP inserts: we only have 52 bits real */ static inline u64 cleanup_addr(u64 addr) { -- cgit v1.1