[PW_SID:1076316] firmware: sysfb: Consolidate config/code wrt. sysfb_primary_screen#1708
[PW_SID:1076316] firmware: sysfb: Consolidate config/code wrt. sysfb_primary_screen#1708linux-riscv-bot wants to merge 23 commits into
Conversation
Fix various typos in RISC-V architecture code and comments. The following changes are included: - arch/riscv/errata/thead/errata.c: "futher" → "further" - arch/riscv/include/asm/atomic.h: "therefor" → "therefore", "arithmatic" → "arithmetic" - arch/riscv/include/asm/elf.h: "availiable" → "available", "coorespends" → "corresponds" - arch/riscv/include/asm/processor.h: "requries" → "is required" - arch/riscv/include/asm/thread_info.h: "returing" → "returning" - arch/riscv/kernel/acpi.c: "compliancy" → "compliance" - arch/riscv/kernel/ftrace.c: "therefor" → "therefore" - arch/riscv/kernel/head.S: "intruction" → "instruction" - arch/riscv/kernel/mcount-dyn.S: "localtion → "location" - arch/riscv/kernel/module-sections.c: "maxinum" → "maximum" - arch/riscv/kernel/probes/kprobes.c: "reenabled" → "re-enabled" - arch/riscv/kernel/probes/uprobes.c: "probbed" → "probed" - arch/riscv/kernel/soc.c: "extremly" → "extremely" - arch/riscv/kernel/suspend.c: "incosistent" → "inconsistent" - arch/riscv/kvm/tlb.c: "cahce" → "cache" - arch/riscv/kvm/vcpu_pmu.c: "indicies" → "indices" - arch/riscv/lib/csum.c: "implmentations" → "implementations" - arch/riscv/lib/memmove.S: "ammount" → "amount" - arch/riscv/mm/cacheflush.c: "visable" → "visible" - arch/riscv/mm/physaddr.c: "aginst" → "against" Signed-off-by: Sean Chang <seanwascoding@gmail.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://patch.msgid.link/20260212163325.60389-1-seanwascoding@gmail.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
Commit f1a0a37 ("sched/core: Initialize the idle task with preemption disabled") removed a call to preempt_disable(), but not the associated comment. Remove the outdated comment. Fixes: f1a0a37 ("sched/core: Initialize the idle task with preemption disabled") Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Link: https://patch.msgid.link/20260204-riscv-smp-comment-update-2026-01-v1-1-8b77aa181530@iscas.ac.cn Signed-off-by: Paul Walmsley <pjw@kernel.org>
local_flush_icache_all() only flushes and synchronizes the *instruction* cache, not the data cache. Since RISC-V does have a cbo.flush instruction for data cache flush, clarify the comment to avoid confusion. Fixes: 58661a3 ("riscv: Flush the instruction cache during SMP bringup") Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Link: https://patch.msgid.link/20260204-riscv-smp-comment-update-2026-01-v1-2-8b77aa181530@iscas.ac.cn Signed-off-by: Paul Walmsley <pjw@kernel.org>
The kaslr_offset() function is a simple accessor that returns kernel_map.virt_offset. This commit change also ensures that kaslr_offset() is consistently available across various kernel configurations without requiring explicit linkage to mm/init.c. Signed-off-by: Austin Kim <austin.kim@lge.com> Link: https://patch.msgid.link/aYwJ76yHaMbbQVJA@adminpc-PowerEdge-R7525 Signed-off-by: Paul Walmsley <pjw@kernel.org>
The following options are required by the kdump crash utility for RISC-V
based vmcore file:
- kaslr: If the vmcore is generated from a KASLR-enabled Linux kernel,
the KASLR offset is required for the crash utility to load
the vmcore. Without the proper kaslr option, the crash utility
fails to load the vmcore file.
- satp: The exact root page table address helps determine the correct base
PGD address.
With this patch, RISC-V VMCOREINFO ELF notes now include both kaslr
and satp information.
Signed-off-by: Austin Kim <austin.kim@lge.com>
Link: https://patch.msgid.link/aYwKUE3ZzN7/ZY/A@adminpc-PowerEdge-R7525
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Fix several bugs in the RISC-V kgdb implementation: - The element of dbg_reg_def[] that is supposed to pertain to the S1 register embeds instead the struct pt_regs offset of the A1 register. Fix this to use the S1 register offset in struct pt_regs. - The sleeping_thread_to_gdb_regs() function copies the value of the S10 register into the gdb_regs[] array element meant for the S9 register, and copies the value of the S11 register into the array element meant for the S10 register. It also neglects to copy the value of the S11 register. Fix all of these issues. Fixes: fe89bd2 ("riscv: Add KGDB support") Cc: Vincent Chen <vincent.chen@sifive.com> Link: https://patch.msgid.link/fde376f8-bcfd-bfe4-e467-07d8f7608d05@kernel.org Signed-off-by: Paul Walmsley <pjw@kernel.org>
Similarly to commit 8d09e2d ("arm64: patching: avoid early page_to_phys()"), avoid using phys_to_page() for the kernel address case in patch_map(). Since this is called from apply_boot_alternatives() in setup_arch(), and commit 4267739 ("arch, mm: consolidate initialization of SPARSE memory model") has moved sparse_init() to after setup_arch(), phys_to_page() is not available there yet, and it panics on boot with SPARSEMEM on RV32, which does not use SPARSEMEM_VMEMMAP. Reported-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Closes: https://lore.kernel.org/r/20260223144108-dcace0b9-02e8-4b67-a7ce-f263bed36f26@linutronix.de/ Fixes: 4267739 ("arch, mm: consolidate initialization of SPARSE memory model") Suggested-by: Mike Rapoport <rppt@kernel.org> Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Tested-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Link: https://patch.msgid.link/20260310-riscv-sparsemem-alternatives-fix-v1-1-659d5dd257e2@iscas.ac.cn [pjw@kernel.org: fix the subject line to align with the patch description] Signed-off-by: Paul Walmsley <pjw@kernel.org>
The BITS variable conveniently allows to simplify the assignment for UTS_MACHINE. Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com> Link: https://patch.msgid.link/20260313164012.1153936-2-u.kleine-koenig@baylibre.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
The BIT() macros is used by the validate_v_ptrace() test case, but not defined. Include linux/bits.h to pull in this definition. To ensure that the header in the kernel source is used, add tools/include to the header search path. Fixes: 30eb191 ("selftests: riscv: verify ptrace rejects invalid vector csr inputs") Signed-off-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Reviewed-and-tested-by: Sergey Matyukevich <geomatsi@gmail.com> Link: https://patch.msgid.link/20260309-fix_selftests-v2-1-9d5a553a531e@gmail.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
BIT() is being used in ptrace.h without a definition, resulting in compilation errors in tools/testing/selftests/riscv/cfi/cfitests.c: cfitests.c:101:60: error: implicit declaration of function ‘BIT’ [-Wimplicit-function-declaration] 101 | if ((cfi_reg.cfi_status.cfi_state & CFI_ENABLE_MASK) != CFI_ENABLE_MASK) Include linux/bits.h to resolve this issue. Fixes: 2af7c9c ("riscv/ptrace: expose riscv CFI status and state via ptrace and in core files") Signed-off-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Reviewed-by: Deepak Gupta <debug@rivosinc.com> Link: https://patch.msgid.link/20260309-fix_selftests-v2-3-9d5a553a531e@gmail.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
The cfi selftest was missing a license so add it. Signed-off-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Reviewed-by: Deepak Gupta <debug@rivosinc.com> Link: https://patch.msgid.link/20260309-fix_selftests-v2-4-9d5a553a531e@gmail.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
In the arch/riscv/Kconfig, the HOTPLUG_CPU depends on SMP, hence if the HOTPLUG_CPU is defined, the SMP has to be defined, it is not necessary to check SMP here. Signed-off-by: Hui Wang <hui.wang@canonical.com> Link: https://patch.msgid.link/20260304033403.238012-1-hui.wang@canonical.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
The cpu-hotplug.c only is built when CONFIG_HOTPLUG_CPU is defined, it is not needed to check HOTPLUG_CPU in this file. Signed-off-by: Hui Wang <hui.wang@canonical.com> Link: https://patch.msgid.link/20260304033403.238012-2-hui.wang@canonical.com [pjw@kernel.org: removed extra whitespace at EOF] Signed-off-by: Paul Walmsley <pjw@kernel.org>
Similar as commit 284922f ("x86: uaccess: don't use runtime-const rewriting in modules") does, make riscv's runtime const not usable by modules too, to "make sure this doesn't get forgotten the next time somebody wants to do runtime constant optimizations". The reason is well explained in the above commit: "The runtime-const infrastructure was never designed to handle the modular case, because the constant fixup is only done at boot time for core kernel code." Signed-off-by: Jisheng Zhang <jszhang@kernel.org> Link: https://patch.msgid.link/20260221023731.3476-1-jszhang@kernel.org Signed-off-by: Paul Walmsley <pjw@kernel.org>
Hyperv's sysfb access only exists in the VMBUS support. Therefore only select CONFIG_SYSFB for CONFIG_HYPERV_VMBUS. Avoids sysfb code on systems that don't need it. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Fixes: 9695928 ("Drivers: hv: Always select CONFIG_SYSFB for Hyper-V guests") Cc: Michael Kelley <mhklinux@outlook.com> Cc: Saurabh Sengar <ssengar@linux.microsoft.com> Cc: Wei Liu <wei.liu@kernel.org> Cc: "K. Y. Srinivasan" <kys@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Cc: Dexuan Cui <decui@microsoft.com> Cc: Long Li <longli@microsoft.com> Cc: linux-hyperv@vger.kernel.org Cc: <stable@vger.kernel.org> # v6.16+ Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The x86 architecture comes with its own instance of the global state variable sysfb_primary_display. Never declare it in the EFI subsystem. Fix the test for CONFIG_FIRMWARE_EDID accordingly. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Fixes: e65ca16 ("efi: export sysfb_primary_display for EDID") Cc: kernel test robot <lkp@intel.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> Cc: linux-efi@vger.kernel.org Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a descriptive string and help text to CONFIG_SYSFB, so that users can modify it. Flip all implicit selects in the Kconfig options into dependencies. This avoids cyclic dependencies in the config. Enabling CONFIG_SYSFB makes the kernel provide a device for the firmware framebuffer. As this can (slightly) affect system behavior, having a user-facing option seems preferable. Some users might also want to set every detail of their kernel config. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Move the init code for the primary graphics device and the PCI-helpers into separate source files. Only build the PCI helpers if CONFIG_PCI is set. Prepares sysfb for additional PCI helpers. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Move the relocation tracking for screen_info from the screen_info helpers to sysfb. The relocation code operates on sysfb_primary_display, which belongs to sysfb. The remaining screen_info helpers are now free from global state. Adapt some symbol names. Now prefer early returns in the helper sysfb_apply_screen_info_fixup() over nested branching. Also return an errno code from sysfb_apply_screen_info_fixup() if the relocation failed. In this case, do not create a device for the framebuffer. The original code advertised this behavior in a comment but never implemented it. Framebuffer aperture relocation can happen during boot if the PCI graphics device is located behind a PCI bridge. If the bridge's sub- bus gets relocated, the framebuffer aperture moves accordingly. The helper for tracking these relocations fixes up the values stored in sysfb_primary_display so that they refer to the correct address range again. Generic system-framebuffer drivers would not work otherwise. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Move sysfb_parent_dev() to the top of the source file to avoid the extra declaration. No functional changes. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Efi-earlycon uses sysfb_primary_display. Therefore make it depend on the corresponding config symbol. With this in place, go through the source files and reduce tests to CONFIG_SYSFB. Efi-earlycon is now just another regular user of sysfb. This also enables the screen_info relocation feature for efi-earlycon. Systems might move the framebuffer aperture while booting the kernel. PCI bridges sometimes do this as part of relocating the sub-bus aperture. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Move the Kconfig option for CONFIG_FIRMWARE_EDID to the firmware subsystem. The option controls architecture and firmware code, so it fits here better than in video. Also make it depend on CONFIG_SYSFB. The EDID data is stored in sysfb_primary_display and only useful with a sysfb framebuffer. This further allows for removing an explicit test for CONFIG_FIRMWARE_EDID from the EFI init code. For loongson, select CONFIG_SYSFB in the defconfig files. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 1: "[1/8] hv: Select CONFIG_SYSFB only for CONFIG_HYPERV_VMBUS" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 7: "[7/8] firmware: efi: Make CONFIG_EFI_EARLYCON depend on CONFIG_SYSFB; clean up" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
|
Patch 8: "[8/8] firmware: sysfb: Move CONFIG_FIRMWARE_EDID to firmware options" |
f41c72c to
13007b2
Compare
PR for series 1076316 applied to workflow__riscv__for-next
Name: firmware: sysfb: Consolidate config/code wrt. sysfb_primary_screen
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1076316
Version: 1