From patchwork Tue May 21 09:56:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuriy Kolerov X-Patchwork-Id: 90574 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F0D5E3846424 for ; Tue, 21 May 2024 10:01:57 +0000 (GMT) X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by sourceware.org (Postfix) with ESMTPS id 7884F384AB64 for ; Tue, 21 May 2024 09:58:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7884F384AB64 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7884F384AB64 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::234 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716285512; cv=none; b=c7kyWtotIZGFumiINz29HGeii5nPAQdXg5lrFH6zmMDnRyiq2snMAlpVXogta9cJP/QP9d9XJj7TP54uYsEjhlAtFJMkl6ZGWKXsPPmf16lsxWH8zA59DnX7PGSjyJwa9nn2jL6cDLD7RjdsZs3KTO33qqyZEKkPeJiJn3jkmLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716285512; c=relaxed/simple; bh=eOF8KAtRXdFUWKT0tLFSaVTy+S2sOhuAmbBcfCKT9nE=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=PZvhQlDXB4LuGd1kmmi44pfhkvKvIPLMPtQya78X+U1xMn3JHz+avj8YL9x9AVU3Ew/25XO5dcShvB5t1JMqSXMM6DkzSLHRoMJkI23mJTipjIQ0MDrW5L+8OTAAO+AEgCBJrR0G13AiS7l7XPfIHdH/fTQ/znauC8dO+4dxliI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2e73359b8fbso15774601fa.2 for ; Tue, 21 May 2024 02:58:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716285505; x=1716890305; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=125uOjbAjeCZxksmcvsGyKJMUdnx6YS7fstkShvPxSA=; b=XeupQG+QaQbZsNamWO8dsm+VJpXS43pRS9EQ/V4gd0E9hPhdrLt8C2XF0MRl3msi4D oHUokotTyq15ozJfTn/ab5d5rWdIpZQ4sEZTLvL1N+bHkgd8Ko7h7dj7sFLwa4iyoy1r FF1St7G3EJ/teqR1RMGmkxy6/qIQkH/iXz0vb7TNmRKoDnEqfRntwAAfLfOKFEfyUVG6 72jaglLVKhbOPxGitnXBjK/L4vuIkFWveOz6M/Ogse4kj39kR7hbkdA9ndyJbeSU2fuu sh9fGijw9PewVXfYzCbTxxBobO395l3wpvSLZTzsL279krLkW4x7rjOwY7KiQh6kRiwR 1QQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716285505; x=1716890305; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=125uOjbAjeCZxksmcvsGyKJMUdnx6YS7fstkShvPxSA=; b=g3W2ddzqdFtxqGgUCB5++hg1e3LbA+VgajJLf/Cr/Q5jmR2AC7qX953UJ1AL/xKoVx F8073RXw2IRLsGmQDF4OEKACUnXztAPVBd40WgaDWMKC3ZsJxEQVnVpfMBggcM/jqRiM QMJop4+6CLP5d8rgrWMQD0pLWCCpFGkKJEjwnvIJwQ+pT0ZJCdN4GKU1b7c/03shN1DD 7V4TjX2UyRHp1O+SU5NIsJtlsgUA0TLIMXgrc4Z0yLED5HwVRyZRJqUpfzHJl2C9Ve1n fAzBzQJAAW/uH/Jqb/mvG0zentimxiu4H7fvtPLMLskAXdSEAsFpTmjKuZ6oUeg/5eOq krww== X-Gm-Message-State: AOJu0YwnKdz4/LQoI6qBkL5QvZqKlvynUryhqWpR+z0UKpD3j+Ie2erv BrbS3bhTwZSxT8ZxmXtn0e0CpoTwt+oET+yDCxRvhqRpkrmdptWi04Bc76EzEQs= X-Google-Smtp-Source: AGHT+IHLhCi7RlSjzJUB8F7bfVN6sylcpmj1xYbjN7V12QEHD90HPsF7XznUr2Q4DKY559AMGSGjRg== X-Received: by 2002:a05:651c:2114:b0:2e1:7423:21b2 with SMTP id 38308e7fff4ca-2e51fd3fdd2mr322205431fa.9.1716285505164; Tue, 21 May 2024 02:58:25 -0700 (PDT) Received: from localhost.localdomain ([2a00:a041:e626:f00:a285:867a:5e98:7729]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-41f87b2653bsm490773635e9.4.2024.05.21.02.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 May 2024 02:58:24 -0700 (PDT) From: kolerov93@gmail.com To: newlib@sourceware.org Cc: shahab@synopsys.com, claziss@gmail.com, Yuriy Kolerov , Vladimir Isaev Subject: [PATCH 14/15] arc: libgloss: Add support of EM Starter Kit board Date: Tue, 21 May 2024 10:56:57 +0100 Message-Id: <20240521095658.10311-15-kolerov93@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240521095658.10311-1-kolerov93@gmail.com> References: <20240521095658.10311-1-kolerov93@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: newlib-bounces+patchwork=sourceware.org@sourceware.org From: Yuriy Kolerov These specs files are introduced for EMSK board: * emsk1_em4.specs - EMSKv1 with EM4 core, everything in ICCM/DCCM memory * emsk1_em6.specs - EMSKv1 with EM6 core, everything in ICCM/DCCM memory * emsk1_em6_ram.specs - EMSKv1 with EM6 core, startup code in ICCM and everything else in RAM * emsk2.1_em5d.specs - EMSKv2.1 with EM5D core, everything in ICCM/DCCM memory * emsk2.1_em7d.specs - EMSKv2.1 with EM7D core, everything in ICCM/DCCM memory * emsk2.1_em7d_ram.specs - EMSKv2.1 with EM7D core, startup code in ICCM and everything else in RAM * emsk2.2_em7d.specs - EMSKv2.2+ with EM7D core, everything in ICCM/DCCM memory * emsk2.2_em7d_ram.specs - EMSKv2.2+ with EM7D core, startup code in ICCM and everything else in RAM * emsk2.2_em9d.specs - EMSKv2.2+ with EM9D core, everything in ICCM/DCCM memory * emsk2.2_em9d_ram.specs - EMSKv2.2+ with EM9D core, startup code in ICCM and everything else in RAM * emsk2.2_em11d.specs - EMSKv2.2+ with EM11D core, everything in ICCM/DCCM memory * emsk2.2_em11d_ram.specs - EMSKv2.2+ with EM11D core, startup code in ICCM and everything else in RAM An example of building an application: $ arc-elf32-gcc -mcpu=em -specs=emsk2.2_em11d_ram.specs main.c -o main Signed-off-by: Vladimir Isaev Signed-off-by: Yuriy Kolerov --- libgloss/arc/emsk-uart-setup.c | 33 ++++++++++++++++++++++++++++ libgloss/arc/emsk1_em4.ld | 14 ++++++++++++ libgloss/arc/emsk1_em4.specs | 18 +++++++++++++++ libgloss/arc/emsk1_em6.ld | 14 ++++++++++++ libgloss/arc/emsk1_em6.specs | 18 +++++++++++++++ libgloss/arc/emsk1_em6_ram.ld | 14 ++++++++++++ libgloss/arc/emsk1_em6_ram.specs | 18 +++++++++++++++ libgloss/arc/emsk2.1_em5d.ld | 14 ++++++++++++ libgloss/arc/emsk2.1_em5d.specs | 18 +++++++++++++++ libgloss/arc/emsk2.1_em7d.ld | 15 +++++++++++++ libgloss/arc/emsk2.1_em7d.specs | 18 +++++++++++++++ libgloss/arc/emsk2.1_em7d_ram.ld | 15 +++++++++++++ libgloss/arc/emsk2.1_em7d_ram.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em11d.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em11d.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em11d_ram.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em11d_ram.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em7d.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em7d.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em7d_ram.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em7d_ram.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em9d.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em9d.specs | 18 +++++++++++++++ libgloss/arc/emsk2.2_em9d_ram.ld | 15 +++++++++++++ libgloss/arc/emsk2.2_em9d_ram.specs | 18 +++++++++++++++ 25 files changed, 425 insertions(+) create mode 100644 libgloss/arc/emsk-uart-setup.c create mode 100644 libgloss/arc/emsk1_em4.ld create mode 100644 libgloss/arc/emsk1_em4.specs create mode 100644 libgloss/arc/emsk1_em6.ld create mode 100644 libgloss/arc/emsk1_em6.specs create mode 100644 libgloss/arc/emsk1_em6_ram.ld create mode 100644 libgloss/arc/emsk1_em6_ram.specs create mode 100644 libgloss/arc/emsk2.1_em5d.ld create mode 100644 libgloss/arc/emsk2.1_em5d.specs create mode 100644 libgloss/arc/emsk2.1_em7d.ld create mode 100644 libgloss/arc/emsk2.1_em7d.specs create mode 100644 libgloss/arc/emsk2.1_em7d_ram.ld create mode 100644 libgloss/arc/emsk2.1_em7d_ram.specs create mode 100644 libgloss/arc/emsk2.2_em11d.ld create mode 100644 libgloss/arc/emsk2.2_em11d.specs create mode 100644 libgloss/arc/emsk2.2_em11d_ram.ld create mode 100644 libgloss/arc/emsk2.2_em11d_ram.specs create mode 100644 libgloss/arc/emsk2.2_em7d.ld create mode 100644 libgloss/arc/emsk2.2_em7d.specs create mode 100644 libgloss/arc/emsk2.2_em7d_ram.ld create mode 100644 libgloss/arc/emsk2.2_em7d_ram.specs create mode 100644 libgloss/arc/emsk2.2_em9d.ld create mode 100644 libgloss/arc/emsk2.2_em9d.specs create mode 100644 libgloss/arc/emsk2.2_em9d_ram.ld create mode 100644 libgloss/arc/emsk2.2_em9d_ram.specs diff --git a/libgloss/arc/emsk-uart-setup.c b/libgloss/arc/emsk-uart-setup.c new file mode 100644 index 000000000..b8e1ea859 --- /dev/null +++ b/libgloss/arc/emsk-uart-setup.c @@ -0,0 +1,33 @@ +/* + * emsk-uart-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) +{ + const uint32_t aux_dmp_per = 0x20a; + void * const uart_base = (char *)__builtin_arc_lr(aux_dmp_per) + 0x00009000; + const int uart_aux_mapped = 0; + const uint32_t uart_clock = 50000000; + 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/emsk1_em4.ld b/libgloss/arc/emsk1_em4.ld new file mode 100644 index 000000000..416480587 --- /dev/null +++ b/libgloss/arc/emsk1_em4.ld @@ -0,0 +1,14 @@ +/* Memory map fo ARC EM Starter Kit v1 - EM4 */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 128K + DCCM : ORIGIN = 0x80000000, LENGTH = 64K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DCCM) +REGION_ALIAS("sdata", DCCM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk1_em4.specs b/libgloss/arc/emsk1_em4.specs new file mode 100644 index 000000000..06b991ed9 --- /dev/null +++ b/libgloss/arc/emsk1_em4.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk1_em4.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk1_em6.ld b/libgloss/arc/emsk1_em6.ld new file mode 100644 index 000000000..ab620c0c1 --- /dev/null +++ b/libgloss/arc/emsk1_em6.ld @@ -0,0 +1,14 @@ +/* Memory map for ARC EM Starter Kit v1 - EM6GP */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 32K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk1_em6.specs b/libgloss/arc/emsk1_em6.specs new file mode 100644 index 000000000..51ce25e2b --- /dev/null +++ b/libgloss/arc/emsk1_em6.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk1_em6.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk1_em6_ram.ld b/libgloss/arc/emsk1_em6_ram.ld new file mode 100644 index 000000000..5bc702b48 --- /dev/null +++ b/libgloss/arc/emsk1_em6_ram.ld @@ -0,0 +1,14 @@ +/* Memory map for ARC EM Starter Kit v1 - EM6GP */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 32K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk1_em6_ram.specs b/libgloss/arc/emsk1_em6_ram.specs new file mode 100644 index 000000000..b3543ce19 --- /dev/null +++ b/libgloss/arc/emsk1_em6_ram.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk1_em6_ram.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.1_em5d.ld b/libgloss/arc/emsk2.1_em5d.ld new file mode 100644 index 000000000..57a4c4042 --- /dev/null +++ b/libgloss/arc/emsk2.1_em5d.ld @@ -0,0 +1,14 @@ +/* ARC EM Starter Kit v2.1 - EM5D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 128K + DCCM : ORIGIN = 0x80000000, LENGTH = 256K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DCCM) +REGION_ALIAS("sdata", DCCM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.1_em5d.specs b/libgloss/arc/emsk2.1_em5d.specs new file mode 100644 index 000000000..e6f0f086b --- /dev/null +++ b/libgloss/arc/emsk2.1_em5d.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.1_em5d.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.1_em7d.ld b/libgloss/arc/emsk2.1_em7d.ld new file mode 100644 index 000000000..0f4f3305d --- /dev/null +++ b/libgloss/arc/emsk2.1_em7d.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.1 - EM7D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 32K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 32K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.1_em7d.specs b/libgloss/arc/emsk2.1_em7d.specs new file mode 100644 index 000000000..1eeb8716d --- /dev/null +++ b/libgloss/arc/emsk2.1_em7d.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.1_em7d.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.1_em7d_ram.ld b/libgloss/arc/emsk2.1_em7d_ram.ld new file mode 100644 index 000000000..931269cfc --- /dev/null +++ b/libgloss/arc/emsk2.1_em7d_ram.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.1 - EM7D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 32K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 32K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.1_em7d_ram.specs b/libgloss/arc/emsk2.1_em7d_ram.specs new file mode 100644 index 000000000..d4f1fd852 --- /dev/null +++ b/libgloss/arc/emsk2.1_em7d_ram.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.1_em7d_ram.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em11d.ld b/libgloss/arc/emsk2.2_em11d.ld new file mode 100644 index 000000000..551b0f443 --- /dev/null +++ b/libgloss/arc/emsk2.2_em11d.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM11D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 64K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 64K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DCCM) +REGION_ALIAS("sdata", DCCM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em11d.specs b/libgloss/arc/emsk2.2_em11d.specs new file mode 100644 index 000000000..455e67434 --- /dev/null +++ b/libgloss/arc/emsk2.2_em11d.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em11d.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em11d_ram.ld b/libgloss/arc/emsk2.2_em11d_ram.ld new file mode 100644 index 000000000..3e58e91f1 --- /dev/null +++ b/libgloss/arc/emsk2.2_em11d_ram.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM11D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 64K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 64K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em11d_ram.specs b/libgloss/arc/emsk2.2_em11d_ram.specs new file mode 100644 index 000000000..5a7c4aff2 --- /dev/null +++ b/libgloss/arc/emsk2.2_em11d_ram.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em11d_ram.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em7d.ld b/libgloss/arc/emsk2.2_em7d.ld new file mode 100644 index 000000000..f7e0cf662 --- /dev/null +++ b/libgloss/arc/emsk2.2_em7d.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM7D and EM9D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 256K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 128K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DCCM) +REGION_ALIAS("sdata", DCCM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em7d.specs b/libgloss/arc/emsk2.2_em7d.specs new file mode 100644 index 000000000..6b1217473 --- /dev/null +++ b/libgloss/arc/emsk2.2_em7d.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em7d.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em7d_ram.ld b/libgloss/arc/emsk2.2_em7d_ram.ld new file mode 100644 index 000000000..3f6ec312a --- /dev/null +++ b/libgloss/arc/emsk2.2_em7d_ram.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM7D and EM9D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 256K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 128K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em7d_ram.specs b/libgloss/arc/emsk2.2_em7d_ram.specs new file mode 100644 index 000000000..66917d2fb --- /dev/null +++ b/libgloss/arc/emsk2.2_em7d_ram.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em7d_ram.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em9d.ld b/libgloss/arc/emsk2.2_em9d.ld new file mode 100644 index 000000000..f7e0cf662 --- /dev/null +++ b/libgloss/arc/emsk2.2_em9d.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM7D and EM9D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 256K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 128K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", ICCM) +REGION_ALIAS("data", DCCM) +REGION_ALIAS("sdata", DCCM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em9d.specs b/libgloss/arc/emsk2.2_em9d.specs new file mode 100644 index 000000000..db8a4bcde --- /dev/null +++ b/libgloss/arc/emsk2.2_em9d.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em9d.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s diff --git a/libgloss/arc/emsk2.2_em9d_ram.ld b/libgloss/arc/emsk2.2_em9d_ram.ld new file mode 100644 index 000000000..3f6ec312a --- /dev/null +++ b/libgloss/arc/emsk2.2_em9d_ram.ld @@ -0,0 +1,15 @@ +/* Memory map for ARC EM Starter Kit v2.2 and 2.3 - EM7D and EM9D */ + +MEMORY +{ + ICCM : ORIGIN = 0x00000000, LENGTH = 256K + DRAM : ORIGIN = 0x10000000, LENGTH = 128M + DCCM : ORIGIN = 0x80000000, LENGTH = 128K +} + +REGION_ALIAS("startup", ICCM) +REGION_ALIAS("text", DRAM) +REGION_ALIAS("data", DRAM) +REGION_ALIAS("sdata", DRAM) + +INCLUDE arcv2elf-common.ld diff --git a/libgloss/arc/emsk2.2_em9d_ram.specs b/libgloss/arc/emsk2.2_em9d_ram.specs new file mode 100644 index 000000000..a524453d5 --- /dev/null +++ b/libgloss/arc/emsk2.2_em9d_ram.specs @@ -0,0 +1,18 @@ +%rename link emsk_link +%rename link_gcc_c_sequence emsk_link_gcc_c_sequence +%rename startfile emsk_startfile + +*link: +%(emsk_link) -T emsk2.2_em9d_ram.ld%s + +*emsk_libgloss: +-luart_8250 -lemsk_uart + +*emsk_libc: +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} + +*link_gcc_c_sequence: +%(emsk_link_gcc_c_sequence) --start-group %G %(emsk_libc) %(emsk_libgloss) --end-group + +*startfile: +%(emsk_startfile) arc-main-helper%O%s