Hi Rob, >> >>>> > Similar comments for the rest. I would define memory controller >>>> > bindings and EDAC driver, then worry about the rest. >>>> >>>> Okay.. As comment in following emails, I will break up the driver into >>>> multiple drivers and focus only on the memory controller driver first. >>> >>> Please no multiple EDAC drivers. Or do you mean something else here? >> >> We will have the following: >> >> xgene-edac-mc.c >> xgene-edac-pmd.c >> xgene-edac-l3.c >> xgene-edac-soc.c >> >> Or what would you suggest. There are the following HW: >> >> 1. 4 DDR controller with one shared top level interrupt, two shared >> memory bridges > > And ECC registers are in the DDR controllers? > Yes... ECC registers are with each DDR controller. That's why I leave the reg property. > I would expect the DT to have 4 DDR controller nodes and probably 2 > bridges. The memory bridges have control registers? Mustang DT does have 4 individual DT nodes for memory controllers. The 2 bridges are used to only determine if the memory controller is active or not. If not, it just skips the initialization during probe. > >> 2. 4 CPU's domain with one shared top level interrupt, shared L2 for >> two CPU's, and individual L1 >> 3. 1 L3 with one shared top level interrupt > > Presumably the registers for ECC are wired to some other block and not > CPU registers? Yes... The bus has dedicated 64K block for L2, L1, and L3. That's why the reg property still there and not shared. > >> 4. One SoC memory parity block with one shared top level interupt > > Shared interrupts are easily supported, but implicit in the DT. > Otherwise, it seems this block is independent from the rest, correct? Interrupts are shared and the status registers are also shared. Yes... the actual error module is independent. The shared blocks are: 1. Interrupt status (PCP block) - Needed for all subblock IP's 2. CSW, MCB A and MCB B - Needed for each individual memory controller to determine whether it is active 3. efuse block - used to determine if an CPU domain is disabled (non-existed in HW) Anything else need clarification? -Loc -- 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