* Mainlining Linux Sunxi SoC AW USB @ 2021-07-24 9:54 Petr Vorel 2021-07-24 10:29 ` Greg KH 0 siblings, 1 reply; 14+ messages in thread From: Petr Vorel @ 2021-07-24 9:54 UTC (permalink / raw) To: linux-usb Hi, I'd like to cleanup and mainline Linux Sunxi SoC AW USB host driver [1]. What are the most ugly parts which should be replaced? Loading module does not complain about anything? [267044.912155] awusb: loading out-of-tree module taints kernel. [267044.912257] awusb: module verification failed: signature and/or required key missing - tainting kernel [267044.913399] usbcore: registered new interface driver allwinner [267044.913401] awusb: v0.5:AW USB driver BTW should it go to the host/Kconfig or misc/Kconfig or elsewhere? Thanks for info. Kind regards, Petr [1] https://github.com/linux-sunxi/sunxi-livesuite/blob/master/awusb/awusb.c ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 9:54 Mainlining Linux Sunxi SoC AW USB Petr Vorel @ 2021-07-24 10:29 ` Greg KH 2021-07-24 13:41 ` Petr Vorel 0 siblings, 1 reply; 14+ messages in thread From: Greg KH @ 2021-07-24 10:29 UTC (permalink / raw) To: Petr Vorel; +Cc: linux-usb On Sat, Jul 24, 2021 at 11:54:40AM +0200, Petr Vorel wrote: > Hi, > > I'd like to cleanup and mainline Linux Sunxi SoC AW USB host driver [1]. Great! > What are the most ugly parts which should be replaced? Loading module does not > complain about anything? > [267044.912155] awusb: loading out-of-tree module taints kernel. That will be fixed by moving it into the tree. > [267044.912257] awusb: module verification failed: signature and/or required key missing - tainting kernel That shows a mis-match between you building a kernel and what keys were used to build the distro kernel you are using. > [267044.913399] usbcore: registered new interface driver allwinner > [267044.913401] awusb: v0.5:AW USB driver Looks fine. > BTW should it go to the host/Kconfig or misc/Kconfig or elsewhere? No idea, is this a host driver or does it control a USB device you plug into the system? > [1] https://github.com/linux-sunxi/sunxi-livesuite/blob/master/awusb/awusb.c I looked at this, and it's a device driver, not a host controller driver. But it looks to need a userspace program for the ioctls, where is that code at? And why does it need any ioctls at all? 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? thanks, greg k-h ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 10:29 ` Greg KH @ 2021-07-24 13:41 ` Petr Vorel 2021-07-24 14:17 ` Greg KH 2021-07-24 14:49 ` Felipe Balbi 0 siblings, 2 replies; 14+ messages in thread From: Petr Vorel @ 2021-07-24 13:41 UTC (permalink / raw) To: Greg KH; +Cc: linux-usb, linux-sunxi, linux-sunxi Hi Greg, [ Cc: linux-sunxi@lists.linux.dev and linux-sunxi@googlegroups.com, which I should have done before ] > On Sat, Jul 24, 2021 at 11:54:40AM +0200, Petr Vorel wrote: > > Hi, > > I'd like to cleanup and mainline Linux Sunxi SoC AW USB host driver [1]. > Great! > > What are the most ugly parts which should be replaced? Loading module does not > > complain about anything? > > [267044.912155] awusb: loading out-of-tree module taints kernel. > That will be fixed by moving it into the tree. > > [267044.912257] awusb: module verification failed: signature and/or required key missing - tainting kernel > That shows a mis-match between you building a kernel and what keys were > used to build the distro kernel you are using. > > [267044.913399] usbcore: registered new interface driver allwinner > > [267044.913401] awusb: v0.5:AW USB driver > Looks fine. Yep, I meant by this, that I see nothing serious (i.e. agree with you). > > BTW should it go to the host/Kconfig or misc/Kconfig or elsewhere? > No idea, is this a host driver or does it control a USB device you plug > into the system? > > [1] https://github.com/linux-sunxi/sunxi-livesuite/blob/master/awusb/awusb.c > I looked at this, and it's a device driver, not a host controller > driver. > But it looks to need a userspace program for the ioctls, where is that > code at? And why does it need any ioctls at all? > 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. Kind regards, Petr [2] https://github.com/linux-sunxi/sunxi-livesuite [3] https://github.com/linux-sunxi/sunxi-livesuite/tree/master/x86-64 > thanks, > greg k-h ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 13:41 ` Petr Vorel @ 2021-07-24 14:17 ` Greg KH 2021-07-24 14:22 ` Petr Vorel 2021-07-24 14:49 ` Felipe Balbi 1 sibling, 1 reply; 14+ messages in thread From: Greg KH @ 2021-07-24 14:17 UTC (permalink / raw) To: Petr Vorel; +Cc: linux-usb, linux-sunxi, linux-sunxi 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. thanks, greg k-h ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:17 ` Greg KH @ 2021-07-24 14:22 ` Petr Vorel 2021-07-24 14:45 ` [linux-sunxi] " Christopher Obbard 2021-07-24 14:54 ` Jernej Škrabec 0 siblings, 2 replies; 14+ messages in thread From: Petr Vorel @ 2021-07-24 14:22 UTC (permalink / raw) To: Greg KH; +Cc: linux-usb, linux-sunxi, linux-sunxi 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 :(. Kind regards, Petr > thanks, > greg k-h ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-sunxi] Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:22 ` Petr Vorel @ 2021-07-24 14:45 ` Christopher Obbard 2021-07-24 16:27 ` Petr Vorel 2021-07-24 14:54 ` Jernej Škrabec 1 sibling, 1 reply; 14+ messages in thread From: Christopher Obbard @ 2021-07-24 14:45 UTC (permalink / raw) To: petr.vorel; +Cc: Greg KH, linux-usb, linux-sunxi, mailing list linux-sunxi Peter, On Sat, 24 Jul 2021 at 15:22, Petr Vorel <petr.vorel@gmail.com> 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. hth, Chris > > Kind regards, > Petr > > > thanks, > > > greg k-h > > -- > You received this message because you are subscribed to the Google Groups "linux-sunxi" group. > To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com. > To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/YPwiGB7VnzECN/jg%40pevik. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-sunxi] Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:45 ` [linux-sunxi] " Christopher Obbard @ 2021-07-24 16:27 ` Petr Vorel 2021-07-24 17:04 ` Andre Przywara 0 siblings, 1 reply; 14+ messages in thread From: Petr Vorel @ 2021-07-24 16:27 UTC (permalink / raw) To: Christopher Obbard; +Cc: linux-sunxi, mailing list linux-sunxi Hi Chris, all, [ Dropping Greg and linux-usb@vger.kernel.org ] > Peter, > On Sat, 24 Jul 2021 at 15:22, Petr Vorel <petr.vorel@gmail.com> 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? Kind regards, Petr [1] https://wiki.debian.org/InstallingDebianOn/Allwinner > hth, > Chris > > Kind regards, > > Petr > > > thanks, > > > greg k-h > > -- > > You received this message because you are subscribed to the Google Groups "linux-sunxi" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com. > > To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/YPwiGB7VnzECN/jg%40pevik. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-sunxi] Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 16:27 ` Petr Vorel @ 2021-07-24 17:04 ` Andre Przywara 2021-07-25 23:31 ` Petr Vorel 2021-07-28 14:16 ` Maxime Ripard 0 siblings, 2 replies; 14+ messages in thread From: Andre Przywara @ 2021-07-24 17:04 UTC (permalink / raw) To: Petr Vorel; +Cc: Christopher Obbard, linux-sunxi, mailing list linux-sunxi On Sat, 24 Jul 2021 18:27:53 +0200 Petr Vorel <petr.vorel@gmail.com> wrote: Hi Petr, > [ Dropping Greg and linux-usb@vger.kernel.org ] > > Peter, > > > On Sat, 24 Jul 2021 at 15:22, Petr Vorel <petr.vorel@gmail.com> 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, ...). Cheers, Andre [1] https://linux-sunxi.org/NextThingCo_CHIP ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-sunxi] Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 17:04 ` Andre Przywara @ 2021-07-25 23:31 ` Petr Vorel 2021-07-28 14:16 ` Maxime Ripard 1 sibling, 0 replies; 14+ messages in thread From: Petr Vorel @ 2021-07-25 23:31 UTC (permalink / raw) To: Andre Przywara; +Cc: Christopher Obbard, linux-sunxi, mailing list linux-sunxi Hi Andre, > On Sat, 24 Jul 2021 18:27:53 +0200 > Petr Vorel <petr.vorel@gmail.com> wrote: > Hi Petr, > > [ Dropping Greg and linux-usb@vger.kernel.org ] > > > Peter, > > > On Sat, 24 Jul 2021 at 15:22, Petr Vorel <petr.vorel@gmail.com> 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. I have no idea which type of NAND device has. It's device based on low end tablet. Can I find this info on running system (sysfs, /proc, ...). dmesg does not say anything special. Or is it possible to find it in source code? nand.ko module is some out of tree code in modules/nand (kernel 3.3): description: Generic NAND flash driver code author: nand flash groups But nothing mentions SLC or MLC. Or do I have to have HW spec? > 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, ...). Thanks for detailed info. It seems I'll just accept that for mainline my A31 needs sd-card. Kind regards, Petr > Cheers, > Andre > [1] https://linux-sunxi.org/NextThingCo_CHIP ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-sunxi] Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 17:04 ` Andre Przywara 2021-07-25 23:31 ` Petr Vorel @ 2021-07-28 14:16 ` Maxime Ripard 1 sibling, 0 replies; 14+ messages in thread From: Maxime Ripard @ 2021-07-28 14:16 UTC (permalink / raw) To: Andre Przywara Cc: Petr Vorel, Christopher Obbard, linux-sunxi, mailing list linux-sunxi [-- Attachment #1: Type: text/plain, Size: 4789 bytes --] 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 <petr.vorel@gmail.com> wrote: > > Hi Petr, > > > [ Dropping Greg and linux-usb@vger.kernel.org ] > > > Peter, > > > > > On Sat, 24 Jul 2021 at 15:22, Petr Vorel <petr.vorel@gmail.com> 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:22 ` Petr Vorel 2021-07-24 14:45 ` [linux-sunxi] " Christopher Obbard @ 2021-07-24 14:54 ` Jernej Škrabec 2021-07-24 16:46 ` Petr Vorel 1 sibling, 1 reply; 14+ messages in thread From: Jernej Škrabec @ 2021-07-24 14:54 UTC (permalink / raw) To: Greg KH, Petr Vorel; +Cc: linux-usb, linux-sunxi, linux-sunxi Dne sobota, 24. julij 2021 ob 16:22:16 CEST je Petr Vorel napisal(a): > 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 :(. Community is mostly concerned with mainline kernel nowadays and thus with standard tools. Few people still use vendor (BSP) kernel and most of those use it without LiveSuit (like custom distro images). Now and then people ask about LiveSuit on IRC, but they usually get little response. Best regards, Jernej > > Kind regards, > Petr > > > thanks, > > > > greg k-h ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:54 ` Jernej Škrabec @ 2021-07-24 16:46 ` Petr Vorel 0 siblings, 0 replies; 14+ messages in thread From: Petr Vorel @ 2021-07-24 16:46 UTC (permalink / raw) To: Jernej Škrabec; +Cc: linux-sunxi, linux-sunxi Hi Jernej, [ Dropping Greg and linux-usb@vger.kernel.org ] > Dne sobota, 24. julij 2021 ob 16:22:16 CEST je Petr Vorel napisal(a): > > 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 :(. > Community is mostly concerned with mainline kernel nowadays and thus with > standard tools. Few people still use vendor (BSP) kernel and most of those use > it without LiveSuit (like custom distro images). Understand. LiveSuit is for me a way back to original firmware. Kind regards, Petr > Now and then people ask about LiveSuit on IRC, but they usually get little > response. > Best regards, > Jernej ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 13:41 ` Petr Vorel 2021-07-24 14:17 ` Greg KH @ 2021-07-24 14:49 ` Felipe Balbi 2021-07-24 16:34 ` Petr Vorel 1 sibling, 1 reply; 14+ messages in thread From: Felipe Balbi @ 2021-07-24 14:49 UTC (permalink / raw) To: Petr Vorel; +Cc: Greg KH, linux-usb, linux-sunxi, linux-sunxi Hi, Petr Vorel <petr.vorel@gmail.com> writes: >> > [1] https://github.com/linux-sunxi/sunxi-livesuite/blob/master/awusb/awusb.c > >> 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. looks like you could implement that entirely in userspace with libusb ;-) -- balbi ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Mainlining Linux Sunxi SoC AW USB 2021-07-24 14:49 ` Felipe Balbi @ 2021-07-24 16:34 ` Petr Vorel 0 siblings, 0 replies; 14+ messages in thread From: Petr Vorel @ 2021-07-24 16:34 UTC (permalink / raw) To: Felipe Balbi; +Cc: linux-sunxi, linux-sunxi Hi Felipe, [ Dropping Greg and linux-usb@vger.kernel.org ] > Hi, > Petr Vorel <petr.vorel@gmail.com> writes: > >> > [1] https://github.com/linux-sunxi/sunxi-livesuite/blob/master/awusb/awusb.c > >> 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. > looks like you could implement that entirely in userspace with libusb ;-) Thanks for a hint. Yes, whole thing should be able to implement in userspace. I'll have look if I'm able to reveal what current userspace code (LiveSuit) does. The goal is to have simple command line tool (no GUI). Kind regards, Petr ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2021-07-28 14:16 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-24 9:54 Mainlining Linux Sunxi SoC AW USB Petr Vorel 2021-07-24 10:29 ` Greg KH 2021-07-24 13:41 ` Petr Vorel 2021-07-24 14:17 ` Greg KH 2021-07-24 14:22 ` Petr Vorel 2021-07-24 14:45 ` [linux-sunxi] " Christopher Obbard 2021-07-24 16:27 ` Petr Vorel 2021-07-24 17:04 ` Andre Przywara 2021-07-25 23:31 ` Petr Vorel 2021-07-28 14:16 ` Maxime Ripard 2021-07-24 14:54 ` Jernej Škrabec 2021-07-24 16:46 ` Petr Vorel 2021-07-24 14:49 ` Felipe Balbi 2021-07-24 16:34 ` Petr Vorel
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.