Re: [PATCH] serial: msm_geni_serial_console : Add Earlycon support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 06, 2020 at 05:01:52PM +0530, Mukesh, Savaliya wrote:
> 
> On 4/29/2020 11:08 PM, Greg KH wrote:
> > On Wed, Apr 29, 2020 at 10:49:34PM +0530, Mukesh, Savaliya wrote:
> > > From: Mukesh Kumar Savaliya <msavaliy@xxxxxxxxxxxxxx>
> > > 
> > > This change enables earlyconsole support as static driver for geni
> > > based UART. Kernel space UART console driver will be generic for
> > > console and other usecases of UART.
> > > 
> > > Signed-off-by: Mukesh Kumar Savaliya <msavaliy@xxxxxxxxxxxxxx>
> > > ---
> > >   drivers/tty/serial/Kconfig                   |  15 +
> > >   drivers/tty/serial/Makefile                  |   1 +
> > >   drivers/tty/serial/msm_geni_serial_console.c | 525 +++++++++++++++++++
> > >   3 files changed, 541 insertions(+)
> > >   create mode 100644 drivers/tty/serial/msm_geni_serial_console.c
> > > 
> > > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > > index 0aea76cd67ff..ded19d80e696 100644
> > > --- a/drivers/tty/serial/Kconfig
> > > +++ b/drivers/tty/serial/Kconfig
> > > @@ -956,6 +956,21 @@ config SERIAL_MSM_CONSOLE
> > >   	select SERIAL_CORE_CONSOLE
> > >   	select SERIAL_EARLYCON
> > > +config SERIAL_MSM_GENI_HALF_SAMPLING
> > > +	bool "Changes clock divider which impacts sampling rate for QUP HW ver greater than 2.5.0"
> > > +	help
> > > +	  Clock divider value should be doubled for QUP hardware version
> > > +	  greater than 2.5.0.
> > How do we know this?  Can't this be dynamically determined at runtime?
> > What about kernels that want to be built for both types of hardware at
> > the same time?
> 
> This will vary for different hardware only if QUP version is lower than
> this.
> 
> We can not determine this dynamically because register address space to read
> QUP version is in QUP wrapper space and that also keep varying per target.
> 
> we only  get internal SE address base in cmdline arg.

I don't understand.  So does this mean we can not build a single kernel
image with support for both?

Why can't you detect "version 2.5.0 or greater" at runtime?  How do you
know this at kernel build time and not at runtime?

We can't add options that prevent generic versions of the kernel from
being able to be built, as that means you just broke kernels that did
work, right?



> 
> > 
> > > +	  As earlycon can't have HW version awareness, decision is taken
> > > +	  based on the configuration.
> > > +
> > > +config SERIAL_MSM_GENI_EARLY_CONSOLE
> > > +	bool "MSM on-chip GENI HW based early console support"
> > > +	select SERIAL_MSM_GENI_HALF_SAMPLING
> > > +	help
> > > +	  Serial early console driver for Qualcomm Technologies Inc's GENI
> > > +	  based QUP hardware.
> > Why can't we have early console without SERIAL_MSM_GENI_HALF_SAMPLING?
> > 
> > Why are these tied directly to each other?  Do you really need 2
> > options?
> HALF_SAMPLING controlls the sampling rate of UART HW, if not then logs come
> garbled due to wrong sampling.

I do not understand what you mean here.  Again, why can this not be
detected at runtime?

Can you split this into two patches, one for the console driver, and one
for the crazy new hardware for newer systems?

thanks,

greg k-h



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux