aboutsummaryrefslogtreecommitdiff
path: root/external/mambo/skiboot.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'external/mambo/skiboot.tcl')
-rw-r--r--external/mambo/skiboot.tcl22
1 files changed, 21 insertions, 1 deletions
diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index 02a5ba9..fdcf14d 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -171,17 +171,37 @@ lappend compat "ibm,power8-xscom"
set compat [of::encode_compat $compat]
mysim of addprop $xscom_node byte_array "compatible" $compat
+# Load any initramfs
+set cpio_start 0x80000000
+set cpio_end $cpio_start
if { [info exists env(SKIBOOT_INITRD)] } {
set cpio_file $env(SKIBOOT_INITRD)
set chosen_node [mysim of find_device /chosen]
set cpio_size [file size $cpio_file]
- set cpio_start 0x80000000
set cpio_end [expr $cpio_start + $cpio_size]
mysim of addprop $chosen_node int "linux,initrd-start" $cpio_start
mysim of addprop $chosen_node int "linux,initrd-end" $cpio_end
mysim mcm 0 memory fread $cpio_start $cpio_size $cpio_file
}
+# Default NVRAM is blank and will be formatted by Skiboot if no file is provided
+set fake_nvram_start $cpio_end
+set fake_nvram_size 0x40000
+# Load any fake NVRAM file if provided
+if { [info exists env(SKIBOOT_NVRAM)] } {
+ # Set up and write NVRAM file
+ set fake_nvram_file $env(SKIBOOT_NVRAM)
+ set fake_nvram_size [file size $fake_nvram_file]
+ mysim mcm 0 memory fread $fake_nvram_start $fake_nvram_size $fake_nvram_file
+}
+
+# Add device tree entry for NVRAM
+set reserved_memory [mysim of addchild $root_node "reserved-memory" ""]
+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
+mysim of addprop $fake_nvram_node empty "name" "ibm,fake-nvram"
+
# Init CPUs
set pir 0
for { set c 0 } { $c < $mconf(cpus) } { incr c } {