summaryrefslogtreecommitdiff
path: root/packaging/u-boot-xu3.spec
blob: 1b75890a8950118a3fa972846f3ca05ae8e4ee60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Name: u-boot-xu3
Version: 2015.04
Release: 1%{?dist}
Summary: Das U-Boot - Tizen bootloader
Group: System/Kernel
License: GPL-2.0+
ExclusiveArch: %{arm}
URL: https://review.tizen.org/git/?p=kernel/u-boot.git
Source0: %{name}-%{version}.tar.bz2
Source1001: u_boot.manifest

BuildRequires: gcc >= 4.8
BuildRequires: flex
BuildRequires: bison

%description
u-boot - Tizen bootloader for Embedded boards based on ARM processor

#TODO: Describe rpm package information depending on board
%package -n u-boot-pkg
Summary: A bootloader for Embedded system
Group: System/Kernel

%description -n u-boot-pkg
A boot loader for embedded systems.
Das U-Boot is a cross-platform bootloader for embedded systems,
used as the default boot loader by several board vendors.  It is
intended to be easy to port and to debug, and runs on many
supported architectures, including PPC, ARM, MIPS, x86, m68k, NIOS,
and Microblaze.

%package -n u-boot-tools
Summary: Companion tools for Das U-Boot bootloader
Group: System/Kernel
Provides: dtc

%description -n u-boot-tools
This package includes the mkimage program, which allows generation of U-Boot
images in various formats, and the fw_printenv and fw_setenv programs to read
and modify U-Boot's environment.

%ifarch %{arm}
%global use_mmc_storage 1
%endif

%prep
%setup -q

%build
cp %{SOURCE1001} .

CONFIG=odroid-xu3_defconfig

make mrproper

# Build dtc
make HOSTCC="gcc $RPM_OPT_FLAGS" -C tools/dtc

# Set configuration
make $CONFIG

# Build tools
make %{?_smp_mflags} HOSTCC="gcc $RPM_OPT_FLAGS" HOSTSTRIP=/bin/true tools

%if 1%{?use_mmc_storage}
make HOSTCC="gcc $RPM_OPT_FLAGS" CONFIG_ENV_IS_IN_MMC=y env
%else
make HOSTCC="gcc $RPM_OPT_FLAGS" env
%endif

# Build u-boot
export PATH="$PATH:tools:tools/dtc/"
make %{?_smp_mflags} EXTRAVERSION=`echo %{vcs} | sed 's/.*u-boot.*#\(.\{9\}\).*/-g\1-TIZEN.org/'`

# Sign u-boot-multi.bin - output is: u-boot-mmc.bin
chmod 755 tools/mkimage_signed.sh
mkimage_signed.sh u-boot-dtb.bin $CONFIG

# Generate params.bin
cp `find . -name "env_common.o"` copy_env_common.o
objcopy -O binary --only-section=.rodata.default_environment `find . -name "copy_env_common.o"`
tr '\0' '\n' < copy_env_common.o > default_envs.txt
mkenvimage -s 16384 -o params.bin default_envs.txt
rm copy_env_common.o default_envs.txt

%install
rm -rf %{buildroot}

# Tools installation
mkdir -p %{buildroot}%{_bindir}
install -p -m 0755 tools/mkimage %{buildroot}%{_bindir}
install -p -m 0755 tools/env/fw_printenv %{buildroot}%{_bindir}
install -p -m 0755 tools/dtc/dtc %{buildroot}%{_bindir}
( cd %{buildroot}%{_bindir}; ln -sf fw_printenv fw_setenv )

# u-boot installation
mkdir -p %{buildroot}/var/tmp/u-boot
install -d %{buildroot}/var/tmp/u-boot
install -m 755 u-boot.bin %{buildroot}/var/tmp/u-boot
install -m 755 u-boot-mmc.bin %{buildroot}/var/tmp/u-boot
install -m 755 params.bin %{buildroot}/var/tmp/u-boot

%clean

%files
%manifest u_boot.manifest
%defattr(-,root,root,-)
/var/tmp/u-boot

%files -n u-boot-tools
%manifest u_boot.manifest
%defattr(-,root,root,-)
%{_bindir}/mkimage
%{_bindir}/fw_printenv
%{_bindir}/fw_setenv
%{_bindir}/dtc