1 # Disable debug packages, we don't need them.
2 %global debug_package %{nil}
4 # Make sure we use the cross-binary to strip.
5 %global __strip riscv64-linux-gnu-strip
7 # Avoid this error caused by cross-compilation and packaging the
8 # result in a noarch package:
9 # error: Arch dependent binaries in noarch package
10 %global _binaries_in_noarch_packages_terminate_build 0
12 %global forgeurl https://github.com/riscv/opensbi
13 %global commit 355796c5bc1906d749850e4215e0f7f53802ba5b
19 Summary: RISC-V Open Source Supervisor Binary Interface
23 Source: %{forgesource}
25 # The resulting binary contains RISC-V firmware intended to be used
26 # under virtualization, so it can be used on any architecture.
29 BuildRequires: gcc-riscv64-linux-gnu
30 BuildRequires: binutils-riscv64-linux-gnu
31 BuildRequires: findutils
33 BuildRequires: coreutils
36 BuildRequires: python3
42 RISC-V Open Source Supervisor Binary Interface.
44 The current version is for QEMU RISC-V virt machines, SiFive HiFive
45 Unleashed, T-HEAD C9xx and some others.
54 # Build 32 bit firmware.
57 CROSS_COMPILE=riscv64-linux-gnu- \
59 PLATFORM_RISCV_XLEN=32
60 # Build 64 bit firmware.
63 CROSS_COMPILE=riscv64-linux-gnu- \
67 # Install 32 bit firmware.
70 CROSS_COMPILE=riscv64-linux-gnu- \
72 PLATFORM_RISCV_XLEN=32 \
74 INSTALL_LIB_PATH=%{_libdir} \
75 INSTALL_FIRMWARE_PATH=%{_datadir}/%{name}
76 pushd %{buildroot}%{_datadir}/%{name}/generic/firmware
77 for f in fw_*.bin fw_*.elf; do
78 mv $f opensbi-riscv32-generic-$f
82 # Install 64 bit firmware.
85 CROSS_COMPILE=riscv64-linux-gnu- \
88 INSTALL_LIB_PATH=%{_libdir} \
89 INSTALL_FIRMWARE_PATH=%{_datadir}/%{name}
90 pushd %{buildroot}%{_datadir}/%{name}/generic/firmware
91 for f in fw_*.bin fw_*.elf; do
92 mv $f opensbi-riscv64-generic-$f
96 # Remove development libraries and headers for the time being.
97 rm -rfv %{buildroot}%{_libdir}
98 rm -rfv %{buildroot}/include
100 # Remove the example/testing payloads.
101 rm -rfv %{buildroot}%{_datadir}/%{name}/*/firmware/payloads
107 %dir %{_datadir}/%{name}
108 %{_datadir}/%{name}/*
112 * Tue May 23 2023 Richard W.M. Jones <rjones@redhat.com> 1.2
114 - Convert to use cross-compilation
115 - Fix dates in changelog
117 * Tue May 02 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.116.2023.05.02.7919530-1
118 - Sync with upstream master branch (v1.2-116-g7919530)
120 * Thu Jan 26 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.0.2023.01.26.c6b5188c-1
121 - Use v1.2 (last stable release for now)
123 * Wed Jan 25 2023 David Abdurachmanov <davidlt@rivosinc.com> v1.2.34.2023.01.25.c45992c-1
124 - Sync with upstream master branch (v1.2-34-gc45992c)
126 * Thu Nov 17 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.1.85.2022.11.17.14f5c4c-1
127 - Sync with upstream master branch (v1.1-85-g14f5c4c)
129 * Mon Jun 27 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.1.0.2022.06.27.4489876-1
130 - Sync with upstream master branch (v1.1 tag)
132 * Thu Jun 23 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.99.2022.06.23.6f1fe98-1
133 - Sync with upstream master branch
135 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.92.2022.06.13.9dc5ec5-1
136 - Sync with upstream master branch
138 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.81.2022.06.02.cb8271c-1
139 - Sync with upstream master branch
141 * Sat Nov 06 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.163.2021.11.06.0979ffd-1
142 - Sync with upstream master branch
144 * Fri Oct 08 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.152.2021.10.08.754d511-1
145 - Sync with upstream master branch
147 * Tue Aug 17 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.134.2021.08.17.7aa6c9a-1
148 - Sync with upstream master branch
149 - Upstream support for SiFive HiFive Unmatched
151 * Wed Apr 21 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.35.2021.04.21.f41196a
154 * Wed Jan 06 2021 David Abdurachmanov <david.abdurachmanov@sifive.com> v0.8.81.2021.01.06.7dcb1e1
156 - Switch to generic platform
157 - Remove all others special Fedora variants of firmware
158 - Remove development library and documentation (not needed)
159 - Remove example payloads