[PATCH RFC v2 0/14] Clean up debugging support

Andrew Lunn andrew at lunn.ch
Mon Jul 22 11:53:33 EDT 2013


On Tue, Jul 16, 2013 at 05:32:43PM +0100, Russell King - ARM Linux wrote:
> This is the second posting of this series, with a few additional patches
> on top to go a little further.  Changes since the last posting:

Hi Russell

I boot tested on Kirkwood.

Tested-by: Andrew Lunn <andrew at lunn.ch>

	   Andrew

> 
> - we now provide a couple of generic options to allow the 8250 and PL01x
>   ports to be configured via Kconfig manually.  What this means is that
>   I do not expect to see further entries to the debug menu for platforms
>   which have PL01x or 8250 debug ports - use the generic options instead.
> 
> - I've converted a bunch of the dependencies to select statements here
>   to clean things up a little more.
> 
> - Made the '8250 32-bit access size" option depend on a shift >= 2
>   (it would be silly to do 32-bit accesses to byte offsets.)
> 
> - Made all 8250 options available to the user when 8250 support is
>   selected, allowing full configuration of 8250 options.
> 
> - Removed DEBUG_ROCKCHIP_UART which wasn't doing anything after this
>   cleanup.
> 
> - Converted Keystone, Davinci, and Spear to also use the generic 8250/PL01x
>   code; these had their own private implementations of the same without
>   using the generic versions for no reason that I could see.
> 
> The rest is the same boilerplate from last time with the exception of
> the diffstat.
> 
> This patch series cleans up some aspects of the LL debug support by:
> - Removing the multi-level choice madness
> - Consolidating the 8250 debug UART support
> - Consolidating the PL01x debug UART support
> 
> The differences between the various 8250 debug UART implementations are:
> - Physical/Virtual addresses
> - Register offset shift
> - Access size
> - Flow control
> 
> These are now parameterised in the Kconfig.  I've left OMAP because
> that's a complex case, but it looks like it can be adapted to it if
> some of the unnecessary complexity is eliminated.
> 
> Similar is done with the PL01x implementation, except a few complex
> cases are left - automatic detection on Versatile Express, and the
> Ux500 support which looks like it'll take some picking through header
> files to work out what the base addresses are.
> 
> The approach I've taken is to consolidate without losing any information
> - what that means it that the Kconfig parameters have rather a lot of
> dependencies/defaults associated with them, and the main choice
> statement keeps all its options.
> 
> Nevertheless, even avoiding the loss of information, I think the diffstat
> is quite impressive:
> 
>  arch/arm/Kconfig.debug                             |  553 ++++++++++++++------
>  arch/arm/include/asm/hardware/debug-8250.S         |   29 -
>  arch/arm/include/debug/8250.S                      |   54 ++
>  arch/arm/include/debug/8250_32.S                   |   27 -
>  arch/arm/include/debug/bcm2835.S                   |   22 -
>  arch/arm/include/debug/cns3xxx.S                   |   19 -
>  arch/arm/include/debug/highbank.S                  |   17 -
>  arch/arm/include/debug/keystone.S                  |   43 --
>  arch/arm/include/debug/mvebu.S                     |   30 -
>  arch/arm/include/debug/mxs.S                       |   27 -
>  arch/arm/include/debug/nomadik.S                   |   20 -
>  arch/arm/include/debug/nspire.S                    |   28 -
>  arch/arm/include/debug/picoxcell.S                 |   19 -
>  .../{asm/hardware/debug-pl01x.S => debug/pl01x.S}  |    9 +-
>  arch/arm/include/debug/pxa.S                       |   33 --
>  arch/arm/include/debug/rockchip.S                  |   42 --
>  arch/arm/include/debug/socfpga.S                   |   21 -
>  arch/arm/include/debug/sunxi.S                     |   27 -
>  arch/arm/include/debug/u300.S                      |   18 -
>  arch/arm/include/debug/ux500.S                     |    2 +-
>  arch/arm/include/debug/vexpress.S                  |   48 +--
>  arch/arm/mach-davinci/include/mach/debug-macro.S   |   65 ---
>  arch/arm/mach-dove/include/mach/debug-macro.S      |   19 -
>  arch/arm/mach-ebsa110/include/mach/debug-macro.S   |   22 -
>  arch/arm/mach-ep93xx/include/mach/debug-macro.S    |   21 -
>  .../arm/mach-footbridge/include/mach/debug-macro.S |   15 -
>  arch/arm/mach-gemini/include/mach/debug-macro.S    |   21 -
>  .../arm/mach-integrator/include/mach/debug-macro.S |   20 -
>  arch/arm/mach-iop13xx/include/mach/debug-macro.S   |   24 -
>  arch/arm/mach-iop32x/include/mach/debug-macro.S    |   21 -
>  arch/arm/mach-iop33x/include/mach/debug-macro.S    |   22 -
>  arch/arm/mach-ixp4xx/include/mach/debug-macro.S    |   26 -
>  arch/arm/mach-kirkwood/include/mach/debug-macro.S  |   19 -
>  arch/arm/mach-lpc32xx/include/mach/debug-macro.S   |   29 -
>  arch/arm/mach-mv78xx0/include/mach/debug-macro.S   |   19 -
>  arch/arm/mach-orion5x/include/mach/debug-macro.S   |   21 -
>  arch/arm/mach-realview/include/mach/debug-macro.S  |   29 -
>  arch/arm/mach-rpc/include/mach/debug-macro.S       |   23 -
>  arch/arm/mach-spear/include/mach/debug-macro.S     |   36 --
>  arch/arm/mach-spear/include/mach/spear.h           |    2 -
>  arch/arm/mach-versatile/include/mach/debug-macro.S |   21 -
>  41 files changed, 457 insertions(+), 1106 deletions(-)
>  delete mode 100644 arch/arm/include/asm/hardware/debug-8250.S
>  create mode 100644 arch/arm/include/debug/8250.S
>  delete mode 100644 arch/arm/include/debug/8250_32.S
>  delete mode 100644 arch/arm/include/debug/bcm2835.S
>  delete mode 100644 arch/arm/include/debug/cns3xxx.S
>  delete mode 100644 arch/arm/include/debug/highbank.S
>  delete mode 100644 arch/arm/include/debug/keystone.S
>  delete mode 100644 arch/arm/include/debug/mvebu.S
>  delete mode 100644 arch/arm/include/debug/mxs.S
>  delete mode 100644 arch/arm/include/debug/nomadik.S
>  delete mode 100644 arch/arm/include/debug/nspire.S
>  delete mode 100644 arch/arm/include/debug/picoxcell.S
>  rename arch/arm/include/{asm/hardware/debug-pl01x.S => debug/pl01x.S} (78%)
>  delete mode 100644 arch/arm/include/debug/pxa.S
>  delete mode 100644 arch/arm/include/debug/rockchip.S
>  delete mode 100644 arch/arm/include/debug/socfpga.S
>  delete mode 100644 arch/arm/include/debug/sunxi.S
>  delete mode 100644 arch/arm/include/debug/u300.S
>  delete mode 100644 arch/arm/mach-davinci/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-dove/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-ebsa110/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-ep93xx/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-gemini/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-integrator/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-iop13xx/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-iop32x/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-iop33x/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-ixp4xx/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-kirkwood/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-lpc32xx/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-mv78xx0/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-orion5x/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-realview/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-rpc/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-spear/include/mach/debug-macro.S
>  delete mode 100644 arch/arm/mach-versatile/include/mach/debug-macro.S



More information about the linux-arm-kernel mailing list