mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 18:10:52 +07:00
ARM: 9043/1: tegra: Fix misplaced tegra_uart_config in decompressor
commit 538eea5362a1179dfa7770dd2b6607dc30cc50c6 upstream.
The tegra_uart_config of the DEBUG_LL code is now placed right at the
start of the .text section after commit which enabled debug output in the
decompressor. Tegra devices are not booting anymore if DEBUG_LL is enabled
since tegra_uart_config data is executes as a code. Fix the misplaced
tegra_uart_config storage by embedding it into the code.
Cc: stable@vger.kernel.org
Fixes: 2596a72d33
("ARM: 9009/1: uncompress: Enable debug in head.S")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
384cddbee4
commit
2de0745463
@ -149,7 +149,34 @@
|
|||||||
|
|
||||||
.align
|
.align
|
||||||
99: .word .
|
99: .word .
|
||||||
|
#if defined(ZIMAGE)
|
||||||
|
.word . + 4
|
||||||
|
/*
|
||||||
|
* Storage for the state maintained by the macro.
|
||||||
|
*
|
||||||
|
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
||||||
|
* That's because this header is included from multiple files, and we only
|
||||||
|
* want a single copy of the data. In particular, the UART probing code above
|
||||||
|
* assumes it's running using physical addresses. This is true when this file
|
||||||
|
* is included from head.o, but not when included from debug.o. So we need
|
||||||
|
* to share the probe results between the two copies, rather than having
|
||||||
|
* to re-run the probing again later.
|
||||||
|
*
|
||||||
|
* In the decompressor, we put the storage right here, since common.c
|
||||||
|
* isn't included in the decompressor build. This storage data gets put in
|
||||||
|
* .text even though it's really data, since .data is discarded from the
|
||||||
|
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
||||||
|
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
||||||
|
*/
|
||||||
|
/* Debug UART initialization required */
|
||||||
|
.word 1
|
||||||
|
/* Debug UART physical address */
|
||||||
|
.word 0
|
||||||
|
/* Debug UART virtual address */
|
||||||
|
.word 0
|
||||||
|
#else
|
||||||
.word tegra_uart_config
|
.word tegra_uart_config
|
||||||
|
#endif
|
||||||
.ltorg
|
.ltorg
|
||||||
|
|
||||||
/* Load previously selected UART address */
|
/* Load previously selected UART address */
|
||||||
@ -189,30 +216,3 @@
|
|||||||
|
|
||||||
.macro waituarttxrdy,rd,rx
|
.macro waituarttxrdy,rd,rx
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/*
|
|
||||||
* Storage for the state maintained by the macros above.
|
|
||||||
*
|
|
||||||
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
|
||||||
* That's because this header is included from multiple files, and we only
|
|
||||||
* want a single copy of the data. In particular, the UART probing code above
|
|
||||||
* assumes it's running using physical addresses. This is true when this file
|
|
||||||
* is included from head.o, but not when included from debug.o. So we need
|
|
||||||
* to share the probe results between the two copies, rather than having
|
|
||||||
* to re-run the probing again later.
|
|
||||||
*
|
|
||||||
* In the decompressor, we put the symbol/storage right here, since common.c
|
|
||||||
* isn't included in the decompressor build. This symbol gets put in .text
|
|
||||||
* even though it's really data, since .data is discarded from the
|
|
||||||
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
|
||||||
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
|
||||||
*/
|
|
||||||
#if defined(ZIMAGE)
|
|
||||||
tegra_uart_config:
|
|
||||||
/* Debug UART initialization required */
|
|
||||||
.word 1
|
|
||||||
/* Debug UART physical address */
|
|
||||||
.word 0
|
|
||||||
/* Debug UART virtual address */
|
|
||||||
.word 0
|
|
||||||
#endif
|
|
||||||
|
Loading…
Reference in New Issue
Block a user