[PATCH V1 1/3] Revert "RISC-V: mark hibernation as nonportable"

Song Shuai suagrfillet at gmail.com
Sun Jun 25 08:09:21 PDT 2023


Sorry for the delayed reply,
My tinylab email went something wrong, I'll use gmail in this thread.

在 2023/6/25 22:18, Conor Dooley 写道:
> On Sun, Jun 25, 2023 at 10:09:29PM +0800, Song Shuai wrote:
>> This reverts commit ed309ce522185583b163bd0c74f0d9f299fe1826.
>>
>> With the commit 3335068f8721 ("riscv: Use PUD/P4D/PGD pages for the
>> linear mapping") reverted, the MIN_MEMBLOCK_ADDR points the kernel
>> load address which was placed at a PMD boundary.
> 
>> And firmware always
>> correctly mark resident memory, or memory protected with PMP as
>> per the devicetree specification and/or the UEFI specification.
> 
> But this is not true? The versions of OpenSBI that you mention in your
> cover letter do not do this.
> Please explain.
> 

At this time, OpenSbi [v0.8,v1.3) and edk2(RiscVVirt) indeed don't obey 
the DT/UEFI spec. This statement is excerpted from "Reserved memory for 
resident firmware" part from the upcoming riscv/boot.rst. It isn't 
accurate for now. How about deleting this one?

Actually with 3335068f8721 reverted, the change of MIN_MEMBLOCK_ADDR can 
avoid the mapping of firmware memory, I will make it clear in the next 
version.

>> So those regions will not be mapped in the linear mapping and they
>> can be safely saved/restored by hibernation.
>>
>> Signed-off-by: Song Shuai <songshuaishuai at tinylab.org>
>> ---
>>   arch/riscv/Kconfig | 5 +----
>>   1 file changed, 1 insertion(+), 4 deletions(-)
>>
>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
>> index 5966ad97c30c..17b5fc7f54d4 100644
>> --- a/arch/riscv/Kconfig
>> +++ b/arch/riscv/Kconfig
>> @@ -800,11 +800,8 @@ menu "Power management options"
>>   
>>   source "kernel/power/Kconfig"
>>   
>> -# Hibernation is only possible on systems where the SBI implementation has
>> -# marked its reserved memory as not accessible from, or does not run
>> -# from the same memory as, Linux
>>   config ARCH_HIBERNATION_POSSIBLE
>> -	def_bool NONPORTABLE
>> +	def_bool y
>>   
>>   config ARCH_HIBERNATION_HEADER
>>   	def_bool HIBERNATION
>> -- 
>> 2.20.1
>>



More information about the linux-riscv mailing list