linux: Allow kexec in userspace to get framebuffer address

kexec(8) needs to get the framebuffer address in order to set up the
new kernel's boot parameters.  This is one of the reasons that using a
>4.20 kernel in Heads prevents framebuffer graphics from working in the
OS kernel.

Linux 4.20 started hiding this address from userspace, because
userspace is not supposed to need physical memory addresses.  A
workaround was added to keep leaking the address, apparently for some
proprietary userspace OpenGL drivers.  This requires both a Kconfig and
a kernel parameter.

This commit enables the Kconfig on the librem_common config, and the
kernel parameter on the librem_15v4 (where I'm testing this).  We will
need to enable it on other >4.20 configs/boards as well.

Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
This commit is contained in:
Jonathon Hall 2023-04-18 13:17:18 -04:00
parent 8ff4b9a51b
commit abbc1b5dd8
No known key found for this signature in database
GPG Key ID: 1E9C3CA91AE25114
2 changed files with 2 additions and 1 deletions

View File

@ -9,5 +9,5 @@ CONFIG_HAVE_ME_BIN=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_PAYLOAD_LINUX=y
CONFIG_PAYLOAD_FILE="@BOARD_BUILD_DIR@/bzImage"
CONFIG_LINUX_COMMAND_LINE="iommu=pt quiet loglevel=2 video=eDP-1:1920x1080"
CONFIG_LINUX_COMMAND_LINE="iommu=pt quiet loglevel=2 video=eDP-1:1920x1080 drm_kms_helper.drm_leak_fbdev_smem=1"
CONFIG_LINUX_INITRD="@BOARD_BUILD_DIR@/initrd.cpio.xz"

View File

@ -200,6 +200,7 @@ CONFIG_I2C_SLAVE=y
# CONFIG_X86_PKG_TEMP_THERMAL is not set
CONFIG_MFD_SYSCON=y
CONFIG_DRM=y
CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM=y
CONFIG_DRM_I915=y
CONFIG_DRM_AST=y
CONFIG_FB_VESA=y