[Skiboot] [PATCH] mambo: Add a reservation for the initramfs

Oliver O'Halloran oohall at gmail.com
Fri May 19 16:16:48 AEST 2017


On most systems the initramfs is loaded inside the part of memory
reserved for the OS [0x0-0x30000000] and skiboot will never touch it.
On mambo it's loaded at 0x80000000 and if you're unlucky skiboot can
allocate over the top of it and corrupt the initramfs blob.

There might be the downside that the kernel cannot re-use the initramfs
memory since it's marked as reserved, but the kernel might also free it
anyway.

Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
 external/mambo/skiboot.tcl | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index 1b74c9bc5f3d..40e4107bf9a5 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -216,6 +216,11 @@ mysim of addprop $reserved_memory int "#size-cells" 2
 mysim of addprop $reserved_memory int "#address-cells" 2
 mysim of addprop $reserved_memory empty "ranges" ""
 
+set initramfs_res [mysim of addchild $reserved_memory "initramfs" ""]
+set reg [list $cpio_start $cpio_size ]
+mysim of addprop $initramfs_res array64 "reg" reg
+mysim of addprop $initramfs_res empty "name" "initramfs"
+
 set fake_nvram_node [mysim of addchild $reserved_memory "ibm,fake-nvram" ""]
 set reg [list $fake_nvram_start $fake_nvram_size ]
 mysim of addprop $fake_nvram_node array64 "reg" reg
-- 
2.9.3



More information about the Skiboot mailing list