diff options
author | Yuriy Kolerov <kolerov93@gmail.com> | 2024-05-21 10:56:55 +0100 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2024-05-22 14:26:28 -0400 |
commit | fc2e959a42fb56416daad21ffbe450c9efe31bd3 (patch) | |
tree | b24416d4440e0179a88e889d55c7373c04c71a47 | |
parent | 4f50d9d6204987f84b3d1912a543f21ba1378f41 (diff) | |
download | newlib-fc2e959a42fb56416daad21ffbe450c9efe31bd3.zip newlib-fc2e959a42fb56416daad21ffbe450c9efe31bd3.tar.gz newlib-fc2e959a42fb56416daad21ffbe450c9efe31bd3.tar.bz2 |
arc: libgloss: Add support of HS Development Kit board
An example of building an application:
$ arc-elf32-gcc -mcpu=hs -specs=hsdk.specs main.c -o main
Signed-off-by: Vladimir Isaev <vvisaev@gmail.com>
Signed-off-by: Yuriy Kolerov <kolerov93@gmail.com>
-rw-r--r-- | libgloss/arc/hsdk-uart-setup.c | 32 | ||||
-rw-r--r-- | libgloss/arc/hsdk.ld | 13 | ||||
-rw-r--r-- | libgloss/arc/hsdk.specs | 18 |
3 files changed, 63 insertions, 0 deletions
diff --git a/libgloss/arc/hsdk-uart-setup.c b/libgloss/arc/hsdk-uart-setup.c new file mode 100644 index 0000000..f2c2242 --- /dev/null +++ b/libgloss/arc/hsdk-uart-setup.c @@ -0,0 +1,32 @@ +/* + * hsdk-setup.c -- provide _setup_low_level() to initialize UART. + * + * Copyright (c) 2024 Synopsys Inc. + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + * + */ + +#include "uart-8250.h" + +/* Setup UART parameters. */ +int +_setup_low_level (void) +{ + void * const uart_base = (void *) 0xf0005000; + const int uart_aux_mapped = 0; + const uint32_t uart_clock = 33333333; + const uint32_t uart_baud = 115200; + + _uart_8250_setup (uart_base, uart_aux_mapped, uart_clock, uart_baud); + + return 0; +} diff --git a/libgloss/arc/hsdk.ld b/libgloss/arc/hsdk.ld new file mode 100644 index 0000000..ddf024f --- /dev/null +++ b/libgloss/arc/hsdk.ld @@ -0,0 +1,13 @@ +/* Memory map for ARC HS Development Kit and ARC HS Development Kit 4xD */ + +MEMORY +{ + DRAM : ORIGIN = 0x90000000, LENGTH = 0x50000000 +} + +REGION_ALIAS("startup", DRAM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/hsdk.specs b/libgloss/arc/hsdk.specs new file mode 100644 index 0000000..fda702f --- /dev/null +++ b/libgloss/arc/hsdk.specs @@ -0,0 +1,18 @@ +%rename link hsdk_link +%rename link_gcc_c_sequence hsdk_link_gcc_c_sequence +%rename startfile hsdk_startfile + +*link: +%(hsdk_link) -T hsdk.ld%s + +*hsdk_libgloss: +-luart_8250 -lhsdk_uart + +*hsdk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(hsdk_link_gcc_c_sequence) --start-group %G %(hsdk_libc) %(hsdk_libgloss) --end-group + +*startfile: +%(hsdk_startfile) arc-main-helper%O%s |