annotate target-utils/libbase/serio.S @ 1017:759b3cbf46aa

doc/TCH-special-feature: document written
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 21 Mar 2016 06:05:57 +0000
parents a7b0b426f9ca
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 #include "ns16550.h"
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3 @ this module implements the elementary serial I/O operations
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4
992
a7b0b426f9ca target-utils: boot ROM UART autodetection revamped
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 991
diff changeset
5 .comm uart_base,4,4
a7b0b426f9ca target-utils: boot ROM UART autodetection revamped
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 991
diff changeset
6
1
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 .text
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 .code 32
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9 .global serial_out
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 serial_out:
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 ldr r1, =uart_base
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 ldr r2, [r1]
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 1: ldrb r3, [r2, #NS16550_LSR]
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 tst r3, #NS16550_LSR_THRE
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15 beq 1b
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 strb r0, [r2, #NS16550_THR]
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 bx lr
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19 .global serial_in_poll
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20 serial_in_poll:
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 ldr r1, =uart_base
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 ldr r2, [r1]
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23 ldrb r3, [r2, #NS16550_LSR]
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 tst r3, #NS16550_LSR_DR
393
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
25 ldrneb r0, [r2, #NS16550_RBR]
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
26 mvneq r0, #0
1
da98dc08f575 loadagent: beginning to lay the foundation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27 bx lr
393
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
28
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
29 .global serial_flush
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
30 serial_flush:
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
31 ldr r1, =uart_base
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
32 ldr r2, [r1]
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
33 1: ldrb r3, [r2, #NS16550_LSR]
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
34 tst r3, #NS16550_LSR_TEMP
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
35 beq 1b
d7591faa1258 target-utils serial I/O made consistent with other projects
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 11
diff changeset
36 bx lr