From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id A6B6138582B9 for ; Fri, 5 Jan 2024 03:07:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A6B6138582B9 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sifive.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A6B6138582B9 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::631 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704424036; cv=none; b=B8+XDp99cw65kwuv/kYj/yRo0PeKVKBDCF/qwi0a2t1tpU6yH/j44rcB5eS7I31kRkn6OuLOedd2fF1rf2cCdawXw1OC1aCM4iszRTatxDIf/l0Slf2CeJA5rIcKy2l3xI6B6tNVXdxu+2YL96hCt4wq6KxrqO6ylPs475pgbJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704424036; c=relaxed/simple; bh=xknp/fMLl5MdsZnLZikQWRjp4O7H5YMkDAhY8CTj0u4=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=eE88TmQgt3Ep4606wHFn57vRBpFLFNAoe12m/ZdABuRG5LeUqhvxRKwQDkMQyCDl5dIjfEwT+RnRx4r4gpPj26E9q6YYtTmn8pwBjSnpBVnclXGkQ3ijcH/97MIQc6UBH0kpogWBcxMuxxL8C3HnMQO1gwP9yGjnfhIZyuhWncE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1d4a2526a7eso7702605ad.3 for ; Thu, 04 Jan 2024 19:07:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1704424033; x=1705028833; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=KF/mIebQJm0V6JCpEs34v9ALL2zPYQZxVXiUyBCDfvo=; b=m3YrZ8lSX15V130xHONoVmU+qIeRWt3ZKyHgAXFKjbBW0qlGL+vxpq+MSNcjKKY8gO MAy1kD1UKX3knbZ37vD+lXkUPAVOWIVTaaDhHM5ugnDBIy0DVWn0OA+PY0ZYR4DZKm7C RDWHh22EZLWDmfQYRw+JCuKqcYyNx+MJKBR5MKrE56/2Gxgzbjg/Uu5f4FLrj7Xg/7ED 3qNAqdJanX7FEaZ8eiXtjq76pa/E6pEbBo6rjSNMlh8iJY6n0GnQtjG/wRk2rQt6txGL 4llgfGjB+82gAI4XOQRRuRcmvXGTBiGmT1QHYYyLSN6tMgvhuDw7RPSDR6d8jxJptI4Y tgpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704424033; x=1705028833; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KF/mIebQJm0V6JCpEs34v9ALL2zPYQZxVXiUyBCDfvo=; b=GVmZkLM29VHV1qMg2aaUcsmGG4hvGvwfndkWHVLxAqNMVWcKt9vMaBO3GUcUR2snQw hZoh9dxuELRM8iSV7JOpFTDEYwWyqdD8OYpgIzm/3cBlApDl89GBq+CB/FYjC4CFBYpc wQ17uar5IhMlgpF7e4PkO1dRaUPw+SPeKB98nRReOe5SEWpxqWoRg7Y3h08rXTu3kWpb le8pmwPD5uULNO1SCx8jZgaxc1jH9ZTHjAsYnHIdVetN/1olBTzfslzzR82BRQ5d5MW0 5GPNw4dYDW8eW2gfiQbemDtA99F3+lztR54kkcHGko3TCcdH9LnYE2mlvYMRjGTgEfvh A5Hg== X-Gm-Message-State: AOJu0Yx3AJGEbW1DtEeDb85Yq1x5oPzn8Y0ZwXeVxG3w1pE1RqyJy6nK uFYElJFCFM6aBu1SjGuoo9mQB+EIlzS7RCuYzUoIsW8FRAqf8A== X-Google-Smtp-Source: AGHT+IG3g+EZJuG+FG0/R4urZYWkAolQvNwdftjKpj3+vbQtSoANWNZcTbrLnBBrkbZ73ZnkyO2aTw== X-Received: by 2002:a17:903:2986:b0:1d4:60b8:aefa with SMTP id lm6-20020a170903298600b001d460b8aefamr1679022plb.9.1704424033528; Thu, 04 Jan 2024 19:07:13 -0800 (PST) Received: from sw05.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id l6-20020a170902d34600b001d4ceb32787sm328756plk.78.2024.01.04.19.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jan 2024 19:07:13 -0800 (PST) From: Hau Hsu To: hau.hsu@sifive.com, newlib@sourceware.org, kito.cheng@gmail.com Subject: [PATCH] RISC-V: Initialize the jvt CSR Date: Fri, 5 Jan 2024 11:07:09 +0800 Message-Id: <20240105030709.4179529-1-hau.hsu@sifive.com> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Set symbol '__jvt_base$' as weak. So if the symbol is not set in the linker script, the address would be 0. We initialize jvt CSR only if the address is not 0. Also use csr number directly instead of using symbolic name to prevent the backward incompatible issue. psabi reference: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/2d770815dc9a8b11e61ea1abd487cb25ee56ad5e/riscv-elf.adoc#table-jump-relaxation --- libgloss/riscv/crt0.S | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libgloss/riscv/crt0.S b/libgloss/riscv/crt0.S index 7a4e4e32c..187ca4a56 100644 --- a/libgloss/riscv/crt0.S +++ b/libgloss/riscv/crt0.S @@ -26,6 +26,19 @@ _start: addi gp, gp, %pcrel_lo(1b) .option pop + /* Initialize jvt CSR (reg addr: 0x0017) */ + .weak __jvt_base$ + lla a0, __jvt_base$ + beqz a0, .Ljvt_init_end + /* Enable zicsr to set jvt. + Also need to exclude conflict extensions. */ +.option push +.option norelax +.option arch, +zicsr + csrw 0x17, a0 +.option pop +.Ljvt_init_end: + # Clear the bss segment la a0, __bss_start la a2, _end -- 2.37.1