From patchwork Thu Aug 31 05:19:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudiu Zissulescu Ianculescu X-Patchwork-Id: 75016 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 E017E385841C for ; Thu, 31 Aug 2023 05:19:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E017E385841C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1693459193; bh=8VtdGCnH0RXMl30OTNQy6EVasGTve1AEZR/Fz8GXX9k=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=ufWVta340w5++Z+Q1XVMtL4NETbUtnkbkZJ/3pmtyB3vSPrDYumSQf/osDEjIS6pz EfcsjpeDccJokvqnDhaZPX6CeEzz0pkfm7aXF5c0CftFsACUwk6qf8vf2NcITnLvAO YVZ1/q8mnXgQqzFWCJ6TIXSwDjE0afgfff7E6ae0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by sourceware.org (Postfix) with ESMTPS id 41D073858D20 for ; Thu, 31 Aug 2023 05:19:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 41D073858D20 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-51e28cac164so3394808a12.1 for ; Wed, 30 Aug 2023 22:19:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693459161; x=1694063961; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8VtdGCnH0RXMl30OTNQy6EVasGTve1AEZR/Fz8GXX9k=; b=HuLOfFOTM09QBkSBxYGPaJbNKs1NBjA1O0KTTTc2yoXbLqfX+6zX/cSnKUBLS/3YQH RuLCiFG1UExZh6mv/chfu8kaFzfVKf/mLlvUdmvML6LO2GZ5S73rpOZKiZqMx9jU8XHS flX8+CgiFjoLNcBFZXcowiae3cp+21/sEfpQuvPrC1CpHeO5xGF3UrThfFmXJO3e69Sp nBok1JLmD8uoIDuQtFeGPxWz2TXMxkw6QlHedNg6f6fFMtMR5MvWbQug+Zn2RwG56ZkA lpj9xdakVXbgq4fFTyvWy0DEHyxlr2WCmmnDFkbmk/qiaugFyhuag3l6Fsw+harfwffU ZazQ== X-Gm-Message-State: AOJu0YwTaLQs/2e1/dniknQ1TZCxV5fz8wqE0T3rFAe8zjkpvwAlTMmu SFvzuTf1A7xFndHDLL/Z8upn6xjyEf8= X-Google-Smtp-Source: AGHT+IFCPZrxJjshI9n1qfM79ChtFW/tfEtV+1xigELes4G0GcMCn9lOGwUBpOdU75NwORJ+o/qLkw== X-Received: by 2002:a05:6402:2712:b0:523:463d:1ed3 with SMTP id y18-20020a056402271200b00523463d1ed3mr1781963edd.15.1693459161250; Wed, 30 Aug 2023 22:19:21 -0700 (PDT) Received: from fatty.nomansland ([193.187.151.25]) by smtp.gmail.com with ESMTPSA id l22-20020a056402345600b0052c11951f4asm355660edc.82.2023.08.30.22.19.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Aug 2023 22:19:20 -0700 (PDT) To: binutils@sourceware.org Cc: fbedard@synopsys.com Subject: [committed] arc: Update elfarcv2 script template Date: Thu, 31 Aug 2023 08:19:20 +0300 Message-Id: <20230831051920.788490-1-claziss@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Claudiu Zissulescu via Binutils From: Claudiu Zissulescu Ianculescu Reply-To: Claudiu Zissulescu Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" Update ARC's elfarcv2 script template with: - The .ivt section (Interrupt Vector Table) is mapped at the begining of STARTUP_MEMORY when ivtbase_addr is not defined. Previously, it was pointing to 0x00. - MEMORY_FILE is a new emulation paramter and sets the name for the linker script file which holds the MEMORY commands required by arcv2elfx emulation. - Four new linker variables are introduced available when arcv2elf emulation is used: * __TEXT_REGION_ORIGIN__ Once defined it is setting the text region origin. By default it points to zero. * __TEXT_REGION_LENGTH__ Once defined it is setting the text region length. By default it is set to 2M. * __DATA_REGION_ORIGIN__ Once defined it is setting the data region origin. By default it is set to 0x80000000. * __DATA_REGION_LENGTH__ Once defined it is setting the data region length. By default it is set to 2M. ld/ChangeLog: * scripttempl/elfarcv2.sc: Update script template. Signed-off-by: Claudiu Zissulescu --- ld/scripttempl/elfarcv2.sc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/ld/scripttempl/elfarcv2.sc b/ld/scripttempl/elfarcv2.sc index f1b8a69d090..3054e4c62f3 100644 --- a/ld/scripttempl/elfarcv2.sc +++ b/ld/scripttempl/elfarcv2.sc @@ -58,7 +58,7 @@ IVT=" /* If the 'ivtbase_addr' symbol is defined, it indicates the base address of the interrupt vectors. See description of INT_VECTOR_BASE register. */ - .ivt DEFINED (ivtbase_addr) ? ivtbase_addr : 0x00 : + .ivt DEFINED (ivtbase_addr) ? ivtbase_addr : ORIGIN(${STARTUP_MEMORY}) : { ${RELOCATING+ PROVIDE (__ivtbase_addr = .); } KEEP (*(.ivt)); @@ -104,21 +104,25 @@ fi # case $GENERIC_BOARD in yes|1|YES) + test -z "$MEMORY_FILE" && MEMORY_FILE="memory.x" MEMORY_DEF=" /* Get memory banks definition from some user configuration file. This file must be located in some linker directory (search path with -L). See fixed memory banks emulation script. */ -INCLUDE memory.x; +INCLUDE ${MEMORY_FILE}; " ;; *) -MEMORY_DEF=" -/* Fixed definition of the available memory banks. - See generic emulation script for a user defined configuration. */ + MEMORY_DEF=" +__TEXT_REGION_ORIGIN__ = DEFINED(__TEXT_REGION_ORIGIN__) ? __TEXT_REGION_ORIGIN__ : 0x00; +__TEXT_REGION_LENGTH__ = DEFINED(__TEXT_REGION_LENGTH__) ? __TEXT_REGION_LENGTH__ : ${ICCM_SIZE}; +__DATA_REGION_ORIGIN__ = DEFINED(__DATA_REGION_ORIGIN__) ? __DATA_REGION_ORIGIN__ : ${RAM_START_ADDR}; +__DATA_REGION_LENGTH__ = DEFINED(__DATA_REGION_LENGTH__) ? __DATA_REGION_LENGTH__ : ${RAM_SIZE}; + MEMORY { - ICCM : ORIGIN = 0x00000000, LENGTH = ${ICCM_SIZE} - DCCM : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE} + ICCM : ORIGIN = __TEXT_REGION_ORIGIN__, LENGTH = __TEXT_REGION_LENGTH__ + DCCM : ORIGIN = __DATA_REGION_ORIGIN__, LENGTH = __DATA_REGION_LENGTH__ } " ;;