linux/arch/arm/mach-tegra/include/mach
Stephen Warren fe2639892c ARM: tegra: uncompress.h: Choose a UART at runtime
With this change we automatically detect which UART to use for
for printing during decompression. The detection involves coordination
with the bootloader: it's expected that the bootloader will leave a
'D' (for [D]ebug) in the UART scratchpad register for whichever UART we
should use for debugging.

If we don't find any such UART, we fall back to the UART that was
specified during config time: CONFIG_TEGRA_DEBUG_UART_XXX.

As a side effect of this change, uncompress debug messages will work
if you've specified CONFIG_TEGRA_DEBUG_UART_NONE, provided the
bootloader obeys the protocol.

This change is in line with what is documented in
Documentation/arm/Booting.

Other approaches considered:
* Hardcode based on machine ID (as many other ARM boards do).
  OK, but nice to not have yet another place to add per-board
  code. Better to have bootloader parse device tree and pass us
  this info.
* Check for TXE bit (like SA1110). Nice (and doesn't require
  a bootloader change), but a little less explicit. Also: if
  bootloader (for some reason) uses another UART, it needs to
  remember to turn it off before jumping to the kernel or we may
  print to it. NOTE: adapting this patch to check TXE too would
  be easy if desired.

Signed-off-by: Doug Anderson <dianders@chromium.org>
[swarren: Added clock/reset condition checks]
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Doug Anderson <dianders@chromium.org>
Acked-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-02-06 18:25:00 -08:00
..
clk.h arm/tegra: prepare clock code for multiple tegra variants 2011-12-17 20:14:45 -08:00
debug-macro.S ARM: add an extra temp register to the low level debugging addruart macro 2011-09-26 10:11:25 -04:00
dma.h Fix common misspellings 2011-03-31 11:26:23 -03:00
entry-macro.S Merge branch 'tegra/cleanup' into next/cleanup 2011-12-27 22:19:50 +00:00
gpio-tegra.h ARM: 7101/1: arm/tegra: Replace <mach/gpio.h> with <mach/gpio-tegra.h> 2011-09-27 00:20:53 +01:00
gpio.h ARM: mark empty gpio.h files empty 2011-10-29 13:05:46 +02:00
io.h ARM: mach-tegra: remove arch specific special handling for ioremap 2011-11-16 18:06:18 -05:00
iomap.h ARM: tegra: add devices.c entries for audio 2011-03-07 15:34:24 -08:00
irqs.h arm/tegra: implement support for tegra30 2011-12-17 20:15:35 -08:00
kbc.h Input: tegra-kbc - report wakeup key for some platforms 2011-12-30 00:27:00 -08:00
pinmux-tegra20.h arm/tegra: rename tegra20 pinmux files 2011-12-17 20:15:25 -08:00
pinmux-tegra30.h arm/tegra: pinmux tables and definitions for tegra30 2011-12-17 20:15:33 -08:00
pinmux.h arm/tegra: pinmux tables and definitions for tegra30 2011-12-17 20:15:33 -08:00
powergate.h ARM: tegra: tegra_powergate_is_powered should be static 2011-10-13 14:08:28 -07:00
sdhci.h mmc: tegra: add pm_flags 2011-05-24 20:59:30 -04:00
suspend.h ARM: tegra: Add prototypes for subsystem suspend functions 2011-02-09 21:57:01 -08:00
system.h ARM: restart: remove the now empty arch_reset() 2012-01-05 12:57:22 +00:00
tegra_wm8903_pdata.h ARM: Tegra: Add to tegra_wm8903_platform_data 2011-04-18 17:55:58 +01:00
timex.h
uncompress.h ARM: tegra: uncompress.h: Choose a UART at runtime 2012-02-06 18:25:00 -08:00
usb_phy.h ARM: tegra: Add support for Tegra USB PHYs 2011-03-11 14:22:11 -08:00