On Wednesday 14 May 2014 12:46:06 Florian Fainelli wrote: > 2014-05-14 12:33 GMT-07:00 Arnd Bergmann <arnd@xxxxxxxx>: > > On Wednesday 14 May 2014 12:10:46 Florian Fainelli wrote: > >> This patch adds support for the Broadcom GISB arbiter bus timeout/error > >> handler. GISB is a proprietary bus used by Broadcom Set Top Box > >> System-on-a-chip devices (BCM7xxx) which allows multiple masters and > >> clients to be interfaced with each other. > >> > >> The bus arbiter offers support for generating two interrupts towards the > >> host CPU, thus allowing us to "catch" clock gated masters, or masters > >> being volontarily blocked for powersaving purposes, or do general system > >> troubleshooting. > >> > >> We also register a hook with the ARM fault exception handling to allow > >> printing a more informative message than "imprecise external abort at > >> 0x00000000" for instance. > >> > >> Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > > > > Looks pretty good to me. > > Cool, thanks!, BTW, which tree should we attempt to get this merged into? We can probably take it through arm-soc along with the other platform specific changes for bcm7xxx, since there is no maintainer for drivers/bus yet. > >> +static int brcmstb_bus_error_handler(unsigned long addr, unsigned int fsr, > >> + struct pt_regs *regs) > >> +{ > >> + int ret = 0; > >> + struct brcmstb_gisb_arb_device *gdev; > >> + > >> + /* iterate over each GISB arb registered handlers */ > >> + list_for_each_entry(gdev, &brcmstb_gisb_arb_device_list, next) > >> + ret |= brcmstb_gisb_arb_decode_addr(gdev, "bus error"); > >> + /* > >> + * If it was an imprecise abort, then we need to correct the > >> + * return address to be _after_ the instruction. > >> + */ > >> + if (fsr & (1 << 10)) > >> + regs->ARM_pc += 4; > >> + > >> + return ret; > >> +} > > > > This will cause the normal abort handler to trigger if the GISB > > arbiter doesn't know what happened, right? > > That's right, one of the very first things that the GISB arbiter > checks is whether the faulting error is valid or not, if it is not, it > bails out and so we keep on processing the other exception handlers. Ok, good. Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html