I'm trying to load drm radeon for powersaving purposes, overall system usage ~20W and enabling drm saves about 4W when the video goes on standby.
I've done it by make kernel_menuconfig using these setting:
CONFIG_DRM_RADEON=y
CONFIG_DRM_TTM=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/PALM_pfp.bin radeon/PALM_me.bin radeon/SUMO_rlc.bin radeon/SUMO_uvd.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
I would like to have it in the make menuconfig, so I edited the video.mk file like this (diff)
diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index fb85f23..6a5e3e8 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -186,11 +186,13 @@ define KernelPackage/drm
SUBMENU:=$(VIDEO_MENU)
TITLE:=Direct Rendering Manager (DRM) support
HIDDEN:=1
- DEPENDS:=+kmod-dma-buf
+ DEPENDS:=+kmod-dma-buf +kmod-i2c-core
KCONFIG:=CONFIG_DRM \
CONFIG_DRM_FBDEV_EMULATION=n \
CONFIG_DRM_LOAD_EDID_FIRMWARE=n \
CONFIG_DRM_IMX=n \
+ CONFIG_DRM_I915=n \
+ CONFIG_DRM_GMA500=n \
CONFIG_DRM_PTN3460=n \
CONFIG_DRM_PS8622=n \
CONFIG_DRM_TDFX=n \
@@ -212,6 +214,7 @@ define KernelPackage/drm
CONFIG_DRM_TILCDC=n \
CONFIG_DRM_QXL=n \
CONFIG_DRM_BOCHS=n \
+ CONFIG_DRM_VIRTIO_GPU=n \
CONFIG_DRM_FSL_DCU=n \
CONFIG_DRM_STI=n \
CONFIG_DRM_NXP_PTN3460=n \
@@ -311,6 +314,26 @@ endef
$(eval $(call KernelPackage,drm-imx-ldb))
+define KernelPackage/drm-radeon
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Radeon DRM support
+ DEPENDS:=+kmod-drm +kmod-fb +kmod-hwmon-core +kmod-i2c-algo-bit
+ KCONFIG:=CONFIG_DRM_RADEON=y \
+ CONFIG_DRM_RADEON_USERPTR=n \
+ CONFIG_DRM_KMS_HELPER \
+ CONFIG_DRM_KMS_FB_HELPER=y \
+ CONFIG_DRM_TTM
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/ttm/ttm.ko
+ AUTOLOAD:=$(call AutoLoad,05,radeon)
+endef
+
+define KernelPackage/drm-radeon/description
+ Direct Rendering Manager (DRM) support for Radeon GPU
+endef
+
+$(eval $(call KernelPackage,drm-radeon))
#
# Video Capture
and the firmware file radeon.mk
Package/radeon-PALM-firmware = $(call Package/firmware-default,radeon PALM firmware)
define Package/radeon-PALM-firmware/install
$(INSTALL_DIR) $(1)/lib/firmware/radeon
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/radeon/PALM_pfp.bin \
$(PKG_BUILD_DIR)/radeon/PALM_me.bin \
$(1)/lib/firmware/radeon
endef
$(eval $(call BuildPackage,radeon-PALM-firmware))
Package/radeon-SUMO-firmware = $(call Package/firmware-default,radeon SUMO firmware)
define Package/radeon-SUMO-firmware/install
$(INSTALL_DIR) $(1)/lib/firmware/radeon
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/radeon/SUMO_rlc.bin \
$(PKG_BUILD_DIR)/radeon/SUMO_uvd.bin \
$(1)/lib/firmware/radeon
endef
$(eval $(call BuildPackage,radeon-SUMO-firmware))
I encounter the following error despite the fact the firmware files are present in the system
[ 9.802668] [drm] Initialized
[ 9.932561] [drm] radeon kernel modesetting enabled.
[ 9.953869] [drm] initializing kernel modesetting (PALM 0x1002:0x9805 0x1734:0x11BD 0x00).
[ 9.962451] [drm] register mmio base: 0xFEB00000
[ 9.967215] [drm] register mmio size: 262144
[ 9.971817] ATOM BIOS: AMD
[ 9.974735] radeon 0000:00:01.0: VRAM: 32M 0x0000000000000000 - 0x0000000001FFFFFF (32M used)
[ 9.983500] radeon 0000:00:01.0: GTT: 1024M 0x0000000002000000 - 0x0000000041FFFFFF
[ 9.991394] [drm] Detected VRAM RAM=32M, BAR=32M
[ 9.996154] [drm] RAM width 32bits DDR
[ 10.037998] [TTM] Zone kernel: Available graphics memory: 993362 kiB
[ 10.044647] [TTM] Initializing pool allocator
[ 10.049149] [TTM] Initializing DMA pool allocator
[ 10.054057] [drm] radeon: 32M of VRAM memory ready
[ 10.058986] [drm] radeon: 1024M of GTT memory ready.
[ 10.064133] [drm] Loading PALM Microcode
[ 10.069828] radeon 0000:00:01.0: Direct firmware load for radeon/PALM_pfp.bin failed with error -2
[ 10.079036] radeon 0000:00:01.0: Falling back to user helper
[ 13.976595] random: fast init done
[ 23.657620] firmware radeon!PALM_pfp.bin: firmware_loading_store: map pages failed
[ 23.665603] r600_cp: Failed to load firmware "radeon/PALM_pfp.bin"
[ 23.672038] [drm:evergreen_init [radeon]] ERROR Failed to load firmware!
[ 23.679119] radeon 0000:00:01.0: Fatal error during GPU init
[ 23.684951] [drm] radeon: finishing device.
[ 23.697173] [TTM] Finalizing pool allocator
[ 23.701519] [TTM] Finalizing DMA pool allocator
[ 23.706331] [TTM] Zone kernel: Used memory at exit: 0 kiB
[ 23.711979] [drm] radeon: ttm finalized
[ 23.717051] radeon: probe of 0000:00:01.0 failed with error -11
Thanks !
Regards