diff options
author | RajithaY <rajithax.yerrumsetty@intel.com> | 2017-04-25 03:31:15 -0700 |
---|---|---|
committer | Rajitha Yerrumchetty <rajithax.yerrumsetty@intel.com> | 2017-05-22 06:48:08 +0000 |
commit | bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch) | |
tree | ca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/SLOF/board-js2x/slof/OF.fs | |
parent | a14b48d18a9ed03ec191cf16b162206998a895ce (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-js2x/slof/OF.fs')
-rw-r--r-- | qemu/roms/SLOF/board-js2x/slof/OF.fs | 557 |
1 files changed, 0 insertions, 557 deletions
diff --git a/qemu/roms/SLOF/board-js2x/slof/OF.fs b/qemu/roms/SLOF/board-js2x/slof/OF.fs deleted file mode 100644 index 3e3773580..000000000 --- a/qemu/roms/SLOF/board-js2x/slof/OF.fs +++ /dev/null @@ -1,557 +0,0 @@ -\ ***************************************************************************** -\ * Copyright (c) 2004, 2008 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 -\ ****************************************************************************/ - -\ The master file. Everything else is included into here. - -hex - -' ll-cr to cr - -\ as early as possible we want to know if it is js20, js21 or bimini -\ u3 = js20; u4 = js21/bimini -\ the difference if bimini or js21 will be done later depending if -\ obsidian or citrine is found -\ f8000000 is probably the place of the u3/u4 version -f8000000 rl@ CONSTANT uni-n-version -uni-n-version 4 rshift dup 3 = CONSTANT u3? 4 = CONSTANT u4? -\ if (f4000682 >> 4) == 1... it is a bimini... -f4000682 rb@ 4 rshift 1 = CONSTANT bimini? - -\ to decide wether vga initialisation using bios emulation should be attempted, -\ we need to know wether a vga-device was found during pci-scan. -\ If it is found, this value will be set to the device's phandle -0 value vga-device-node? - -\ planar-id reads back GPIO 29 30 31 and returns it as one value -\ if planar-id >= 5 it should be GA2 else it is GA1 (JS20 only) -defer planar-id ( -- planar-id ) - -: (planar-id) ( -- planar-id) - \ default implementation of planar-id just returns 8 - \ the highest possible planar id for JS20 is 7 - 8 -; - -' (planar-id) to planar-id - -#include "header.fs" - -\ I/O accesses. -#include "io.fs" - -\ XXX: Enable first UART on JS20, scripts forget to do this. Sigh. -3 7 siocfg! 1 30 siocfg! - -#include "serial.fs" - -cr - -#include "base.fs" - -\ Little-endian accesses. Also known as `wrong-endian'. -#include <little-endian.fs> - -\ do not free-mem if address is not within the heap -\ workaround for NVIDIA card -: free-mem ( addr len -- ) - over heap-start heap-end within IF - free-mem - ELSE - 2drop - THEN -; - -: #join ( lo hi #bits -- x ) lshift or ; -: #split ( x #bits -- lo hi ) 2dup rshift dup >r swap lshift xor r> ; - -: blink ; - -: reset-dual-emit ; - -: console-clean-fifo ; - -: bootmsg-nvupdate ; - -: asm-cout 2drop drop ; - -#include "logging.fs" - -: log-string 2drop ; - -#include "bootmsg.fs" - -000 cp - -\ disable the nvram logging until we know if we are -\ running from ram/takeover/js20 or in normal mode on js21 -: (nvramlog-write-byte) drop ; -' (nvramlog-write-byte) to nvramlog-write-byte - -#include "exception.fs" - -: mm-log-warning 2drop ; - -: write-mm-log ( data length type -- status ) - 3drop 0 -; - -080 cp - -#include "rtc.fs" - -100 cp - -\ Input line editing. -#include "accept.fs" - -120 cp - -#include "dump.fs" - -cistack ciregs >r1 ! \ kernel wants a stack :-) - -#include "romfs.fs" - -140 cp -#include "flash.fs" - -\ 1 temp; 0 perm; let's default to temp -1 VALUE flashside? - -\ claim the memory used by copy of the flash -flash-header IF - romfs-base dup flash-image-size 0 claim drop -THEN - -s" bootinfo" romfs-lookup drop c + l@ CONSTANT start-addr -start-addr flash-addr <> CONSTANT takeover? - -takeover? u3? or 0= IF - \ we want nvram logging to work - ['] .nvramlog-write-byte to nvramlog-write-byte -THEN - -160 cp - -u4? IF f8002100 rl@ 0= ELSE false THEN ?INCLUDE u4-mem.fs -u3? IF - planar-id 5 >= IF - 40000 to nvram-size - ELSE - \ change nvram-size to 8000 for GA1 blades - 8000 to nvram-size - THEN -THEN - - -takeover? IF - \ potentially coming from phype - u4? IF - \ takeover on JS21 is using some nvram area - \ which might be available - \ on JS20 the nvram is too small and - \ we just overwrite the nvram - sec-nvram-base to nvram-base - THEN - sec-nvram-size to nvram-size - \ in takeover mode the nvram is probably not mapped - \ to the exact location where the nvram starts - \ doing a small check to see if we have a partition - \ starting with 70; this test is far from perfect but - \ takeover is not the most common mode of running slof - nvram-base rb@ 70 <> IF 0 nvram-base rb! THEN -THEN - -200 cp - -#include <slof-logo.fs> -#include <banner.fs> - -: .banner .slof-logo .banner ; - -\ Get the secondary CPUs into our own spinloop. -f8000050 rl@ CONSTANT master-cpu -\ cr .( The master cpu is #) master-cpu . - -VARIABLE cpu-mask -: get-slave ( n -- online? ) - 0 3ff8 ! 18 lshift 30000000 or 48003f02 over l! icbi 10000 0 DO LOOP 3ff8 @ ; -: mark-online ( n -- ) 1 swap lshift cpu-mask @ or cpu-mask ! ; -: get-slaves 40 0 DO i get-slave IF i mark-online THEN LOOP ; -: cpu-report ( -- ) - cpu-mask @ 40 0 DO dup 1 and IF ." #" i . THEN 1 rshift LOOP drop -; - -220 cp -master-cpu mark-online get-slaves - -DEFER disable-watchdog ( -- ) -DEFER find-boot-sector ( -- ) - - -240 cp -\ Timebase frequency, in Hz. -\ -1 VALUE tb-frequency -d# 14318378 VALUE tb-frequency \ default value - needed for "ms" to work --1 VALUE cpu-frequency - -#include "helper.fs" -260 cp - -#include <timebase.fs> - -270 cp - -#include <fcode/evaluator.fs> - -280 cp - -\ rtas-config is not used -0 CONSTANT rtas-config - -#include "rtas.fs" -290 cp -s" update_flash.fs" included -2a0 cp -cpu-mask @ rtas-fetch-cpus drop - -: of-start-cpu rtas-start-cpu ; - -' power-off to halt -' rtas-system-reboot to reboot - -: other-firmware rtas-get-flashside 0= IF 1 ELSE 0 THEN rtas-set-flashside reboot ; -: disable-boot-watchdog rtas-stop-bootwatchdog drop ; -' disable-boot-watchdog to disable-watchdog - -true value bmc? -false value debug-boot? - -\ for JS21/Bimini try to detect BMC... if kcs (io @ca8) status is not ff... -u4? IF ca8 4 + io-c@ ff = IF false to bmc? true to debug-boot? THEN THEN - -VARIABLE memnode - -\ Hook to help loading our secondary boot loader. -DEFER disk-read ( lba cnt addr -- ) -0 VALUE disk-off - -create vpd-cb 24 allot -create vpd-bootlist 4 allot -2c0 cp -#include "ipmi-vpd.fs" -2e0 cp -#include <quiesce.fs> -300 cp -#include <usb/usb-static.fs> -320 cp -#include <scsi-loader.fs> -#include <root.fs> -360 cp -#include "tree.fs" - -: .system-information ( -- ) - s" " type cr - s" SYSTEM INFORMATION" type cr - s" Processor = " type s" cpu" get-chosen IF - drop l@ >r pvr@ s" pvr>name" r> $call-method type - s" @ " type cpu-frequency d# 1000000 / - decimal . hex s" MHz" type - THEN cr s" I/O Bridge = " type u3? IF - s" U3" ELSE s" U4" THEN type - f8000000 rl@ 4 rshift s" (" type 1 0.r s" ." type - f8000000 rl@ f and 1 0.r s" )" type cr - s" SMP Size = " type cpu-mask @ cnt-bits 1 0.r - s" (" type cpu-report 8 emit s" )" type - cr s" Boot-Date = " type .date cr - s" Memory = " type s" memory" get-chosen IF - drop l@ s" mem-report" rot $call-method THEN - cr s" Board Type = " type u3? IF - s" JS20(GA" type planar-id 5 >= IF - s" 2)" ELSE s" 1)" THEN type - ELSE bimini? IF s" Bimini" ELSE s" JS21" THEN type THEN - s" (" type .vpd-machine-type [char] / emit - .vpd-machine-serial [char] / emit - .vpd-hw-revision 8 emit s" )" type cr - s" MFG Date = " type .vpd-manufacturer-date cr - s" Part No. = " type .vpd-part-number cr - s" FRU No. = " type .vpd-fru-number cr - s" FRU Serial = " type .vpd-cardprefix-serial .vpd-card-serial cr - s" UUID = " type .vpd-uuid cr - s" Flashside = " type rtas-get-flashside 0= IF - ." 0 (permanent)" - ELSE - ." 1 (temporary)" THEN cr - s" Version = " type - takeover? IF - romfs-base 38 + a type - ELSE - slof-build-id here swap rmove - here slof-build-id nip type cr - s" Build Date = " type bdate2human type - THEN - cr cr -; - -800 cp - -#include "nvram.fs" -takeover? not u4? and IF - \ if were are not in takeover mode the nvram should look - \ something like this: - \ type size name - \ ======================== - \ 51 20000 ibm,CPU0log - \ 51 5000 ibm,CPU1log - \ 70 1000 common - \ 7f da000 <free-space> - \ the partition with the type 51 should have been added - \ by LLFW... if it does not exist then something went - \ wrong and we just destroy the whole thing - 51 get-nvram-partition IF 0 0 nvram-c! ELSE 2drop THEN -THEN - -880 cp - -\ dmesg/dmesg2 not available if running in takeover/ram mode or on js20 -: dmesg ( -- ) u3? takeover? or 0= IF dmesg THEN ; -: dmesg2 ( -- ) u3? takeover? or 0= IF dmesg2 THEN ; - -#include "envvar.fs" -check-for-nvramrc - -8a0 cp -\ The client interface. -#include "client.fs" -\ ELF binary file format. -#include "elf.fs" -#include <loaders.fs> - -8a8 cp - -\ check wether a VGA device was found during pci scan, if it was -\ try to initialize it and create the needed device-nodes -0 value biosemu-vmem -100000 value biosemu-vmem-size -0 value screen-info - -: init-vga-devices ( -- ) - vga-device-node? 0= use-biosemu? 0= OR IF - EXIT - THEN - s" VGA Device found: " type vga-device-node? node>path type s" initializing..." type cr - \ claim virtual memory for biosemu of 1MB - biosemu-vmem-size 4 claim to biosemu-vmem - \ claim memory for screen-info struct (140 bytes) - d# 140 4 claim to screen-info - \ remember current-node (it might be node 0 so we cannot use get-node) - current-node @ - \ change into vga device node - vga-device-node? set-node - \ run biosemu to initialize the vga card - \ s" Time before biosemu:" type .date cr - vga-device-node? node>path ( pathstr len ) - s" biosemu " biosemu-vmem $cathex ( pathstr len paramstr len ) - 20 char-cat \ add a space ( pathstr len paramstr len ) - biosemu-vmem-size $cathex \ add VMEM Size ( pathstr len paramstr len ) - 20 char-cat \ add a space ( pathstr len paramstr len ) - 2swap $cat ( paramstr+path len ) - biosemu-debug 0<> IF - 20 char-cat biosemu-debug $cathex \ add biosemu-debug as param - ( paramstr+path+biosemu-debug len ) - THEN - .(client-exec) IF - ." biosemu client exec failed!" cr - set-node \ restore old current-node - EXIT - THEN - \ s" Time after biosemu:" type .date cr - s" VGA initialization: detecting displays..." type cr - \ try to get info for two monitors - 2 0 DO - \ setup screen-info struct as input to get_vbe_info - s" DDC" 0 char-cat screen-info swap move \ null-terminated "DDC" as signature - d# 140 screen-info 4 + w! \ reserved size in bytes (see claim above) - i screen-info 6 + c! \ monitor number - \ 320 screen-info 7 + w! \ max. screen width (800) - 500 screen-info 7 + w! \ max. screen width (1280) - \ following line would be the right thing to do, however environment seems not setup yet... - \ screen-#columns char-width * 500 min 280 max screen-info 7 + w! \ max. screen width, calculated from environment variable screen-#columns, but max. 1280, min. 640... - 8 screen-info 9 + c! \ requested color depth (8bpp) - \ d# 16 screen-info 9 + c! \ requested color depth (16bpp) - \ execute get_vbe_info from load-base - \ s" Time before client exec:" type .date cr - \ since node>path overwrites strings created with s" - \ we need to call it before assembling the parameter string - vga-device-node? node>path ( pathstr len ) - s" get_vbe_info " biosemu-vmem $cathex ( pathstr len paramstr len ) - 20 char-cat \ add a space ( pathstr len paramstr len ) - biosemu-vmem-size $cathex \ add VMEM Size ( pathstr len paramstr len ) - 20 char-cat \ add a space ( pathstr len paramstr len ) - 2swap $cat ( paramstr+path len ) - 20 char-cat - screen-info $cathex - .(client-exec) 0= - \ s" Time after client exec:" type .date cr - screen-info c@ 0<> AND IF - s" display " type i . s" found..." type - \ screen found - \ create device entry - get-node node>name \ get current nodes name (e.g. "vga") ( str len ) - i \ put display-num on the stack ( str len displaynum ) - new-device \ create new device - s" vga-display.fs" included - finish-device - s" created." type cr - THEN - LOOP - \ return to where we were before changing to vga device node - set-node - \ release the claimed memory - screen-info d# 140 release - biosemu-vmem biosemu-vmem-size release - - s" VGA initialization done." type cr -; - -init-vga-devices - -: enable-framebuffer-output ( -- ) -\ enable output on framebuffer - s" screen" find-alias ?dup IF - \ we need to open/close the screen device once - \ before "ticking" display-emit to emit - open-dev close-node - s" display-emit" $find IF - to emit - ELSE - 2drop - THEN - THEN -; - -enable-framebuffer-output - -8b0 cp - -\ do not let the usb scan overwrite the atapi cdrom alias -\ pci-cdrom-num TO cdrom-alias-num -usb-scan - -: create-aliases ( -- ) - s" net" s" net1" find-alias ?dup IF set-alias ELSE 2drop THEN - s" disk" s" disk0" find-alias ?dup IF set-alias ELSE 2drop THEN - s" cdrom" s" cdrom0" find-alias ?dup IF set-alias ELSE 2drop THEN -; - -create-aliases - -8ff cp - -.system-information - -: directserial -u3? IF - s" /ht/isa/serial@3f8" io -ELSE - s" direct-serial?" evaluate IF s" /ht/isa/serial@2f8" io ELSE s" /ht/isa/serial@3f8" io THEN -THEN -; - -directserial - -\ on bimini we want to automatically enable screen and keyboard, if they are detected... -bimini? IF - key? IF - cr ." input available on current console input device, not switching input / output." cr - ELSE - \ this enables the framebuffer as primary output device - s" screen" find-alias IF drop - s" screen" output - \ at this point serial output is theoretically disabled - ." screen detected and set as default output device" cr - THEN - \ enable USB keyboard - s" keyboard" find-alias IF drop - s" keyboard" input - \ at this point serial input is disabled - ." keyboard detected and set as default input device" cr cr cr - s" Press 's' to enter Open Firmware." type cr - 500 ms - THEN - THEN -THEN - -: .flashside - cr ." The currently active flashside is: " - rtas-get-flashside 0= IF ." 0 (permanent)" ELSE - ." 1 (temporary)" THEN -; - -bmc? IF disable-watchdog THEN - -: flashsave ( "{filename}" -- rc ) - (parse-line) dup 0> IF - s" netsave " \ command - get-flash-base $cathex \ Flash base addr - s" 400000 " $cat \ Flash size (4MB) - 2swap $cat \ add parameters from (parse-line) - evaluate - ELSE - cr - ." Usage: flashsave [bootp|dhcp,]filename[,siaddr][,ciaddr][,giaddr][,bootp-retries][,tftp-retries][,use_ci]" - cr 2drop - THEN -; - -#include <vpd-bootlist.fs> - -\ for the blades we read the bootlist from the VPD -bimini? takeover? or 0= IF ['] vpd-boot-import to read-bootlist THEN - -\ for the bimini, we try to boot from disk, if it exists, -\ only if "boot-device" is not set in the nvram -: bimini-bootlist - \ check nvram - s" boot-device" evaluate swap drop ( boot-device-strlen ) - 0= IF - \ no boot-device set in NVRAM, check if disk is available and set it... - \ clear boot-device list - 0 0 set-boot-device - s" disk" find-alias ?dup IF - \ alias found, use it as default - add-boot-device - THEN - THEN -; - -bimini? IF ['] bimini-bootlist to read-bootlist THEN - -#include <start-up.fs> - -#include <boot.fs> - -cr .( Welcome to Open Firmware) -cr -#include "copyright-oss.fs" -cr - -\ this CATCH is to ensure the code bellow always executes: boot may ABORT! -' start-it CATCH drop - -#include <history.fs> -nvram-history? [IF] -." loading shell history .. " -history-load -." done" cr -[THEN] - |