mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-06-05 21:03:40 +00:00
lib/systems/platforms: Add ppc64; linux: Add 64-bit POWER settings, strip vmlinux kernels (#447752)
This commit is contained in:
@@ -22,6 +22,10 @@ rec {
|
||||
linux-kernel.autoModules = false;
|
||||
};
|
||||
|
||||
##
|
||||
## POWER
|
||||
##
|
||||
|
||||
powernv = {
|
||||
linux-kernel = {
|
||||
name = "PowerNV";
|
||||
@@ -29,16 +33,16 @@ rec {
|
||||
baseConfig = "powernv_defconfig";
|
||||
target = "vmlinux";
|
||||
autoModules = true;
|
||||
# avoid driver/FS trouble arising from unusual page size
|
||||
extraConfig = ''
|
||||
PPC_64K_PAGES n
|
||||
PPC_4K_PAGES y
|
||||
IPV6 y
|
||||
};
|
||||
};
|
||||
|
||||
ATA_BMDMA y
|
||||
ATA_SFF y
|
||||
VIRTIO_MENU y
|
||||
'';
|
||||
ppc64 = {
|
||||
linux-kernel = {
|
||||
name = "powerpc64";
|
||||
|
||||
baseConfig = "ppc64_defconfig";
|
||||
target = "vmlinux";
|
||||
autoModules = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -625,8 +629,8 @@ rec {
|
||||
else if platform.parsed.cpu == lib.systems.parse.cpuTypes.mipsel then
|
||||
(import ./examples.nix { inherit lib; }).mipsel-linux-gnu
|
||||
|
||||
else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then
|
||||
powernv
|
||||
else if platform.isPower64 then
|
||||
if platform.isLittleEndian then powernv else ppc64
|
||||
|
||||
else if platform.isLoongArch64 then
|
||||
loongarch64-multiplatform
|
||||
|
||||
@@ -504,6 +504,12 @@ lib.makeOverridable (
|
||||
export HOME=${installkernel}
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
if [ -z "''${dontStrip-}" -a -e $out/vmlinux ]; then
|
||||
strip -v -S -p $out/vmlinux
|
||||
fi
|
||||
'';
|
||||
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
passthru = rec {
|
||||
|
||||
@@ -988,6 +988,9 @@ let
|
||||
XEN_PVHVM = option yes;
|
||||
XEN_SAVE_RESTORE = option yes;
|
||||
|
||||
# Disabled by default on POWER
|
||||
VIRTIO_MENU = yes;
|
||||
|
||||
# Enable device detection on virtio-mmio hypervisors
|
||||
VIRTIO_MMIO_CMDLINE_DEVICES = yes;
|
||||
|
||||
@@ -1435,6 +1438,10 @@ let
|
||||
# Enable coreboot firmware drivers.
|
||||
# While these are called CONFIG_GOOGLE_*, they apply to coreboot systems in general.
|
||||
GOOGLE_FIRMWARE = yes;
|
||||
|
||||
# Disabled by default on POWER
|
||||
ATA_BMDMA = yes;
|
||||
ATA_SFF = yes;
|
||||
}
|
||||
//
|
||||
lib.optionalAttrs
|
||||
@@ -1550,6 +1557,20 @@ let
|
||||
|
||||
# Enable Intel Turbo Boost Max 3.0
|
||||
INTEL_TURBO_MAX_3 = yes;
|
||||
}
|
||||
// lib.optionalAttrs (stdenv.hostPlatform.isPower64) {
|
||||
# avoid driver/FS trouble arising from unusual page size
|
||||
PPC_64K_PAGES = no;
|
||||
PPC_4K_PAGES = yes;
|
||||
|
||||
# Does not get auto-loaded on relevant systems, makes fans stuck at max speed.
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713943 (2014 :<)
|
||||
# > This module ought to be auto-loaded where it's needed, but somehow that
|
||||
# > has broken. I asked Benjamin Herrenschmidt (upstream powerpc maintainer
|
||||
# > and the last person to touch it) and he was aware of this but hadn't got
|
||||
# > round to working out why. The workaround is to build it in[…].
|
||||
# > (It won't do any harm on non-Mac systems.)
|
||||
I2C_POWERMAC = yes;
|
||||
};
|
||||
|
||||
accel = {
|
||||
|
||||
Reference in New Issue
Block a user