Poulsbo USB Client Background:
  - The Poulsbo USB Client utilities, provided by Intel, are reference
    implementations which are released as open source code.
  - This reference implementation is not intended to cover all possible
    use cases.
  - ODMs and OSVs are expected to customize the reference implementation
    to meet their specific needs.

The use cases presented in this note, describe the behavior of the
USB-Client reference implementation and discuss the design points which
ODMs and OSVs can take advantage of to customize their implementations.

Overview of Poulsbo USB Client modules, and their basic operation:

1) Linux Poulsbo USBC controller driver

2) Patches to Mass Storage gadget driver and RNDIS gadget driver.

3) Linux client utility. Basic behavior of Linux client utility is:
    - First loads Mass Storage Gadget Driver. Backing store designated
by
      mass storage driver module load parameter.
    - Unload Mass Storage Driver and load RNIDS when "hacked SCSI
command"
      received from Host utility.
    - Start DHCP server. Get IP address through DHCP for MID client.
(Plan to
      change this to ARP in the future to support multiple MID clients.)
    - Provide options for user to select shared folder and change access
rights.
      Save user selections in self-defined configure file.
    - Start Samba server with a new Samba configure file. Include
"self-defined"
      config file in Samba config file, so user selected folder is
shared.

4) Linux host utility: Basic behavior:
    - Detect client side is in mass storage device mode. Send "hacked
SCSI command"
      to client.
    - Get IP address for host through DHCP (later ARP).
    - Get shared folders through Samba.
    - Pop up File Browser to show client side shared folders.

Windows host Utilities developed to work with USB Client:

5) Windows host installer.  Expected to be in client shared backing
file.
    - After USB client is plugged into host, host system auto-runs host
installer.
    - Host installer copies host wizard to host system if host wizard is
not 
      already installed.
    - Host installer starts host wizard.

6) Windows host wizard
    - Send the "hacked SCSI command" to client.
    - Get IP address from host through DHCP (later ARP).
    - Get shared folders through Samba (NetBios).
    - Pop up File Browser to show client side shared folders.


Use Case Scenarios:

Scenario #1: MID device connected to Windows System which does not have
             USB Host Wizard/Utility installed:
 - MID connects to Host in Mass Storage mode, and exposes one VFAT
partition.
 - The VFAT partition has USB Client utilities and MID shared files.
 - A folder opens on Host PC showing the VFAT partition.
 - User may move files between to machines using Host's file manager.
 - Or, depending on Host configuration, the Host may execute the Windows
   autorun file on the MID VFAT partition, and autoinstall the USB Host
   Wizard/Utility.

  Scenario #1 Notes:
    - The VFAT partition may be either a device or an image file. See
      USB Client README for link to instructions on creation of image
file.
    - VFAT partition is designated when loading the mass storage gadget
      driver as a module parameter.
      For example: modprobe g_file_storage file=/dev/had

 Scenario #2: Host is a MID running Linux
  Assumptions:
     - Host side config utility will not support auto-run/auto-play
capabilities
     - Host side utility is preinstalled on Host MID

  - On client-side MID, user selects a single folder to be shared over
USB Client
    link.
  - Client-side MID is connected to another MID via USB client cable.
  - Client-side MID starts and loads Mass Storage gadget driver.
  - Host-side sends "hacked SCSI command" to client.
  - Client-side unloads Mass Storage gadget driver and starts RNDIS
gadget driver.
  - Host-side MID connects to RNDIS device
  - Host-side MID and Client-side MID establish RNDIS TCP/IP link.
  - Host-side config utility, mounts shared folder from client MID.
  - Host-side opens window to shared folder.


Scenario #3: MID device connected to Linux System which does not have
             USB Host Wizard/Utility installed:
  - Linux Host side utility must be manually installed on the host.
  - Then it should look like scenario #2.

  Scenario #3 Note:
    - If the Linux host is setup to support auto-install from the MID
mass
      storage device, then the Scenario #1 behavior on Windows can be
duplicated.

Customization Options:
  - Folders exported by RNDIS connection:
      * A text config file on the client MID determines which folders
are exported.
      * This config file could be preset to share specific folders by
OSV/ODM.
      * Since this config file is added to the Samba config file, once
RNDIS
        is started, changing the folders being exposed would require
interaction
        with Samba.
      * Applications could update the USB Client config file, but if the
USB
        client RNDIS connection is already active, they would also have
to
        update Samba.

  - Client utility behavior
      * Client side utility controls automatic setup of RNDIS
connection, selection
        of folders to be exported, and exporting the folders over RNDIS.
      * For a locked down device, such as iPod Touch, where the user
does not
        see the filesystem, the client side utility breaks this model.
      * Hence the Client side utility, must be modified, so it does not
        present a user interface.

  - Host side behaviors
      * Host side behaviors are subject to the Host side configuration,
which
        is beyond the control of the USB Client utilities.  For example:
        autorun may be disabled on the host, then autoinstall of the
        USB Client Host Utility cannot happen.
      * OSV/ODMs need to document their Host system configuration
expectations,
        and communicate these expectations to their MID customers.


Don Johnson
Ultra-Mobility Group
Intel Corporation
Office: 503-712-9898
[EMAIL PROTECTED]

-- 
Ubuntu-mobile mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-mobile

Reply via email to