[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [XEN PATCH v2 2/2] xen/arm: Configure early printk via Kconfig
On Sun, Mar 08, 2020 at 06:29:02PM +0000, Julien Grall wrote: > On 06/03/2020 17:42, Anthony PERARD wrote: > > - - pl011,<BASE_ADDRESS>,<BAUD_RATE> > > - - <BAUD_RATE> is, optionally a baud rate which should be used to > > - configure the UART at start of day. > > - > > - If <BAUD_RATE> is not given then the code will not try to > > - initialize the UART, so that bootloader or firmware settings can > > - be used for maximum compatibility. > > Why did this paragraph and... > > > - - scif,<BASE_ADDRESS>,<VERSION> > > - - SCIF<VERSION> is, optionally, the interface version of the UART. > > - > > - If <VERSION> is not given then the default interface version (SCIF) > > - will be used. > > ... this one were removed? They actually provide information to the user of > what will happen if they parameters are left to their default value. It was replaced by: - pl011 - CONFIG_EARLY_UART_BAUD_RATE is, optionally a baud rate which should be used to configure the UART at start of day. Select CONFIG_EARLY_UART_INIT to have the option, if that's set to N then the code will not try to initialize the UART, so that bootloader or firmware settings can be used for maximum compatibility. - scif - CONFIG_EARLY_UART_SCIF_VERSION is, optionally, the interface version of the UART. Default to version NONE. So they aren't really removed, just reworked I think. But I probably need to rework the pl011 one as they may not need to expose EARLY_UART_INIT to users. > > - For all other uarts there are no additional options. > > As a convenience it is also possible to select from a list of > > -predefined configurations using CONFIG_EARLY_PRINTK=mach where mach is > > -the name of the machine: > > +predefined configurations via "Enable early printk for a specific platform > > +(deprecated)". > > - brcm: printk with 8250 on Broadcom 7445D0 boards with A15 processors. > > - dra7: printk with 8250 on DRA7 platform > > @@ -58,7 +56,7 @@ the name of the machine: > > - xgene-storm: printk with 820 on Xgene storm platform > > - zynqmp: printk with Cadence UART for Xilinx ZynqMP SoCs > > > I think you want to drop the list of early printk alias as they will be > invalid after this patch. Will do. > > diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug > > new file mode 100644 > > index 000000000000..5111f89043ca > > --- /dev/null > > +++ b/xen/arch/arm/Kconfig.debug > > @@ -0,0 +1,208 @@ > > +choice > > + bool "UART drivers for early printk" > > + optional > > + help > > + Choose one of the UART driver, then you'll have to specifie the > > s/specifie/specify/ > > > + parameters, like the base address. > > + > > + Alternatively, there are platform specific options > > + config EARLY_UART_CHOICE_8250 > > + select EARLY_UART_8250 > > + bool "8250 driver" [...] > > +endchoice > > + > > + > > +choice > > + bool "Enable early printk for a specific platform (deprecated)" > > + depends on !(EARLY_UART_CHOICE_8250 || EARLY_UART_CHOICE_CADENCE || > > EARLY_UART_CHOICE_EXYNOS4210 || EARLY_UART_CHOICE_MESON || > > EARLY_UART_CHOICE_MVEBU || EARLY_UART_CHOICE_PL011 || > > EARLY_UART_CHOICE_SCIF) > The split is going to cause confusion to the users because he/she may select > the UART type first and then lose access to this list. > > Furthermore, the depends on !(...) is pretty horrible to have. This is also > going to make more difficult to add new UART type (there are a few more > existing...). > > So I would prefer if we have one list. That probably can be done. I'll need to add more help, and maybe better descriptions. > > + optional > > + help > > + Those are platform specific options for early printk. This are > > + deprecated and will soon be removed. > > + > > + Select a UART driver instead. > > + > > + config EARLY_PRINTK_BRCM > > + bool "printk with 8250 on Broadcom 7445D0 boards with A15 > > processors" > > + select EARLY_UART_8250 [..] > > + config EARLY_PRINTK_ZYNQMP > > + bool "printk with Cadence UART for Xilinx ZynqMP SoCs" > > + select EARLY_UART_CADENCE > > + depends on ARM_64 > > + help > > + Say Y here if you want the early printk support on Xilinx > > + ZynQMP platform. > > This is a bit odd to add a description for one Kconfig and not all the > other. My preference would be to describe all of them, but I understand this > will require extra work. I just kept the description from your patch and didn't bother to write help messages for the other. :-) I think I can take the time now to rework the prompts and help messages of all configuration options. > > + > > +endchoice > > + > > + > > +config EARLY_UART_8250 > > + bool > > +config EARLY_UART_CADENCE > > + bool > > +config EARLY_UART_EXYNOS4210 > > + bool > > +config EARLY_UART_MESON > > + bool > > +config EARLY_UART_MVEBU > > + bool > > +config EARLY_UART_PL011 > > + bool > > +config EARLY_UART_SCIF > > + bool > > + > > +config EARLY_PRINTK > > + depends on EARLY_UART_8250 || EARLY_UART_CADENCE || > > EARLY_UART_EXYNOS4210 || EARLY_UART_MESON || EARLY_UART_MVEBU || > > EARLY_UART_PL011 || EARLY_UART_SCIF > > Please rework this and let each EARLY_UART_* to select EARLY_PRINTK. I though that wasn't possible, but it seems to work. I didn't understand well enough how select worked. But having: config EARLY_UART_8250 select EARLY_PRINTK works, so I do that, and remove the long list of dependencies on other config options. > > +config EARLY_UART_INIT > > + depends on EARLY_UART_PL011 > > + bool "Initialize UART early" > > + default y if EARLY_PRINTK_FASTMODEL > > + help > > + Select N to keep the settings that the bootloader or firmware > > + have selected, for maximum compatibility. > > + > > + Select Y to initialize the UART with a new baud rate. > > At the moment, we rely on the firmware to initialize the UART correctly (and > not only the baud rate...). But it may be possible that it was done > incorrectly. So the earlyprintk code may require to reset the UART. In the > case, the user should have no choice as this as a pretty low impact. > > Can we instead select EARLY_UART_INIT based on whether the BAUD_RATE has > been selected? I had issue trying to have _INIT depends on BAUD_RATE != 0. That why I did this. But trying again with: config EARLY_UART_INIT depends on EARLY_UART_PL011 && EARLY_UART_PL011_BAUD_RATE != 0 def_bool y seems to work fine. So I'll do that stop exposing _INIT to users. Thanks, -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |