From mboxrd@z Thu Jan 1 00:00:00 1970 From: linux@arm.linux.org.uk (Russell King - ARM Linux) Date: Tue, 16 Jul 2013 17:32:43 +0100 Subject: [PATCH RFC v2 0/14] Clean up debugging support Message-ID: <20130716163243.GY21614@n2100.arm.linux.org.uk> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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: - 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