Skip to content

Commit 9a049b4

Browse files
authored
Merge pull request #1445 from gngram/pr__imx8_atf_build_issues
Pr imx8 atf build issues
2 parents 1fe3cc2 + e3a967b commit 9a049b4

File tree

4 files changed

+112
-74
lines changed

4 files changed

+112
-74
lines changed

nxp/imx8mp-evk/bsp/imx8mp-atf.nix

+56-39
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,57 @@
1-
{
2-
lib,
3-
pkgs,
4-
buildArmTrustedFirmware,
5-
fetchgit,
6-
enable-tee,
7-
}:
8-
with pkgs; let
9-
opteedflag =
10-
if enable-tee
11-
then "SPD=opteed"
12-
else "";
1+
{ lib, fetchgit, enable-tee, stdenv, buildPackages, pkgsCross, openssl, }:
2+
let
3+
opteedflag = if enable-tee then "SPD=opteed" else "";
134
target-board = "imx8mp";
14-
in
15-
buildArmTrustedFirmware rec {
16-
pname = "imx8mp-atf";
17-
platform = target-board;
18-
enableParallelBuilding = true;
19-
extraMeta.platforms = ["aarch64-linux"];
20-
21-
src = fetchgit {
22-
url = "https://github.com/nxp-imx/imx-atf.git";
23-
#lf6.1.55_2.2.0
24-
rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02";
25-
sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc=";
26-
};
27-
28-
makeFlags = [
29-
"HOSTCC=$(CC_FOR_BUILD)"
30-
"M0_CROSS_COMPILE=arm-none-eabi-"
31-
"CROSS_COMPILE=aarch64-unknown-linux-gnu-"
32-
# binutils 2.39 regression
33-
# `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions`
34-
# See also: https://developer.trustedfirmware.org/T996
35-
"LDFLAGS=-no-warn-rwx-segments"
36-
"PLAT=${platform}" "bl31" "${opteedflag}"
37-
];
38-
39-
filesToInstall = ["build/${target-board}/release/bl31.bin"];
40-
}
5+
in stdenv.mkDerivation rec {
6+
pname = "imx8mp-atf";
7+
version = "lf6.1.55_2.2.0";
8+
platform = target-board;
9+
enableParallelBuilding = true;
10+
11+
src = fetchgit {
12+
url = "https://github.com/nxp-imx/imx-atf.git";
13+
rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02";
14+
sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc=";
15+
};
16+
17+
depsBuildBuild = [ buildPackages.stdenv.cc ];
18+
19+
# For Cortex-M0 firmware in RK3399
20+
nativeBuildInputs = [ pkgsCross.arm-embedded.stdenv.cc ];
21+
22+
buildInputs = [ openssl ];
23+
24+
makeFlags = [
25+
"HOSTCC=$(CC_FOR_BUILD)"
26+
"M0_CROSS_COMPILE=${pkgsCross.arm-embedded.stdenv.cc.targetPrefix}"
27+
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
28+
# binutils 2.39 regression
29+
# `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions`
30+
# See also: https://developer.trustedfirmware.org/T996
31+
"LDFLAGS=-no-warn-rwx-segments"
32+
"PLAT=${platform}"
33+
"bl31"
34+
"${opteedflag}"
35+
];
36+
37+
installPhase = ''
38+
runHook preInstall
39+
40+
mkdir -p $out
41+
cp build/${target-board}/release/bl31.bin $out
42+
43+
runHook postInstall
44+
'';
45+
46+
hardeningDisable = [ "all" ];
47+
dontStrip = true;
48+
49+
meta = with lib; {
50+
homepage = "https://github.com/nxp-imx/imx-atf";
51+
description =
52+
"Reference implementation of secure world software for ARMv8-A";
53+
license = [ licenses.bsd3 ];
54+
maintainers = with maintainers; [ gngram ];
55+
platforms = [ "aarch64-linux" ];
56+
};
57+
}

nxp/imx8mp-evk/bsp/imx8mp-boot.nix

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ with pkgs; let
1010
else "";
1111

