mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-13 15:18:09 +00:00
Merge pull request #157 from paulusmack/master
Start using cache-inhibited loads and stores to access the UART
This commit is contained in:
commit
e8a55f900f
@ -1,7 +1,7 @@
|
||||
ARCH = $(shell uname -m)
|
||||
ifneq ("$(ARCH)", "ppc64")
|
||||
ifneq ("$(ARCH)", "ppc64le")
|
||||
CROSS_COMPILE = powerpc64le-linux-
|
||||
CROSS_COMPILE ?= powerpc64le-linux-
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "console.h"
|
||||
|
||||
/*
|
||||
* Core UART functions to implement for a port
|
||||
*/
|
||||
@ -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)
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
#include <stddef.h>
|
||||
|
||||
void potato_uart_init(void);
|
||||
int getchar(void);
|
||||
void putchar(unsigned char c);
|
||||
|
||||
Binary file not shown.
@ -1,5 +1,3 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
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
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
ARCH = $(shell uname -m)
|
||||
ifneq ("$(ARCH)", "ppc64")
|
||||
ifneq ("$(ARCH)", "ppc64le")
|
||||
CROSS_COMPILE = powerpc64le-linux-
|
||||
CROSS_COMPILE ?= powerpc64le-linux-
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user