-
-
Notifications
You must be signed in to change notification settings - Fork 178
[STALE] add SCSI Protocol support #1155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
...and `ExtScsiIoScsiRequestPacket`. refer to UEFI 2.10 spec docs.
...w `execute_scsi_command` send req packet is ok. **PASSED**: - SCSI_IO all api, SCSI_THRU `mode()` and `reset()` api, are test passed. **PROBLEM**: 1. panic at allocator.rs while test_scsi_io return; 2. still problem with `DevicePath`,`target_id`,`pass_thru`; **UNKNOWN**: - scsi req ok but resp without test at `execute_scsi_command()`.
SCSI_IO
The main part of SCSI_IO is finished. though something need some optimization.
- data_buf maybe need in and out at the sametime.?
- resp no test still.
Running at VMWare with two SCSI sample TestUnitReady
and InquiryCommand
:
image
EXT_SCSI_THRU
only test mode() and reset() passed.
some trouble.
- DevicePath/DevicePathProtocol
- Target ids
- the packet sample about scsi thru. I couldn't find it clearly.
- Now
UEFI SCSI I/O protocol
is ready. - And
UEFI Scsi Thru I/O protocol
Will not be published in this PR. I would continue to code it at branch sky5454:dev-scsi
after you review the code and resolve the panic, you could merge it.
# Conflicts: # uefi-test-runner/examples/scsi.rs
Before I review fully, it would help to do some cleanup:
- Fix CI errors (run formatting, fix lints, etc)
- Remove all unused code
- Resolve TODOs if possible
This will make review easier :)
sry, has no time to cleanup it for my tired life, just review/reedit and merge it plz.
The split-out from #1517 took care of the uefi-raw part. Someone needs to rebase it and do the remaining work for uefi (high-level wrapper)
Uh oh!
There was an error while loading. Please reload this page.
Steps to Undraft
Checklist
Only preliminary support.
some problem I faced:
Reader/Writer trait
ScsiIoScsiRequestPacket
/ExtScsiIoScsiRequestPacket
to be conveniently used in RustDevice Path Protocol
TARGET_MAX_BYTES
unused, for: The Target is an array of size TARGET_MAX_BYTES and it represents the id of the SCSI device to send the SCSI Request Packet.After read "SPC" which docs from T10 (SCSI Standard Groups), I Know that in_data_buffer,out_data_buffer,sense_data,cdb have variable length. so I decide to make a struct like
but data couldn't share between FFI and c. That's a problem. We should share those data by ptr.
according to uefi scsi usage from edk2:
write:
read: