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-qemu/slof/virtio-scsi.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-qemu/slof/virtio-scsi.fs')
-rw-r--r-- | qemu/roms/SLOF/board-qemu/slof/virtio-scsi.fs | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/qemu/roms/SLOF/board-qemu/slof/virtio-scsi.fs b/qemu/roms/SLOF/board-qemu/slof/virtio-scsi.fs deleted file mode 100644 index 4fedeeeb1..000000000 --- a/qemu/roms/SLOF/board-qemu/slof/virtio-scsi.fs +++ /dev/null @@ -1,231 +0,0 @@ -\ ***************************************************************************** -\ * Copyright (c) 2012 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 -\ ****************************************************************************/ - -." Populating " pwd cr - -FALSE CONSTANT virtio-scsi-debug - -2 encode-int s" #address-cells" property -0 encode-int s" #size-cells" property - -: decode-unit 2 hex64-decode-unit ; -: encode-unit 2 hex64-encode-unit ; - -FALSE VALUE initialized? - -virtio-setup-vd VALUE virtiodev - -STRUCT \ virtio-scsi-config - /l FIELD vs-cfg>num-queues - /l FIELD vs-cfg>seg-max - /l FIELD vs-cfg>max-sectors - /l FIELD vs-cfg>cmd-per-lun - /l FIELD vs-cfg>event-info-size - /l FIELD vs-cfg>sense_size - /l FIELD vs-cfg>cdb-size - /w FIELD vs-cfg>max-channel - /w FIELD vs-cfg>max-target - /l FIELD vs-cfg>max-lun -CONSTANT vs-cfg-length - -STRUCT \ virtio-scsi-req - 8 FIELD vs-req>lun - 8 FIELD vs-req>tag - /c FIELD vs-req>task-attr - /c FIELD vs-req>prio - /c FIELD vs-req>crn - 20 FIELD vs-req>cdb -CONSTANT vs-req-length - -STRUCT \ virtio-scsi-resp - /l FIELD vs-rsp>sense-len - /l FIELD vs-rsp>residual - /w FIELD vs-rsp>status-qualifier - /c FIELD vs-rsp>status - /c FIELD vs-rsp>response - 60 FIELD vs-rsp>sense -CONSTANT vs-rsp-length - -CREATE vs-req vs-req-length allot -CREATE vs-rsp vs-rsp-length allot - -scsi-open - -\ ----------------------------------------------------------- -\ Perform SCSI commands -\ ----------------------------------------------------------- - -0 INSTANCE VALUE current-target - -\ SCSI command. We do *NOT* implement the "standard" execute-command -\ because that doesn't have a way to return the sense buffer back, and -\ we do have auto-sense with some hosts. Instead we implement a made-up -\ do-scsi-command. -\ -\ Note: stat is -1 for "hw error" (ie, error queuing the command or -\ getting the response). -\ -\ A sense buffer is returned whenever the status is non-0 however -\ if sense-len is 0 then no sense data is actually present -\ - -: execute-scsi-command ( buf-addr buf-len dir cmd-addr cmd-len -- ... ) - ( ... [ sense-buf sense-len ] stat ) - \ Cleanup virtio request and response - vs-req vs-req-length erase - vs-rsp vs-rsp-length erase - - \ Populate the request - current-target vs-req vs-req>lun x! - vs-req vs-req>cdb swap move - - \ Send it - vs-req vs-rsp virtiodev - virtio-scsi-send - - 0 <> IF - ." VIRTIO-SCSI: Queuing failure !" cr - 0 0 -1 EXIT - THEN - - \ Check virtio response - vs-rsp vs-rsp>response c@ CASE - 0 OF ENDOF \ Good - 5 OF drop 0 0 8 EXIT ENDOF \ Busy - dup OF 0 0 -1 EXIT ENDOF \ Anything else -> HW error - ENDCASE - - \ Other error status - vs-rsp vs-rsp>status c@ dup 0<> IF - vs-rsp vs-rsp>sense-len l@ dup 0= IF - \ This relies on auto-sense from qemu... if that isn't always the - \ case we should request sense here - ." VIRTIO-SCSI: No sense data" cr - 0 EXIT - THEN - vs-rsp vs-rsp>sense swap - virtio-scsi-debug IF - over scsi-get-sense-data - ." VIRTIO-SCSI: Sense key [ " dup . ." ] " .sense-text - ." ASC,ASCQ: " . . cr - THEN - rot - THEN -; - -\ -------------------------------- -\ Include the generic host helpers -\ -------------------------------- - -" scsi-host-helpers.fs" included - -\ FIXME: Check max transfer coming from virtio config -: max-transfer ( -- n ) - 10000 \ Larger value seem to have problems with some CDROMs -; - -\ ----------------------------------------------------------- -\ SCSI scan at boot and child device support -\ ----------------------------------------------------------- - -\ We use SRP luns of the form 01000000 | (target << 16) | lun -\ in the top 32 bits of the 64-bit LUN -: (set-target) - to current-target -; - -: dev-generate-srplun ( target lun-id -- srplun ) - swap 0100 or 10 << or 20 << -; - -\ We obtain here a unit address on the stack, since our #address-cells -\ is 2, the 64-bit srplun is split in two cells that we need to join -\ -\ Note: This diverges a bit from the original OF scsi spec as the two -\ cells are the 2 words of a 64-bit SRP LUN -: set-address ( srplun.lo srplun.hi -- ) - lxjoin (set-target) -; - -100 CONSTANT #target -: dev-max-target ( -- #target ) - #target -; - -" scsi-probe-helpers.fs" included - -scsi-close \ no further scsi words required - -0 VALUE queue-control-addr -0 VALUE queue-event-addr -0 VALUE queue-cmd-addr - -: setup-virt-queues - \ add 3 queues 0-controlq, 1-eventq, 2-cmdq - \ fixme: do we need to find more than the above 3 queues if exists - virtiodev 0 virtio-get-qsize virtio-vring-size - alloc-mem to queue-control-addr - virtiodev 0 queue-control-addr virtio-set-qaddr - - virtiodev 1 virtio-get-qsize virtio-vring-size - alloc-mem to queue-event-addr - virtiodev 1 queue-event-addr virtio-set-qaddr - - virtiodev 2 virtio-get-qsize virtio-vring-size - alloc-mem to queue-cmd-addr - virtiodev 2 queue-cmd-addr virtio-set-qaddr -; - -\ Set scsi alias if none is set yet -: setup-alias - s" scsi" find-alias 0= IF - s" scsi" get-node node>path set-alias - ELSE - drop - THEN -; - -: shutdown ( -- ) - initialized? IF - my-phandle node>path open-dev ?dup IF - virtiodev virtio-scsi-shutdown - close-dev - THEN - FALSE to initialized? - THEN -; - -: virtio-scsi-init-and-scan ( -- ) - \ Create instance for scanning: - 0 0 get-node open-node ?dup 0= IF ." exiting " cr EXIT THEN - my-self >r - dup to my-self - \ Scan the VSCSI bus: - virtiodev virtio-scsi-init - 0= IF - setup-virt-queues - scsi-find-disks - setup-alias - TRUE to initialized? - ['] shutdown add-quiesce-xt - THEN - \ Close the temporary instance: - close-node - r> to my-self -; - -: virtio-scsi-add-disk - " scsi-disk.fs" included -; - -virtio-scsi-add-disk -virtio-scsi-init-and-scan |