Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
linux_riscv: Add patches for initrd support
- Loading branch information
Showing
4 changed files
with
86 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
commit b1fbec8b74ace263ce1371e6bcfdd1dd71b52070 | ||
Author: Shea Levy <shea@shealevy.com> | ||
Date: Tue Feb 20 08:48:12 2018 -0500 | ||
|
||
riscv: Implement free_initrd_mem. | ||
|
||
v2: Remove incorrect page alignment. | ||
|
||
Signed-off-by: Shea Levy <shea@shealevy.com> | ||
|
||
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c | ||
index c77df8142be2..1b6daa5184e0 100644 | ||
--- a/arch/riscv/mm/init.c | ||
+++ b/arch/riscv/mm/init.c | ||
@@ -66,5 +66,6 @@ void free_initmem(void) | ||
#ifdef CONFIG_BLK_DEV_INITRD | ||
void free_initrd_mem(unsigned long start, unsigned long end) | ||
{ | ||
+ free_reserved_area((void *)start, (void *)end, -1, "initrd"); | ||
} | ||
#endif /* CONFIG_BLK_DEV_INITRD */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
commit 1e5f6473492f41355289d022003a049ebf8995fa | ||
Author: Shea Levy <shea@shealevy.com> | ||
Date: Tue Feb 20 07:52:14 2018 -0500 | ||
|
||
riscv: Respect the initrd found in the dt, if any. | ||
|
||
Signed-off-by: Shea Levy <shea@shealevy.com> | ||
|
||
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; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters