mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 13:43:55 +08:00
6d7d7b3ecd
uncompress.h now saves the selected UART's physical address in Tegra's IRAM, along with a cookie to indicate validity. The first time it's run, macro addruart in debug-macro.S looks for this cookie, and if it's present, uses the UART address stored there. If not, the static value TEGRA_DEBUG_UART_BASE is used, as was previous behaviour. The static behaviour will thus be used when not booting using a zImage. This work was inspired by work by Doug Anderson <dianders@chromium.org>; see http://lkml.org/lkml/2011/9/26/284. However, this patch relies on the data passing describe above, rather than duplicating the UART selection logic in debug-macro.S; the latest selection logic is more complex due to the need to check reset/clock bits too. 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>
36 lines
1.2 KiB
C
36 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef __MACH_TEGRA_IRAMMAP_H
|
|
#define __MACH_TEGRA_IRAMMAP_H
|
|
|
|
#include <asm/sizes.h>
|
|
|
|
/* The first 1K of IRAM is permanently reserved for the CPU reset handler */
|
|
#define TEGRA_IRAM_RESET_HANDLER_OFFSET 0
|
|
#define TEGRA_IRAM_RESET_HANDLER_SIZE SZ_1K
|
|
|
|
/*
|
|
* These locations are written to by uncompress.h, and read by debug-macro.S.
|
|
* The first word holds the cookie value if the data is valid. The second
|
|
* word holds the UART physical address.
|
|
*/
|
|
#define TEGRA_IRAM_DEBUG_UART_OFFSET SZ_1K
|
|
#define TEGRA_IRAM_DEBUG_UART_SIZE 8
|
|
#define TEGRA_IRAM_DEBUG_UART_COOKIE 0x55415254
|
|
|
|
#endif
|