[PATCH] riscv: Respect the initrd found in the dt, if any.
Shea Levy
shea at shealevy.com
Thu Feb 22 19:38:01 PST 2018
It doesn't look like that generic support handles the case where the
initrd is compiled into the kernel and not passed in the devicetree,
which setup_initrd already did before this
patch. __early_init_dt_delcare_initrd is only called when the devicetree
properties are found.
Palmer Dabbelt <palmer at sifive.com> writes:
> On Tue, 20 Feb 2018 04:54:26 PST (-0800), shea at shealevy.com wrote:
>> Signed-off-by: Shea Levy <shea at shealevy.com>
>> ---
>> arch/riscv/kernel/setup.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
>> index 41d34008faf6..c4ebc907af34 100644
>> --- a/arch/riscv/kernel/setup.c
>> +++ b/arch/riscv/kernel/setup.c
>> @@ -88,15 +88,20 @@ static void __init setup_initrd(void)
>> extern unsigned long __initramfs_size;
>> unsigned long size;
>>
>> + if (initrd_start)
>> + goto found;
>> +
>> if (__initramfs_size > 0) {
>> initrd_start = (unsigned long)(&__initramfs_start);
>> initrd_end = initrd_start + __initramfs_size;
>> }
>>
>> + initrd_below_start_ok = 1;
>> if (initrd_start >= initrd_end) {
>> printk(KERN_INFO "initrd not found or empty");
>> goto disable;
>> }
>> +found:
>> if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
>> printk(KERN_ERR "initrd extends beyond end of memory");
>> goto disable;
>> @@ -104,13 +109,13 @@ static void __init setup_initrd(void)
>>
>> size = initrd_end - initrd_start;
>> memblock_reserve(__pa(initrd_start), size);
>> - initrd_below_start_ok = 1;
>>
>> printk(KERN_INFO "Initial ramdisk at: 0x%p (%lu bytes)\n",
>> (void *)(initrd_start), size);
>> return;
>> disable:
>> pr_cont(" - disabling initrd\n");
>> + initrd_below_start_ok = 0;
>> initrd_start = 0;
>> initrd_end = 0;
>> }
>
> It looks like there's some amount of generic support in
> __early_init_dt_declare_initrd(), can we just use that?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20180222/cd0252b4/attachment.sig>
More information about the linux-riscv
mailing list