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
22c2316d
Commit
22c2316d
authored
5 years ago
by
Manish Pandey
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "console: 16550: Prepare for skipping initialisation" into integration
parents
2049b6f9
cd50ffd2
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
drivers/ti/uart/aarch32/16550_console.S
+13
-5
drivers/ti/uart/aarch32/16550_console.S
drivers/ti/uart/aarch64/16550_console.S
+8
-1
drivers/ti/uart/aarch64/16550_console.S
include/drivers/ti/uart/uart_16550.h
+5
-0
include/drivers/ti/uart/uart_16550.h
with
26 additions
and
6 deletions
+26
-6
drivers/ti/uart/aarch32/16550_console.S
View file @
22c2316d
...
...
@@ -89,16 +89,19 @@ endfunc console_16550_core_init
.
globl
console_16550_register
/
*
-------------------------------------------------------
*
int
console_
stm32
_register
(
uintptr_t
baseaddr
,
*
int
console_
16550
_register
(
uintptr_t
baseaddr
,
*
uint32_t
clock
,
uint32_t
baud
,
*
struct
console_
stm32
*
console
)
;
*
Function
to
initialize
and
register
a
new
STM32
*
console_
16550_t
*
console
)
;
*
Function
to
initialize
and
register
a
new
16550
*
console
.
Storage
passed
in
for
the
console
struct
*
*
must
*
be
persistent
(
i
.
e
.
not
from
the
stack
)
.
*
If
r1
(
UART
clock
)
is
0
,
initialisation
will
be
*
skipped
,
relying
on
previous
code
to
have
done
*
this
already
.
r2
is
ignored
then
as
well
.
*
In
:
r0
-
UART
register
base
address
*
r1
-
UART
clock
in
Hz
*
r2
-
Baud
rate
*
r3
-
pointer
to
empty
console_
stm32
struct
*
r2
-
Baud
rate
(
ignored
if
r1
is
0
)
*
r3
-
pointer
to
empty
console_
16550_t
struct
*
Out
:
return
1
on
success
,
0
on
error
*
Clobber
list
:
r0
,
r1
,
r2
*
-------------------------------------------------------
...
...
@@ -110,10 +113,15 @@ func console_16550_register
beq
register_fail
str
r0
,
[
r4
,
#
CONSOLE_T_16550_BASE
]
/
*
A
clock
rate
of
zero
means
to
skip
the
initialisation
.
*/
cmp
r1
,
#
0
beq
register_16550
bl
console_16550_core_init
cmp
r0
,
#
0
beq
register_fail
register_16550
:
mov
r0
,
r4
pop
{
r4
,
lr
}
finish_console_register
16550
putc
=
1
,
getc
=
1
,
flush
=
1
...
...
This diff is collapsed.
Click to expand it.
drivers/ti/uart/aarch64/16550_console.S
View file @
22c2316d
...
...
@@ -92,9 +92,12 @@ endfunc console_16550_core_init
*
Function
to
initialize
and
register
a
new
16550
*
console
.
Storage
passed
in
for
the
console
struct
*
*
must
*
be
persistent
(
i
.
e
.
not
from
the
stack
)
.
*
If
w1
(
UART
clock
)
is
0
,
initialisation
will
be
*
skipped
,
relying
on
previous
code
to
have
done
*
this
already
.
w2
is
ignored
then
as
well
.
*
In
:
x0
-
UART
register
base
address
*
w1
-
UART
clock
in
Hz
*
w2
-
Baud
rate
*
w2
-
Baud
rate
(
ignored
if
w1
is
0
)
*
x3
-
pointer
to
empty
console_16550_t
struct
*
Out
:
return
1
on
success
,
0
on
error
*
Clobber
list
:
x0
,
x1
,
x2
,
x6
,
x7
,
x14
...
...
@@ -106,9 +109,13 @@ func console_16550_register
cbz
x6
,
register_fail
str
x0
,
[
x6
,
#
CONSOLE_T_16550_BASE
]
/
*
A
clock
rate
of
zero
means
to
skip
the
initialisation
.
*/
cbz
w1
,
register_16550
bl
console_16550_core_init
cbz
x0
,
register_fail
register_16550
:
mov
x0
,
x6
mov
x30
,
x7
finish_console_register
16550
putc
=
1
,
getc
=
1
,
flush
=
1
...
...
This diff is collapsed.
Click to expand it.
include/drivers/ti/uart/uart_16550.h
View file @
22c2316d
...
...
@@ -87,6 +87,11 @@ typedef struct {
* 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.
* When |clock| has a value of 0, the UART will *not* be initialised. This
* means the UART should already be enabled and the baudrate and clock setup
* should have been done already, either by platform specific code or by
* previous firmware stages. The |baud| parameter will be ignored in this
* case as well.
*/
int
console_16550_register
(
uintptr_t
baseaddr
,
uint32_t
clock
,
uint32_t
baud
,
console_16550_t
*
console
);
...
...
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