Hi, On Tue, Oct 4, 2022, at 13:27, Konrad Dybcio wrote: > Add support for A7-A11 SoCs by if-ing out some features only present > on: > > * A11 & newer (implementation-defined IPI & UNCORE registers) > * A11[1] & newer (fast IPI support). > > UNCORE/UNCORE2 and IPI registers conveniently both first appeared on > A11, so introduce just one check for that. > > Knowing whether the SoC supports the latter is necessary, as they are > written to, even if fast IPI is disabled. AFAIK that's only an artifact in this driver: It was added to prevent an FIQ storm in case there were pending fast ipis (i.e. the bootloader was broken ;)) when this driver didn't support fast ipis yet. > This in turn causes a crash > on older platforms, as the implemention-defined registers either do > something else or are not supposed to be touched - definitely not a > NOP though. > > [1] A11 is supposed to use this feature, but it currently doesn't work > for reasons unknown and hence remains disabled. It can easily be enabled > on A11 only, as there is a SoC-specific compatible in the DT with a > fallback to apple,aic. That said, it is not yet necessary, especially > with only one core up, and it has worked a-ok so far. Just to make sure I understand this correctly - we have the following three situations: - base: no fastipi, no uncore, will work on A11 and M1 though - A11: fastipi and uncore but fastipi is broken (possibly due to HW errata or some bug in this driver that only happens on A11) - M1 (or maybe even A12 already, doesn't matter though): fastipi and uncore support If we figured out _why_ fastipi is broken on A11 we would only need a single feature flag to enable both uncore and fastipi but for now we need two to disable fastipi for A11. I'm also curious: What are the symptoms when you enable fastipi on A11? Sven