summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/board-qemu/slof/tree.fs
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/SLOF/board-qemu/slof/tree.fs
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/SLOF/board-qemu/slof/tree.fs')
-rw-r--r--qemu/roms/SLOF/board-qemu/slof/tree.fs195
1 files changed, 0 insertions, 195 deletions
diff --git a/qemu/roms/SLOF/board-qemu/slof/tree.fs b/qemu/roms/SLOF/board-qemu/slof/tree.fs
deleted file mode 100644
index 78dafab71..000000000
--- a/qemu/roms/SLOF/board-qemu/slof/tree.fs
+++ /dev/null
@@ -1,195 +0,0 @@
-\ *****************************************************************************
-\ * Copyright (c) 2004, 2011 IBM Corporation
-\ * All rights reserved.
-\ * This program and the accompanying materials
-\ * are made available under the terms of the BSD License
-\ * which accompanies this distribution, and is available at
-\ * http://www.opensource.org/licenses/bsd-license.php
-\ *
-\ * Contributors:
-\ * IBM Corporation - initial implementation
-\ ****************************************************************************/
-
-: strequal ( str1 len1 str2 len2 -- flag )
- rot dup rot = IF comp 0= ELSE 2drop drop 0 THEN ;
-
-400 cp
-
-\ The root of the device tree and some of its kids.
-" /" find-device
-
-\ The following properties have been provided by the FDT from QEMU already,
-\ so we do not have to create them on our own:
-
-\ " QEMU" encode-string s" model" property
-\ 2 encode-int s" #address-cells" property
-\ 2 encode-int s" #size-cells" property
-\ s" chrp" device-type
-
-#include "archsupport.fs"
-
-480 cp
-
-\ See 3.6.5, and the PowerPC OF binding document.
-new-device
-s" mmu" 2dup device-name device-type
-0 0 s" translations" property
-
-: open true ;
-: close ;
-
-finish-device
-device-end
-
-4c0 cp
-
-\ Fixup timebase frequency from device-tree
-: fixup-tbfreq
- " /cpus/@0" find-device
- " timebase-frequency" get-node get-package-property IF
- 2drop
- ELSE
- decode-int to tb-frequency 2drop
- THEN
- device-end
-;
-fixup-tbfreq
-
-4d0 cp
-
-include fbuffer.fs
-
-500 cp
-
-: populate-vios ( -- )
- \ Populate the /vdevice children with their methods
- \ WARNING: Quite a few SLOFisms here like get-node, set-node, ...
-
- ." Populating /vdevice methods" cr
- " /vdevice" find-device get-node child
- BEGIN
- dup 0 <>
- WHILE
- dup set-node
- dup " compatible" rot get-package-property 0 = IF
- drop dup from-cstring
- 2dup " hvterm1" strequal IF
- " vio-hvterm.fs" included
- THEN
- 2dup " IBM,v-scsi" strequal IF
- " vio-vscsi.fs" included
- THEN
- 2dup " IBM,l-lan" strequal IF
- " vio-veth.fs" included
- THEN
- 2dup " qemu,spapr-nvram" strequal IF
- " rtas-nvram.fs" included
- THEN
- 2drop
- THEN
- peer
- REPEAT drop
-
- device-end
-;
-
-\ Now do it
-populate-vios
-
-580 cp
-
-5a0 cp
-
-#include "pci-scan.fs"
-
-: populate-pci-busses ( -- )
- \ Populate the /pci* children with their methods
- " /" find-device get-node child
- BEGIN
- dup 0 <>
- WHILE
- dup set-node
- dup " name" rot get-package-property 0 = IF
- drop dup from-cstring
- 2dup s" pci" strequal IF
- s" pci-phb.fs" included
- THEN
- 2drop
- THEN
- peer
- REPEAT drop
-
- device-end
-;
-
-populate-pci-busses
-
-600 cp
-
-: check-patch-kernel-sc1 ( -- )
- \ At this point we can try our best to patch the kernel. This function
- \ gets called from the "quiesce" call that kernels execute before they
- \ take over the system.
- \
- \ Here we know that ciregs->r4 contains the return address that gets us
- \ back into enter_prom inside the guest kernel.
- \ We assume that within a range of +- 16MB of that pointer all sc 1
- \ instructions inside of that kernel reside.
-
- \ test_ins (instruction that tells us the kernel's endianness; we use the
- \ return address back into the kernel here.)
- ciregs >r4 @
- \ test_ins + 16MB (end of search range)
- dup 1000000 +
- \ MAX(test_ins - 16MB, 0) (start of search range)
- dup 2000000 < IF 0 ELSE dup 2000000 - THEN
- swap
- check-and-patch-sc1
-;
-
-\ Add sc 1 patching
-' check-patch-kernel-sc1 add-quiesce-xt
-
-\ Add rtas cleanup last
-' rtas-quiesce add-quiesce-xt
-
-640 cp
-
-690 cp
-
-6a0 cp
-
-6a8 cp
-
-6b0 cp
-
-6b8 cp
-
-6c0 cp
-
-s" /cpus/@0" open-dev encode-int s" cpu" set-chosen
-s" /memory@0" open-dev encode-int s" memory" set-chosen
-
-6e0 cp
-
-700 cp
-
-\ See 3.5.
-s" /openprom" find-device
- s" SLOF," slof-build-id here swap rmove here slof-build-id nip $cat encode-string s" model" property
- 0 0 s" relative-addressing" property
-device-end
-
-s" /aliases" find-device
- : open true ;
- : close ;
-device-end
-
-s" /mmu" open-dev encode-int s" mmu" set-chosen
-
-#include "available.fs"
-
-\ Setup terminal IO
-
-#include <term-io.fs>
-