Message ID | 20181115071929.206974-14-amitay@ozlabs.org |
---|---|
State | Superseded |
Headers | show |
Series | Device tree path based targeting | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | master/apply_patch Successfully applied |
snowpatch_ozlabs/build-multiarch | success | Test build-multiarch on branch master |
> --- a/libpdbg/target.c > +++ b/libpdbg/target.c > @@ -36,6 +36,11 @@ static struct pdbg_target *get_class_target_addr(struct > pdbg_target *target, con return target; > } > > +struct pdbg_target *pdbg_address_absolute(struct pdbg_target *target, > uint64_t *addr) +{ > + return get_class_target_addr(target, "pib", addr); So this will just result in hitting the assert in get_class_target_addr() if a non-scommable target is passed in? That seems reasonable to me as for the moment as I have ideas for fixing that once this series is merged so: Reviewed-by: Alistair Popple <alistair@popple.id.au> > +} > + > /* The indirect access code was largely stolen from hw/xscom.c in skiboot > */ #define PIB_IND_MAX_RETRIES 10 > #define PIB_IND_READ PPC_BIT(0)
diff --git a/libpdbg/libpdbg.h b/libpdbg/libpdbg.h index f55acf4..44540e4 100644 --- a/libpdbg/libpdbg.h +++ b/libpdbg/libpdbg.h @@ -117,6 +117,10 @@ void pdbg_target_priv_set(struct pdbg_target *target, void *priv); struct pdbg_target *pdbg_target_root(void); bool pdbg_target_compatible(struct pdbg_target *target, const char *compatible); +/* Translate an address offset for a target to absolute address in address + * space of a "base" target. */ +struct pdbg_target *pdbg_address_absolute(struct pdbg_target *target, uint64_t *addr); + /* Procedures */ int fsi_read(struct pdbg_target *target, uint32_t addr, uint32_t *val); int fsi_write(struct pdbg_target *target, uint32_t addr, uint32_t val); diff --git a/libpdbg/target.c b/libpdbg/target.c index 1fc8457..af9199d 100644 --- a/libpdbg/target.c +++ b/libpdbg/target.c @@ -36,6 +36,11 @@ static struct pdbg_target *get_class_target_addr(struct pdbg_target *target, con return target; } +struct pdbg_target *pdbg_address_absolute(struct pdbg_target *target, uint64_t *addr) +{ + return get_class_target_addr(target, "pib", addr); +} + /* The indirect access code was largely stolen from hw/xscom.c in skiboot */ #define PIB_IND_MAX_RETRIES 10 #define PIB_IND_READ PPC_BIT(0)
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> --- libpdbg/libpdbg.h | 4 ++++ libpdbg/target.c | 5 +++++ 2 files changed, 9 insertions(+)