On Fri, Apr 01, 2016 at 01:13:06AM +0530, punnaiah choudary kalluri wrote: > Hi, > > We are using the pl353 smc controller for interfacing the nand in our zynq SOC. > The driver for this controller is currently under mainline review. > Recently we are moved to 4.4 kernel and observing issues with the driver. > while debug, found that the issue is with the virtual address returned from > the ioremap is not aligned to the physical address and causing nand > access failures. > the nand controller physical address starts at 0xE1000000 and the size is 16MB. > the ioremap function in 4.3 kernel returns the virtual address that is > aligned to the size > but not the case in 4.4 kernel. :(. I had actually ran into this, too, as I was evaluating the use of the upstream-targetted pl353 stuff; sorry I didn't say anything. > this controller uses the bits [31:24] as base address and use rest all > bits for configuring adders cycles, chip select information. so it > expects the virtual address also aligned to 0xFF000000 otherwise the > nand commands issued will fail. The driver _currently_ expects the virtual address to be 16M aligned, but is that a hard requirement? It seems possible that the driver could be written without this assumption, correct? This would mean that the driver would need to maintain the cs/cycles configuration state outside of the mapped virtual address, and then calculate + add the calculated offset to the base. Would that work? I had been meaning to give it a try, but haven't gotten around to it. Josh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>