I think this is a much simpler problem to solve compared to parallel mode. Once you figure out the devicetree stuff, and I think the mtdconcat changes should be simple and not too controversial. So I think you should split the parallel and stacked support into two independent series. This way you make progress without having to wait for discussions around parallel mode support to settle. > > 2. Add a New Layer > Add a new layer between the SPI-NOR and MTD layers to support stacked > and parallel configurations. This new layer will be part of spi-nor, > located in mtd/spi-nor/, can be included/excluded via Kconfig, will be > maintained by AMD and will: > > - During probing, store information from all connected flashes in > stacked or parallel mode and present them as a single device to the > MTD layer. As I mentioned above, I do not think you should do stacked flashes this way. > - Register callbacks and manage MTD device registration within the new > layer instead of spi-nor/core.c. > - Make minimal changes in spi-nor/core.c, as stacked and parallel > handling will be managed by the new layer on top of SPI-NOR. > - Handle odd byte count requests from the MTD layer during flash > operations in parallel mode. You'd also probably have to add support in SPI MEM to signal the controller to use parallel mode. You don't want to use parallel mode all the time since you'd need to do "normal" operations as well such as reading/writing status registers, reading flash ID, SFDP, etc. That is yet another "cost" parallel mode support has -- it adds another thing to SPI MEM (I'm not saying the cost isn't necessarily worth it -- just pointing it out).