From 4e962ca0022e50321ea4f1a112cd3b3573730717 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 27 Nov 2024 15:06:28 -0500 Subject: Support raspberry pi EGL Signed-off-by: Andrew Opalach --- hardware/cmsb-001/configuration.nix | 34 ++++++--- hardware/cmsb-001/vc4-kms-v3d-overlay.dts | 122 ++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 9 deletions(-) create mode 100644 hardware/cmsb-001/vc4-kms-v3d-overlay.dts (limited to 'hardware') diff --git a/hardware/cmsb-001/configuration.nix b/hardware/cmsb-001/configuration.nix index bbff4e1..799065a 100644 --- a/hardware/cmsb-001/configuration.nix +++ b/hardware/cmsb-001/configuration.nix @@ -38,16 +38,14 @@ "usbhid" "usb_storage" "vc4" - "reset-raspberrypi" + "v3d" "bcm2835_dma" "i2c_bcm2835" + "reset-raspberrypi" ]; - boot.kernelModules = [ ]; + boot.initrd.kernelModules = []; boot.kernelParams = [ "mitigations=off" "file_caps=1" ]; boot.blacklistedKernelModules = [ "snd_bcm2835" ]; - boot.supportedFilesystems = [ ]; - boot.extraModulePackages = [ ]; - boot.initrd.kernelModules = [ ]; hardware.enableRedistributableFirmware = true; hardware.graphics.enable = true; @@ -137,10 +135,11 @@ user = "akiyo"; environment = { WLR_LIBINPUT_NO_DEVICES = "1"; - LIBGL_ALWAYS_SOFTWARE = "1"; }; program = "${pkgs.camu}/bin/cmv"; }; + systemd.services."cage-tty1".serviceConfig.StandardOutput = lib.mkForce "journal+console"; + systemd.services."cage-tty1".wantedBy = []; # https://pablo.tools/blog/computers/nixos-generate-raspberry-images/ #sdImage = { @@ -158,6 +157,18 @@ # ''; #}; + # https://retropie.org.uk/docs/Overclocking/ + # BOOT/config.txt (changes) + # gpu_mem=64 + # total_mem=1024 + # arm_freq=1300 + # gpu_freq=500 + # core_freq=500 + # sdram_freq=500 + # sdram_schmoo=0x02000020 + # over_voltage=2 + # over_voltage_sdram=2 + # https://github.com/NixOS/nixos-hardware/issues/631 hardware.deviceTree = { enable = true; @@ -172,10 +183,15 @@ name = "cma-overlay"; dtsFile = ./cma-overlay.dts; } - { # https://raw.githubusercontent.com/raspberrypi/linux/refs/heads/rpi-6.6.y/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts - name = "vc4-fkms-v3d"; + #{ # https://raw.githubusercontent.com/raspberrypi/linux/refs/heads/rpi-6.6.y/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts + # name = "vc4-fkms-v3d"; + # # remove '#include "cma-overlay.dts"' + # dtsFile = ./vc4-fkms-v3d-overlay.dts; + #} + { # https://raw.githubusercontent.com/raspberrypi/linux/refs/heads/rpi-6.6.y/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts + name = "vc4-kms-v3d"; # remove '#include "cma-overlay.dts"' - dtsFile = ./vc4-fkms-v3d-overlay.dts; + dtsFile = ./vc4-kms-v3d-overlay.dts; } { # https://raw.githubusercontent.com/raspberrypi/linux/refs/heads/rpi-6.6.y/arch/arm/boot/dts/overlays/disable-bt-overlay.dts name = "disable-bt"; diff --git a/hardware/cmsb-001/vc4-kms-v3d-overlay.dts b/hardware/cmsb-001/vc4-kms-v3d-overlay.dts new file mode 100644 index 0000000..0b3275e --- /dev/null +++ b/hardware/cmsb-001/vc4-kms-v3d-overlay.dts @@ -0,0 +1,122 @@ +/* + * vc4-kms-v3d-overlay.dts + */ + +/dts-v1/; +/plugin/; + +#include + +/ { + compatible = "brcm,bcm2837"; + + fragment@1 { + target = <&i2c2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&fb>; + __overlay__ { + status = "disabled"; + }; + }; + + fragment@3 { + target = <&pixelvalve0>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@4 { + target = <&pixelvalve1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@5 { + target = <&pixelvalve2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@6 { + target = <&hvs>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@7 { + target = <&hdmi>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@8 { + target = <&v3d>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@9 { + target = <&vc4>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@10 { + target = <&clocks>; + __overlay__ { + claim-clocks = < + BCM2835_PLLD_DSI0 + BCM2835_PLLD_DSI1 + BCM2835_PLLH_AUX + BCM2835_PLLH_PIX + >; + }; + }; + + fragment@11 { + target = <&vec>; + __dormant__ { + status = "okay"; + }; + }; + + fragment@12 { + target = <&txp>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@13 { + target = <&hdmi>; + __dormant__ { + dmas; + }; + }; + + fragment@14 { + target = <&chosen>; + __overlay__ { + bootargs = "snd_bcm2835.enable_hdmi=0"; + }; + }; + + __overrides__ { + audio = <0>,"!13"; + noaudio = <0>,"=13"; + composite = <0>, "=11"; + nohdmi = <0>, "-1-7"; + }; +}; -- cgit v1.2.3-101-g0448