Skip to content
GitLab
Menu
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
bbbf7f6b
Unverified
Commit
bbbf7f6b
authored
Nov 19, 2018
by
Antonio Niño Díaz
Committed by
GitHub
Nov 19, 2018
Browse files
Merge pull request #1682 from MISL-EBU-System-SW/migrate-multi-console
Marvell: Migrate to multi console API
parents
cabe0a31
d7c4420c
Changes
15
Hide whitespace changes
Inline
Side-by-side
drivers/marvell/uart/a3700_console.S
View file @
bbbf7f6b
...
@@ -5,16 +5,27 @@
...
@@ -5,16 +5,27 @@
*
https
:
//
spdx
.
org
/
licenses
*
https
:
//
spdx
.
org
/
licenses
*/
*/
#include <arch.h>
#include <asm_macros.S>
#include <asm_macros.S>
#include <a3700_console.h>
#include <a3700_console.h>
#define USE_FINISH_CONSOLE_REG_2
#include <console_macros.S>
.
globl
console_core_init
/
*
.
globl
console_core_putc
*
"core"
functions
are
low
-
level
implementations
that
don
't require
.
globl
console_core_getc
*
writable
memory
and
are
thus
safe
to
call
in
BL1
crash
context
.
.
globl
console_core_flush
*/
.
globl
console_a3700_core_putc
.
globl
console_a3700_core_init
.
globl
console_a3700_core_getc
.
globl
console_a3700_core_flush
.
globl
console_a3700_putc
.
globl
console_a3700_getc
.
globl
console_a3700_flush
/
*
-----------------------------------------------
/
*
-----------------------------------------------
*
int
console_core_init
(
unsigned
long
base_addr
,
*
int
console_
a3700_
core_init
(
unsigned
long
base_addr
,
*
unsigned
int
uart_clk
,
unsigned
int
baud_rate
)
*
unsigned
int
uart_clk
,
unsigned
int
baud_rate
)
*
Function
to
initialize
the
console
without
a
*
Function
to
initialize
the
console
without
a
*
C
Runtime
to
print
debug
information
.
This
*
C
Runtime
to
print
debug
information
.
This
...
@@ -27,7 +38,7 @@
...
@@ -27,7 +38,7 @@
*
Clobber
list
:
x1
,
x2
,
x3
*
Clobber
list
:
x1
,
x2
,
x3
*
-----------------------------------------------
*
-----------------------------------------------
*/
*/
func
console_core_init
func
console_
a3700_
core_init
/
*
Check
the
input
base
address
*/
/
*
Check
the
input
base
address
*/
cbz
x0
,
init_fail
cbz
x0
,
init_fail
/
*
Check
baud
rate
and
uart
clock
for
sanity
*/
/
*
Check
baud
rate
and
uart
clock
for
sanity
*/
...
@@ -95,10 +106,43 @@ func console_core_init
...
@@ -95,10 +106,43 @@ func console_core_init
init_fail
:
init_fail
:
mov
w0
,
#
0
mov
w0
,
#
0
ret
ret
endfunc
console_core_init
endfunc
console_a3700_core_init
.
globl
console_a3700_register
/
*
-----------------------------------------------
*
int
console_a3700_register
(
console_16550_t
*
console
,
uintptr_t
base
,
uint32_t
clk
,
uint32_t
baud
)
*
Function
to
initialize
and
register
a
new
a3700
*
console
.
Storage
passed
in
for
the
console
struct
*
*
must
*
be
persistent
(
i
.
e
.
not
from
the
stack
)
.
*
In
:
x0
-
UART
register
base
address
*
w1
-
UART
clock
in
Hz
*
w2
-
Baud
rate
*
x3
-
pointer
to
empty
console_a3700_t
struct
*
Out
:
return
1
on
success
,
0
on
error
*
Clobber
list
:
x0
,
x1
,
x2
,
x6
,
x7
,
x14
*
-----------------------------------------------
*/
func
console_a3700_register
mov
x7
,
x30
mov
x6
,
x3
cbz
x6
,
register_fail
str
x0
,
[
x6
,
#
CONSOLE_T_A3700_BASE
]
bl
console_a3700_core_init
cbz
x0
,
register_fail
mov
x0
,
x6
mov
x30
,
x7
finish_console_register
a3700
,
putc
=
1
,
getc
=
1
,
flush
=
1
register_fail
:
ret
x7
endfunc
console_a3700_register
/
*
--------------------------------------------------------
/
*
--------------------------------------------------------
*
int
console_core_putc
(
int
c
,
unsigned
int
base_addr
)
*
int
console_
a3700_
core_putc
(
int
c
,
unsigned
int
base_addr
)
*
Function
to
output
a
character
over
the
console
.
It
*
Function
to
output
a
character
over
the
console
.
It
*
returns
the
character
printed
on
success
or
-
1
on
error
.
*
returns
the
character
printed
on
success
or
-
1
on
error
.
*
In
:
w0
-
character
to
be
printed
*
In
:
w0
-
character
to
be
printed
...
@@ -107,7 +151,7 @@ endfunc console_core_init
...
@@ -107,7 +151,7 @@ endfunc console_core_init
*
Clobber
list
:
x2
*
Clobber
list
:
x2
*
--------------------------------------------------------
*
--------------------------------------------------------
*/
*/
func
console_core_putc
func
console_
a3700_
core_putc
/
*
Check
the
input
parameter
*/
/
*
Check
the
input
parameter
*/
cbz
x1
,
putc_error
cbz
x1
,
putc_error
...
@@ -132,10 +176,25 @@ func console_core_putc
...
@@ -132,10 +176,25 @@ func console_core_putc
putc_error
:
putc_error
:
mov
w0
,
#-
1
mov
w0
,
#-
1
ret
ret
endfunc
console_core_putc
endfunc
console_a3700_core_putc
/
*
--------------------------------------------------------
*
int
console_a3700_putc
(
int
c
,
console_a3700_t
*
console
)
*
Function
to
output
a
character
over
the
console
.
It
*
returns
the
character
printed
on
success
or
-
1
on
error
.
*
In
:
w0
-
character
to
be
printed
*
x1
-
pointer
to
console_t
structure
*
Out
:
return
-
1
on
error
else
return
character
.
*
Clobber
list
:
x2
*
--------------------------------------------------------
*/
func
console_a3700_putc
ldr
x1
,
[
x1
,
#
CONSOLE_T_A3700_BASE
]
b
console_a3700_core_putc
endfunc
console_a3700_putc
/
*
---------------------------------------------
/
*
---------------------------------------------
*
int
console_core_getc
(
void
)
*
int
console_
a3700_
core_getc
(
void
)
*
Function
to
get
a
character
from
the
console
.
*
Function
to
get
a
character
from
the
console
.
*
It
returns
the
character
grabbed
on
success
*
It
returns
the
character
grabbed
on
success
*
or
-
1
on
error
.
*
or
-
1
on
error
.
...
@@ -144,16 +203,28 @@ endfunc console_core_putc
...
@@ -144,16 +203,28 @@ endfunc console_core_putc
*
Clobber
list
:
x0
,
x1
*
Clobber
list
:
x0
,
x1
*
---------------------------------------------
*
---------------------------------------------
*/
*/
func
console_core_getc
func
console_a3700_core_getc
/
*
Check
if
the
receive
FIFO
is
empty
*/
ret
getc_error
:
mov
w0
,
#-
1
mov
w0
,
#-
1
ret
ret
endfunc
console_core_getc
endfunc
console_a3700_core_getc
/
*
---------------------------------------------
*
int
console_a3700_getc
(
console_a3700_t
*
console
)
*
Function
to
get
a
character
from
the
console
.
*
It
returns
the
character
grabbed
on
success
*
or
-
1
on
if
no
character
is
available
.
*
In
:
x0
-
pointer
to
console_t
structure
*
Out
:
w0
-
character
if
available
,
else
-
1
*
Clobber
list
:
x0
,
x1
*
---------------------------------------------
*/
func
console_a3700_getc
ldr
x0
,
[
x0
,
#
CONSOLE_T_A3700_BASE
]
b
console_a3700_core_getc
endfunc
console_a3700_getc
/
*
---------------------------------------------
/
*
---------------------------------------------
*
int
console_core_flush
(
uintptr_t
base_addr
)
*
int
console_
a3700_
core_flush
(
uintptr_t
base_addr
)
*
Function
to
force
a
write
of
all
buffered
*
Function
to
force
a
write
of
all
buffered
*
data
that
hasn
't been output.
*
data
that
hasn
't been output.
*
In
:
x0
-
console
base
address
*
In
:
x0
-
console
base
address
...
@@ -161,8 +232,22 @@ endfunc console_core_getc
...
@@ -161,8 +232,22 @@ endfunc console_core_getc
*
Clobber
list
:
x0
,
x1
*
Clobber
list
:
x0
,
x1
*
---------------------------------------------
*
---------------------------------------------
*/
*/
func
console_core_flush
func
console_a3700_core_flush
/
*
Placeholder
*/
mov
w0
,
#
0
mov
w0
,
#
0
ret
ret
endfunc
console_core_flush
endfunc
console_a3700_core_flush
/
*
---------------------------------------------
*
int
console_a3700_flush
(
console_a3700_t
*
console
)
*
Function
to
force
a
write
of
all
buffered
*
data
that
hasn
't been output.
*
In
:
x0
-
pointer
to
console_t
structure
*
Out
:
return
-
1
on
error
else
return
0
.
*
Clobber
list
:
x0
,
x1
*
---------------------------------------------
*/
func
console_a3700_flush
ldr
x0
,
[
x0
,
#
CONSOLE_T_A3700_BASE
]
b
console_a3700_core_flush
endfunc
console_a3700_flush
drivers/marvell/uart/a3700_console.h
→
include/
drivers/marvell/uart/a3700_console.h
View file @
bbbf7f6b
...
@@ -8,6 +8,8 @@
...
@@ -8,6 +8,8 @@
#ifndef A3700_CONSOLE_H
#ifndef A3700_CONSOLE_H
#define A3700_CONSOLE_H
#define A3700_CONSOLE_H
#include <console.h>
/* MVEBU UART Registers */
/* MVEBU UART Registers */
#define UART_RX_REG 0x00
#define UART_RX_REG 0x00
#define UART_TX_REG 0x04
#define UART_TX_REG 0x04
...
@@ -52,4 +54,26 @@
...
@@ -52,4 +54,26 @@
#define UART_CTRL_TXFIFO_RESET (1 << 15)
#define UART_CTRL_TXFIFO_RESET (1 << 15)
#define UARTLSR_TXFIFOEMPTY (1 << 6)
#define UARTLSR_TXFIFOEMPTY (1 << 6)
#endif
/* A3700_CONSOLE_H */
#define CONSOLE_T_A3700_BASE CONSOLE_T_DRVDATA
#ifndef __ASSEMBLY__
#include <stdint.h>
typedef
struct
{
console_t
console
;
uintptr_t
base
;
}
console_a3700_t
;
/*
* Initialize a new a3700 console instance and register it with the console
* framework. The |console| pointer must point to storage that will be valid
* for the lifetime of the console, such as a global or static local variable.
* Its contents will be reinitialized from scratch.
*/
int
console_a3700_register
(
uintptr_t
baseaddr
,
uint32_t
clock
,
uint32_t
baud
,
console_a3700_t
*
console
);
#endif
/*__ASSEMBLY__*/
#endif
/* A3700_CONSOLE_H */
include/plat/marvell/a3700/common/plat_marvell.h
View file @
bbbf7f6b
...
@@ -39,6 +39,12 @@ void marvell_setup_page_tables(uintptr_t total_base,
...
@@ -39,6 +39,12 @@ void marvell_setup_page_tables(uintptr_t total_base,
#endif
#endif
);
);
/* Console utility functions */
void
marvell_console_boot_init
(
void
);
void
marvell_console_boot_end
(
void
);
void
marvell_console_runtime_init
(
void
);
void
marvell_console_runtime_end
(
void
);
/* IO storage utility functions */
/* IO storage utility functions */
void
marvell_io_setup
(
void
);
void
marvell_io_setup
(
void
);
...
...
include/plat/marvell/a8k/common/plat_marvell.h
View file @
bbbf7f6b
...
@@ -48,6 +48,12 @@ void marvell_setup_page_tables(uintptr_t total_base,
...
@@ -48,6 +48,12 @@ void marvell_setup_page_tables(uintptr_t total_base,
#endif
#endif
);
);
/* Console utility functions */
void
marvell_console_boot_init
(
void
);
void
marvell_console_boot_end
(
void
);
void
marvell_console_runtime_init
(
void
);
void
marvell_console_runtime_end
(
void
);
/* IO storage utility functions */
/* IO storage utility functions */
void
marvell_io_setup
(
void
);
void
marvell_io_setup
(
void
);
...
...
plat/marvell/a3700/common/a3700_common.mk
View file @
bbbf7f6b
...
@@ -71,7 +71,6 @@ TIMBLDUARTARGS := $(MARVELL_SECURE_BOOT) UART $(IMAGESPATH) $(DOIMAGEPATH) $(CL
...
@@ -71,7 +71,6 @@ TIMBLDUARTARGS := $(MARVELL_SECURE_BOOT) UART $(IMAGESPATH) $(DOIMAGEPATH) $(CL
$(DDR_TOPOLOGY)
0 0
$(DOIMAGE_CFG)
$(TIMNCFG)
$(TIMNSIG)
0
$(DDR_TOPOLOGY)
0 0
$(DOIMAGE_CFG)
$(TIMNCFG)
$(TIMNSIG)
0
DOIMAGE_FLAGS
:=
-r
$(DOIMAGE_CFG)
-v
-D
DOIMAGE_FLAGS
:=
-r
$(DOIMAGE_CFG)
-v
-D
# GICV3
# GICV3
$(eval
$(call
add_define,CONFIG_GICV3))
$(eval
$(call
add_define,CONFIG_GICV3))
...
@@ -91,8 +90,8 @@ ATF_INCLUDES := -Iinclude/common/tbbr \
...
@@ -91,8 +90,8 @@ ATF_INCLUDES := -Iinclude/common/tbbr \
PLAT_INCLUDES
:=
-I
$(PLAT_FAMILY_BASE)
/
$(PLAT)
\
PLAT_INCLUDES
:=
-I
$(PLAT_FAMILY_BASE)
/
$(PLAT)
\
-I
$(PLAT_COMMON_BASE)
/include
\
-I
$(PLAT_COMMON_BASE)
/include
\
-I
$(PLAT_INCLUDE_BASE)
/common
\
-I
$(PLAT_INCLUDE_BASE)
/common
\
-I
$(MARVELL_DRV_BASE)
/uart
\
-I
$(MARVELL_DRV_BASE)
\
-I
$(MARVELL_DRV_BASE)
\
-Iinclude
/drivers/marvell/uart
\
-I
$/
drivers/arm/gic/common/
\
-I
$/
drivers/arm/gic/common/
\
$(ATF_INCLUDES)
$(ATF_INCLUDES)
...
@@ -159,12 +158,12 @@ ifeq ($(MARVELL_SECURE_BOOT),1)
...
@@ -159,12 +158,12 @@ ifeq ($(MARVELL_SECURE_BOOT),1)
@
truncate
-s
%16
$(WTMI_MULTI_IMG)
@
truncate
-s
%16
$(WTMI_MULTI_IMG)
@
openssl enc
-aes-256-cbc
-e
-in
$(WTMI_MULTI_IMG)
\
@
openssl enc
-aes-256-cbc
-e
-in
$(WTMI_MULTI_IMG)
\
-out
$(WTMI_ENC_IMG)
\
-out
$(WTMI_ENC_IMG)
\
-K
`
cat
$(IMAGESPATH)
/aes-256.txt
`
-k
0
-nosalt
\
-K
`
cat
$(IMAGESPATH)
/aes-256.txt
`
-nosalt
\
-iv
`
cat
$(IMAGESPATH)
/iv.txt
`
-p
-iv
`
cat
$(IMAGESPATH)
/iv.txt
`
-p
@
truncate
-s
%16
$(BUILD_PLAT)
/
$(BOOT_IMAGE)
;
@
truncate
-s
%16
$(BUILD_PLAT)
/
$(BOOT_IMAGE)
;
@
openssl enc
-aes-256-cbc
-e
-in
$(BUILD_PLAT)
/
$(BOOT_IMAGE)
\
@
openssl enc
-aes-256-cbc
-e
-in
$(BUILD_PLAT)
/
$(BOOT_IMAGE)
\
-out
$(BUILD_PLAT)
/
$(BOOT_ENC_IMAGE)
\
-out
$(BUILD_PLAT)
/
$(BOOT_ENC_IMAGE)
\
-K
`
cat
$(IMAGESPATH)
/aes-256.txt
`
-k
0
-nosalt
\
-K
`
cat
$(IMAGESPATH)
/aes-256.txt
`
-nosalt
\
-iv
`
cat
$(IMAGESPATH)
/iv.txt
`
-p
-iv
`
cat
$(IMAGESPATH)
/iv.txt
`
-p
endif
endif
$(DOIMAGETOOL)
$(DOIMAGE_FLAGS)
$(DOIMAGETOOL)
$(DOIMAGE_FLAGS)
...
...
plat/marvell/a8k/common/a8k_common.mk
View file @
bbbf7f6b
...
@@ -25,7 +25,6 @@ $(eval $(call add_define,BL31_CACHE_DISABLE))
...
@@ -25,7 +25,6 @@ $(eval $(call add_define,BL31_CACHE_DISABLE))
$(eval
$(call
add_define,PCI_EP_SUPPORT))
$(eval
$(call
add_define,PCI_EP_SUPPORT))
$(eval
$(call
assert_boolean,PCI_EP_SUPPORT))
$(eval
$(call
assert_boolean,PCI_EP_SUPPORT))
AP_NUM
:=
1
AP_NUM
:=
1
$(eval
$(call
add_define,AP_NUM))
$(eval
$(call
add_define,AP_NUM))
...
...
plat/marvell/a8k/common/ble/ble.mk
View file @
bbbf7f6b
...
@@ -12,8 +12,9 @@ PLAT_MARVELL = plat/marvell
...
@@ -12,8 +12,9 @@ PLAT_MARVELL = plat/marvell
BLE_SOURCES
+=
$(BLE_PATH)
/ble_main.c
\
BLE_SOURCES
+=
$(BLE_PATH)
/ble_main.c
\
$(BLE_PATH)
/ble_mem.S
\
$(BLE_PATH)
/ble_mem.S
\
drivers/delay_timer/delay_timer.c
\
drivers/delay_timer/delay_timer.c
\
$(PLAT_MARVELL)
/common/plat_delay_timer.c
$(PLAT_MARVELL)
/common/plat_delay_timer.c
\
$(PLAT_MARVELL)
/common/marvell_console.c
PLAT_INCLUDES
+=
-I
$(MV_DDR_PATH)
\
PLAT_INCLUDES
+=
-I
$(MV_DDR_PATH)
\
-I
$(CURDIR)
/include/
\
-I
$(CURDIR)
/include/
\
...
...
plat/marvell/a8k/common/ble/ble_main.c
View file @
bbbf7f6b
...
@@ -35,13 +35,11 @@ int exec_ble_main(int bootrom_flags)
...
@@ -35,13 +35,11 @@ int exec_ble_main(int bootrom_flags)
* initialize the console and prints will be ignored
* initialize the console and prints will be ignored
*/
*/
if
((
bootrom_flags
&
BR_FLAG_SILENT
)
==
0
)
if
((
bootrom_flags
&
BR_FLAG_SILENT
)
==
0
)
console_init
(
PLAT_MARVELL_BOOT_UART_BASE
,
marvell_console_boot_init
();
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
NOTICE
(
"Starting binary extension
\n
"
);
NOTICE
(
"Starting binary extension
\n
"
);
/* initili
a
ze time (for delay functionality) */
/* initi
a
lize time (for delay functionality) */
plat_delay_timer_init
();
plat_delay_timer_init
();
ble_plat_setup
(
&
skip
);
ble_plat_setup
(
&
skip
);
...
...
plat/marvell/a8k/common/plat_pm.c
View file @
bbbf7f6b
...
@@ -19,7 +19,6 @@
...
@@ -19,7 +19,6 @@
#include <plat_marvell.h>
#include <plat_marvell.h>
#include <platform.h>
#include <platform.h>
#include <plat_pm_trace.h>
#include <plat_pm_trace.h>
#include <platform.h>
#define MVEBU_PRIVATE_UID_REG 0x30
#define MVEBU_PRIVATE_UID_REG 0x30
#define MVEBU_RFU_GLOBL_SW_RST 0x84
#define MVEBU_RFU_GLOBL_SW_RST 0x84
...
@@ -614,6 +613,8 @@ static void a8k_pwr_domain_suspend(const psci_power_state_t *target_state)
...
@@ -614,6 +613,8 @@ static void a8k_pwr_domain_suspend(const psci_power_state_t *target_state)
INFO
(
"Suspending to RAM
\n
"
);
INFO
(
"Suspending to RAM
\n
"
);
marvell_console_runtime_end
();
/* Prevent interrupts from spuriously waking up this cpu */
/* Prevent interrupts from spuriously waking up this cpu */
gicv2_cpuif_disable
();
gicv2_cpuif_disable
();
...
@@ -687,9 +688,7 @@ static void a8k_pwr_domain_suspend_finish(
...
@@ -687,9 +688,7 @@ static void a8k_pwr_domain_suspend_finish(
/* Initialize the console to provide
/* Initialize the console to provide
* early debug support
* early debug support
*/
*/
console_init
(
PLAT_MARVELL_BOOT_UART_BASE
,
marvell_console_runtime_init
();
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
bl31_plat_arch_setup
();
bl31_plat_arch_setup
();
marvell_bl31_platform_setup
();
marvell_bl31_platform_setup
();
...
...
plat/marvell/common/aarch64/marvell_helpers.S
View file @
bbbf7f6b
...
@@ -65,7 +65,11 @@ func plat_crash_console_init
...
@@ -65,7 +65,11 @@ func plat_crash_console_init
mov_imm
x0
,
PLAT_MARVELL_CRASH_UART_BASE
mov_imm
x0
,
PLAT_MARVELL_CRASH_UART_BASE
mov_imm
x1
,
PLAT_MARVELL_CRASH_UART_CLK_IN_HZ
mov_imm
x1
,
PLAT_MARVELL_CRASH_UART_CLK_IN_HZ
mov_imm
x2
,
MARVELL_CONSOLE_BAUDRATE
mov_imm
x2
,
MARVELL_CONSOLE_BAUDRATE
b
console_core_init
#ifdef PLAT_a3700
b
console_a3700_core_init
#else
b
console_16550_core_init
#endif
endfunc
plat_crash_console_init
endfunc
plat_crash_console_init
/
*
---------------------------------------------
/
*
---------------------------------------------
...
@@ -77,7 +81,12 @@ endfunc plat_crash_console_init
...
@@ -77,7 +81,12 @@ endfunc plat_crash_console_init
*/
*/
func
plat_crash_console_putc
func
plat_crash_console_putc
mov_imm
x1
,
PLAT_MARVELL_CRASH_UART_BASE
mov_imm
x1
,
PLAT_MARVELL_CRASH_UART_BASE
b
console_core_putc
#ifdef PLAT_a3700
b
console_a3700_core_putc
#else
b
console_16550_core_putc
#endif
endfunc
plat_crash_console_putc
endfunc
plat_crash_console_putc
/
*
---------------------------------------------
/
*
---------------------------------------------
...
@@ -85,12 +94,16 @@ endfunc plat_crash_console_putc
...
@@ -85,12 +94,16 @@ endfunc plat_crash_console_putc
*
Function
to
force
a
write
of
all
buffered
*
Function
to
force
a
write
of
all
buffered
*
data
that
hasn
't been output.
*
data
that
hasn
't been output.
*
Out
:
return
-
1
on
error
else
return
0
.
*
Out
:
return
-
1
on
error
else
return
0
.
*
Clobber
list
:
x0
,
x1
*
Clobber
list
:
r0
*
---------------------------------------------
*
---------------------------------------------
*/
*/
func
plat_crash_console_flush
func
plat_crash_console_flush
mov_imm
x0
,
PLAT_MARVELL_CRASH_UART_BASE
mov_imm
x0
,
PLAT_MARVELL_CRASH_UART_BASE
b
console_core_flush
#ifdef PLAT_a3700
b
console_a3700_core_flush
#else
b
console_16550_core_flush
#endif
endfunc
plat_crash_console_flush
endfunc
plat_crash_console_flush
/
*
---------------------------------------------------------------------
/
*
---------------------------------------------------------------------
...
...
plat/marvell/common/marvell_bl1_setup.c
View file @
bbbf7f6b
...
@@ -35,9 +35,7 @@ meminfo_t *bl1_plat_sec_mem_layout(void)
...
@@ -35,9 +35,7 @@ meminfo_t *bl1_plat_sec_mem_layout(void)
void
marvell_bl1_early_platform_setup
(
void
)
void
marvell_bl1_early_platform_setup
(
void
)
{
{
/* Initialize the console to provide early debug support */
/* Initialize the console to provide early debug support */
console_init
(
PLAT_MARVELL_BOOT_UART_BASE
,
marvell_console_boot_init
();
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
/* Allow BL1 to see the whole Trusted RAM */
/* Allow BL1 to see the whole Trusted RAM */
bl1_ram_layout
.
total_base
=
MARVELL_BL_RAM_BASE
;
bl1_ram_layout
.
total_base
=
MARVELL_BL_RAM_BASE
;
...
...
plat/marvell/common/marvell_bl2_setup.c
View file @
bbbf7f6b
...
@@ -40,9 +40,7 @@ meminfo_t *bl2_plat_sec_mem_layout(void)
...
@@ -40,9 +40,7 @@ meminfo_t *bl2_plat_sec_mem_layout(void)
void
marvell_bl2_early_platform_setup
(
meminfo_t
*
mem_layout
)
void
marvell_bl2_early_platform_setup
(
meminfo_t
*
mem_layout
)
{
{
/* Initialize the console to provide early debug support */
/* Initialize the console to provide early debug support */
console_init
(
PLAT_MARVELL_BOOT_UART_BASE
,
marvell_console_boot_init
();
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
/* Setup the BL2 memory layout */
/* Setup the BL2 memory layout */
bl2_tzram_layout
=
*
mem_layout
;
bl2_tzram_layout
=
*
mem_layout
;
...
...
plat/marvell/common/marvell_bl31_setup.c
View file @
bbbf7f6b
...
@@ -74,9 +74,7 @@ void marvell_bl31_early_platform_setup(void *from_bl2,
...
@@ -74,9 +74,7 @@ void marvell_bl31_early_platform_setup(void *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
(
PLAT_MARVELL_BOOT_UART_BASE
,
marvell_console_boot_init
();
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
#if RESET_TO_BL31
#if RESET_TO_BL31
/* There are no parameters from BL2 if BL31 is a reset vector */
/* There are no parameters from BL2 if BL31 is a reset vector */
...
@@ -190,10 +188,10 @@ void marvell_bl31_platform_setup(void)
...
@@ -190,10 +188,10 @@ void marvell_bl31_platform_setup(void)
*/
*/
void
marvell_bl31_plat_runtime_setup
(
void
)
void
marvell_bl31_plat_runtime_setup
(
void
)
{
{
console_switch_state
(
CONSOLE_FLAG_RUNTIME
);
/* Initialize the runtime console */
/* Initialize the runtime console */
console_init
(
PLAT_MARVELL_BL31_RUN_UART_BASE
,
marvell_console_runtime_init
();
PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
);
}
}
void
bl31_platform_setup
(
void
)
void
bl31_platform_setup
(
void
)
...
...
plat/marvell/common/marvell_common.mk
View file @
bbbf7f6b
...
@@ -11,6 +11,8 @@ include $(MARVELL_PLAT_BASE)/marvell.mk
...
@@ -11,6 +11,8 @@ include $(MARVELL_PLAT_BASE)/marvell.mk
VERSION_STRING
+=(
Marvell-
${SUBVERSION}
)
VERSION_STRING
+=(
Marvell-
${SUBVERSION}
)
MULTI_CONSOLE_API
:=
1
SEPARATE_CODE_AND_RODATA
:=
1
SEPARATE_CODE_AND_RODATA
:=
1
# flag to switch from PLL to ARO
# flag to switch from PLL to ARO
...
@@ -28,7 +30,8 @@ PLAT_INCLUDES += -I. -Iinclude/common -Iinclude/common/tbbr \
...
@@ -28,7 +30,8 @@ PLAT_INCLUDES += -I. -Iinclude/common -Iinclude/common/tbbr \
PLAT_BL_COMMON_SOURCES
+=
lib/xlat_tables/xlat_tables_common.c
\
PLAT_BL_COMMON_SOURCES
+=
lib/xlat_tables/xlat_tables_common.c
\
lib/xlat_tables/aarch64/xlat_tables.c
\
lib/xlat_tables/aarch64/xlat_tables.c
\
$(MARVELL_PLAT_BASE)
/common/aarch64/marvell_common.c
\
$(MARVELL_PLAT_BASE)
/common/aarch64/marvell_common.c
\
$(MARVELL_PLAT_BASE)
/common/aarch64/marvell_helpers.S
$(MARVELL_PLAT_BASE)
/common/aarch64/marvell_helpers.S
\
$(MARVELL_COMMON_BASE)
/marvell_console.c
BL1_SOURCES
+=
drivers/delay_timer/delay_timer.c
\
BL1_SOURCES
+=
drivers/delay_timer/delay_timer.c
\
drivers/io/io_fip.c
\
drivers/io/io_fip.c
\
...
...
plat/marvell/common/marvell_console.c
0 → 100644
View file @
bbbf7f6b
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <assert.h>
#include <console.h>
#include <debug.h>
#include <plat_marvell.h>
#include <platform_def.h>
#ifdef PLAT_a3700
#include <a3700_console.h>
static
console_a3700_t
marvell_boot_console
;
static
console_a3700_t
marvell_runtime_console
;
#else
#include <uart_16550.h>
static
console_16550_t
marvell_boot_console
;
static
console_16550_t
marvell_runtime_console
;
#endif
/*******************************************************************************
* Functions that set up the console
******************************************************************************/
/* Initialize the console to provide early debug support */
void
marvell_console_boot_init
(
void
)
{
int
rc
=
#ifdef PLAT_a3700
console_a3700_register
(
#else
console_16550_register
(
#endif
PLAT_MARVELL_BOOT_UART_BASE
,
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
,
&
marvell_boot_console
);
if
(
rc
==
0
)
{
/*
* The crash console doesn't use the multi console API, it uses
* the core console functions directly. It is safe to call panic
* and let it print debug information.
*/
panic
();
}
console_set_scope
(
&
marvell_boot_console
.
console
,
CONSOLE_FLAG_BOOT
);
}
void
marvell_console_boot_end
(
void
)
{
(
void
)
console_flush
();
(
void
)
console_unregister
(
&
marvell_boot_console
.
console
);
}
/* Initialize the runtime console */
void
marvell_console_runtime_init
(
void
)
{
int
rc
=
#ifdef PLAT_a3700
console_a3700_register
(
#else
console_16550_register
(
#endif
PLAT_MARVELL_BOOT_UART_BASE
,
PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
,
MARVELL_CONSOLE_BAUDRATE
,
&
marvell_runtime_console
);
if
(
rc
==
0
)
panic
();
console_set_scope
(
&
marvell_runtime_console
.
console
,
CONSOLE_FLAG_RUNTIME
);
}
void
marvell_console_runtime_end
(
void
)
{
(
void
)
console_flush
();
(
void
)
console_unregister
(
&
marvell_runtime_console
.
console
);
}
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