Hi, On Sat, Jul 24, 2021 at 06:04:32PM +0100, Andre Przywara wrote: > On Sat, 24 Jul 2021 18:27:53 +0200 > Petr Vorel wrote: > > Hi Petr, > > > [ Dropping Greg and linux-usb@vger.kernel.org ] > > > Peter, > > > > > On Sat, 24 Jul 2021 at 15:22, Petr Vorel wrote: > > > > > > Hi Greg, > > > > > > > On Sat, Jul 24, 2021 at 03:41:42PM +0200, Petr Vorel wrote: > > > > > > > Why is this even a driver at all, it looks like you can write a small > > > > > > > userspace program using libusb to do everything it does, right? What > > > > > > > exactly is this driver needed for? > > > > > > > > I'm sorry for not providing more info at the beginning. This is a driver for > > > > > > host computer (i.e. developers laptop) used by LiveSuit tool [2] to flash Images > > > > > > to the NAND of Allwinner devices. LiveSuit itself [3] is unfortunately provided > > > > > > only in binary form. The only open source code with GPL v2 license is awusb > > > > > > driver. Thus I thought I could ease my life with upstreaming at least the > > > > > > kernel driver. But maybe it's not a good idea. I'm using LiveSuit for flashing > > > > > > Allwinner A31, but it requires quite old distro due libqtgui4. Maybe sunxi folks > > > > > > use something newer nowadays, but I haven't found anything in their wiki. > > > > > > > Ah, that's not going to be good then. Really, this doesn't seem to need > > > > > to be a driver at all, and the ioctls are really strange so we would > > > > > need to change them anyway before it could be merged. But with no > > > > > access to userspace code, that will be quite difficult, so I would push > > > > > back on allwinner and have them work on resolving this. > > > > Understand, it makes sense. Thanks for your time! > > > > > > @Sunxi community: am I missing something? Using LiveSuit with old distro chroot > > > > and Xephyr with out-of-tree module isn't fun :(. > > > > > Suggest you take a look at sunxi-tools - specifically the sunxi-fel > > > tool. This is a libusb-based userland tool to talk to these devices. > > > I'm not sure if it supports flashing to nand on A31 - never tried it - > > > but have used it to flash to eMMC and SPI flash on their other chips. > > Thanks for a tip. Looking into sources it does not look like sunxi-fel supports > > NAND. > > > > Also from Debian wiki [1] (which describes bootable SD Card) it looks like only > > old Allwinner u-boot supported access to NAND, thus I'd be surprised if > > sunxi-tools supported it. sunxi-bootinfo does not implement NAND, > > sunxi-nand-image-builder (which is not built by default) creates raw NAND > > images, but now word about flashing. > > > > I wonder why NAND is (probably) not supported by sunxi? Lack of documentation? > > Pure NAND is getting rarer these days, on modern boards we see mostly > eMMC now (maybe SPI NAND). So NAND is only a concern for older SoCs. > > There is (limited) NAND support for mainline U-Boot on the C.H.I.P. > boards[1], which use an A13 (derivative). But reliable operation is > only possible with SLC NAND, which means only on the Chip Pro board, > IIUC. Most boards will probably utilise MLC (or worse) NAND these days, > where effects like write and read disturb make operation more > complicated. Maxime has some stories to tell about this. > So it would be first good to know if you have SLC NAND or not. > > Because of this direct support for NAND in the tools is understandably > "limited" (as in: non-existent). Except for SPI NOR flash there is no > "direct" flashing support (for eMMC) in the tools anyway, it just relies > on U-Boot support. > How this works is that you use sunxi-fel to upload a (mainline) U-Boot > binary directly into DRAM, and launch that. Then you can use the full > functionality of U-Boot to load your image. Most popular for NAND > support seems to be U-Boot's Android Fastboot implementation over a USB > gadget device, so you can use the off-the-shelf fastboot tool on your > host computer to flash the NAND. Other possibilities would be to use > USB host support or TFTP to first load an image into DRAM, then use > U-Boot commands to write that into the NAND flash. > > To my knowledge NAND flash in U-Boot *only* works on the A13/R8/GR8 > chips with SLC NAND, and is only enabled and tested on the Chip boards. > Every other combination would require some work; much more work the > farther you move from there (other SoC, MLC, ...). It works on the A33 as well (the Nintendo board has support for it). And I guess it works with virtually any SoC, the culprit really is MLC vs SLC, the NAND controller hasn't really changed. Maxime