-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bootable OPI 5b image with kernel 6.3
- Loading branch information
Si Dao
committed
Jun 14, 2023
1 parent
15198f1
commit 110cfae
Showing
6 changed files
with
227 additions
and
0 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
{ | ||
description = "NixOS Installer AArch64"; | ||
|
||
inputs = { | ||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05-small"; | ||
}; | ||
|
||
outputs = { self, nixpkgs }: | ||
let | ||
pkgs = import nixpkgs { system = "aarch64-linux"; }; | ||
rk3588s-atf-blob = pkgs.stdenvNoCC.mkDerivation { | ||
pname = "rk3588s-atf-blob"; | ||
version = "0.0.1"; | ||
|
||
src = pkgs.fetchFromGitHub { | ||
owner = "armbian"; | ||
repo = "rkbin"; | ||
rev = "5d409529dbbc12959111787e77c349b3e832bc52"; | ||
sha256 = "sha256-cLBn7hBhVOKWz0bxJwRWyKJ+Au471kzQNoc8d8sVqlM="; | ||
}; | ||
|
||
installPhase = '' | ||
mkdir $out && cp rk35/*.* $out/ | ||
''; | ||
}; | ||
|
||
rk3588s-uboot = pkgs.stdenv.mkDerivation { | ||
pname = "rk3588s-uboot"; | ||
version = "2017.09-rk3588"; | ||
|
||
src = pkgs.fetchFromGitHub { | ||
owner = "orangepi-xunlong"; | ||
repo = "u-boot-orangepi"; | ||
rev = "v2017.09-rk3588"; | ||
sha256 = "sha256-J05zNWwZ26JhYWnUvj/VDYUKaXKEc4Im8KB9NwfBdVU="; | ||
}; | ||
patches = [ ./patches/uboot/f1.patch ./patches/uboot/f2.patch ./patches/uboot/f3.patch ]; | ||
|
||
buildInputs = [ rk3588s-atf-blob pkgs.bc pkgs.dtc pkgs.python2 ]; | ||
|
||
configurePhase = '' | ||
make ARCH=arm orangepi_5b_defconfig | ||
''; | ||
|
||
buildPhase = '' | ||
patchShebangs arch/arm/mach-rockchip | ||
make ARCH=arm BL31=${rk3588s-atf-blob}/rk3588_bl31_v1.32.elf \ | ||
spl/u-boot-spl.bin u-boot.dtb u-boot.itb | ||
tools/mkimage -n rk3588 -T rksd -d \ | ||
${rk3588s-atf-blob}/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.08.bin:spl/u-boot-spl.bin \ | ||
idbloader.img | ||
''; | ||
|
||
installPhase = '' | ||
mkdir $out | ||
cp u-boot.itb idbloader.img $out | ||
''; | ||
}; | ||
in rec | ||
{ | ||
nixosConfigurations.rk3588s = nixpkgs.lib.nixosSystem { | ||
system = "aarch64-linux"; | ||
modules = [ | ||
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" | ||
( { pkgs, lib, ...}: { | ||
boot.kernelPackages = pkgs.linuxPackages_6_3; | ||
boot.kernelParams = [ "console=ttyS2,1500000" "console=tty1" ]; | ||
boot.supportedFilesystems = lib.mkForce [ "vfat" "ext4" "btrfs" ]; | ||
|
||
hardware = { | ||
deviceTree = { | ||
name = "rockchip/rk3588s-rock-5a.dtb"; | ||
}; | ||
}; | ||
|
||
users.users.nixos = { | ||
initialPassword = "nixos"; | ||
isNormalUser = true; | ||
description = "NixOS User"; | ||
extraGroups = [ "users" "networkmanager" "wheel" ]; | ||
}; | ||
|
||
# 32 MiB offset, should be enough for bootloader | ||
sdImage.firmwarePartitionOffset = 32; | ||
sdImage.compressImage = false; | ||
sdImage.postBuildCommands = '' | ||
dd if=\${rk3588s-uboot}/idbloader.img of=$img seek=64 conv=notrunc | ||
dd if=\${rk3588s-uboot}/u-boot.itb of=$img seek=16384 conv=notrunc | ||
''; | ||
}) | ||
]; | ||
}; | ||
|
||
images.rk3588s = nixosConfigurations.rk3588s.config.system.build.sdImage; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- a/drivers/mmc/rockchip_dw_mmc.c 1970-01-01 08:00:01.000000000 +0800 | ||
+++ b/drivers/mmc/rockchip_dw_mmc.c 2023-06-14 01:33:09.737030250 +0800 | ||
@@ -42,7 +42,7 @@ | ||
{ | ||
struct rockchip_dwmmc_priv *priv = dev_get_priv(dev); | ||
|
||
- if (!priv || !&priv->clk) | ||
+ if (!priv) | ||
return 0; | ||
|
||
if (!memcmp(dev->name, "dwmmc", strlen("dwmmc"))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c 1970-01-01 08:00:01.000000000 +0800 | ||
+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c 2023-06-14 01:56:23.364063607 +0800 | ||
@@ -40,7 +40,7 @@ | ||
{ | ||
struct rockchip_pinctrl_priv *priv = bank->priv; | ||
struct rockchip_pin_ctrl *ctrl = priv->ctrl; | ||
- struct rockchip_mux_recalced_data *data; | ||
+ struct rockchip_mux_recalced_data *data = NULL; | ||
int i; | ||
|
||
for (i = 0; i < ctrl->niomux_recalced; i++) { | ||
@@ -64,7 +64,7 @@ | ||
{ | ||
struct rockchip_pinctrl_priv *priv = bank->priv; | ||
struct rockchip_pin_ctrl *ctrl = priv->ctrl; | ||
- struct rockchip_mux_route_data *data; | ||
+ struct rockchip_mux_route_data *data = NULL; | ||
int i; | ||
|
||
for (i = 0; i < ctrl->niomux_routes; i++) { | ||
@@ -423,14 +423,14 @@ | ||
u32 cells[MAX_ROCKCHIP_PINS_ENTRIES * 4]; | ||
u32 bank, pin, mux, conf, arg, default_val; | ||
int ret, count, i; | ||
- const char *prop_name; | ||
- const void *value; | ||
+ const char *prop_name = NULL; | ||
+ const void *value = NULL; | ||
int prop_len, param; | ||
- const u32 *data; | ||
+ const u32 *data = NULL; | ||
ofnode node; | ||
#if CONFIG_IS_ENABLED(OF_LIVE) | ||
- const struct device_node *np; | ||
- struct property *pp; | ||
+ const struct device_node *np = NULL; | ||
+ struct property *pp = NULL; | ||
#else | ||
int property_offset, pcfg_node; | ||
const void *blob = gd->fdt_blob; | ||
--- a/drivers/pinctrl/pinctrl-rockchip.c 1970-01-01 08:00:01.000000000 +0800 | ||
+++ b/drivers/pinctrl/pinctrl-rockchip.c 2023-06-14 01:59:46.814286888 +0800 | ||
@@ -829,7 +829,7 @@ | ||
{ | ||
struct rockchip_pinctrl_priv *priv = bank->priv; | ||
struct rockchip_pin_ctrl *ctrl = priv->ctrl; | ||
- struct rockchip_mux_recalced_data *data; | ||
+ struct rockchip_mux_recalced_data *data = NULL; | ||
int i; | ||
|
||
for (i = 0; i < ctrl->niomux_recalced; i++) { | ||
@@ -1561,7 +1561,7 @@ | ||
{ | ||
struct rockchip_pinctrl_priv *priv = bank->priv; | ||
struct rockchip_pin_ctrl *ctrl = priv->ctrl; | ||
- struct rockchip_mux_route_data *data; | ||
+ struct rockchip_mux_route_data *data = NULL; | ||
int i; | ||
|
||
for (i = 0; i < ctrl->niomux_routes; i++) { | ||
@@ -2940,14 +2940,14 @@ | ||
u32 cells[MAX_ROCKCHIP_PINS_ENTRIES * 4]; | ||
u32 bank, pin, mux, conf, arg, default_val; | ||
int ret, count, i; | ||
- const char *prop_name; | ||
- const void *value; | ||
+ const char *prop_name = NULL; | ||
+ const void *value = NULL; | ||
int prop_len, param; | ||
- const u32 *data; | ||
+ const u32 *data = NULL; | ||
ofnode node; | ||
#if defined(CONFIG_OF_LIVE) && !defined(CONFIG_SPL_BUILD) | ||
- const struct device_node *np; | ||
- struct property *pp; | ||
+ const struct device_node *np = NULL; | ||
+ struct property *pp = NULL; | ||
#else | ||
int property_offset, pcfg_node; | ||
const void *blob = gd->fdt_blob; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- a/configs/orangepi_5b_defconfig 1970-01-01 08:00:01.000000000 +0800 | ||
+++ b/configs/orangepi_5b_defconfig 2023-06-14 11:52:08.375102774 +0800 | ||
@@ -208,7 +208,7 @@ | ||
CONFIG_USB_GADGET_DOWNLOAD=y | ||
CONFIG_DM_VIDEO=y | ||
CONFIG_DISPLAY=y | ||
-CONFIG_DRM_ROCKCHIP=y | ||
+CONFIG_DRM_ROCKCHIP=n | ||
CONFIG_DRM_MAXIM_MAX96745=y | ||
CONFIG_DRM_MAXIM_MAX96752F=y | ||
CONFIG_DRM_MAXIM_MAX96755F=y |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
NIXPKGS_ALLOW_INSECURE=1 nix --extra-experimental-features 'nix-command flakes' build .#images.rk3588s --impure |