mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge branch 'pr-newest-uboot' into master
This commit is contained in:
commit
4085f4de5f
9 changed files with 96 additions and 118 deletions
|
@ -19,18 +19,37 @@ in
|
|||
"it cannot be cross compiled";
|
||||
};
|
||||
|
||||
# Needed by RPi firmware
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
boot.loader.grub.enable = false;
|
||||
boot.loader.generic-extlinux-compatible.enable = true;
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
|
||||
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttymxc0,115200n8" "console=ttyAMA0,115200n8" "console=ttyO0,115200n8" "console=tty0"];
|
||||
boot.consoleLogLevel = 7;
|
||||
|
||||
# FIXME: this probably should be in installation-device.nix
|
||||
users.extraUsers.root.initialHashedPassword = "";
|
||||
|
||||
sdImage = {
|
||||
populateBootCommands = ''
|
||||
populateBootCommands = let
|
||||
configTxt = pkgs.writeText "config.txt" ''
|
||||
[pi2]
|
||||
kernel=u-boot-rpi2.bin
|
||||
|
||||
[pi3]
|
||||
kernel=u-boot-rpi3.bin
|
||||
enable_uart=1
|
||||
'';
|
||||
in ''
|
||||
for f in bootcode.bin fixup.dat start.elf; do
|
||||
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/$f boot/
|
||||
done
|
||||
cp ${pkgs.ubootRaspberryPi2}/u-boot.bin boot/u-boot-rpi2.bin
|
||||
cp ${pkgs.ubootRaspberryPi3}/u-boot.bin boot/u-boot-rpi3.bin
|
||||
cp ${configTxt} boot/config.txt
|
||||
${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./boot
|
||||
'';
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ in
|
|||
boot.loader.generic-extlinux-compatible.enable = true;
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_rpi;
|
||||
boot.consoleLogLevel = 7;
|
||||
|
||||
# FIXME: this probably should be in installation-device.nix
|
||||
users.extraUsers.root.initialHashedPassword = "";
|
||||
|
|
|
@ -10,13 +10,13 @@ let
|
|||
stdenv.mkDerivation (rec {
|
||||
|
||||
name = "uboot-${defconfig}-${version}";
|
||||
version = "2016.01";
|
||||
version = "2016.05";
|
||||
|
||||
nativeBuildInputs = [ bc dtc ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2";
|
||||
sha256 = "1md5jpq5n9jh08s7sdkjrvg2q7kpzwa7yrpgl9581ncrjfx2yyg5";
|
||||
sha256 = "0wdivib8kbm17qr6r7n7wyzg5vnwpagvwk5m0z80rbssc5sj5l47";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
|
@ -68,6 +68,12 @@ in rec {
|
|||
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
|
||||
};
|
||||
|
||||
ubootBeagleboneBlack = buildUBoot rec {
|
||||
defconfig = "am335x_boneblack_defconfig";
|
||||
targetPlatforms = ["armv7l-linux"];
|
||||
filesToInstall = ["MLO" "u-boot.img"];
|
||||
};
|
||||
|
||||
ubootJetsonTK1 = buildUBoot rec {
|
||||
defconfig = "jetson-tk1_defconfig";
|
||||
targetPlatforms = ["armv7l-linux"];
|
||||
|
@ -86,12 +92,16 @@ in rec {
|
|||
filesToInstall = ["u-boot.bin"];
|
||||
};
|
||||
|
||||
# Intended only for QEMU's vexpress-a9 emulation target!
|
||||
ubootVersatileExpressCA9 = buildUBoot rec {
|
||||
defconfig = "vexpress_ca9x4_defconfig";
|
||||
ubootRaspberryPi2 = buildUBoot rec {
|
||||
defconfig = "rpi_2_defconfig";
|
||||
targetPlatforms = ["armv7l-linux"];
|
||||
filesToInstall = ["u-boot"];
|
||||
patches = [ ./vexpress-Use-config_distro_bootcmd.patch ];
|
||||
filesToInstall = ["u-boot.bin"];
|
||||
};
|
||||
|
||||
ubootRaspberryPi3 = buildUBoot rec {
|
||||
defconfig = "rpi_3_32b_defconfig";
|
||||
targetPlatforms = ["armv7l-linux"];
|
||||
filesToInstall = ["u-boot.bin"];
|
||||
};
|
||||
|
||||
ubootWandboard = buildUBoot rec {
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
From 98f62c27fe481dc2d444d70265268d2369d8a998 Mon Sep 17 00:00:00 2001
|
||||
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
|
||||
Date: Mon, 8 Jun 2015 22:29:23 +0300
|
||||
Subject: [PATCH] vexpress: Use config_distro_bootcmd
|
||||
|
||||
Also had to hack cli_readline.c, as one codepath in
|
||||
cli_readline_into_buffer doesn't respect the timeout.
|
||||
---
|
||||
common/cli_readline.c | 12 +++++++++++-
|
||||
configs/vexpress_ca9x4_defconfig | 2 --
|
||||
include/configs/vexpress_common.h | 2 +-
|
||||
3 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/common/cli_readline.c b/common/cli_readline.c
|
||||
index c1476e4..5063a0a 100644
|
||||
--- a/common/cli_readline.c
|
||||
+++ b/common/cli_readline.c
|
||||
@@ -517,6 +517,7 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer,
|
||||
int plen = 0; /* prompt length */
|
||||
int col; /* output column cnt */
|
||||
char c;
|
||||
+ int first = 1;
|
||||
|
||||
/* print prompt */
|
||||
if (prompt) {
|
||||
@@ -528,7 +529,16 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer,
|
||||
for (;;) {
|
||||
if (bootretry_tstc_timeout())
|
||||
return -2; /* timed out */
|
||||
- WATCHDOG_RESET(); /* Trigger watchdog, if needed */
|
||||
+ if (first && timeout) {
|
||||
+ uint64_t etime = endtick(timeout);
|
||||
+
|
||||
+ while (!tstc()) { /* while no incoming data */
|
||||
+ if (get_ticks() >= etime)
|
||||
+ return -2; /* timed out */
|
||||
+ WATCHDOG_RESET();
|
||||
+ }
|
||||
+ first = 0;
|
||||
+ }
|
||||
|
||||
#ifdef CONFIG_SHOW_ACTIVITY
|
||||
while (!tstc()) {
|
||||
diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
|
||||
index 2947fc1..9a5123d 100644
|
||||
--- a/configs/vexpress_ca9x4_defconfig
|
||||
+++ b/configs/vexpress_ca9x4_defconfig
|
||||
@@ -5,11 +5,9 @@ CONFIG_TARGET_VEXPRESS_CA9X4=y
|
||||
# CONFIG_CMD_IMLS is not set
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
# CONFIG_CMD_EDITENV is not set
|
||||
-# CONFIG_CMD_ENV_EXISTS is not set
|
||||
# CONFIG_CMD_LOADB is not set
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
# CONFIG_CMD_FPGA is not set
|
||||
-# CONFIG_CMD_ECHO is not set
|
||||
# CONFIG_CMD_ITEST is not set
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
# CONFIG_CMD_NFS is not set
|
||||
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
|
||||
index 98f6ae9..062532a 100644
|
||||
--- a/include/configs/vexpress_common.h
|
||||
+++ b/include/configs/vexpress_common.h
|
||||
@@ -185,7 +185,6 @@
|
||||
CONFIG_SYS_INIT_RAM_SIZE - \
|
||||
GENERATED_GBL_DATA_SIZE)
|
||||
#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET
|
||||
-#define CONFIG_CMD_ECHO
|
||||
|
||||
#include <config_distro_defaults.h>
|
||||
|
||||
@@ -225,6 +224,7 @@
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
CONFIG_PLATFORM_ENV_SETTINGS \
|
||||
BOOTENV \
|
||||
+ "fdtfile=vexpress-v2p-ca9.dtb\0" \
|
||||
"console=ttyAMA0,38400n8\0" \
|
||||
"dram=1024M\0" \
|
||||
"root=/dev/sda1 rw\0" \
|
||||
--
|
||||
2.6.0
|
||||
|
|
@ -1,15 +1,14 @@
|
|||
{stdenv, fetchurl }:
|
||||
{ stdenv, fetchFromGitHub }:
|
||||
|
||||
let
|
||||
stdenv.mkDerivation rec {
|
||||
name = "raspberrypi-firmware-${version}";
|
||||
version = "1.20160620";
|
||||
|
||||
rev = "1.20160315";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "raspberrypi-firmware-${rev}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/raspberrypi/firmware/archive/${rev}.tar.gz";
|
||||
sha256 = "0a7ycv01s0kk84szsh51hy2mjjil1dzdk0g7k83h50d5nya090fl";
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "firmware";
|
||||
rev = version;
|
||||
sha256 = "06g691px0abndp5zvz2ba1g675rcqb64n055h5ahgnlck5cdpawg";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -19,8 +18,10 @@ in stdenv.mkDerivation {
|
|||
cp opt/vc/LICENCE $out/share/raspberrypi
|
||||
|
||||
for f in $out/bin/*; do
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f"
|
||||
patchelf --set-rpath "$out/lib" "$f"
|
||||
if isELF "$f"; then
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f"
|
||||
patchelf --set-rpath "$out/lib" "$f"
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
|
|
|
@ -1,21 +1,47 @@
|
|||
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
|
||||
{ stdenv, fetchFromGitHub, perl, buildLinux, ... } @ args:
|
||||
|
||||
let
|
||||
modDirVersion = "4.4.13";
|
||||
tag = "1.20160620-1";
|
||||
in
|
||||
stdenv.lib.overrideDerivation (import ./generic.nix (args // rec {
|
||||
version = "${modDirVersion}-${tag}";
|
||||
inherit modDirVersion;
|
||||
|
||||
rev = "f4b20d47d7df7927967fcd524324b145cfc9e2f9";
|
||||
|
||||
in import ./generic.nix (args // rec {
|
||||
version = "4.1.y-${rev}";
|
||||
|
||||
modDirVersion = "4.1.20-v7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.github.com/repos/raspberrypi/linux/tarball/${rev}";
|
||||
name = "linux-raspberrypi-${version}.tar.gz";
|
||||
sha256 = "0x17hlbi7lpmmnp24dnkync5gzj57j84j0nlrcv1lv9fahjkqsm2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "linux";
|
||||
rev = "raspberrypi-kernel_${tag}";
|
||||
sha256 = "0bydlzmd9mar07j6dihhzn1xm6vpn92y33vf1qsdkl3hjil6brfc";
|
||||
};
|
||||
|
||||
features.iwlwifi = true;
|
||||
|
||||
extraMeta.hydraPlatforms = [];
|
||||
})) (oldAttrs: {
|
||||
postConfigure = ''
|
||||
# The v7 defconfig has this set to '-v7' which screws up our modDirVersion.
|
||||
sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Make copies of the DTBs so that U-Boot finds them, as it is looking for the upstream names.
|
||||
# This is ugly as heck.
|
||||
copyDTB() {
|
||||
if [ -f "$out/dtbs/$1" ]; then
|
||||
cp -v "$out/dtbs/$1" "$out/dtbs/$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# I am not sure if all of these are correct...
|
||||
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb
|
||||
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b.dtb
|
||||
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b-rev2.dtb
|
||||
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-a-plus.dtb
|
||||
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb
|
||||
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb
|
||||
copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb
|
||||
copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb
|
||||
copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Realtek SDIO Wi-Fi driver";
|
||||
homepage = "https://github.com/hadess/rtl8723bs";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = [ "x86_64-linux" "i686-linux" "armv7l-linux" ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
broken = ! versionAtLeast kernel.version "3.19";
|
||||
maintainers = with maintainers; [ elitak ];
|
||||
};
|
||||
|
|
|
@ -11465,10 +11465,12 @@ in
|
|||
buildUBoot
|
||||
ubootTools
|
||||
ubootBananaPi
|
||||
ubootBeagleboneBlack
|
||||
ubootJetsonTK1
|
||||
ubootPcduino3Nano
|
||||
ubootRaspberryPi
|
||||
ubootVersatileExpressCA9
|
||||
ubootRaspberryPi2
|
||||
ubootRaspberryPi3
|
||||
ubootWandboard
|
||||
;
|
||||
|
||||
|
|
|
@ -136,6 +136,7 @@ rec {
|
|||
kernelMajor = "2.6";
|
||||
kernelHeadersBaseConfig = "bcm2835_defconfig";
|
||||
kernelBaseConfig = "bcmrpi_defconfig";
|
||||
kernelDTB = true;
|
||||
kernelArch = "arm";
|
||||
kernelAutoModules = false;
|
||||
kernelExtraConfig =
|
||||
|
|
Loading…
Reference in a new issue