[PATCH v2] Nokia RX-51: Enable usbtty serial console by default

Pali Rohár
2020-12-26T17:01:02Z

On Wednesday 23 December 2020 11:35:10 Lokesh Vutla wrote:
> On 22/12/20 9:32 pm, Pali Roh?r wrote:
> > On Tuesday 22 December 2020 21:08:45 Lokesh Vutla wrote:
> >> On 22/12/20 8:47 pm, Pali Roh?r wrote:
> >>> On Tuesday 22 December 2020 20:39:11 Lokesh Vutla wrote:
> >>>>
> >>>>
> >>>> On 22/12/20 8:38 pm, Lokesh Vutla wrote:
> >>>>>
> >>>>>
> >>>>> On 22/12/20 8:36 pm, Lokesh Vutla wrote:
> >>>>>>
> >>>>>>
> >>>>>> On 22/12/20 8:28 pm, Pali Roh?r wrote:
> >>>>>>> On Tuesday 22 December 2020 19:56:51 Lokesh Vutla wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 01/12/20 12:57 am, Pali Roh?r wrote:
> >>>>>>>>> Now when usbtty serial console is fixed in U-Boot enable CONFIG_USB_TTY for
> >>>>>>>>> Nokia RX-51 board by default.
> >>>>>>>>>
> >>>>>>>>> Fix also USB product id as U-Boot ignores CONFIG_USBD_PRODUCTID macro and
> >>>>>>>>> include U-Boot string into USB product name to indicate usage of U-Boot.
> >>>>>>>>>
> >>>>>>>>> CONFIG_CONSOLE_MUX is already used and U-Boot console is available for
> >>>>>>>>> all in/out devices. Therefore there is no need to have separate commands
> >>>>>>>>> 'run sercon', 'run usbcon' and 'run vgacon', so remove them.
> >>>>>>>>>
> >>>>>>>>> As space for U-Boot is limited to 256kB, disable some other unused options
> >>>>>>>>> so CONFIG_USB_TTY can be enabled.
> >>>>>>>>>
> >>>>>>>>> Nokia RX-51 does not have easily accessible UART serial console so the only
> >>>>>>>>> option for easy debugging is to use device's keyboard+screen or this usbtty
> >>>>>>>>> serial console over USB.
> >>>>>>>>>
> >>>>>>>>> Signed-off-by: Pali Roh?r <pali@kernel.org>
> >>>>>>>>> ---
> >>>>>>>>> Changes since v1:
> >>>>>>>>> * Fixed USB product id and product name
> >>>>>>>>> * Disabled some other options to free more space
> >>>>>>>>> * Changes now passed CI tests:
> >>>>>>>>> https://dev.azure.com/u-boot/u-boot/_build/results?buildId=1492&view=results
> >>>>>>>>>
> >>>>>>>>> Note that this patch depends on other Nokia RX-51 patches which are on
> >>>>>>>>> mailing list, otherwise CI tests do not pass:
> >>>>>>>>>
> >>>>>>>>> https://patchwork.ozlabs.org/project/uboot/patch/20201121223011.14262-1-pali at kernel.org/
> >>>>>>>>> https://patchwork.ozlabs.org/project/uboot/patch/20201121223317.14347-1-pali at kernel.org/
> >>>>>>>>> https://patchwork.ozlabs.org/project/uboot/patch/20201129161505.5092-1-pali at kernel.org/
> >>>>>>>>> https://patchwork.ozlabs.org/project/uboot/patch/20201130191034.795-1-pali at kernel.org/
> >>>>>>>>
> >>>>>>>> okay, Ill wait for all these patches to get merged, before I pick this patch.
> >>>>>>>
> >>>>>>> Web pages for all these patches is saying:
> >>>>>>>
> >>>>>>> State: Under Review
> >>>>>>> Delegated to: Lokesh Vutla
> >>>>>>>
> >>>>>>> So I think these patches are also waiting for you.
> >>>>>>
> >>>>>> The main patch I need is this[0]. Without this I am getting a build failure as
> >>>>>> you mentioned in the commit description. So, Until [0] patch is applied I cannot
> >>>>>> apply this patch. Since you combined disabling of other configs in the same
> >>>>>> patch, it is causing my pipeline failure.
> >>>>>>
> >>>>>> Can you split the disabling of other configs into a separate patch so that
> >>>>>> others are unblocked?
> >>>>>
> >>>>> [0]
> >>>>> https://patchwork.ozlabs.org/project/uboot/patch/20201130192715.1793-1-pali at kernel.org/
> >>>>
> >>>> ahh copy paste issues:
> >>>> [0]
> >>>> https://patchwork.ozlabs.org/project/uboot/patch/20201129164618.5829-3-pali at kernel.org/
> >>>
> >>> Sorry, now I'm somehow lost.
> >>>
> >>> All patches are in my git repository git://github.com/pali/u-boot.git in
> >>> branch nokia-rx51. And this branch passed pipeline checks.
> >>
> >> Yeah because there is a usb patch that is not in my queue which is fixing build
> >> issues.
> >>
> >> Let me give more details. Below are the patches that are in my queue:
> >>
> >> [v2] Nokia RX-51: Enable usbtty serial console by default
> >> Nokia RX-51: Do not try calling both ext2load and ext4load
> >> Nokia RX-51: Add test for U-Boot serial console Nokia RX-51:
> >> Nokia RX-51: Convert to CONFIG_DM_MMC
> >> Nokia RX-51: Decrease i2c speed to 100000
> >>
> >> Issue1:
> >> If I apply all these patches I get this build error
> >> https://pastebin.ubuntu.com/p/R7P6z8RJJZ/
> >>
> >> When I saw you queue, the patch [0] is fixing the build error. But it[0] is
> >> assigned to Marek. So I bisecting the error to $patch and dropped it from my
> >> queue for now.
> >
> > Ok. Now I see what you are trying. Problem that all those patches needs
> > to be applied in order as they are in my git tree.
> >
> > So if you have dropped some of those patches (like you wrote) it is
> > expected to see failures.
> >
> >> Issue2:
> >> After applying the below 4 patches, I see the Gitlab pipeline error[1].
> >> Nokia RX-51: Do not try calling both ext2load and ext4load
> >> Nokia RX-51: Add test for U-Boot serial console Nokia RX-51:
> >> Nokia RX-51: Convert to CONFIG_DM_MMC
> >> Nokia RX-51: Decrease i2c speed to 100000
> >>
> >> This error[1] can be solved by disabling unnecessary configs like the ones you
> >> disabled in $patch
> >> +# CONFIG_DM_WARN is not set
> >> +# CONFIG_DM_SEQ_ALIAS is not set
> >> +# CONFIG_BLOCK_CACHE is not set
> >> +# CONFIG_SYS_DEVICE_NULLDEV is not set
> >>
> >> I am asking to send the above as a separate patch so that the 4 patches can be
> >> un blocked.
> >> Hope this is clear.
> >
> > Ok. I can do it, if it helps. But re-arranging and splitting patches
> > into different form just more complicate things. Therefore it would be
> > easier if all those patches (which accumulated for months) could be
> > reviewed and applied in "verified" order.
>
> Unfortunately I cannot merge usb patches. It should go via usb subsystem tree, I
> can only pull platform port patches. If you can split it up, it will unblock the
> 4 patches at least.

