hello_world: Use ldcix/stdcix to access UART

This is one step towards ultimately removing the address-based
cache inhibit hack from dcache.vhdl.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
pull/157/head
Paul Mackerras 4 years ago
parent abefafd70b
commit 04ec2115ad

@ -25,23 +25,16 @@ static uint64_t potato_uart_base;

static uint64_t potato_uart_reg_read(int offset)
{
uint64_t addr;
uint64_t val;

addr = potato_uart_base + offset;

val = *(volatile uint64_t *)addr;
__asm__ volatile("ldcix %0,%1,%2" : "=r" (val) : "b" (potato_uart_base), "r" (offset));

return val;
}

static void potato_uart_reg_write(int offset, uint64_t val)
{
uint64_t addr;

addr = potato_uart_base + offset;

*(volatile uint64_t *)addr = val;
__asm__ volatile("stdcix %0,%1,%2" : : "r" (val), "b" (potato_uart_base), "r" (offset));
}

static int potato_uart_rx_empty(void)

Binary file not shown.

Binary file not shown.

@ -40,7 +40,7 @@ a64b5a7d14004a39
60211f0064210000
618c00003d800000
658c0000798c07c6
7d8903a6618c113c
7d8903a6618c1014
480000004e800421
0000000000000000
0000000000000000
@ -513,74 +513,55 @@ a64b5a7d14004a39
e8010010ebc1fff0
7c0803a6ebe1fff8
3c4000014e800020
7c0802a63842a000
3fe2fffffbe1fff8
f80100103bff71a8
48000051f821ffd1
7fe3fb7860000000
6000000048000139
7fe3fb787c641b78
60000000480000e1
6000000048000065
480000955463063e
4bffffec60000000
0100000000000000
3c40000100000180
3d20c0003842a000
6129200060000000
f922800079290020
3940001a3d20c000
7929002061292018
4e800020f9490000
7929002039000018
3940001af9228000
4e8000207d4947ea
0000000000000000
3c40000100000000
600000003842a000
390a0010e9428000
71290001e9280000
e86a00084082fff8
4e8000205463063e
39000010e9228000
794707e17d4946ea
386000084082fff8
5463063e7c691eea
000000004e800020
0000000000000000
3c40000100000000
600000003842a000
390a0010e9428000
71290008e9280000
f86a00004082fff8
3842a0003c400001
e942800060000000
7d2a46ea39000010
4082fff87927efe3
7c6a4fea39200000
000000004e800020
0000000000000000
3842a0003c400001
fbc1fff07c0802a6
7fc32214fbe1fff8
f80100107c7f1b78
7fbff040f821ffd1
38210030409e000c
887f00004bffff10
4bffff993bff0001
000000004bffffe4
3884fffffbe1fff8
7fe322143bc3ffff
f821ffd1f8010010
419e00107fbef840
4bffff9d8c7e0001
382100304bfffff0
000000004bfffe98
0000028001000000
7d4348ae39200000
409e000c2f8a0000
419e000c2f8a0000
4bfffff039290001
4e8000207d234b78
4bffffe839290001
0000000000000000
3c40000100000000
7c0802a63842a000
3fe2fffffbe1fff8
f80100103bff7190
4bfffec1f821ffd1
4bffffad7fe3fb78
7fe3fb787c641b78
4bfffee94bffff59
4bffff195463063e
000000004bfffff4
0000018001000000
0000000000000000
6f57206f6c6c6548
0000000a0d646c72
0000000000000010
0141780400527a01
0000001000010c1b
fffffe5800000018
0000000000000040
0000002c00000010
00000038fffffe84
0000001000000000
fffffea800000040
0000000000000034
0000005400000028
00000050fffffec8
9f029e0041094500
437e4111300e4401
4106dedf41000e0a
000000100000000b
fffffeec00000080
000000000000002c
000000940000001c
00000054ffffff04
44019f0041094400
0000007e4111300e

Loading…
Cancel
Save