Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
91ece4e2
Unverified
Commit
91ece4e2
authored
6 years ago
by
Antonio Niño Díaz
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1674 from jforissier/hisi-multi-console
hikey, hikey960, poplar: use new console APIs
parents
e07666de
5c58c8b1
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
plat/hisilicon/hikey/aarch64/hikey_helpers.S
+3
-3
plat/hisilicon/hikey/aarch64/hikey_helpers.S
plat/hisilicon/hikey/hikey_bl1_setup.c
+4
-2
plat/hisilicon/hikey/hikey_bl1_setup.c
plat/hisilicon/hikey/hikey_bl2_setup.c
+4
-2
plat/hisilicon/hikey/hikey_bl2_setup.c
plat/hisilicon/hikey/hikey_bl31_setup.c
+4
-2
plat/hisilicon/hikey/hikey_bl31_setup.c
plat/hisilicon/hikey/platform.mk
+1
-0
plat/hisilicon/hikey/platform.mk
plat/hisilicon/hikey960/aarch64/hikey960_helpers.S
+3
-3
plat/hisilicon/hikey960/aarch64/hikey960_helpers.S
plat/hisilicon/hikey960/hikey960_bl1_setup.c
+4
-2
plat/hisilicon/hikey960/hikey960_bl1_setup.c
plat/hisilicon/hikey960/hikey960_bl2_setup.c
+4
-2
plat/hisilicon/hikey960/hikey960_bl2_setup.c
plat/hisilicon/hikey960/hikey960_bl31_setup.c
+4
-1
plat/hisilicon/hikey960/hikey960_bl31_setup.c
plat/hisilicon/hikey960/hikey960_pm.c
+4
-3
plat/hisilicon/hikey960/hikey960_pm.c
plat/hisilicon/hikey960/platform.mk
+1
-0
plat/hisilicon/hikey960/platform.mk
plat/hisilicon/poplar/bl1_plat_setup.c
+4
-2
plat/hisilicon/poplar/bl1_plat_setup.c
plat/hisilicon/poplar/bl2_plat_setup.c
+4
-2
plat/hisilicon/poplar/bl2_plat_setup.c
plat/hisilicon/poplar/bl31_plat_setup.c
+4
-2
plat/hisilicon/poplar/bl31_plat_setup.c
plat/hisilicon/poplar/plat_pm.c
+0
-1
plat/hisilicon/poplar/plat_pm.c
plat/hisilicon/poplar/platform.mk
+1
-1
plat/hisilicon/poplar/platform.mk
with
49 additions
and
28 deletions
+49
-28
plat/hisilicon/hikey/aarch64/hikey_helpers.S
View file @
91ece4e2
...
...
@@ -46,7 +46,7 @@ func plat_crash_console_init
mov_imm
x0
,
CRASH_CONSOLE_BASE
mov_imm
x1
,
PL011_UART_CLK_IN_HZ
mov_imm
x2
,
PL011_BAUDRATE
b
console_core_init
b
console_
pl011_
core_init
endfunc
plat_crash_console_init
/
*
---------------------------------------------
...
...
@@ -58,7 +58,7 @@ endfunc plat_crash_console_init
*/
func
plat_crash_console_putc
mov_imm
x1
,
CRASH_CONSOLE_BASE
b
console_core_putc
b
console_
pl011_
core_putc
endfunc
plat_crash_console_putc
/
*
---------------------------------------------
...
...
@@ -71,7 +71,7 @@ endfunc plat_crash_console_putc
*/
func
plat_crash_console_flush
mov_imm
x0
,
CRASH_CONSOLE_BASE
b
console_core_flush
b
console_
pl011_
core_flush
endfunc
plat_crash_console_flush
/
*
---------------------------------------------
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey/hikey_bl1_setup.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <dw_mmc.h>
#include <errno.h>
...
...
@@ -16,6 +15,7 @@
#include <hikey_layout.h>
#include <mmc.h>
#include <mmio.h>
#include <pl011.h>
#include <platform.h>
#include <string.h>
#include <tbbr/tbbr_img_desc.h>
...
...
@@ -25,6 +25,7 @@
/* Data structure which holds the extents of the trusted RAM for BL1 */
static
meminfo_t
bl1_tzram_layout
;
static
console_pl011_t
console
;
enum
{
BOOT_NORMAL
=
0
,
...
...
@@ -43,7 +44,8 @@ meminfo_t *bl1_plat_sec_mem_layout(void)
void
bl1_early_platform_setup
(
void
)
{
/* Initialize the console to provide early debug support */
console_init
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Allow BL1 to see the whole Trusted RAM */
bl1_tzram_layout
.
total_base
=
BL1_RW_BASE
;
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey/hikey_bl2_setup.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <delay_timer.h>
#include <desc_image_load.h>
...
...
@@ -21,6 +20,7 @@
#ifdef SPD_opteed
#include <optee_utils.h>
#endif
#include <pl011.h>
#include <platform.h>
#include <platform_def.h>
/* also includes hikey_def.h and hikey_layout.h*/
#include <string.h>
...
...
@@ -49,6 +49,7 @@
#define BL2_COHERENT_RAM_LIMIT (unsigned long)(&__COHERENT_RAM_END__)
static
meminfo_t
bl2_el3_tzram_layout
;
static
console_pl011_t
console
;
enum
{
BOOT_MODE_RECOVERY
=
0
,
...
...
@@ -279,7 +280,8 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
u_register_t
arg3
,
u_register_t
arg4
)
{
/* Initialize the console to provide early debug support */
console_init
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/*
* Allow BL2 to see the whole Trusted RAM.
*/
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey/hikey_bl31_setup.c
View file @
91ece4e2
...
...
@@ -8,7 +8,6 @@
#include <assert.h>
#include <bl_common.h>
#include <cci.h>
#include <console.h>
#include <debug.h>
#include <errno.h>
#include <gicv2.h>
...
...
@@ -18,6 +17,7 @@
#include <hisi_pwrc.h>
#include <interrupt_props.h>
#include <mmio.h>
#include <pl011.h>
#include <platform_def.h>
#include "hikey_private.h"
...
...
@@ -43,6 +43,7 @@
static
entry_point_info_t
bl32_ep_info
;
static
entry_point_info_t
bl33_ep_info
;
static
console_pl011_t
console
;
/******************************************************************************
* On a GICv2 system, the Group 1 secure interrupts are treated as Group 0
...
...
@@ -92,7 +93,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
from_bl2
=
(
void
*
)
arg0
;
/* Initialize the console to provide early debug support */
console_init
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
CONSOLE_BASE
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Initialize CCI driver */
cci_init
(
CCI400_BASE
,
cci_map
,
ARRAY_SIZE
(
cci_map
));
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey/platform.mk
View file @
91ece4e2
...
...
@@ -20,6 +20,7 @@ endif
CONSOLE_BASE
:=
PL011_UART3_BASE
CRASH_CONSOLE_BASE
:=
PL011_UART3_BASE
MULTI_CONSOLE_API
:=
1
PLAT_PARTITION_MAX_ENTRIES
:=
12
PLAT_PL061_MAX_GPIOS
:=
160
COLD_BOOT_SINGLE_CPU
:=
1
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/aarch64/hikey960_helpers.S
View file @
91ece4e2
...
...
@@ -50,7 +50,7 @@ func plat_crash_console_init
mov_imm
x0
,
CRASH_CONSOLE_BASE
mov_imm
x1
,
PL011_UART_CLK_IN_HZ
mov_imm
x2
,
PL011_BAUDRATE
b
console_core_init
b
console_
pl011_
core_init
endfunc
plat_crash_console_init
/
*
---------------------------------------------
...
...
@@ -62,7 +62,7 @@ endfunc plat_crash_console_init
*/
func
plat_crash_console_putc
mov_imm
x1
,
CRASH_CONSOLE_BASE
b
console_core_putc
b
console_
pl011_
core_putc
endfunc
plat_crash_console_putc
/
*
---------------------------------------------
...
...
@@ -75,7 +75,7 @@ endfunc plat_crash_console_putc
*/
func
plat_crash_console_flush
mov_imm
x0
,
CRASH_CONSOLE_BASE
b
console_core_flush
b
console_
pl011_
core_flush
endfunc
plat_crash_console_flush
/
*
---------------------------------------------
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/hikey960_bl1_setup.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <delay_timer.h>
#include <dw_ufs.h>
...
...
@@ -17,6 +16,7 @@
#include <hi3660.h>
#include <interrupt_props.h>
#include <mmio.h>
#include <pl011.h>
#include <platform.h>
#include <platform_def.h>
#include <string.h>
...
...
@@ -40,6 +40,7 @@ enum {
/* Data structure which holds the extents of the trusted RAM for BL1 */
static
meminfo_t
bl1_tzram_layout
;
static
console_pl011_t
console
;
/******************************************************************************
* On a GICv2 system, the Group 1 secure interrupts are treated as Group 0
...
...
@@ -78,7 +79,8 @@ void bl1_early_platform_setup(void)
else
uart_base
=
PL011_UART6_BASE
;
/* Initialize the console to provide early debug support */
console_init
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Allow BL1 to see the whole Trusted RAM */
bl1_tzram_layout
.
total_base
=
BL1_RW_BASE
;
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/hikey960_bl2_setup.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <delay_timer.h>
#include <desc_image_load.h>
...
...
@@ -19,6 +18,7 @@
#ifdef SPD_opteed
#include <optee_utils.h>
#endif
#include <pl011.h>
#include <platform_def.h>
#include <string.h>
#include <ufs.h>
...
...
@@ -48,6 +48,7 @@
#define BL2_COHERENT_RAM_LIMIT (unsigned long)(&__COHERENT_RAM_END__)
static
meminfo_t
bl2_el3_tzram_layout
;
static
console_pl011_t
console
;
extern
int
load_lpm3
(
void
);
enum
{
...
...
@@ -296,7 +297,8 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
else
uart_base
=
PL011_UART6_BASE
;
/* Initialize the console to provide early debug support */
console_init
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/*
* Allow BL2 to see the whole Trusted RAM.
*/
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/hikey960_bl31_setup.c
View file @
91ece4e2
...
...
@@ -17,6 +17,7 @@
#include <hisi_ipc.h>
#include <interrupt_mgmt.h>
#include <interrupt_props.h>
#include <pl011.h>
#include <platform.h>
#include <platform_def.h>
...
...
@@ -44,6 +45,7 @@
static
entry_point_info_t
bl32_ep_info
;
static
entry_point_info_t
bl33_ep_info
;
static
console_pl011_t
console
;
/******************************************************************************
* On a GICv2 system, the Group 1 secure interrupts are treated as Group 0
...
...
@@ -96,7 +98,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
uart_base
=
PL011_UART6_BASE
;
/* Initialize the console to provide early debug support */
console_init
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Initialize CCI driver */
cci_init
(
CCI400_REG_BASE
,
cci_map
,
ARRAY_SIZE
(
cci_map
));
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/hikey960_pm.c
View file @
91ece4e2
...
...
@@ -7,13 +7,13 @@
#include <arch_helpers.h>
#include <assert.h>
#include <cci.h>
#include <console.h>
#include <debug.h>
#include <delay_timer.h>
#include <gicv2.h>
#include <hi3660.h>
#include <hi3660_crg.h>
#include <mmio.h>
#include <pl011.h>
#include <psci.h>
#include "drivers/pwrc/hisi_pwrc.h"
...
...
@@ -31,6 +31,7 @@
#define AXI_CONF_BASE 0x820
static
unsigned
int
uart_base
;
static
console_pl011_t
console
;
static
uintptr_t
hikey960_sec_entrypoint
;
static
void
hikey960_pwr_domain_standby
(
plat_local_state_t
cpu_state
)
...
...
@@ -268,8 +269,8 @@ hikey960_pwr_domain_suspend_finish(const psci_power_state_t *target_state)
if
(
hisi_test_ap_suspend_flag
(
cluster
))
{
hikey960_sr_dma_reinit
();
gicv2_cpuif_enable
();
console_
init
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_
pl011_register
(
uart_base
,
PL011_UART_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
}
hikey960_pwr_domain_on_finish
(
target_state
);
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/hikey960/platform.mk
View file @
91ece4e2
...
...
@@ -17,6 +17,7 @@ else
$(error
"Currently unsupported HIKEY960_TSP_RAM_LOCATION value"
)
endif
MULTI_CONSOLE_API
:=
1
CRASH_CONSOLE_BASE
:=
PL011_UART6_BASE
COLD_BOOT_SINGLE_CPU
:=
1
PLAT_PL061_MAX_GPIOS
:=
176
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/poplar/bl1_plat_setup.c
View file @
91ece4e2
...
...
@@ -7,13 +7,13 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <dw_mmc.h>
#include <errno.h>
#include <generic_delay_timer.h>
#include <mmc.h>
#include <mmio.h>
#include <pl011.h>
#include <pl061_gpio.h>
#include <platform.h>
#include <platform_def.h>
...
...
@@ -26,6 +26,7 @@
/* Data structure which holds the extents of the trusted RAM for BL1 */
static
meminfo_t
bl1_tzram_layout
;
static
meminfo_t
bl2_tzram_layout
;
static
console_pl011_t
console
;
/*
* Cannot use default weak implementation in bl1_main.c because BL1 RW data is
...
...
@@ -62,7 +63,8 @@ int bl1_plat_handle_post_image_load(unsigned int image_id)
void
bl1_early_platform_setup
(
void
)
{
/* Initialize the console to provide early debug support */
console_init
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Allow BL1 to see the whole Trusted RAM */
bl1_tzram_layout
.
total_base
=
BL1_RW_BASE
;
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/poplar/bl2_plat_setup.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
#include <desc_image_load.h>
#include <dw_mmc.h>
...
...
@@ -17,6 +16,7 @@
#include <mmio.h>
#include <optee_utils.h>
#include <partition/partition.h>
#include <pl011.h>
#include <platform.h>
#include <string.h>
#include "hi3798cv200.h"
...
...
@@ -31,6 +31,7 @@
#define BL2_COHERENT_RAM_LIMIT (unsigned long)(&__COHERENT_RAM_END__)
static
meminfo_t
bl2_tzram_layout
__aligned
(
CACHE_WRITEBACK_GRANULE
);
static
console_pl011_t
console
;
/*******************************************************************************
* Transfer SCP_BL2 from Trusted RAM using the SCP Download protocol.
...
...
@@ -181,7 +182,8 @@ void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1,
dw_mmc_params_t
params
=
EMMC_INIT_PARAMS
(
POPLAR_EMMC_DESC_BASE
);
#endif
console_init
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Enable arch timer */
generic_delay_timer_init
();
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/poplar/bl31_plat_setup.c
View file @
91ece4e2
...
...
@@ -9,12 +9,12 @@
#include <assert.h>
#include <bl31.h>
#include <bl_common.h>
#include <console.h>
#include <cortex_a53.h>
#include <debug.h>
#include <errno.h>
#include <generic_delay_timer.h>
#include <mmio.h>
#include <pl011.h>
#include <platform.h>
#include <platform_def.h>
#include <stddef.h>
...
...
@@ -34,6 +34,7 @@
static
entry_point_info_t
bl32_image_ep_info
;
static
entry_point_info_t
bl33_image_ep_info
;
static
console_pl011_t
console
;
static
void
hisi_tzpc_sec_init
(
void
)
{
...
...
@@ -72,7 +73,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
from_bl2
=
(
void
*
)
arg0
;
console_init
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
);
console_pl011_register
(
PL011_UART0_BASE
,
PL011_UART0_CLK_IN_HZ
,
PL011_BAUDRATE
,
&
console
);
/* Init console for crash report */
plat_crash_console_init
();
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/poplar/plat_pm.c
View file @
91ece4e2
...
...
@@ -7,7 +7,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <context.h>
#include <context_mgmt.h>
#include <debug.h>
...
...
This diff is collapsed.
Click to expand it.
plat/hisilicon/poplar/platform.mk
View file @
91ece4e2
...
...
@@ -46,7 +46,7 @@ ERRATA_A53_855873 := 1
ERRATA_A53_835769
:=
1
ERRATA_A53_843419
:=
1
ENABLE_SVE_FOR_NS
:=
0
MULTI_CONSOLE_API
:=
1
WORKAROUND_CVE_2017_5715
:=
0
PLAT_PL061_MAX_GPIOS
:=
104
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help