I played a bit with it and on my machine/setup disabling option
CONFIG_MMC_VERBOSE in patch "Nokia RX-51: Convert to CONFIG_DM_MMC"
helped.

Could you try adding following line into configs/nokia_rx51_defconfig?

# CONFIG_MMC_VERBOSE is not set

> Thanks and regards,
> Lokesh
>
> >
> >> [0]
> >> https://patchwork.ozlabs.org/project/uboot/patch/20201129164618.5829-3-pali at kernel.org/
> >> [1] https://gitlab.denx.de/u-boot/custodians/u-boot-ti/-/jobs/192532
> >>
> >> Thanks and regards,
> >> Lokesh
> >>
> >>>
> >>> It took me some time to prepare all patches in state that after applying
> >>> all of them whole pipeline pass.
> >>>
> >>> As this starting to be complicated, could you please tell me which
> >>> commit/patch either needs to be modified or if needed how to change
> >>> order of them?
> >>>
> >>>> Thanks and regards,
> >>>> Lokesh
> >>>>
> >>>>
> >>>>>
> >>>>> Sorry missed this.
> >>>>>
> >>>>> Thanks and regards,
> >>>>> Lokesh
> >>>>>
> >>>>>>
> >>>>>> Thanks and regards,
> >>>>>> Lokesh
> >>>>>>
> >>>>>>>
> >>>>>>>> Thanks and regards,
> >>>>>>>> Lokesh
> >>>>>>>>
> >>>>>>>>> ---
> >>>>>>>>> configs/nokia_rx51_defconfig | 8 +++++---
> >>>>>>>>> doc/README.nokia_rx51 | 15 +--------------
> >>>>>>>>> include/configs/nokia_rx51.h | 21 +++++++--------------
> >>>>>>>>> 3 files changed, 13 insertions(+), 31 deletions(-)
> >>>>>>>>>
> >>>>>>>>> diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
> >>>>>>>>> index 0f05fe6fc3..963dd145ce 100644
> >>>>>>>>> --- a/configs/nokia_rx51_defconfig
> >>>>>>>>> +++ b/configs/nokia_rx51_defconfig
> >>>>>>>>> @@ -44,18 +44,16 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=onenand:128k(bootloader)ro,384k(config),256k(l
> >>>>>>>>> CONFIG_ENV_OVERWRITE=y
> >>>>>>>>> CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> >>>>>>>>> # CONFIG_NET is not set
> >>>>>>>>> -CONFIG_TWL4030_LED=y
> >>>>>>>>> # CONFIG_MMC_HW_PARTITIONING is not set
> >>>>>>>>> +# CONFIG_MMC_VERBOSE is not set
> >>>>>>>>> CONFIG_MMC_OMAP_HS=y
> >>>>>>>>> CONFIG_MTD=y
> >>>>>>>>> CONFIG_CONS_INDEX=3
> >>>>>>>>> CONFIG_SYS_NS16550=y
> >>>>>>>>> CONFIG_SPI=y
> >>>>>>>>> CONFIG_USB=y
> >>>>>>>>> -CONFIG_USB_MUSB_HCD=y
> >>>>>>>>> CONFIG_USB_MUSB_UDC=y
> >>>>>>>>> CONFIG_USB_OMAP3=y
> >>>>>>>>> -CONFIG_TWL4030_USB=y
> >>>>>>>>> CONFIG_CFB_CONSOLE=y
> >>>>>>>>> CONFIG_CFB_CONSOLE_ANSI=y
> >>>>>>>>> # CONFIG_VGA_AS_SINGLE_DEVICE is not set
> >>>>>>>>> @@ -66,3 +64,7 @@ CONFIG_DM_I2C=y
> >>>>>>>>> CONFIG_DM_MMC=y
> >>>>>>>>> # CONFIG_DM_DEVICE_REMOVE is not set
> >>>>>>>>> # CONFIG_SYS_MALLOC_F is not set
> >>>>>>>>> +# CONFIG_DM_WARN is not set
> >>>>>>>>> +# CONFIG_DM_SEQ_ALIAS is not set
> >>>>>>>>> +# CONFIG_BLOCK_CACHE is not set
> >>>>>>>>> +# CONFIG_SYS_DEVICE_NULLDEV is not set
> >>>>>>>>> diff --git a/doc/README.nokia_rx51 b/doc/README.nokia_rx51
> >>>>>>>>> index 320b5efc7d..84d1912ddd 100644
> >>>>>>>>> --- a/doc/README.nokia_rx51
> >>>>>>>>> +++ b/doc/README.nokia_rx51
> >>>>>>>>> @@ -24,8 +24,7 @@ called u-boot-gen-combined. It is available in following repository:
> >>>>>>>>> There is support for hardware watchdog. Hardware watchdog is started by
> >>>>>>>>> NOLO so u-boot must kick watchdog to prevent reboot device (but not very
> >>>>>>>>> often, max every 2 seconds). There is also support for framebuffer display
> >>>>>>>>> -output with ANSI escape codes and the N900 HW keyboard input. USB tty works
> >>>>>>>>> -but is disabled because it prevents the current Maemo kernel from booting.
> >>>>>>>>> +output with ANSI escape codes and the N900 HW keyboard input.
> >>>>>>>>>
> >>>>>>>>> When U-Boot is starting it enable IBE bit in Auxiliary Control Register,
> >>>>>>>>> which is needed for Thumb-2 ISA support. It is workaround for errata 430973.
> >>>>>>>>> @@ -49,10 +48,6 @@ Boot from SD or eMMC in this order:
> >>>>>>>>>
> >>>>>>>>> Available additional commands/variables:
> >>>>>>>>>
> >>>>>>>>> - * run sercon - Use serial port for control
> >>>>>>>>> - * run usbcon - Use usbtty for control
> >>>>>>>>> - * run vgacon - Use framebuffer and HW keyboard for control (default)
> >>>>>>>>> -
> >>>>>>>>> * run sdboot - Boot from external SD card (see boot order)
> >>>>>>>>> * run emmcboot - Boot from internal eMMC memory (see boot order)
> >>>>>>>>> * run attachboot - Boot attached kernel image (attached to U-Boot binary)
> >>>>>>>>> @@ -87,14 +82,6 @@ Additional variables for booting kernel:
> >>>>>>>>> and u-boot standard output is set to serial then setup_console_atag is
> >>>>>>>>> automatically set to 1. So output from Maemo kernel would go to serial port.
> >>>>>>>>>
> >>>>>>>>> -USB TTY:
> >>>>>>>>> -
> >>>>>>>>> - Maemo kernel 2.6.28 will crash if u-boot enable usb tty. So USB TTY is disabled.
> >>>>>>>>> - For enabling USB TTY just add this line to file include/configs/nokia_rx51.h
> >>>>>>>>> -
> >>>>>>>>> - #define CONFIG_USB_TTY
> >>>>>>>>> -
> >>>>>>>>> -
> >>>>>>>>> UBIFS support:
> >>>>>>>>>
> >>>>>>>>> UBIFS support is disabled, because U-Boot image is too big and cannot be
> >>>>>>>>> diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
> >>>>>>>>> index 3f2700d8e2..23368de624 100644
> >>>>>>>>> --- a/include/configs/nokia_rx51.h
> >>>>>>>>> +++ b/include/configs/nokia_rx51.h
> >>>>>>>>> @@ -70,10 +70,12 @@
> >>>>>>>>>
> >>>>>>>>> /* USB device configuration */
> >>>>>>>>> #define CONFIG_USB_DEVICE
> >>>>>>>>> +#define CONFIG_USB_TTY
> >>>>>>>>> #define CONFIG_USBD_VENDORID 0x0421
> >>>>>>>>> -#define CONFIG_USBD_PRODUCTID 0x01c8
> >>>>>>>>> +#define CONFIG_USBD_PRODUCTID_CDCACM 0x01c8
> >>>>>>>>> +#define CONFIG_USBD_PRODUCTID_GSERIAL 0x01c8
> >>>>>>>>> #define CONFIG_USBD_MANUFACTURER "Nokia"
> >>>>>>>>> -#define CONFIG_USBD_PRODUCT_NAME "N900"
> >>>>>>>>> +#define CONFIG_USBD_PRODUCT_NAME "N900 (U-Boot)"
> >>>>>>>>>
> >>>>>>>>> #define GPIO_SLIDE 71
> >>>>>>>>>
> >>>>>>>>> @@ -108,15 +110,9 @@ int rx51_kp_getc(struct stdio_dev *sdev);
> >>>>>>>>> /* Environment information */
> >>>>>>>>> #define CONFIG_EXTRA_ENV_SETTINGS \
> >>>>>>>>> "usbtty=cdc_acm\0" \
> >>>>>>>>> - "stdin=serial,vga\0" \
> >>>>>>>>> - "stdout=serial,vga\0" \
> >>>>>>>>> - "stderr=serial,vga\0" \
> >>>>>>>>> - "setcon=setenv stdin ${con};" \
> >>>>>>>>> - "setenv stdout ${con};" \
> >>>>>>>>> - "setenv stderr ${con}\0" \
> >>>>>>>>> - "sercon=setenv con serial; run setcon\0" \
> >>>>>>>>> - "usbcon=setenv con usbtty; run setcon\0" \
> >>>>>>>>> - "vgacon=setenv con vga; run setcon\0" \
> >>>>>>>>> + "stdin=usbtty,serial,vga\0" \
> >>>>>>>>> + "stdout=usbtty,serial,vga\0" \
> >>>>>>>>> + "stderr=usbtty,serial,vga\0" \
> >>>>>>>>> "slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
> >>>>>>>>> "switchmmc=mmc dev ${mmcnum}\0" \
> >>>>>>>>> "kernaddr=0x82008000\0" \
> >>>>>>>>> @@ -198,9 +194,6 @@ int rx51_kp_getc(struct stdio_dev *sdev);
> >>>>>>>>> #define CONFIG_POSTBOOTMENU \
> >>>>>>>>> "echo;" \
> >>>>>>>>> "echo Extra commands:;" \
> >>>>>>>>> - "echo run sercon - Use serial port for control.;" \
> >>>>>>>>> - "echo run usbcon - Use usbtty for control.;" \
> >>>>>>>>> - "echo run vgacon - Use framebuffer/keyboard.;" \
> >>>>>>>>> "echo run sdboot - Boot from SD card slot.;" \
> >>>>>>>>> "echo run emmcboot - Boot internal eMMC memory.;" \
> >>>>>>>>> "echo run attachboot - Boot attached kernel image.;" \
> >>>>>>>>>