mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-11 23:43:15 +00:00
hello_world: Use new headers and frequency from syscon
This uses the new header files for register definitions and extracts the core frequency from syscon rather than hard coding it. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
12e8b0952d
commit
c5f5f50738
@ -1,3 +1,35 @@
|
|||||||
|
000000004800012c
|
||||||
|
0000000000000000
|
||||||
|
4800002408000048
|
||||||
|
01006b69a600607d
|
||||||
|
a602487d05009f42
|
||||||
|
a64b5a7d14004a39
|
||||||
|
2402004ca64b7b7d
|
||||||
|
00000000480000f4
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
4800002408000048
|
4800002408000048
|
||||||
01006b69a600607d
|
01006b69a600607d
|
||||||
a602487d05009f42
|
a602487d05009f42
|
||||||
@ -5,10 +37,10 @@ a64b5a7d14004a39
|
|||||||
2402004ca64b7b7d
|
2402004ca64b7b7d
|
||||||
3c20000048000004
|
3c20000048000004
|
||||||
782107c660210000
|
782107c660210000
|
||||||
60212f0064210000
|
60211f0064210000
|
||||||
618c00003d800000
|
618c00003d800000
|
||||||
658c0000798c07c6
|
658c0000798c07c6
|
||||||
7d8903a6618c113c
|
7d8903a6618c1014
|
||||||
480000004e800421
|
480000004e800421
|
||||||
0000000000000000
|
0000000000000000
|
||||||
0000000000000000
|
0000000000000000
|
||||||
@ -62,38 +94,6 @@ a64b5a7d14004a39
|
|||||||
0000000000000000
|
0000000000000000
|
||||||
0000000000000000
|
0000000000000000
|
||||||
0000000000000000
|
0000000000000000
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000000000000
|
|
||||||
0000000048000000
|
0000000048000000
|
||||||
0000000000000000
|
0000000000000000
|
||||||
0000000000000000
|
0000000000000000
|
||||||
@ -513,52 +513,74 @@ a64b5a7d14004a39
|
|||||||
e8010010ebc1fff0
|
e8010010ebc1fff0
|
||||||
7c0803a6ebe1fff8
|
7c0803a6ebe1fff8
|
||||||
3c4000014e800020
|
3c4000014e800020
|
||||||
|
7c0802a63842a000
|
||||||
|
3fe2fffffbe1fff8
|
||||||
|
f80100103bff7240
|
||||||
|
48000051f821ffd1
|
||||||
|
7fe3fb7860000000
|
||||||
|
60000000480001d5
|
||||||
|
7fe3fb787c641b78
|
||||||
|
600000004800017d
|
||||||
|
60000000480000ed
|
||||||
|
480001295463063e
|
||||||
|
4bffffec60000000
|
||||||
|
0100000000000000
|
||||||
|
3c40000100000180
|
||||||
3d20c0003842a000
|
3d20c0003842a000
|
||||||
6129200060000000
|
6129200060000000
|
||||||
f922800079290020
|
f922800079290020
|
||||||
394000353d20c000
|
612900203d20c000
|
||||||
7929002061292018
|
7c0004ac79290020
|
||||||
4e800020f9490000
|
3d40001c7d204eea
|
||||||
|
7d295392614a2000
|
||||||
|
394a0018e9428000
|
||||||
|
7c0004ac3929ffff
|
||||||
|
4e8000207d2057ea
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3c40000100000000
|
3c40000100000000
|
||||||
600000003842a000
|
600000003842a000
|
||||||
390a0010e9428000
|
394000ffe9228000
|
||||||
71290001e9280000
|
7c0004ac39290020
|
||||||
e86a00084082fff8
|
4e8000207d404fea
|
||||||
|
0000000000000000
|
||||||
|
3c40000100000000
|
||||||
|
600000003842a000
|
||||||
|
39400000e9228000
|
||||||
|
7c0004ac39290020
|
||||||
|
4e8000207d404fea
|
||||||
|
0000000000000000
|
||||||
|
3c40000100000000
|
||||||
|
600000003842a000
|
||||||
|
39290010e9228000
|
||||||
|
7d204eea7c0004ac
|
||||||
|
4082ffe871290001
|
||||||
|
38630008e8628000
|
||||||
|
7c601eea7c0004ac
|
||||||
4e8000205463063e
|
4e8000205463063e
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3c40000100000000
|
3c40000100000000
|
||||||
600000003842a000
|
600000003842a000
|
||||||
390a0010e9428000
|
39290010e9228000
|
||||||
71290008e9280000
|
7d204eea7c0004ac
|
||||||
f86a00004082fff8
|
4082ffe871290008
|
||||||
000000004e800020
|
7c0004ace9228000
|
||||||
0000000000000000
|
4e8000207c604fea
|
||||||
3842a0003c400001
|
|
||||||
fbc1fff07c0802a6
|
|
||||||
7fc32214fbe1fff8
|
|
||||||
f80100107c7f1b78
|
|
||||||
7fbff040f821ffd1
|
|
||||||
38210030409e000c
|
|
||||||
887f00004bffff10
|
|
||||||
4bffff993bff0001
|
|
||||||
000000004bffffe4
|
|
||||||
0000028001000000
|
|
||||||
7d4348ae39200000
|
|
||||||
409e000c2f8a0000
|
|
||||||
4e8000207d234b78
|
|
||||||
4bffffe839290001
|
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3c40000100000000
|
3c40000100000000
|
||||||
7c0802a63842a000
|
7c0802a63842a000
|
||||||
3fe2fffffbe1fff8
|
fbe1fff8fbc1fff0
|
||||||
f80100103bff7190
|
7c7f1b787fc32214
|
||||||
4bfffec1f821ffd1
|
f821ffd1f8010010
|
||||||
4bffffad7fe3fb78
|
409e000c7fbff040
|
||||||
7fe3fb787c641b78
|
4bfffe0c38210030
|
||||||
4bfffee94bffff59
|
3bff0001887f0000
|
||||||
4bffff195463063e
|
4bffffe44bffff8d
|
||||||
000000004bfffff4
|
0100000000000000
|
||||||
0000018001000000
|
3920000000000280
|
||||||
|
2f8a00007d4348ae
|
||||||
|
7d234b78409e000c
|
||||||
|
392900014e800020
|
||||||
|
000000004bffffe8
|
||||||
|
0000000000000000
|
||||||
6f57206f6c6c6548
|
6f57206f6c6c6548
|
||||||
0000000a0d646c72
|
0000000a0d646c72
|
||||||
|
|||||||
@ -9,7 +9,7 @@ CC = $(CROSS_COMPILE)gcc
|
|||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections
|
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections -I../include
|
||||||
ASFLAGS = $(CFLAGS)
|
ASFLAGS = $(CFLAGS)
|
||||||
LDFLAGS = -T powerpc.lds
|
LDFLAGS = -T powerpc.lds
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,10 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
|
#include "microwatt_soc.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
|
#define UART_FREQ 115200
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Core UART functions to implement for a port
|
* Core UART functions to implement for a port
|
||||||
@ -9,32 +13,14 @@
|
|||||||
|
|
||||||
static uint64_t potato_uart_base;
|
static uint64_t potato_uart_base;
|
||||||
|
|
||||||
#define PROC_FREQ 100000000
|
|
||||||
#define UART_FREQ 115200
|
|
||||||
#define UART_BASE 0xc0002000
|
|
||||||
|
|
||||||
#define POTATO_CONSOLE_TX 0x00
|
|
||||||
#define POTATO_CONSOLE_RX 0x08
|
|
||||||
#define POTATO_CONSOLE_STATUS 0x10
|
|
||||||
#define POTATO_CONSOLE_STATUS_RX_EMPTY 0x01
|
|
||||||
#define POTATO_CONSOLE_STATUS_TX_EMPTY 0x02
|
|
||||||
#define POTATO_CONSOLE_STATUS_RX_FULL 0x04
|
|
||||||
#define POTATO_CONSOLE_STATUS_TX_FULL 0x08
|
|
||||||
#define POTATO_CONSOLE_CLOCK_DIV 0x18
|
|
||||||
#define POTATO_CONSOLE_IRQ_EN 0x20
|
|
||||||
|
|
||||||
static uint64_t potato_uart_reg_read(int offset)
|
static uint64_t potato_uart_reg_read(int offset)
|
||||||
{
|
{
|
||||||
uint64_t val;
|
return readq(potato_uart_base + offset);
|
||||||
|
|
||||||
__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)
|
static void potato_uart_reg_write(int offset, uint64_t val)
|
||||||
{
|
{
|
||||||
__asm__ volatile("stdcix %0,%1,%2" : : "r" (val), "b" (potato_uart_base), "r" (offset));
|
writeq(val, potato_uart_base + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int potato_uart_rx_empty(void)
|
static int potato_uart_rx_empty(void)
|
||||||
@ -86,9 +72,12 @@ static unsigned long potato_uart_divisor(unsigned long proc_freq, unsigned long
|
|||||||
|
|
||||||
void potato_uart_init(void)
|
void potato_uart_init(void)
|
||||||
{
|
{
|
||||||
potato_uart_base = UART_BASE;
|
uint64_t proc_freq;
|
||||||
|
|
||||||
potato_uart_reg_write(POTATO_CONSOLE_CLOCK_DIV, potato_uart_divisor(PROC_FREQ, UART_FREQ));
|
potato_uart_base = UART_BASE;
|
||||||
|
proc_freq = readq(SYSCON_BASE + SYS_REG_CLKINFO);
|
||||||
|
|
||||||
|
potato_uart_reg_write(POTATO_CONSOLE_CLOCK_DIV, potato_uart_divisor(proc_freq, UART_FREQ));
|
||||||
}
|
}
|
||||||
|
|
||||||
void potato_uart_irq_en(void)
|
void potato_uart_irq_en(void)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -515,53 +515,72 @@ e8010010ebc1fff0
|
|||||||
3c4000014e800020
|
3c4000014e800020
|
||||||
7c0802a63842a000
|
7c0802a63842a000
|
||||||
3fe2fffffbe1fff8
|
3fe2fffffbe1fff8
|
||||||
f80100103bff71a8
|
f80100103bff7240
|
||||||
48000051f821ffd1
|
48000051f821ffd1
|
||||||
7fe3fb7860000000
|
7fe3fb7860000000
|
||||||
6000000048000139
|
60000000480001d5
|
||||||
7fe3fb787c641b78
|
7fe3fb787c641b78
|
||||||
60000000480000e1
|
600000004800017d
|
||||||
6000000048000065
|
60000000480000ed
|
||||||
480000955463063e
|
480001295463063e
|
||||||
4bffffec60000000
|
4bffffec60000000
|
||||||
0100000000000000
|
0100000000000000
|
||||||
3c40000100000180
|
3c40000100000180
|
||||||
3d20c0003842a000
|
3d20c0003842a000
|
||||||
6129200060000000
|
6129200060000000
|
||||||
7929002039000018
|
f922800079290020
|
||||||
3940001af9228000
|
612900203d20c000
|
||||||
4e8000207d4947ea
|
7c0004ac79290020
|
||||||
|
3d40001c7d204eea
|
||||||
|
7d295392614a2000
|
||||||
|
394a0018e9428000
|
||||||
|
7c0004ac3929ffff
|
||||||
|
4e8000207d2057ea
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3c40000100000000
|
3c40000100000000
|
||||||
600000003842a000
|
600000003842a000
|
||||||
39000010e9228000
|
394000ffe9228000
|
||||||
794707e17d4946ea
|
7c0004ac39290020
|
||||||
386000084082fff8
|
4e8000207d404fea
|
||||||
5463063e7c691eea
|
|
||||||
000000004e800020
|
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3842a0003c400001
|
3c40000100000000
|
||||||
e942800060000000
|
600000003842a000
|
||||||
7d2a46ea39000010
|
39400000e9228000
|
||||||
4082fff87927efe3
|
7c0004ac39290020
|
||||||
7c6a4fea39200000
|
4e8000207d404fea
|
||||||
000000004e800020
|
|
||||||
0000000000000000
|
0000000000000000
|
||||||
3842a0003c400001
|
3c40000100000000
|
||||||
fbc1fff07c0802a6
|
600000003842a000
|
||||||
3884fffffbe1fff8
|
39290010e9228000
|
||||||
7fe322143bc3ffff
|
7d204eea7c0004ac
|
||||||
|
4082ffe871290001
|
||||||
|
38630008e8628000
|
||||||
|
7c601eea7c0004ac
|
||||||
|
4e8000205463063e
|
||||||
|
0000000000000000
|
||||||
|
3c40000100000000
|
||||||
|
600000003842a000
|
||||||
|
39290010e9228000
|
||||||
|
7d204eea7c0004ac
|
||||||
|
4082ffe871290008
|
||||||
|
7c0004ace9228000
|
||||||
|
4e8000207c604fea
|
||||||
|
0000000000000000
|
||||||
|
3c40000100000000
|
||||||
|
7c0802a63842a000
|
||||||
|
fbe1fff8fbc1fff0
|
||||||
|
7c7f1b787fc32214
|
||||||
f821ffd1f8010010
|
f821ffd1f8010010
|
||||||
419e00107fbef840
|
409e000c7fbff040
|
||||||
4bffff9d8c7e0001
|
4bfffe0c38210030
|
||||||
382100304bfffff0
|
3bff0001887f0000
|
||||||
000000004bfffe98
|
4bffffe44bffff8d
|
||||||
0000028001000000
|
0100000000000000
|
||||||
7d4348ae39200000
|
3920000000000280
|
||||||
419e000c2f8a0000
|
2f8a00007d4348ae
|
||||||
4bfffff039290001
|
7d234b78409e000c
|
||||||
4e8000207d234b78
|
392900014e800020
|
||||||
0000000000000000
|
000000004bffffe8
|
||||||
0000000000000000
|
0000000000000000
|
||||||
6f57206f6c6c6548
|
6f57206f6c6c6548
|
||||||
0000000a0d646c72
|
0000000a0d646c72
|
||||||
|
|||||||
@ -9,7 +9,7 @@ CC = $(CROSS_COMPILE)gcc
|
|||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections
|
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections -I../include
|
||||||
ASFLAGS = $(CFLAGS)
|
ASFLAGS = $(CFLAGS)
|
||||||
LDFLAGS = -T powerpc.lds
|
LDFLAGS = -T powerpc.lds
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ CC = $(CROSS_COMPILE)gcc
|
|||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections -I ../../hello_world
|
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections -I ../../hello_world -I ../../include
|
||||||
ASFLAGS = $(CFLAGS)
|
ASFLAGS = $(CFLAGS)
|
||||||
LDFLAGS = -T powerpc.lds
|
LDFLAGS = -T powerpc.lds
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user