From fc2e959a42fb56416daad21ffbe450c9efe31bd3 Mon Sep 17 00:00:00 2001 From: Yuriy Kolerov Date: Tue, 21 May 2024 10:56:55 +0100 Subject: [PATCH] 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 Signed-off-by: Yuriy Kolerov --- libgloss/arc/hsdk-uart-setup.c | 32 ++++++++++++++++++++++++++++++++ libgloss/arc/hsdk.ld | 13 +++++++++++++ libgloss/arc/hsdk.specs | 18 ++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 libgloss/arc/hsdk-uart-setup.c create mode 100644 libgloss/arc/hsdk.ld create mode 100644 libgloss/arc/hsdk.specs diff --git a/libgloss/arc/hsdk-uart-setup.c b/libgloss/arc/hsdk-uart-setup.c new file mode 100644 index 000000000..f2c224274 --- /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 000000000..ddf024f1b --- /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 000000000..fda702f4f --- /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 -- 2.43.5