View difference between Paste ID: E2UTpvur and FjZ1JaDY
SHOW: | | - or go back to the newest paste.
1
#define UART_BASE		0x90000000
2
3
#define UART_TX_REG					0x0
4
#define UART_RX_REG					0x0
5
#define UART_INT_ENABLE_REG			0x1
6
#define UART_INT_ID_REG				0x2
7
#define UART_FIFO_CTRL_REG			0x2
8
#define UART_LINE_CTRL_REG			0x3
9
#define UART_MODEM_CTRL_REG			0x4
10
#define UART_LINE_STATUS_REG		0x5
11
12
#define UART_DIV_LSB_REG			0x0
13
#define UART_DIV_MSB_REG			0x1
14
15
#define UART_LSR_THRE				0x20
16
17
boot_init:
18
	l.movhi	r0, 0
19
	l.movhi	r1, hi(UART_BASE)
20
	l.ori	r2, r0, 0x80
21
	l.sb	UART_LINE_CTRL_REG(r1), r2
22
	l.sb	UART_DIV_MSB_REG(r1), r0
23
	l.ori	r2, r0, 0x1B
24
	l.sb	UART_DIV_LSB_REG(r1), r2
25
	l.ori	r2, r0, 0x83
26-
	l.sb	UART_TX_REG(r1), r3
26+
27
	l.jal	uart_putc
28
	l.ori	r3, r0, '>'
29
	l.jal	uart_putc
30
	l.ori	r3, r0, 'H'
31
	l.jal	uart_putc
32
	l.ori	r3, r0, 'e'
33
	l.jal	uart_putc
34
	l.ori	r3, r0, 'l'
35
	l.jal	uart_putc
36
	l.ori	r3, r0, 'l'
37
	l.jal	uart_putc
38
	l.ori	r3, r0, 'o'
39
	l.jal	uart_putc
40
	l.ori	r3, r0, '!'
41
	l.j		.	
42
	l.nop
43
44
uart_putc:
45
	l.lbz	r4, UART_LINE_STATUS_REG(r1)
46
	l.andi	r4, r4, UART_LSR_THRE
47
	l.sfnei	r4, UART_LSR_THRE
48
	l.bf	uart_putc
49
	 l.nop
50
	l.jr 	r9
51
	l.sb	UART_TX_REG(r1), r3