Message ID | 20230130182225.2471414-1-sunilvl@ventanamicro.com (mailing list archive) |
---|---|
Headers | show |
Series | Add basic ACPI support for RISC-V | expand |
On Mon, Jan 30, 2023 at 7:22 PM Sunil V L <sunilvl@ventanamicro.com> wrote: > > This patch series enables the basic ACPI infrastructure for RISC-V. > Supporting external interrupt controllers is in progress and hence it is > tested using polling based HVC SBI console and RAM disk. > > The series depends on Anup's IPI improvement series. > https://github.com/avpatel/linux/commits/riscv_ipi_imp_v17 > > These changes are available at > https://github.com/vlsunil/linux/commits/acpi_b1_us_review_ipi17 > > Testing: > 1) Build Qemu with ACPI support using below branch > https://github.com/vlsunil/qemu/tree/acpi_b1_us_review > > 2) Build EDK2 as per instructions in > https://github.com/vlsunil/riscv-uefi-edk2-docs/wiki/RISC-V-Qemu-Virt-support > > 3) Build Linux after enabling SBI HVC and SBI earlycon > CONFIG_RISCV_SBI_V01=y > CONFIG_SERIAL_EARLYCON_RISCV_SBI=y > CONFIG_HVC_RISCV_SBI=y > > 4) Build buildroot. > > Run with below command. > qemu-system-riscv64 -nographic \ > -drive file=Build/RiscVVirtQemu/RELEASE_GCC5/FV/RISCV_VIRT.fd,if=pflash,format=raw,unit=1 \ > -machine virt,acpi=on -smp 16 -m 2G \ > -kernel arch/riscv/boot/Image \ > -initrd buildroot/output/images/rootfs.cpio \ > -append "root=/dev/ram ro console=hvc0 earlycon=sbi" > > Jisheng Zhang (1): > riscv: move sbi_init() earlier before jump_label_init() > > Sunil V L (23): > ACPICA: MADT: Add RISC-V INTC interrupt controller > ACPICA: Add structure definitions for RISC-V RHCT > RISC-V: ACPI: Add empty headers to enable ACPI core > RISC-V: ACPI: Add basic functions to build ACPI core > RISC-V: ACPI: Add PCI functions to build ACPI core > RISC-V: ACPI: Enable ACPI build infrastructure > ACPI: Enable ACPI_PROCESSOR for RISC-V > ACPI: OSL: Make should_use_kmap() 0 for RISC-V. > ACPI: processor_core: RISC-V: Enable mapping processor to the hartid > RISC-V: ACPI: irqchip/riscv-intc: Add ACPI support > RISC-V: ACPI: smpboot: Create wrapper smp_setup() > RISC-V: ACPI: smpboot: Add ACPI support in smp_setup() > RISC-V: ACPI: smpboot: Add function to retrieve the hartid > clocksource/timer-riscv: Refactor riscv_timer_init_dt() > RISC-V: ACPI: clocksource/timer-riscv: Add ACPI support > ACPI: RISC-V: drivers/acpi: Add RHCT related code > RISC-V: ACPI: time.c: Add ACPI support for time_init() > RISC-V: ACPI: cpufeature: Add ACPI support in riscv_fill_hwcap() > RISC-V: ACPI: cpu: Enable cpuinfo for ACPI systems > RISC-V: ACPI: Add ACPI initialization in setup_arch() > RISC-V: ACPI: Enable ACPI in defconfig > MAINTAINERS: Add entry for drivers/acpi/riscv > Documentation/kernel-parameters.txt: Add RISC-V for ACPI parameter The series looks fine to me from the ACPI perspective, so please feel free to add Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> to it and route it via RISC-V. Thanks!
Hey Sunil, On Mon, Jan 30, 2023 at 11:52:01PM +0530, Sunil V L wrote: > This patch series enables the basic ACPI infrastructure for RISC-V. > Supporting external interrupt controllers is in progress and hence it is > tested using polling based HVC SBI console and RAM disk. > > The series depends on Anup's IPI improvement series. > https://github.com/avpatel/linux/commits/riscv_ipi_imp_v17 In the future, please provide links to patchsets rather than "random" git trees. > Jisheng Zhang (1): > riscv: move sbi_init() earlier before jump_label_init() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ What has this patch got to do with your series? Just something that was sitting in your tree? If you need this, it'd be ideal if you would submit *with* the R-b tags it appears to have had by v6 [1] & add the reason that you need to move it to the commit message. In Jisheng's series that was obvious, but this is a significantly larger series and it is hard to spot your reasoning for it. Cheers, Conor.
On Wed, Feb 08, 2023 at 06:28:15PM +0000, Conor Dooley wrote: > Hey Sunil, > > On Mon, Jan 30, 2023 at 11:52:01PM +0530, Sunil V L wrote: > > This patch series enables the basic ACPI infrastructure for RISC-V. > > Supporting external interrupt controllers is in progress and hence it is > > tested using polling based HVC SBI console and RAM disk. > > > > The series depends on Anup's IPI improvement series. > > https://github.com/avpatel/linux/commits/riscv_ipi_imp_v17 > > In the future, please provide links to patchsets rather than "random" > git trees. > > > Jisheng Zhang (1): > > riscv: move sbi_init() earlier before jump_label_init() > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > What has this patch got to do with your series? Just something that was > sitting in your tree? > > If you need this, it'd be ideal if you would submit *with* the R-b tags > it appears to have had by v6 [1] & add the reason that you need to move > it to the commit message. > In Jisheng's series that was obvious, but this is a significantly larger > series and it is hard to spot your reasoning for it. Apologies, I forgot to provide the link! https://lore.kernel.org/all/20220821140918.3613-1-jszhang@kernel.org/ Cheers, Conor.
Hi Conor, On Wed, Feb 08, 2023 at 06:50:39PM +0000, Conor Dooley wrote: > On Wed, Feb 08, 2023 at 06:28:15PM +0000, Conor Dooley wrote: > > Hey Sunil, > > > > On Mon, Jan 30, 2023 at 11:52:01PM +0530, Sunil V L wrote: > > > This patch series enables the basic ACPI infrastructure for RISC-V. > > > Supporting external interrupt controllers is in progress and hence it is > > > tested using polling based HVC SBI console and RAM disk. > > > > > > The series depends on Anup's IPI improvement series. > > > https://github.com/avpatel/linux/commits/riscv_ipi_imp_v17 > > > > In the future, please provide links to patchsets rather than "random" > > git trees. > > > > > Jisheng Zhang (1): > > > riscv: move sbi_init() earlier before jump_label_init() > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > > What has this patch got to do with your series? Just something that was > > sitting in your tree? > > > > If you need this, it'd be ideal if you would submit *with* the R-b tags > > it appears to have had by v6 [1] & add the reason that you need to move > > it to the commit message. > > In Jisheng's series that was obvious, but this is a significantly larger > > series and it is hard to spot your reasoning for it. > > Apologies, I forgot to provide the link! > https://lore.kernel.org/all/20220821140918.3613-1-jszhang@kernel.org/ > First of all, thank you very much for your detailed review!!. Will address your comments in the next revision of the series I am preparing to send this week. This patch from Jisheng is required to enable ACPI for the same reason. sbi_init() should be called before jump_label_init(). Otherwise, I hit a panic like below. [ 0.000000] efi: seeding entropy pool [ 0.000000] sbi_remote_fence_i: Enter for cpu_mask = 0000000000000000 [ 0.000000] Kernel panic - not syncing: __sbi_rfence is called before sbi_init!!! [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.19.0-rc3-00079-gd3ee951eeea1-dirty #3 [ 0.000000] Call Trace: [ 0.000000] [<ffffffff80005900>] dump_backtrace+0x1c/0x24 [ 0.000000] [<ffffffff8072a83e>] show_stack+0x2c/0x38 [ 0.000000] [<ffffffff8072fe7c>] dump_stack_lvl+0x40/0x58 [ 0.000000] [<ffffffff8072fea8>] dump_stack+0x14/0x1c [ 0.000000] [<ffffffff8072ae4a>] panic+0x106/0x2c6 [ 0.000000] [<ffffffff8072a964>] sbi_remote_fence_i+0x32/0x4a [ 0.000000] [<ffffffff80009c22>] flush_icache_all+0x1a/0x44 [ 0.000000] [<ffffffff8000622a>] patch_text_nosync+0x1e/0x2a [ 0.000000] [<ffffffff800084da>] arch_jump_label_transform+0x48/0xd0 [ 0.000000] [<ffffffff801013ee>] __jump_label_update+0x82/0xd4 [ 0.000000] [<ffffffff801014bc>] jump_label_update+0x7c/0xca [ 0.000000] [<ffffffff80101b5c>] static_key_enable_cpuslocked+0x70/0x9c [ 0.000000] [<ffffffff80101b9e>] static_key_enable+0x16/0x24 [ 0.000000] [<ffffffff80730c16>] crng_set_ready+0x18/0x20 [ 0.000000] [<ffffffff80022f06>] execute_in_process_context+0x3e/0x92 [ 0.000000] [<ffffffff80730dc8>] _credit_init_bits+0x9c/0x140 [ 0.000000] [<ffffffff80827024>] add_bootloader_randomness+0x3e/0x48 [ 0.000000] [<ffffffff8082c434>] efi_config_parse_tables+0x114/0x21c [ 0.000000] [<ffffffff8082dd18>] efi_init+0x11e/0x22a [ 0.000000] [<ffffffff80803256>] setup_arch+0xc8/0x5fa [ 0.000000] [<ffffffff80800716>] start_kernel+0x88/0x74e [ 0.000000] ---[ end Kernel panic - not syncing: __sbi_rfence is called before sbi_init!!! ]--- Yes, I missed V6 of Jishang. Will update it. I will also use public patchset linkgs. Thanks! Sunil