Initial version

Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
This commit is contained in:
David Abdurachmanov 2019-03-20 22:31:06 +01:00
commit 4e65327a79
Signed by: davidlt
GPG Key ID: 7108702C938B13C1
2 changed files with 136 additions and 0 deletions

Binary file not shown.

136
opensbi-unstable.spec Normal file
View File

@ -0,0 +1,136 @@
# Disable debug packages, we don't need them.
%global debug_package %{nil}
Name: opensbi-unstable
# The last part is short hash
Version: 2019.03.20.e921fc2
Release: 1%{?dist}
Summary: RISC-V Open Source Supervisor Binary Interface
License: BSD
URL: https://github.com/riscv/opensbi
# Download tarball, e.g.:
# https://github.com/riscv/opensbi/archive/%full_commit.tar.gz
%global full_commit e921fc26911bd27cf715483b60c22920812aab21
Source0: https://github.com/riscv/riscv-pk/archive/%{full_commit}.tar.gz
BuildRequires: systemd-udev
BuildRequires: grubby-deprecated
BuildRequires: gcc
BuildRequires: binutils
BuildRequires: findutils
BuildRequires: grep
BuildRequires: coreutils
BuildRequires: kernel-core
BuildRequires: make
BuildRequires: dtc
BuildRequires: gzip
# For docs
BuildRequires: doxygen
BuildRequires: doxygen-latex
BuildRequires: doxygen-doxywizard
BuildRequires: graphviz
%description
RISC-V Open Source Supervisor Binary Interface compiled in jump variant.
This is only for QEMU RISC-V virt machine.
%package libsbi-devel
Summary: Platform independent static OpenSBI library
%description libsbi-devel
The main component of OpenSBI is provided in the form of a platform independent
static library libsbi.a implementing the SBI interface. A firmware or bootloader
implementation can link against this library to ensure conformance with the SBI
interface specifications. libsbi.a also defines an interface for integrating
with platform specific operations provided by the platform firmware
implementation (e.g. console access functions, inter-processor interrupts
control, etc).
%package platform-virt
Summary: QEMU virt machine platform specific artifacts
%description platform-virt
libplatsbi.a and bootloaders (ELF and binary) for QEMU virt machine.
%package fedora
Summary: OpenSBI QEMU virt machine firmware with Fedora kernel embedded
%description fedora
OpenSBI QEMU virt machine firmware with Fedora kernel embedded as payload.
%prep
%autosetup -n opensbi-%{full_commit}
%build
# Find Fedora kernel image in /boot
vmlinuz=$(find /boot | grep vmlinuz | grep -v -E '(rescue|hmac)')
if [[ "$vmlinuz" = *$'\n'* ]]; then
echo "We expected to find a single file!"
exit 1
fi
echo "Payload: $vmlinuz"
cp "$vmlinuz" Image.gz
gunzip Image.gz
make PLATFORM=qemu/virt FW_PAYLOAD_PATH="$PWD/Image"
make docs
%install
make PLATFORM=qemu/virt I=%{buildroot} install
make I=%{buildroot} install_docs
mkdir -p %{buildroot}%{_usr}
mv %{buildroot}/lib %{buildroot}%{_libdir}
mv %{buildroot}/include %{buildroot}%{_usr}/
mkdir -p %{buildroot}%{_datadir}/%{name}
mv %{buildroot}/platform %{buildroot}%{_datadir}/%{name}/
mkdir -p %{buildroot}%{_pkgdocdir}
mv %{buildroot}/docs/refman.pdf %{buildroot}%{_pkgdocdir}/
rm -rf %{buildroot}/docs
# Find Fedora kernel image in /boot and extract version
vmlinuz=$(find /boot | grep vmlinuz | grep -v -E '(rescue|hmac)')
vmlinuz_version=$(echo "$vmlinuz" | cut -d'-' -f2-)
mkdir -p %{buildroot}/boot/opensbi/unstable
cp build/platform/qemu/virt/firmware/fw_jump.elf \
%{buildroot}/boot/opensbi/unstable/fw_jump.elf
cp build/platform/qemu/virt/firmware/fw_payload.elf \
%{buildroot}/boot/opensbi/unstable/fw_payload-${vmlinuz_version}.elf
%files
%license COPYING.BSD
%doc README.md
/boot/opensbi/unstable/fw_jump.elf
%files fedora
/boot/opensbi/unstable/fw_payload-*.elf
%files libsbi-devel
%doc %{_pkgdocdir}/refman.pdf
%{_prefix}/include/sbi/*
%{_libdir}/libsbi.a
%files platform-virt
%{_datadir}/%{name}
%changelog
* Wed Mar 20 2019 David Abdurachmanov <david.abdurachmanov@gmail.com> 2019.03.20.e921fc2-1
- Initial version