Document some of the platforms we support now
[fedora-reviews.git] / opensbi / opensbi.spec
1 # Disable debug packages, we don't need them.
2 %global debug_package %{nil}
3
4 # Make sure we use the cross-binary to strip.
5 %global __strip riscv64-linux-gnu-strip
6
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
11
12 %global forgeurl https://github.com/riscv/opensbi
13 %global commit   355796c5bc1906d749850e4215e0f7f53802ba5b
14 %forgemeta
15
16 Name:            opensbi
17 Version:         1.2
18 Release:         1%{?dist}
19 Summary:         RISC-V Open Source Supervisor Binary Interface
20
21 License:         BSD
22 URL:             %{forgeurl}
23 Source:          %{forgesource}
24
25 # The resulting binary contains RISC-V firmware intended to be used
26 # under virtualization, so it can be used on any architecture.
27 Buildarch:      noarch
28
29 BuildRequires:   gcc-riscv64-linux-gnu
30 BuildRequires:   binutils-riscv64-linux-gnu
31 BuildRequires:   findutils
32 BuildRequires:   grep
33 BuildRequires:   coreutils
34 BuildRequires:   make
35 BuildRequires:   dtc
36 BuildRequires:   python3
37 BuildRequires:   gawk
38 BuildRequires:   sed
39
40
41 %description
42 RISC-V Open Source Supervisor Binary Interface.
43
44 The current version is for QEMU RISC-V virt machines, SiFive HiFive
45 Unleashed, T-HEAD C9xx and some others.
46
47
48 %prep
49 %forgesetup
50
51
52 %build
53 mkdir build32 build64
54 # Build 32 bit firmware.
55 %make_build \
56   O=build32 \
57   CROSS_COMPILE=riscv64-linux-gnu- \
58   PLATFORM=generic \
59   PLATFORM_RISCV_XLEN=32
60 # Build 64 bit firmware.
61 %make_build \
62   O=build32 \
63   CROSS_COMPILE=riscv64-linux-gnu- \
64   PLATFORM=generic
65
66 %install
67 # Install 32 bit firmware.
68 %make_install \
69   O=build32 \
70   CROSS_COMPILE=riscv64-linux-gnu- \
71   PLATFORM=generic \
72   PLATFORM_RISCV_XLEN=32 \
73   I=%{buildroot} \
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
79 done
80 popd
81
82 # Install 64 bit firmware.
83 %make_install \
84   O=build64 \
85   CROSS_COMPILE=riscv64-linux-gnu- \
86   PLATFORM=generic \
87   I=%{buildroot} \
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
93 done
94 popd
95
96 # Remove development libraries and headers for the time being.
97 rm -rfv %{buildroot}%{_libdir}
98 rm -rfv %{buildroot}/include
99
100 # Remove the example/testing payloads.
101 rm -rfv %{buildroot}%{_datadir}/%{name}/*/firmware/payloads
102
103
104 %files
105 %license COPYING.BSD
106 %doc README.md
107 %dir %{_datadir}/%{name}
108 %{_datadir}/%{name}/*
109
110
111 %changelog
112 * Tue May 23 2023 Richard W.M. Jones <rjones@redhat.com> 1.2
113 - Use forge macros
114 - Convert to use cross-compilation
115 - Fix dates in changelog
116
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)
119
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)
122
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)
125
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)
128
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)
131
132 * Thu Jun 23 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.99.2022.06.23.6f1fe98-1
133 - Sync with upstream master branch
134
135 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.92.2022.06.13.9dc5ec5-1
136 - Sync with upstream master branch
137
138 * Thu Jun 02 2022 David Abdurachmanov <davidlt@rivosinc.com> v1.0.81.2022.06.02.cb8271c-1
139 - Sync with upstream master branch
140
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
143
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
146
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
150
151 * Wed Apr 21 2021 David Abdurachmanov <david.abdurachmanov@gmail.com> v0.9.35.2021.04.21.f41196a
152 - Update to v0.9+
153
154 * Wed Jan 06 2021 David Abdurachmanov <david.abdurachmanov@sifive.com> v0.8.81.2021.01.06.7dcb1e1
155 - New version
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