Commit 6f511c47 authored by danh-arm's avatar danh-arm Committed by GitHub
Browse files

Merge pull request #651 from Xilinx/zynqmp_uart

zynqmp: Make UART selectable
parents 10b93d79 7de544ac
...@@ -26,6 +26,10 @@ make ERROR_DEPRECATED=1 RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=zyn ...@@ -26,6 +26,10 @@ make ERROR_DEPRECATED=1 RESET_TO_BL31=1 CROSS_COMPILE=aarch64-none-elf- PLAT=zyn
* `ZYNQMP_BL32_MEM_BASE`: Specifies the base address of the bl32 binary. * `ZYNQMP_BL32_MEM_BASE`: Specifies the base address of the bl32 binary.
* `ZYNQMP_BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary. * `ZYNQMP_BL32_MEM_SIZE`: Specifies the size of the memory region of the bl32 binary.
* `ZYNQMP_CONSOLE`: Select the console driver. Options:
- `cadence`, `cadence0`: Cadence UART 0
- `cadence1` : Cadence UART 1
# FSBL->ATF Parameter Passing # FSBL->ATF Parameter Passing
The FSBL populates a data structure with image information for the ATF. The ATF The FSBL populates a data structure with image information for the ATF. The ATF
uses that data to hand off to the loaded images. The address of the handoff data uses that data to hand off to the loaded images. The address of the handoff data
......
...@@ -68,6 +68,13 @@ define add_define ...@@ -68,6 +68,13 @@ define add_define
DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
endef endef
# Convenience function for adding build definitions
# $(eval $(call add_define_val,FOO,BAR)) will have:
# -DFOO=BAR
define add_define_val
DEFINES += -D$(1)=$(2)
endef
# Convenience function for verifying option has a boolean value # Convenience function for verifying option has a boolean value
# $(eval $(call assert_boolean,FOO)) will assert FOO is 0 or 1 # $(eval $(call assert_boolean,FOO)) will assert FOO is 0 or 1
define assert_boolean define assert_boolean
......
...@@ -96,7 +96,7 @@ void bl31_early_platform_setup(bl31_params_t *from_bl2, ...@@ -96,7 +96,7 @@ void bl31_early_platform_setup(bl31_params_t *from_bl2,
void *plat_params_from_bl2) void *plat_params_from_bl2)
{ {
/* Initialize the console to provide early debug support */ /* Initialize the console to provide early debug support */
console_init(ZYNQMP_UART0_BASE, zynqmp_get_uart_clk(), console_init(ZYNQMP_UART_BASE, zynqmp_get_uart_clk(),
ZYNQMP_UART_BAUDRATE); ZYNQMP_UART_BAUDRATE);
/* Initialize the platform config for future decision making */ /* Initialize the platform config for future decision making */
......
...@@ -53,6 +53,9 @@ ifdef ZYNQMP_BL32_MEM_BASE ...@@ -53,6 +53,9 @@ ifdef ZYNQMP_BL32_MEM_BASE
$(eval $(call add_define,ZYNQMP_BL32_MEM_SIZE)) $(eval $(call add_define,ZYNQMP_BL32_MEM_SIZE))
endif endif
ZYNQMP_CONSOLE ?= cadence
$(eval $(call add_define_val,ZYNQMP_CONSOLE,ZYNQMP_CONSOLE_ID_${ZYNQMP_CONSOLE}))
PLAT_INCLUDES := -Iinclude/plat/arm/common/ \ PLAT_INCLUDES := -Iinclude/plat/arm/common/ \
-Iinclude/plat/arm/common/aarch64/ \ -Iinclude/plat/arm/common/aarch64/ \
-Iplat/xilinx/zynqmp/include/ \ -Iplat/xilinx/zynqmp/include/ \
......
...@@ -68,7 +68,7 @@ void tsp_early_platform_setup(void) ...@@ -68,7 +68,7 @@ void tsp_early_platform_setup(void)
* Initialize a different console than already in use to display * Initialize a different console than already in use to display
* messages from TSP * messages from TSP
*/ */
console_init(ZYNQMP_UART0_BASE, zynqmp_get_uart_clk(), console_init(ZYNQMP_UART_BASE, zynqmp_get_uart_clk(),
ZYNQMP_UART_BAUDRATE); ZYNQMP_UART_BAUDRATE);
/* Initialize the platform config for future decision making */ /* Initialize the platform config for future decision making */
......
...@@ -33,6 +33,13 @@ ...@@ -33,6 +33,13 @@
#include <common_def.h> #include <common_def.h>
#define ZYNQMP_CONSOLE_ID_cadence 1
#define ZYNQMP_CONSOLE_ID_cadence0 1
#define ZYNQMP_CONSOLE_ID_cadence1 2
#define ZYNQMP_CONSOLE_ID_dcc 3
#define ZYNQMP_CONSOLE_IS(con) (ZYNQMP_CONSOLE_ID_ ## con == ZYNQMP_CONSOLE)
/* Firmware Image Package */ /* Firmware Image Package */
#define ZYNQMP_PRIMARY_CPU 0 #define ZYNQMP_PRIMARY_CPU 0
...@@ -141,7 +148,15 @@ ...@@ -141,7 +148,15 @@
#define ZYNQMP_UART0_BASE 0xFF000000 #define ZYNQMP_UART0_BASE 0xFF000000
#define ZYNQMP_UART1_BASE 0xFF001000 #define ZYNQMP_UART1_BASE 0xFF001000
#define PLAT_ARM_CRASH_UART_BASE ZYNQMP_UART0_BASE #if ZYNQMP_CONSOLE_IS(cadence)
# define ZYNQMP_UART_BASE ZYNQMP_UART0_BASE
#elif ZYNQMP_CONSOLE_IS(cadence1)
# define ZYNQMP_UART_BASE ZYNQMP_UART1_BASE
#else
# error "invalid ZYNQMP_CONSOLE"
#endif
#define PLAT_ARM_CRASH_UART_BASE ZYNQMP_UART_BASE
/* impossible to call C routine how it is done now - hardcode any value */ /* impossible to call C routine how it is done now - hardcode any value */
#define PLAT_ARM_CRASH_UART_CLK_IN_HZ 100000000 /* FIXME */ #define PLAT_ARM_CRASH_UART_CLK_IN_HZ 100000000 /* FIXME */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment