console: Move console files
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 14 May 2020 00:08:06 +0000 (10:08 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 15 May 2020 10:48:58 +0000 (20:48 +1000)
console.c goes to a new lib/ where we'll store other general utilities
and console.h goes to include/

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
hello_world/Makefile
hello_world/console.c [deleted file]
hello_world/console.h [deleted file]
include/console.h [new file with mode: 0644]
lib/console.c [new file with mode: 0644]
litedram/gen-src/sdram_init/Makefile
rust_lib_demo/console.c
rust_lib_demo/console.h
tests/Makefile.test

index 9051e7dc2b483d8ffe4d70eb4bf7236ed553491d..4c7d3acd3a0132696bdc54461e30108550f9adda 100644 (file)
@@ -15,6 +15,9 @@ LDFLAGS = -T powerpc.lds
 
 all: hello_world.hex
 
+console.o: ../lib/console.c
+       $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
 hello_world.elf: hello_world.o head.o console.o
        $(LD) $(LDFLAGS) -o $@ $^
 
diff --git a/hello_world/console.c b/hello_world/console.c
deleted file mode 100644 (file)
index 66a7d3a..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "console.h"
-#include "microwatt_soc.h"
-#include "io.h"
-
-#define UART_FREQ 115200
-
-/*
- * Core UART functions to implement for a port
- */
-
-static uint64_t potato_uart_base;
-
-static uint64_t potato_uart_reg_read(int offset)
-{
-       return readq(potato_uart_base + offset);
-}
-
-static void potato_uart_reg_write(int offset, uint64_t val)
-{
-       writeq(val, potato_uart_base + offset);
-}
-
-static int potato_uart_rx_empty(void)
-{
-       uint64_t val;
-
-       val = potato_uart_reg_read(POTATO_CONSOLE_STATUS);
-
-       if (val & POTATO_CONSOLE_STATUS_RX_EMPTY)
-               return 1;
-
-       return 0;
-}
-
-static int potato_uart_tx_full(void)
-{
-       uint64_t val;
-
-       val = potato_uart_reg_read(POTATO_CONSOLE_STATUS);
-
-       if (val & POTATO_CONSOLE_STATUS_TX_FULL)
-               return 1;
-
-       return 0;
-}
-
-static char potato_uart_read(void)
-{
-       uint64_t val;
-
-       val = potato_uart_reg_read(POTATO_CONSOLE_RX);
-
-       return (char)(val & 0x000000ff);
-}
-
-static void potato_uart_write(char c)
-{
-       uint64_t val;
-
-       val = c;
-
-       potato_uart_reg_write(POTATO_CONSOLE_TX, val);
-}
-
-static unsigned long potato_uart_divisor(unsigned long proc_freq, unsigned long uart_freq)
-{
-       return proc_freq / (uart_freq * 16) - 1;
-}
-
-void potato_uart_init(void)
-{
-       uint64_t proc_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)
-{
-       potato_uart_reg_write(POTATO_CONSOLE_IRQ_EN, 0xff);
-}
-
-void potato_uart_irq_dis(void)
-{
-       potato_uart_reg_write(POTATO_CONSOLE_IRQ_EN, 0x00);
-}
-
-int getchar(void)
-{
-       while (potato_uart_rx_empty())
-               /* Do nothing */ ;
-
-       return potato_uart_read();
-}
-
-int putchar(int c)
-{
-       while (potato_uart_tx_full())
-               /* Do Nothing */;
-
-       potato_uart_write(c);
-       return c;
-}
-
-void putstr(const char *str, unsigned long len)
-{
-       for (unsigned long i = 0; i < len; i++) {
-               putchar(str[i]);
-       }
-}
-
-int puts(const char *str)
-{
-       unsigned int i;
-
-       for (i = 0; *str; i++) {
-               char c = *(str++);
-               if (c == 10)
-                       putchar(13);
-               putchar(c);
-       }
-       return 0;
-}
-
-size_t strlen(const char *s)
-{
-       size_t len = 0;
-
-       while (*s++)
-               len++;
-
-       return len;
-}
diff --git a/hello_world/console.h b/hello_world/console.h
deleted file mode 100644 (file)
index 5cf303a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <stddef.h>
-
-void potato_uart_init(void);
-void potato_uart_irq_en(void);
-void potato_uart_irq_dis(void);
-int getchar(void);
-void putchar(unsigned char c);
-void putstr(const char *str, unsigned long len);
-size_t strlen(const char *s);
diff --git a/include/console.h b/include/console.h
new file mode 100644 (file)
index 0000000..a16db9a
--- /dev/null
@@ -0,0 +1,10 @@
+#include <stddef.h>
+
+void potato_uart_init(void);
+void potato_uart_irq_en(void);
+void potato_uart_irq_dis(void);
+int getchar(void);
+int putchar(int c);
+void putstr(const char *str, unsigned long len);
+int puts(const char *str);
+size_t strlen(const char *s);
diff --git a/lib/console.c b/lib/console.c
new file mode 100644 (file)
index 0000000..66a7d3a
--- /dev/null
@@ -0,0 +1,138 @@
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "console.h"
+#include "microwatt_soc.h"
+#include "io.h"
+
+#define UART_FREQ 115200
+
+/*
+ * Core UART functions to implement for a port
+ */
+
+static uint64_t potato_uart_base;
+
+static uint64_t potato_uart_reg_read(int offset)
+{
+       return readq(potato_uart_base + offset);
+}
+
+static void potato_uart_reg_write(int offset, uint64_t val)
+{
+       writeq(val, potato_uart_base + offset);
+}
+
+static int potato_uart_rx_empty(void)
+{
+       uint64_t val;
+
+       val = potato_uart_reg_read(POTATO_CONSOLE_STATUS);
+
+       if (val & POTATO_CONSOLE_STATUS_RX_EMPTY)
+               return 1;
+
+       return 0;
+}
+
+static int potato_uart_tx_full(void)
+{
+       uint64_t val;
+
+       val = potato_uart_reg_read(POTATO_CONSOLE_STATUS);
+
+       if (val & POTATO_CONSOLE_STATUS_TX_FULL)
+               return 1;
+
+       return 0;
+}
+
+static char potato_uart_read(void)
+{
+       uint64_t val;
+
+       val = potato_uart_reg_read(POTATO_CONSOLE_RX);
+
+       return (char)(val & 0x000000ff);
+}
+
+static void potato_uart_write(char c)
+{
+       uint64_t val;
+
+       val = c;
+
+       potato_uart_reg_write(POTATO_CONSOLE_TX, val);
+}
+
+static unsigned long potato_uart_divisor(unsigned long proc_freq, unsigned long uart_freq)
+{
+       return proc_freq / (uart_freq * 16) - 1;
+}
+
+void potato_uart_init(void)
+{
+       uint64_t proc_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)
+{
+       potato_uart_reg_write(POTATO_CONSOLE_IRQ_EN, 0xff);
+}
+
+void potato_uart_irq_dis(void)
+{
+       potato_uart_reg_write(POTATO_CONSOLE_IRQ_EN, 0x00);
+}
+
+int getchar(void)
+{
+       while (potato_uart_rx_empty())
+               /* Do nothing */ ;
+
+       return potato_uart_read();
+}
+
+int putchar(int c)
+{
+       while (potato_uart_tx_full())
+               /* Do Nothing */;
+
+       potato_uart_write(c);
+       return c;
+}
+
+void putstr(const char *str, unsigned long len)
+{
+       for (unsigned long i = 0; i < len; i++) {
+               putchar(str[i]);
+       }
+}
+
+int puts(const char *str)
+{
+       unsigned int i;
+
+       for (i = 0; *str; i++) {
+               char c = *(str++);
+               if (c == 10)
+                       putchar(13);
+               putchar(c);
+       }
+       return 0;
+}
+
+size_t strlen(const char *s)
+{
+       size_t len = 0;
+
+       while (*s++)
+               len++;
+
+       return len;
+}
index 28395a36002350c5ac5c1fd00ea8c0d5e7393747..367b89dfeb3bcf24dd6566f015027f940b46b5fd 100644 (file)
@@ -4,7 +4,7 @@ include variables.mak
 OBJ = $(BUILD_DIR)/obj
 
 PROGRAM = sdram_init
-OBJECTS = $(OBJ)/head.o $(OBJ)/main.o $(OBJ)/sdram.o
+OBJECTS = $(OBJ)/head.o $(OBJ)/main.o $(OBJ)/sdram.o $(OBJ)/console.o
 
 #### Compiler
 
@@ -50,10 +50,12 @@ all: objdir $(OBJ)/$(PROGRAM).hex
 
 $(OBJ)/sdram.o: $(LXSRC_DIR)/sdram.c
        $(call Q,CC, $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@, $@)
-$(OBJ)/%.o : $(SRC_DIR)/%.S
-       $(call Q,AS, $(CC) $(ASFLAGS) -c $< -o $@, $@)
+$(OBJ)/console.o: $(SRC_DIR)/../../../lib/console.c
+       $(call Q,CC, $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@, $@)
 $(OBJ)/%.o : $(SRC_DIR)/%.c
        $(call Q,CC, $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@, $@)
+$(OBJ)/%.o : $(SRC_DIR)/%.S
+       $(call Q,AS, $(CC) $(ASFLAGS) -c $< -o $@, $@)
 $(OBJ)/%.o : $(SRC_DIR)/libc/src/%.c
        $(call Q,CC, $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@, $@)
 
index 112b085495079f367830ec3afd6586d1c02a3c9b..1c80e349cbffbf8c5e4a21306d6850df2311bee3 120000 (symlink)
@@ -1 +1 @@
-../hello_world/console.c
\ No newline at end of file
+../lib/console.c
\ No newline at end of file
index fbe66d586730509942439c4061726465051afb75..7a6f2c38af6b50b7e6099db9886daac83dba9e8a 120000 (symlink)
@@ -1 +1 @@
-../hello_world/console.h
\ No newline at end of file
+../include/console.h
\ No newline at end of file
index 9241e3f06af4998d77f33a8b0a73df98fadbcaea..3b800d0492d483340cad8916c60b85788060468d 100644 (file)
@@ -9,14 +9,17 @@ CC = $(CROSS_COMPILE)gcc
 LD = $(CROSS_COMPILE)ld
 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 -I ../../include
+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)
 LDFLAGS = -T powerpc.lds
 
 all: $(TEST).hex
 
-$(TEST).elf: $(TEST).o head.o ../../hello_world/console.o
-       $(LD) $(LDFLAGS) -o $(TEST).elf $(TEST).o head.o ../../hello_world/console.o
+console.o: ../../lib/console.c
+       $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
+$(TEST).elf: $(TEST).o head.o console.o
+       $(LD) $(LDFLAGS) -o $(TEST).elf $(TEST).o head.o console.o
 
 $(TEST).bin: $(TEST).elf
        $(OBJCOPY) -O binary $(TEST).elf $(TEST).bin