Merge branch 'orangepi5plus'

This commit is contained in:
Motiejus Jakštys 2024-02-27 22:56:47 +02:00
commit 60f66c35d2
5 changed files with 215 additions and 0 deletions

View File

@ -54,6 +54,11 @@
};
};
#linux-rockchip-collabora = {
# url = "git+https://git.jakstys.lt/motiejus/linux?ref=rk3588";
# flake = false;
#};
e11sync = {
url = "git+https://git.jakstys.lt/motiejus/e11sync";
inputs = {
@ -125,6 +130,15 @@
specialArgs = {inherit myData;} // inputs;
};
op5p = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
{nixpkgs.overlays = overlays;}
./hosts/op5p/configuration.nix
];
specialArgs = {inherit myData;} // inputs;
};
vno1-oh2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [

View File

@ -0,0 +1,56 @@
{
fetchFromGitLab,
fetchFromGitHub,
buildArmTrustedFirmware,
buildUBoot,
}: let
rkbin = fetchFromGitHub {
owner = "rockchip-linux";
repo = "rkbin";
rev = "b4558da0860ca48bf1a571dd33ccba580b9abe23";
hash = "sha256-KUZQaQ+IZ0OynawlYGW99QGAOmOrGt2CZidI3NTxFw8=";
};
tfa =
(buildArmTrustedFirmware rec {
extraMakeFlags = ["bl31"];
platform = "rk3588";
extraMeta.platforms = ["aarch64-linux"];
filesToInstall = ["build/${platform}/release/bl31/bl31.elf"];
})
.overrideAttrs (_: {
src = fetchFromGitLab {
domain = "gitlab.collabora.com";
owner = "hardware-enablement";
repo = "rockchip-3588/trusted-firmware-a";
rev = "002d8e85ce5f4f06ebc2c2c52b4923a514bfa701";
hash = "sha256-1XOG7ILIgWa3uXUmAh9WTfSGLD/76OsmWrUhIxm/zTg=";
};
});
in
buildUBoot rec {
version = "2024.01";
src = fetchFromGitLab {
domain = "source.denx.de";
owner = "u-boot";
repo = "u-boot";
rev = "v${version}";
hash = "sha256-0Da7Czy9cpQ+D5EICc3/QSZhAdCBsmeMvBgykYhAQFw=";
};
defconfig = "orangepi-5-rk3588s_defconfig";
extraConfig = ''
CONFIG_ROCKCHIP_SPI_IMAGE=y
'';
ROCKCHIP_TPL = "${rkbin}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.12.bin";
BL31 = "${tfa}/bl31.elf";
# FIXME: seems to not like nixpkgs dtc for some reason
extraMakeFlags = ["DTC=./scripts/dtc/dtc"];
filesToInstall = [".config" "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin"];
extraMeta.platforms = ["aarch64-linux"];
}

View File

@ -0,0 +1,34 @@
diff --git a/arch/arm/dts/rk3588s-orangepi-5.dts b/arch/arm/dts/rk3588s-orangepi-5.dts
index 8f399c4317..3997984e42 100644
--- a/arch/arm/dts/rk3588s-orangepi-5.dts
+++ b/arch/arm/dts/rk3588s-orangepi-5.dts
@@ -238,7 +238,7 @@
&pcie2x1l2 {
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_pcie20>;
- status = "okay";
+ status = "disabled";
};
&pinctrl {
@@ -660,3 +660,7 @@
&usb_host1_ohci {
status = "okay";
};
+
+&sata0 {
+ status = "okay";
+};
diff --git a/arch/arm/dts/rk3588s.dtsi b/arch/arm/dts/rk3588s.dtsi
index 61a9a11c3b..05028012ce 100644
--- a/arch/arm/dts/rk3588s.dtsi
+++ b/arch/arm/dts/rk3588s.dtsi
@@ -1390,6 +1390,8 @@
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
+ phys = <&combphy0_ps PHY_TYPE_SATA>;
+ phy-names = "sata-phy";
sata-port@0 {
reg = <0>;

View File

@ -0,0 +1,53 @@
{
#self,
#lib,
#pkgs,
myData,
#config,
#modulesPath,
...
}: {
imports = [
../../shared/platform/orangepi5.nix
];
users.users = {
motiejus = {
isNormalUser = true;
extraGroups = ["wheel" "video"];
initialHashedPassword = "";
openssh.authorizedKeys.keys = [myData.people_pubkeys.motiejus];
};
root.initialHashedPassword = "";
};
security = {
pam.services.lightdm.text = ''
auth sufficient pam_succeed_if.so user ingroup wheel
'';
sudo = {
enable = true;
wheelNeedsPassword = false;
};
};
networking = {
hostName = "op5p";
domain = "jakstys.lt";
firewall.allowedTCPPorts = [22];
};
nix = {
extraOptions = ''
experimental-features = nix-command flakes
trusted-users = nixos
'';
settings = {
experimental-features = ["nix-command" "flakes"];
trusted-users = ["motiejus"];
};
};
time.timeZone = "UTC";
system.stateVersion = "23.11";
}

View File

@ -0,0 +1,58 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: let
crossPkgs = pkgs.pkgsCross.aarch64-multiplatform;
in {
boot = {
kernelPackages = crossPkgs.linuxPackagesFor (crossPkgs.buildLinux {
version = "6.8.0-rc1";
modDirVersion = "6.8.0-rc1";
#src = linux-rockchip-collabora;
#src = builtins.fetchUrl {
# url = "https://git.jakstys.lt/motiejus/linux/archive/rk3588.tar.gz";
# sha256 = "869adb5236254e705b51f3bcd22c0ac2498ca661c44c5a25a737bb067bc5a635";
#};
src = builtins.fetchGit {
url = "https://git.jakstys.lt/motiejus/linux";
rev = "eadcef24731e0f1ddb86dc7c9c859387b5b029a2";
ref = "rk3588";
shallow = true;
};
kernelPatches = [];
extraMeta.branch = "6.8";
});
loader = {
grub.enable = false;
generic-extlinux-compatible.enable = true;
};
initrd.kernelModules = ["ahci_dwc" "phy_rockchip_naneng_combphy"];
consoleLogLevel = 7;
};
hardware.deviceTree.name = "rockchip/rk3588s-orangepi-5.dtb";
fileSystems = {
"/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
options = ["noatime"];
};
};
system.build = {
sdImage = import "${modulesPath}/../lib/make-disk-image.nix" {
name = "orangepi5-sd-image";
copyChannel = false;
inherit config lib pkgs;
};
uboot = crossPkgs.callPackage ../../hacks/orangepi5/uboot {};
};
}