From nobody Mon Jan 06 18:51:55 2025 X-Original-To: freebsd-riscv@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YRjvw0ZQXz5k2d8 for ; Mon, 06 Jan 2025 18:51:56 +0000 (UTC) (envelope-from mhorne@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YRjvv745fz4NFN; Mon, 6 Jan 2025 18:51:55 +0000 (UTC) (envelope-from mhorne@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1736189516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=X6NuLqLZKXWxwD8LZIrd//RKPtOalLqWdZIF7pmK3IU=; b=t5m13nGJYzC8qyDf7It5xDVm5n9ILGTg9yQLKo2/32xRQQZn3HgVC9hBCiVx+odtSekrsb z70w2y3FUMoprtNh2Hq7+nWNp6kU7amYuj6vf++Tro/RCYE9qJC86BqwzxuiAa4ap/+k9G TXa2dssVEmYmAPo58WlwC/I3V2vu2stiti/TvpqPiwOo8TVYXilWdKYnClEUmA9YZGqd1I vrBsIPqBnNglCUoxemNc9bV7xcuiPFNYIBK1u7zaS/NwwJK6p2khahpPfk0aJLK7Qwztae INyX7nC/Eq7uYJQeeJWiw+S00/3eHVXjsnVVjV1LLxd7j8D/wE6LhMD1617ROw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1736189516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=X6NuLqLZKXWxwD8LZIrd//RKPtOalLqWdZIF7pmK3IU=; b=hUJpWUMlwp7dw3d6Cb9EuxTalaYe3TQ5oYU9N5Vjiaimdy/A9GJw8U7QibcOoxH4Rho3Qn cRJPRzQ9x4OuLN8CkxESlZpRId5W9MWJlgQZqyNiGPrA/oIixYQMk+i/1kV4Wj3xWPYrfR 3zg+uBwuGtrYqllDUhi8K37DPH78bV+dzunGwLk6VcxkVpXf/niPSzTXA5/ZRYQCtybbhr yHgJksdv+sDLGBHzvwOofIspVTEyCPvVF2UKXgo81q90lpeArhWrvNkc2ywuBq9CC6uhsQ 5Yhul7M9PAgNLd7Lz4s74S7yNonRCS1p4vNhAdowH5pwNb79sWrWXhKJFpYdCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1736189516; a=rsa-sha256; cv=none; b=nTjMYU6z56/y+36F1a5at++vbitFbbUfmvLLbdK2e3vIbnZuVcW31tGIVU7pq9tMd+sVcN gHla/I/WPAXN6cFOjbW4ab8+/rydoKLPXW96qrEDcTzj+ttuPK//BS7VhNYsDYzuqB0JDu 3FaW5ujRxEbw1pji1GlodJXLcooJt71U5c6Ae77rYlDYZfn/qvH7WYj5UsZArhOUJsMmq4 wbFGs/KIjm7VfmnAGgVN3pQb6bQmRvxdycQswIkWKrEVk0fL5vFe2jcHB933vLvtBbf6YV sd/6z985Ky7OfgBV/4yCO5SiPCcQ9lsGH5FwWyohPUSSsfoMxsYrqq8esRaBsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [192.168.1.151] (hlfxns018gw-134-41-188-50.dhcp-dynamic.fibreop.ns.bellaliant.net [134.41.188.50]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: mhorne) by smtp.freebsd.org (Postfix) with ESMTPSA id 4YRjvv5rNgzny1; Mon, 06 Jan 2025 18:51:55 +0000 (UTC) (envelope-from mhorne@freebsd.org) Message-ID: Date: Mon, 6 Jan 2025 14:51:55 -0400 List-Id: FreeBSD on the RISC-V instruction set architecture List-Archive: https://lists.freebsd.org/archives/freebsd-riscv List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: freebsd-riscv@freebsd.org Sender: owner-freebsd-riscv@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Definition of the CSRs To: Himanshu Chauhan , freebsd-riscv@freebsd.org References: <82D14A27-E9E6-4544-A00E-91BA71BA6C8B@thechauhan.dev> Content-Language: en-CA From: Mitchell Horne Autocrypt: addr=mhorne@freebsd.org; keydata= xsBNBFyS2dQBCADdiXBG8hBVLmYbxu7aSzbwLwUf3HkGFz3rooS1kwyy+SfmjZ4UKNnl9WMx WKrJ7OAZpiNH6bLQ5nsqfx09OnpWL8c/QuPbhNdUywQoqqYpRI0K8GEn//nS9Gs0KTYwVpWb XlrzP+jf3Uh/9L5mcQmStLIH4zaaqMYHW+pMuPrvBmLIHTvLj2QjOkxslrcUdord9uvxe5Ht LU8RuTpQpHOKz705Z9/v7twFdi2HtKzpLwO6SzVyu351di1J+GihsVpcT5josQV5cHbIP3Un x+kmtKBEEc/jl/zBglF7ruWUtwgbryID+2ZPEaO1Mj+RResX4LFVMusq3uUpWRb5WJXxABEB AAHNI01pdGNoZWxsIEhvcm5lIDxtaG9ybmVARnJlZUJTRC5vcmc+wsCUBBMBCgA+AhsDBQsJ CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEEkp/cYPcfabAiQvACi/gnTOdUid8FAmIyDpUFCQtC z0EACgkQi/gnTOdUid8IsQf+N8IptrrCgifT5Z0/WUVFfnHThFOKf4zBjaGswsIM8+VKsKnF 15jCWHODUHP6s+dcQ4nQi81PHPsnMfBSkGPvN/X3ess2/1KUVkH+6tAJbqXDjXhD8HT+i0NM QEFIXlLnotpgIKW3yOHjKv3ZvKw9LCvUjyNY9vOJmLk/6AbbkFh+INo65nXtQWb/hM5FVEHW S+zUoU8AqZRJoVAQfj9wmIfg/HdsxeDGKL0zkv5AwKpccvb8VJNGJbCVMgoy5uQYcUeXxcie cg0VlbFLshNQTfyhVQ85vyuHahARrUWs/k8KiYODoBnW1ChtyF8yM6VZTzSYx7pINqPq2YZy i/Htd87ATQRcktnUAQgA3zt4M4ecoQqfxpjliNLujt9klDqvmkJvWmzMuMXdzlPgGRJ0doio 9YIeEdkOt6xN0pPTK/ReCZ8WqFQ8zo23u1pwGuo0CnR58XF19wyxyUuKu/PHbt+56mC8tNHm AXsMyXQmlDqWvn/WzLY7euNRtNS4QQIwtxfM5EC4GGa5KQwxn0kM7dkUSOE/cxr+/kNbHHzb gagZR4cnNUqtPPr3dYXcibCTzgz96Lyt3/qMLXX9RTBRzu+O6E+byxWOe8ar/ZlwY2b4wTQG mhgNttkSxKtxMpZnd8+DGV/bI1P5Ct/K2GeCwNyupQGON5ymn6o7jTch+qmFX0ItkBWO4zn4 9QARAQABwsB8BBgBCgAmAhsMFiEEkp/cYPcfabAiQvACi/gnTOdUid8FAmIyDtwFCQtCz4gA CgkQi/gnTOdUid/i5gf/aQ75pJR4TJFM2vVVr6PDIwTdl0b5EchB4w4s4g/zE84XNbMOQanb BginLYEhAacLQVAvM3XdvUEhwrhaMQdjdSEB1krResL3/mbxrtKwdHSMbHA3IS3XdvxFWTB7 P5JjUSPsW6hqgoidbn4w3OxaNHhs45H2b0Nx5QiKcSyepmCZuB52gCEHnEnrdaz8TFQMXOLq 94WbTmZeIjChW3FB61m1gTf0UEFjoZAfTAUB+pbwoCa4AykIeZnDC19vjsruVU9Gy5rLglwd bjsZNfXIJGOZNEvdF8FOBwM7DlXx7SYvTJcUNoNJjOKtQ0bYGVgGqYOB/y2mTjVuKeU0eOkN Uw== In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/23/24 07:35, Himanshu Chauhan wrote: > > >> On 23 Dec 2024, at 16:55, Himanshu Chauhan wrote: >> >> Hi, >> >> I see the following in the code: >> >> csr_read(sstatus) >> csr_read(stval) >> >> But I can’t figure out where these sstatus and stval are defined. I want to define CSRs for IMSIC. I am using hard coded values for now but want to get rid of them. How can I do that? >> The given argument is used plainly as the CSR name in the resulting instruction. e.g.: register_t sstatus = csr_read(sstatus); becomes: csrr a0, sstatus So there is no need to define CSRs based on index, at present. You can just use its name. Cheers, Mitchell > > Something like this in my C file works okay: > > #define IMSIC_CSR_SISELECT 0x150 > #define IMSIC_CSR_SIREG 0x151 > #define IMSIC_CSR_STOPEI 0x15c > #define IMSIC_CSR_STOPI 0xdb0 > > #ifdef DECLARE_CSR > DECLARE_CSR(siselect, IMSIC_SISELCT) > DECLARE_CSR(sireg, IMSIC_SIREG) > DECLARE_CSR(stopei, IMSIC_STOPEI) > DECLARE_CSR(stopi, IMSIC_STOPI) > #endif > > Is this the right way to do it? > >> Regards >> Himanshu >> > >