moby: upgrade Tow-Boot -> u-boot
i'm trying to get the compass to work, but looks as though it didnt try to probe the 1.2b AF8133J
This commit is contained in:
@@ -277,8 +277,11 @@ in
|
|||||||
sane.image.extraGPTPadding = 16 * 1024 * 1024;
|
sane.image.extraGPTPadding = 16 * 1024 * 1024;
|
||||||
sane.image.firstPartGap = 0;
|
sane.image.firstPartGap = 0;
|
||||||
sane.image.installBootloader = ''
|
sane.image.installBootloader = ''
|
||||||
dd if=${pkgs.tow-boot-pinephone}/Tow-Boot.noenv.bin of=$out bs=1024 seek=8 conv=notrunc
|
dd if=${pkgs.u-boot-pinephone}/u-boot-sunxi-with-spl.bin of=$out bs=1024 seek=8 conv=notrunc
|
||||||
'';
|
'';
|
||||||
|
# sane.image.installBootloader = ''
|
||||||
|
# dd if=${pkgs.tow-boot-pinephone}/Tow-Boot.noenv.bin of=$out bs=1024 seek=8 conv=notrunc
|
||||||
|
# '';
|
||||||
|
|
||||||
sane.programs.gps-share.config = {
|
sane.programs.gps-share.config = {
|
||||||
device = "/dev/ttyUSB1";
|
device = "/dev/ttyUSB1";
|
||||||
|
66
pkgs/additional/crust-firmware-pinephone/default.nix
Normal file
66
pkgs/additional/crust-firmware-pinephone/default.nix
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# based on package from Tow-Boot
|
||||||
|
{
|
||||||
|
buildPackages,
|
||||||
|
fetchFromGitHub,
|
||||||
|
flex,
|
||||||
|
lib,
|
||||||
|
pkgsCross,
|
||||||
|
stdenv,
|
||||||
|
yacc,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
or1k-toolchain = buildPackages.pkgsCross.or1k.buildPackages;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "crust-firmware";
|
||||||
|
version = "0.6";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "crust-firmware";
|
||||||
|
repo = "crust";
|
||||||
|
rev = "v${finalAttrs.version}";
|
||||||
|
hash = "sha256-zalBVP9rI81XshcurxmvoCwkdlX3gMw5xuTVLOIymK5=";
|
||||||
|
};
|
||||||
|
|
||||||
|
depsBuildBuild = [
|
||||||
|
stdenv.cc
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
flex
|
||||||
|
yacc
|
||||||
|
] ++ (with or1k-toolchain; [
|
||||||
|
binutils
|
||||||
|
gcc
|
||||||
|
]);
|
||||||
|
|
||||||
|
# postPatch = ''
|
||||||
|
# substituteInPlace Makefile --replace "= lex" '= ${buildPackages.flex}/bin/flex'
|
||||||
|
# '';
|
||||||
|
|
||||||
|
env.CROSS_COMPILE = "or1k-elf-";
|
||||||
|
env.HOST_COMPILE = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}";
|
||||||
|
env.HOSTCC = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}gcc";
|
||||||
|
env.HOSTLD = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}ld";
|
||||||
|
buildPhase = ''
|
||||||
|
# make pinephone_defconfig HOST_COMPILE=$HOST_COMPILE HOSTCC=''${HOST_COMPILE}gcc
|
||||||
|
# export HOSTCC=''${HOST_COMPILE}gcc
|
||||||
|
make pinephone_defconfig HOSTCC=$HOSTCC
|
||||||
|
# make pinephone_defconfig
|
||||||
|
make scp
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out
|
||||||
|
cp -v build/scp/scp.bin $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Libre SCP firmware for Allwinner sunxi SoCs";
|
||||||
|
homepage = "https://github.com/crust-firmware/crust";
|
||||||
|
license = with licenses; [ bsd3 gpl2Only mit ];
|
||||||
|
maintainers = with maintainers; [ colinsane noneucat ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
})
|
37
pkgs/additional/u-boot-pinephone/default.nix
Normal file
37
pkgs/additional/u-boot-pinephone/default.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
armTrustedFirmwareAllwinner,
|
||||||
|
buildUBoot,
|
||||||
|
crust-firmware-pinephone,
|
||||||
|
fetchpatch,
|
||||||
|
lib,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildUBoot {
|
||||||
|
defconfig = "pinephone_defconfig";
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
# see: <https://gitlab.com/postmarketOS/pmaports/-/issues/1945>
|
||||||
|
# Pinephone has multiple hardware revs, notably 1.2 and 1.2b.
|
||||||
|
# stock u-boot can't differentiate these, and so tries to boot a 1.2b phone
|
||||||
|
# using the 1.2 device tree, which leads (notably) to a non-functional compass (magnetometer).
|
||||||
|
url = "https://github.com/Tow-Boot/U-Boot/pull/2.diff";
|
||||||
|
hash = "sha256-o0p+M+cLgJ+pcmAHCFEzIZuFKl0ytZRkM4Qy7Hau4io=";
|
||||||
|
name = "sunxi: pinephone: detect existed magnetometer and fixup dtb";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
filesToInstall = [
|
||||||
|
"u-boot" #< ELF file
|
||||||
|
"u-boot.bin" #< raw binary, load it into RAM and jump to it
|
||||||
|
"u-boot-sunxi-with-spl.bin" #< this is what Tow-Boot releases appear to be
|
||||||
|
"u-boot.cfg" #< copy of Kconfig which this u-boot was compiled with
|
||||||
|
"u-boot.dtb"
|
||||||
|
"u-boot.map"
|
||||||
|
"u-boot-nodtb.bin"
|
||||||
|
"u-boot.sym"
|
||||||
|
];
|
||||||
|
|
||||||
|
env.BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin";
|
||||||
|
env.SCP = "${crust-firmware-pinephone}/scp.bin";
|
||||||
|
}
|
||||||
|
|
@@ -23,6 +23,7 @@ let
|
|||||||
chatty-latest = callPackage ./additional/chatty-latest { };
|
chatty-latest = callPackage ./additional/chatty-latest { };
|
||||||
codemadness-frontends = callPackage ./additional/codemadness-frontends { };
|
codemadness-frontends = callPackage ./additional/codemadness-frontends { };
|
||||||
codemadness-frontends_0_6 = codemadness-frontends.v0_6;
|
codemadness-frontends_0_6 = codemadness-frontends.v0_6;
|
||||||
|
crust-firmware-pinephone = callPackage ./additional/crust-firmware-pinephone { };
|
||||||
depthcharge-tools = callPackage ./additional/depthcharge-tools { };
|
depthcharge-tools = callPackage ./additional/depthcharge-tools { };
|
||||||
eg25-control = callPackage ./additional/eg25-control { };
|
eg25-control = callPackage ./additional/eg25-control { };
|
||||||
eg25-manager = callPackage ./additional/eg25-manager { };
|
eg25-manager = callPackage ./additional/eg25-manager { };
|
||||||
@@ -108,6 +109,7 @@ let
|
|||||||
tow-boot-pinephone = callPackage ./additional/tow-boot-pinephone { };
|
tow-boot-pinephone = callPackage ./additional/tow-boot-pinephone { };
|
||||||
tree-sitter-nix-shell = callPackage ./additional/tree-sitter-nix-shell { };
|
tree-sitter-nix-shell = callPackage ./additional/tree-sitter-nix-shell { };
|
||||||
trivial-builders = lib.recurseIntoAttrs (callPackage ./additional/trivial-builders { });
|
trivial-builders = lib.recurseIntoAttrs (callPackage ./additional/trivial-builders { });
|
||||||
|
u-boot-pinephone = callPackage ./additional/u-boot-pinephone { };
|
||||||
uassets = callPackage ./additional/uassets { };
|
uassets = callPackage ./additional/uassets { };
|
||||||
uninsane-dot-org = callPackage ./additional/uninsane-dot-org { };
|
uninsane-dot-org = callPackage ./additional/uninsane-dot-org { };
|
||||||
wvkbd-mk = callPackage ./additional/wvkbd-mk { };
|
wvkbd-mk = callPackage ./additional/wvkbd-mk { };
|
||||||
|
Reference in New Issue
Block a user