All of lore.kernel.org
 help / color / mirror / Atom feed
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RFC v2 04/14] ARM: debug: provide 8250 debug uart register shift configuration option
Date: Tue, 16 Jul 2013 16:09:54 -0400	[thread overview]
Message-ID: <51E5A892.7060309@ti.com> (raw)
In-Reply-To: <20130716192403.GA13150@n2100.arm.linux.org.uk>

On Tuesday 16 July 2013 03:24 PM, Russell King - ARM Linux wrote:
> On Tue, Jul 16, 2013 at 08:16:58PM +0100, Russell King - ARM Linux wrote:
>> On Tue, Jul 16, 2013 at 02:38:48PM -0400, Santosh Shilimkar wrote:
>>> Just a question. Exposing selection choice for UART port
>>> and probably flow control is just fine, but do we need to
>>> really need config entries for SHIFT, PA, VA etc ?
>>
>> Let's look at the original problem.  We have lots of files in
>> arch/arm/include/debug who's sole purpose is to define a pair of base
>> addresses.  Maybe around 500 lines of code doing just that - though
>> much of it is copyright notices (can someone explain to me the point
>> of claiming copyright on four lines of code defining a base address of
>> a UART which is, apart from the addresses themselves, identical with
>> every other damned file?)
>>
>> What this series does is remove many of those files by consolidating
>> much of them into a much denser way to represent all this variability.
>> However, this doesn't really address the root problem, which is that
>> we have all this information in the kernel, which needs to be added
>> to every single time we have a new platform come along no matter what
>> it is.
>>
>> We need to stop that from happening - we need a way for people to tell
>> the kernel where their UART is without having to load the kernel up
>> with lots of platform specific information [*].
>>
>> Also, even without this, the debug menu has become something of a
>> sprawling mess, with various people re-implementing what's already
>> there presumably because they don't look/don't bother to research what
>> support is already there - and is another source of constant additions.
>>
>> So, the idea that every platform gets to somehow put its UART addresses
>> into the kernel image isn't scalable.  Either we end up with lots of
>> defaults in a Kconfig wihch are also prone to merge conflicts, or we
>> end up with lots of files in arch/arm/include/debug defining the base
>> addresses.
>>
>> We need to stop all of these problems from happening before they
>> become a big headache for us - imagine Linus' reaction when our debug
>> menu grows to be the largest Kconfig file in the kernel tree!  Do you
>> want to be there when that happens?  We're the 22nd biggest Kconfig
>> file already at 25K - there's only one debug Kconfig larger and that's
>> the main lib/Kconfig.debug one which has recently been through a cleanup.
>>
>> Therefore, the idea is to provide _generic_ options which people can
>> set according to their platforms needs.  Remember, this is *supposed*
>> to be a developer tool, not a user tool, so asking for addresses and
>> other parameters is perfectly acceptable - just make sure that they're
>> documented in a reasonable place.
> 
> And as if to prove the point, while writing that email, a patch dropped
> into my mailbox:
> 
> "ARM: BCM53XX: initial support for the BCM5301/BCM470X"
> 
> which adds yet another 8250 debug UART where the only difference between
> it and the others are its two base addresses, and in order to do that
> it needs to add 25 or so more lines - 19 lines in a header file and six
> in arch/arm/Kconfig.debug.
> 
> With the solution I'm proposing above, that could be:
> 
> - zero lines if you just set the options via Kconfig
> - one, two or maybe at most three lines if you include it with some
>   documentation file already in the kernel
> 
Fair enough. Sorry I missed the point about providing the LL debug
information with config entries than adding the code. It indeed
doable as long as the information is documented as you said.

Thanks for explaining the goal of the series again.

Regards,
Santosh 

  reply	other threads:[~2013-07-16 20:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-16 16:32 [PATCH RFC v2 0/14] Clean up debugging support Russell King - ARM Linux
2013-07-16 16:34 ` [PATCH RFC v2 01/14] ARM: debug: fix wording error in DEBUG_LL_UART_NONE option help Russell King
2013-07-16 16:35 ` [PATCH RFC v2 02/14] ARM: debug: clean up low level kernel debugging selection Russell King
2013-07-16 16:36 ` [PATCH RFC v2 03/14] ARM: debug: provide 8250 debug uart flow control configuration option Russell King
2013-07-16 16:37 ` [PATCH RFC v2 04/14] ARM: debug: provide 8250 debug uart register shift " Russell King
2013-07-16 18:38   ` Santosh Shilimkar
2013-07-16 19:16     ` Russell King - ARM Linux
2013-07-16 19:24       ` Russell King - ARM Linux
2013-07-16 20:09         ` Santosh Shilimkar [this message]
2013-07-16 16:38 ` [PATCH RFC v2 05/14] ARM: debug: provide 8250 debug uart phys/virt address configuration options Russell King
2013-07-16 16:39 ` [PATCH RFC v2 06/14] ARM: debug: move 8250 debug include into arch/arm/include/debug/ Russell King
2013-07-16 16:40 ` [PATCH RFC v2 07/14] ARM: debug: add support for word accesses to debug/8250.S Russell King
2013-07-16 16:41 ` [PATCH RFC v2 08/14] ARM: debug: provide PL01x debug uart phys/virt address configuration options Russell King
2013-07-17  9:26   ` Pawel Moll
2013-07-16 16:42 ` [PATCH RFC v2 09/14] ARM: debug: move PL01X debug include into arch/arm/include/debug/ Russell King
2013-07-16 16:43 ` [PATCH RFC v2 10/14] ARM: debug: provide generic option choices for 8250 and PL01x ports Russell King
2013-07-16 16:44 ` [PATCH RFC v2 11/14] ARM: debug: remove DEBUG_ROCKCHIP_UART Russell King
2013-07-16 16:45 ` [PATCH RFC v2 12/14] ARM: debug: move keystone debug to generic 8250 code Russell King
2013-07-16 18:35   ` Santosh Shilimkar
2013-07-16 16:46 ` [PATCH RFC v2 13/14] ARM: debug: move davinci " Russell King
2013-07-17 12:05   ` Sekhar Nori
2013-07-17 17:02     ` Russell King - ARM Linux
2013-07-18 14:08       ` Sekhar Nori
2013-07-16 16:47 ` [PATCH RFC v2 14/14] ARM: debug: move Spear debug to generic PL01x code Russell King
2013-07-17  5:18   ` Viresh Kumar
2013-07-16 23:36 ` [PATCH RFC v2 0/14] Clean up debugging support H Hartley Sweeten
2013-07-17 17:04 ` Russell King - ARM Linux
2013-07-17 17:51   ` H Hartley Sweeten
2013-07-20 16:43   ` Andrew Lunn
2013-07-22 11:06     ` Russell King - ARM Linux
2013-07-22 15:53 ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51E5A892.7060309@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.