1212
imx8mp-atf = pkgs.callPackage ./imx8mp-atf.nix {
13-
inherit (pkgs) buildArmTrustedFirmware;
1413
inherit enable-tee;
1514
};
1615
imx8mp-firmware = pkgs.callPackage ./imx8mp-firmware.nix {};

nxp/imx8mq-evk/bsp/imx8mq-atf.nix

+56-33
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,57 @@
1-
{
2-
lib,
3-
pkgs,
4-
buildArmTrustedFirmware,
5-
fetchgit,
6-
enable-tee,
7-
}:
8-
with pkgs; let
9-
opteedflag =
10-
if enable-tee
11-
then "SPD=opteed"
12-
else "";
1+
{ lib, fetchgit, enable-tee, stdenv, buildPackages, pkgsCross, openssl, }:
2+
let
3+
opteedflag = if enable-tee then "SPD=opteed" else "";
134
target-board = "imx8mq";
14-
in
15-
buildArmTrustedFirmware rec {
16-
pname = "imx8mq-atf";
17-
platform = target-board;
18-
enableParallelBuilding = true;
19-
extraMeta.platforms = ["aarch64-linux"];
20-
21-
src = fetchgit {
22-
url = "https://github.com/nxp-imx/imx-atf.git";
23-
#lf6.1.55_2.2.0
24-
rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02";
25-
sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc=";
26-
};
27-
28-
extraMakeFlags = lib.concatLists [
29-
(lib.optional (lib.versionAtLeast pkgs.binutils.version "2.39") "LDFLAGS=--no-warn-rwx-segments")
30-
["PLAT=${platform}" "bl31" "${opteedflag}"]
31-
];
32-
33-
filesToInstall = ["build/${target-board}/release/bl31.bin"];
34-
}
5+
in stdenv.mkDerivation rec {
6+
pname = "imx8mq-atf";
7+
version = "lf6.1.55_2.2.0";
8+
platform = target-board;
9+
enableParallelBuilding = true;
10+
11+
src = fetchgit {
12+
url = "https://github.com/nxp-imx/imx-atf.git";
13+
rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02";
14+
sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc=";
15+
};
16+
17+
depsBuildBuild = [ buildPackages.stdenv.cc ];
18+
19+
# For Cortex-M0 firmware in RK3399
20+
nativeBuildInputs = [ pkgsCross.arm-embedded.stdenv.cc ];
21+
22+
buildInputs = [ openssl ];
23+
24+
makeFlags = [
25+
"HOSTCC=$(CC_FOR_BUILD)"
26+
"M0_CROSS_COMPILE=${pkgsCross.arm-embedded.stdenv.cc.targetPrefix}"
27+
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
28+
# binutils 2.39 regression
29+
# `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions`
30+
# See also: https://developer.trustedfirmware.org/T996
31+
"LDFLAGS=-no-warn-rwx-segments"
32+
"PLAT=${platform}"
33+
"bl31"
34+
"${opteedflag}"
35+
];
36+
37+
installPhase = ''
38+
runHook preInstall
39+
40+
mkdir -p $out
41+
cp build/${target-board}/release/bl31.bin $out
42+
43+
runHook postInstall
44+
'';
45+
46+
hardeningDisable = [ "all" ];
47+
dontStrip = true;
48+
49+
meta = with lib; {
50+
homepage = "https://github.com/nxp-imx/imx-atf";
51+
description =
52+
"Reference implementation of secure world software for ARMv8-A";
53+
license = [ licenses.bsd3 ];
54+
maintainers = with maintainers; [ gngram ];
55+
platforms = [ "aarch64-linux" ];
56+
};
57+
}

nxp/imx8mq-evk/bsp/imx8mq-boot.nix

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ with pkgs; let
99
else "";
1010

1111
imx8mq-atf = pkgs.callPackage ./imx8mq-atf.nix {
12-
inherit (pkgs) buildArmTrustedFirmware;
1312
inherit enable-tee;
1413
};
1514
imx8mq-firmware = pkgs.callPackage ./imx8mq-firmware.nix {};

0 commit comments

Comments
 (0)