Showing posts with label usb. Show all posts
Showing posts with label usb. Show all posts

6/22/2012

HSUSB related NV items in qualcomm chipset

NV Items defined by HS-USB

High Speed USB Current Composition

a.. Number: 04526
b.. Area: System
c.. Description: USB Composition value
HS USB Remote Wakeup Delay

a.. Number: 04918
b.. Area: System
c.. Description:
a.. Indicates the number of milliseconds to wait before performing explicit remote wakeup when in suspend mode. When set to 0, the device doesn't perform explicit remote wakeup.
b.. Default (inactive) is 0.
c.. Set to 3000 before running USBCV.
HS USB Use PMIC OTG comparators

a.. Number: 06235
b.. Area: System
c.. Description:
a.. Indicates whether to use PMIC comparators in LCU.
b.. Default (inactive) is FALSE.
HS USB Number of SDCC LUNS

a.. Number: 06239
b.. Area: System
c.. Description:
a.. Indicates the number of SDCC/MMC LUNs that are enabled. The actual number of MS LUNS will be the maximum of this value and the actual number of SDCC controllers defined by the target.
b.. Default (inactive) is 1.
Host Mode Enabled

a.. Number: 06259
b.. Area: System
c.. Description:
a.. 0x01 means host mode is enabled. 0x00 means host mode is disabled.
b.. Default (inactive) is 0x00.
HS USB Use Diag on Legacy Port

a.. Number: 05044
b.. Area: System
c.. Description:
a.. Indicates whether DIAG should run over HS-USB or (if available) FS-USB (legacy). If full-speed device support is disabled in the target, this NV item is not being used.
b.. Default (inactive) is FALSE.
HS-USB disable sleep voting

a.. Number: 06327
b.. Area: System
c.. Description
a.. Indicates whether to disable voting for sleep when entering LPM after the USB bus is suspended.
b.. This NV item does not affect sleep voting when the USB port is disconnected. Sleep voting is always enabled in this case.
a.. 1 - Disable sleep voting during USB bus suspend state.
b.. 0 - Sleep voting is enabled during USB bus suspend state (default).
Set HS USB performance

a.. Name: NV_HS_USB_PERFORMANCE_SETTING_I
b.. Number: 6841
c.. Area: System
d.. Description:
a.. Determine HS USB performance
a.. LOW = 0 - minimum speed : CPU MIPS will be voted with 0 for NPA. This is only for a testing purpose because it does not guarantee the 4 MHz minimum PCLK requirement for HS USB link HW.
b.. MID = 1 - medium speed
c.. HIGH = 2 - maximum speed
Disable LPM

a.. Number: 6843
b.. Area: System
c.. Description:
a.. Indicates whether phone will enter LPM (low power mode)or not
a.. 0 - LPM is enabled
b.. 1 - LPM is disabled.
a.. By default LPM is enabled.
b.. Note - Disabling LPM also disables HS-USB sleep voting.
PHY Configuration

a.. Number: 06872
b.. Area: System
c.. Description:
a.. change the PHY configuration parameters
a.. pre_emphasis_enable - enable/disable pre-emphasis configure.
b.. pre_emphasis_value - the value for pre-emphasis.
c.. amplitude_adjustment_enable - enable/disable amplitude adjustment.
d.. amplitude_adjustment_value - the value for amplitude adjustment.


External NV Items useful to HS-USB

USB Charging NV Disable Value

a.. Number: 02822
b.. Area: Factory
c.. Description:
a.. Indicates to PMIC charging software whether to use USB charging. When set to 0, USB charging is enabled. When set to 1, USB charging is disabled.
b.. Default (inactive) is handled as charging disabled.
RMNet Autoconnect

a.. Number: 03534
b.. Area: Data
c.. Description:
a.. Indicates whether RMNet will automatically start the data call after the USB ECM connection is established.
a.. FALSE - Don't use RMNet autoconnect.
b.. TRUE - Use RMNet autoconnect.
a.. Default (inactive) is FALSE.
UIM First Instruction Class

a.. Number: 00896
b.. Area: GSM
c.. Description:
a.. Indicates whether to use UICC:
a.. 0-1 Don't use UICC
b.. 2 Use UICC without ISO Reset line high workaround
c.. 3 Use UICC with ISO Reset line high workaround
a.. Default (inactive) is 2.
Application Power Disable

a.. Number: 04201
b.. Area: Debug
c.. Description:
a.. Indicates whether to disable power on application processor (apps power collapse). Prerequisite to TCXO shutdown.
a.. FALSE - Use apps power collapse.
b.. TRUE - Don't use apps power collapse.
DCVS Application NV

a.. Number: 04393
b.. Area: System
c.. Description:
a.. Indicates whether to disable CPU clock control.
a.. type = 0 - Disable DCVS.
b.. type = 1 - Enable DCVS.
Enable reset logging

a.. Number: 04399
b.. Area: Debug
c.. Description:
a.. Indicates whether Phone will go to download mode after reset
a.. type = 0 - Disable the move to sw dload..
b.. type = 1 - Enable the move to sw dload.

In CATC USB analyser log file, USB reset signal is not shown during HS mode

Issue: When using Lecroy's CATC USB log analyzer, Reset signal is not shown correctly during HS mode operation.



Cause: HS mode idle signal electric characteristic is same as SE0.

If the device is being reset from a non-suspended high-speed state, then the device must wait no less than 3.0 ms and no more than 3.125 ms (TWTREV) before reverting to full-speed.

Reversion to fullspeed is accomplished by removing the high-speed termination and reconnecting the D+ pull-up
resistor.

The device samples the bus state, and checks for SE0 (reset as opposed to suspend), no less than 100 μs and no more than 875 μs (TWTRSTHS) after starting reversion to full-speed.

If SE0 (reset) is detected, then the device begins a high-speed detection handshake



Solution: Instead of reset packet, Chirp signal can be used for detecting reset signal. Because chirp signal always happen when HSUSB capable device get reset signal. So we can assume that reset signal happens when chirp packet is shown in CATC usb log file.

Kernel Panic when enabling USB Tethering on msm7x27

In Froyo Almond builds Kernel Panic was observed when we enable USB Tethering.

Call stack of the crash looks like this :-

PC: strlen+0xc0/0x20
LR: rndis_msg_parser+0x614/0x10c8
Strlen+0xc/0x20
Rndis_msg_parser+0x640/0x10c8
Rndis_command_complete+0x20
Ep0_queue_ack_complete+0x68
Usb_interrupt+0x7f8/0x914
Handle_IRQ_event+0x34/0xf4
Handle_level_iqr+0xd4/0x178
Asm_do_IRQ+0x68/0x84

After collecting Le-Croy log it was found that when RNDIS Host driver sends REMOTE_NDIS_QUERY_MSG for OID_GEN_VENDOR_DESCRIPTION_MSG kernel panic is observed.

Analysis:

Basically crash happens when rndis_msg_parser() gets called for REMOTE_NDIS_QUERY_MSG which further calls rndis_query_response() ->gen_ndis_query_resp(case: OID_GEN_VENDOR_DESCRIPTION)-> which calls strlen (rndis_per_dev_params [configNr].vendorDescr); and we see crash after that.It is found that rndis_set_param_vendor() is setting the value for vendorDescr and vendorId.rndis_set_param_vendor() needs to be called from rndis_bind()[f_rndis.c].

If you see this function being commented out in rndis_bind() like this :-

#if 0
// FIXME
if (rndis_set_param_vendor(rndis->config, vendorID,
manufacturer))
goto fail0;

Q&A about Qualcomm's Windows host driver

Question about Qualcomm usb host driver:


Where can I get the host driver source code

Is there document for Qualcomm's usb Windows host driver

How shall I build the host driver source code?

How can I debug the usb host driver?

Can we use third party's Modem driver?

Does Qualcomm provide usb driver for MAC machine?

Does Qualcomm provide usb driver for Linux machine?

Does Qualcomm's usb driver support Windows2000?

Does Qualcomm's usb driver support Windows Vista?

Does Qualcomm's usb driver support 64bit machine?

How can I get host driver logs?

Do we need another driver for USB2.0 high speed?




Answer


Download

The Qualcomm's usb host driver source code can be downloaded from:

http://support.cdmatech.com/

The path is:

Documents and downloads\library\software tools\sw\USB host driver\release\

There are three packages with different version.

For example:

USB_WIN2KXP2053: Modem/virtual serial port driver

USBWWAN_WINXP1029: NDIS driver

QMICM1400: QMI client for NDIS driver

The number means the version number, please always get the latest version.

All these are source code, provide as reference code, not commercial code.




Document

For modem driver, please see document 80-V4609-1 and 80-VA444-1

For NDIS driver, please see document 80-VB717-1

Please always try to get the latest version for these documents.

Platform support

Qualcomm's usb host driver only support Windows.

Modem driver support Windows2000, XP, Vista, WindowsServer2003, include 64bit version OS.

NDIS driver does not support Windows2000, other is same as modem driver.

For MAC support, OEM need to do themselves, there are some sample code available on the internet.

For Linux support, OEM need to do themselves, the Linux's own ACM driver can work with Qualcomm's modem interface, but may need some extra work.

Build

To build the host driver, you need to install Windows DDK, for vista, you need WDK.

http://www.microsoft.com/whdc/driver/foundation/WhichDDK.mspx

There are script file in the source packet for build.

Please also check the readme in source package.

blddrv.bat is build scripts.

qcpl.bat is the scripts called by blddrv.bat, please check whether the path for DDK in this file match where your DDK installed at.


Debug

To debug the host driver, you shall learn about windows driver development.

windbg is Microsoft's debug tool, it needs two machine for debugging.

debugview.exe is a tool that can get print message from drivers, you can add print message in the driver. You need to build a check version driver to get print message, also need to set Windows register value to enable different level of message.

Please 80-v4609-1 for more.

Version

The host driver source code will keep update with bug fix, enhancement and new feature. Generally, it will keep compatible with previous amss release.

For USB2.0 high speed support, the driver is same, but has a minimal version requirement.

Always try to use the latest driver or as new as possible.

How to make usb host driver work in Vista64

OEM may find load the usb host driver in Vista64 failed, this is because for Vista 64, driver signature is mandatory.

In development phase, we can use a test signature and load driver in vista test mode.

To run Vista in test mode:

1}. Start--->All Programs--->Accessories--->Right Hit "Command Prompt"--->Run as administrator

2). Input this command "Bcdedit �set testsigning ON"

3)Restart Vista, then vista run in test mode


To make a test signature for the driver

1. open certmgr.exe, and remove all the cert for USBHostDriver in root and trustedpublisher you already installed.
2. makecert -r -pe -ss trustedpublisher -n CN=USBHostDriver(Test002) qcusbtest.cer
you get a qcusbtest.cer
3.Certmgr.exe -add qcusbtest.cer -s -r localMachine root
4.Certmgr.exe -add qcusbtest.cer -s -r localMachine trustedpublisher
5. makecat qcusbnet.cdf to get qcusbcer.cat
6.SignTool sign /v /s trustedpublisher /n USBHostDriver(Test002) /t http://timestamp.verisign.com/scripts/timstamp.dll qcusbnet.cat
Now you get a signed cat file, you can verify it with signtool.
7. entry Vista test mode, reboot and install the driver.


For more details, please refer to Windows WDK document

How to make the device able to sleep when usb cable is connected with PC

Only if usb in suspend status, device can sleep with usb cable connected

In sleep task, it will check votes from usb, if usb does not allow to turn off TXCO, the device can not go to deep sleep.
When the usb cable connect to PC, usb task will not vote for deep sleep unless the usb core go to suspend status.

There are some scenarios that the usb core can get suspend event:
1. The host remove the usb device in device manager.
2. The host disable the driver of the usb device
3. The host go to standby mode
4. The host enable selective suspension and there is no activity on usb bus after the set timeout value.

In AMSS, the usb code can get a interrupt for suspend if the scenario happen.
please see 80-v4609-1 about enable selective suspension in Windows.

How to Know real speed the usb stack work in

In the structure of fd_desc_t, there is a member :current_speed
When usb enumeration process has finished and host send set configure message, the related function driver will be enabled, and this attribute will include the real speed that is used between the device and host.

The host negotiate with device for the speed, both host and device support high speed, then the device will work in high speed mode, other wise, in full speed mode, each fd will be same on the same hub port.

For your own function driver based on mtp example, you can get it in fd_desc_t structure directly.

For obex, you shall be able to get by cdc_ctx_t.desc.current_speed when hsu_al_ser_obex_enabled is called. but as cdc_ctx_t will not be passed to hsu_al_ser_obex_enabled, you need to do some trick. When obex_init is called, the first paramter cdc_handle_t handle is just the cdc_ctx_t point, so need to store it at some place like it in *ctx. see get_avail_obex_data_slot_for_fd(), you can add a new member in hsu_al_ser_obex_data structure to store the point to cdc_ctx_t structure. you can also just simply store it to a global variable.

How to install device driver for USB2.0 Debug Connection Device for WIN8 debugging

Question: How to install device driver for USB2.0 Debug Connection Device for WIN8 debugging.
Detail:USB2.0 Debug Connection Device is enumerated by windows on Snapdragon, windbg tool use the interface to do kernel debugging. We need to Download and Install "Debugging Tools for Windows" package host computer.


Answer:
Refer to below link for Debugging Tools package.

http://msdn.microsoft.com/en-us/windows/hardware/gg463009.



On the host computer, the USB debug driver might get installed automatically, or we might have to install it manually. To install the driver manually, perform the following steps:

1.. In Device Manager, locate the node that represents your USB 2.0 debug connection device.
2.. In the property pages for that node, choose to update or install the driver.
3.. As you go through the driver installation wizard, navigate to the usb2dbg.inf file in the Debugging Tools for Windows package(in "\Debugging Tools for Windows \usb" directory).
4.. Complete the driver installation wizard.

How OEM can set own PID for dload mode in qualcomm msm7x27/7x30?

Many OEM wants to use their own download tool rather than QPST, and does not want to show Qualcomm PID to Host PC in download mode.



In AMSS mode, the way to change PID, VID is in solution # 5814(How to change vid, pid and some string in descriptor)

Here is the simple way to set OEM PID in dload mode.



So, what OEM can do is calling hsu_al_dload_init_ex() function with setting boolean variable, use_amss_product_id as false, which means using different product ID compared to the one in AMSS code. This hsu_al_dload_init_ex() function calls hsu_al_dload_armprog_start_stack_ex(), and checking the boolean variable, and assign PID to HSU_PRODUCT_ID_NON_AMSS which is defined in hsu_conf_sel_comp_utils.h file


Here is the code change that you can do.

1. Modify hsu_al_dload.c file like this:
From:
void hsu_al_dload_init(void)
{
hsu_al_dload_init_ex(TRUE);
}
To:
void hsu_al_dload_init(void)
{
hsu_al_dload_init_ex(FALSE);
}

2. Modify hsu_conf_sel_comp_utils.h file:
From:
/*
* A product ID used for download into RAM in the U2 target.
* This is intended to ensure that the device gets a different
* port number when performing download into RAM than when running
* AMSS.
* This product ID always uses the single interface configuration.
*/
#define HSU_PRODUCT_ID_NON_AMSS 0x9008

To
#define HSU_PRODUCT_ID_NON_AMSS 0x1234 //Customer defined PID.

How the usb function device exist in android/LE build

Question:
How the usb function device exist in android/LE build, how can I find them?

Answer:
There are different device node exist for different usb function.

The usb function code and qualcomm controller driver is at linux kernel driver/usb/function
1. modem /dev/ttyHSUSB0
2. nmea /dev/ttyHSUSB1
3. diag usb diag does not create device node
the character device ddrivers/char/diag/ will create a diag device and sysfs entry sys/devices/virtual/diag/diag
4. adb
two MISC device will be crated
/dev/android_adb
/dev/android_adb_enable
5.mass_storage
Does not need a device node, it has a sysfs entry at /sys/devices/platform/usb_mass_storage

How to add another usb COM port in android/LE build?

Question:
How to add another usb COM port in android/LE build? I need another port for AT command

Answer:
You can modify serial.c in drivers/usb/function to add another tty instance and also modify board-xxx.c to add a usb function.

Detail:
change in serial.c
1. Change "instances=2", to "instance=MAX_INSTANCES", and change MAX_INSTANCES to 3
2. Add a new member in char *a[] = {"modem", "nmea"}
3. Change usb_function_serial[2] to usb_function_serial[MAX_INSTANCES]

change in board-xxxx.c(i.e. board-halibut.c for 7200a, board-7x27.c for 7x27),
1. add a new function map in usb_functions_map[]
2. add a new product_id for your new composition in usb_func_composition[] and set the bit for your new serial port.

Then you can see a new /dev/ttyHSUSB2.
you can use port_bridge to bridge this port to a spare smd port. see solution 00012899 about smd channel

How to capture LeCroy CATC USB log?

USB CATC log is essential to analyze bus activity.



Here is how you can capture USB packets by LeCroy USB tracer.

(I assume you have LeCroy Product: Lecroy USB Tracer,http://www.lecroy.com/tm/products/ProtocolAnalyzers/usbtt.asp?menuid=67)



Please download LeCroy installation program:http://www.lecroy.com/tm/Library/Software/PSG/usbtracertrainer.asp?menuid=8

To get a LeCroy CATC log, please connect the device like this:

Customer Device (mini B) ----->|

Host PC(type B) ----------------->| -Lecroy USB Tracer -|<-------(typeB) Analysing PC



And then

Run the application, and then click 'Set up' menu, click 'Recording Options', and increase the buffer size as maximum.

Click the 'REC' icon to record, and then 'STOP' to finish recording in the menu bar.

Please save this *.usb file to location that you can zip it and then send to Qualcomm Apps Engineer over SR system.

Enabling High Speed Electrical Test Tool (HSET) support in Linux/Andorid builds?

Enabling the High Speed Electrical Test Tool (HSET) support in Linux?
A USB high speed host must pass electrical compliance tests defined by the USB-IF in order to use the High-speed Logo. These compliance tests require the host controller to support various test modes defined by the USB 2.0 specification.



USB-IF defines a windows based High Speed Electrical Test Tool (HSET) to activate various test modes. But for small devices with embedded USB host controller it may not be possible to use the tool because of the unavailability of windows platform. Therefore, USB-IF defines a standard method to initiate test modes on embedded hosts by using a test fixture. During enumeration by the USB host, this test fixture provides a VID/PID pair which is used by the host to initiate a particular test mode as each VID/PID pair corresponds to a unique test mode.



Following are the test modes PIDs supported by LE or Android builds:

PID Test Mode

0x0101 TEST_SE0_NAK

0x0102 TEST_J

0x0103 TEST_K

0x0104 TEST_PACKET

0x0106 HS_HOST_PORT_SUSPEND_RESUME

0x0107 SINGLE_STEP_GET_DEV_DESC

0x0108 SINGLE_STEP_SET_FEATURE



Detailed instructions to perform the "Embedded High-Speed host Electrical Tests" or EHSET host compliance tests can be found in the below doc.

http://www.usb.org/developers/onthego/EHSET_v1.01.pdf



OEMs need to check the below kernel option:

CONFIG_USB_EHCI_EHSET option needs to be enable in the kernel's default configuration for EHSET host compliance test support in the build.




Also refer to the solution# 00012725(What are kernel flags need to be defined to enable HS-USB Host configuration?) to check whether host mode is enabled or not.

Fast Dead Battery Charging via USB HID Enumeration in qualcom msm7x27

This feature is used to reduce the amount of time spent on charging while usb device getting enumerated.In the mechanism,the USB device draws 100mA from Host in its enumeration process..On the completion of enumeration,i.e.after enter into the configured state, it is allowed to draw up 500mA from its Host. This 500mA current can allow the battery to be charged faster and hence it is called as "Fast Dead Battery Charging".If the enumeration of the device gets fails,i.e.not entered into the configured state,the USB device can allow the battery to draw 100mA only.

Flags to be set to enable this Fast Dead Battery Charging:

a)For all HS-USB targets except Karura(MSM7x27):
1.define FEATURE_OSBL_USB_BATT_CHG & define FEATURE_HS_USB_FAST_CHARGE_VIA_HID in build\ms\custxxxxx.h file
2.hsu_fast_charge makeonly in *.builds file

b)Karura(MSM7x27):
1.define FEATURE_OSBL_USB_BATT_CHG & define FEATURE_HS_USB_FAST_CHARGE_VIA_HID in build\ms\custxxxxx.h file
2.hsu_chg_boot makeonly in *.builds file

This feature is applicable for only HS-USB targets.

How can I switch HS USB composition without resetting the device in Qualcomm MDM8200?

Q) How can I switch HS USB composition without resetting the device in Jungo code?
or

Q) Looking for information about the hsu_set_compositon() API?
or
Q)What are API's help in the HS USB composition switching?

A) Switching HS USB composition without resetting the device is called the hs-usb dynamic switching of composition. For static switching OEM's need to change the NV#4526 value and reset the device. Please check the composition_details[] to know the all the compositions supported.

Dynamic Composition Switching:
There are two set of APIs supporting the dynamic switching
1) hsu_set_compositon() from the Hsu_conf_sel_rdm.c file(NEW API).
2) hsu_conf_sel_ui_switch_comp() from the file Hsu_con_sel_ui.c(OLD API).

General steps followed to switch the composition:
1) Closing ports: All the ports opened in the current composition is closed with rdm_assing_port()/rdm_close_device().
2) Stack Switching: Switch the HS USB stack to support the new set of Functional drivers in the target composition. hsu_conf_sel_switch_dev_stack() does the switching of the HS USB stack.
3) Opening ports: Open each port in the target composition with rdm_assign_port().


1) Note1: hsu_set_composition() function and all its related functions are listed in Hsu_conf_sel_rdm.c file.
2) Note2: hsu_conf_sel_ui_switch_comp() and all it related functions are listed in Hsu_conf_sel_ui.c file.
3) Note3: if you find any port is not working after using the hsu_conf_sel_ui_switch_comp(), please open a CASE.







Supplement to the solution on February 19, 2010:


We have 2 options to perform dynamic switch and we don't recommend using hsu_conf_sel_ui_switch_comp.

Option 1 :
Call hsu_conf_sel_switch_dev_stack and rdm_assign_port directly from application. For this application, it should be assured that the hsu_conf_sel_switch_dev_stack and rdm_assign_port are called from the application context.

Example sequence as follows.
a. Application task call hsu_conf_sel_switch_dev_stack with call back, switch_dev_cb.
b. Application task wait until switch_dev_cb is called. (eg: rex_wait and rex_set_sigs can be used.).
c. switch_dev_cb is called by HS_USB0 task and notify application task of the completion of comp switch.




* Application task call hsu_api_spoof_reconnect(). Only valid for QSC11x0 which has enabled the feature FEATURE_HS_USB_PMIC_PHY.



d. Application task calls rdm_assign_port with rdm_cb.
e. Application task wait unitl rdm_cb is called.
f. rdm_cb is called by some task( The caller on rdm_cb varies depending on the service) and notify application task of the completion rdm_assign_port.
h. Application repeats from step d to step f.

Option 2 :
Use new API hsu_set_composton which has been submitted recently.

void hsu_set_compositon
(
hsu_conf_sel_composition_id_enum composition_id,
hsu_set_comp_cb_type complete_cb,
hsu_rdm_dev_svc_pare_type *old_rdm_map,
juint8_t old_rdm_map_size,
hsu_rdm_dev_svc_pare_type *new_rdm_map,
juint8_t new_rdm_map_size
);

Example usage is :

Hsu_rdm_dev_srv_pare_type new_rdm_map[2] = {
{RDM_USB_DIAG_DEV,RDM_DIAG_SRVC},
{RDM_USB_MDM_DEV,RDM_DATA_SRVC}
}

Void complete_cb(boolean status)
{
hsu_api_spoof_reconnect();


* Only valid for QSC11x0 which has enabled the feature FEATURE_HS_USB_PMIC_PHY.
}

Application context :

hsu_set_compositon(
HSU_CONF_SEL_DIAG_MDM_COMP,
complete_cb,
NULL,
NULL,
new_rdm_map,
2
);

We redommand option 1 for the targets which does not have the API.

How can I access Data Service over 2 different USB serial port at same time?

Q) How can I access Data Service over 2 different USB serial port at same time?
or
Q) Changes required to enable the Second AT command port?
Details: Qualcomm supports one CDC-ACM(in HS-USB or FS-USB) port for data service, if DUN is established this single port is dedicated for data service. If OEM's want to send control AT commands to ATCOP, it is not possible once DATA call is established.

OEM's required SECOND at command port to send the AT commands. To have second at command port OEM's can create new USB cdc-obex port. Features FEATURE_DATA_SERIALIZER and FEATURE_DATA_MULTI_PORTS helps to create new AT command port.

HS-USB:
Q) Is it possible to create NEW CDC-ACM instance in the Jungo HS USB code?
A)NO. There is no support for CDC- ACM to create new instance. OEM's have to use the CDC-OBEX instance to create new AT command port.
All the changes required in the HS-USB driver code and DS3gsiolib to create new AT command port is listed in the doc#80-VT282.

FS-USB:
If OEM's require this Second AT command port in the FS-USB, they can use the existing NMEA port(if they are not using) or by creating new OBEX port in the usbcdc.c file. Same DS3gsiolib modification listed in doc#80-VT282, works for FS USB supported chip set. if they want to use the NMEA port all they need is changing of the port mappings.

NOTE: FEATURE_DATA_SERIALIZER and FEATURE_DATA_MULTI_PORTS should be defined in the build.

For more information you can reference article #00002889; What is the Serializer and Multi-Port Support?

1/03/2012

USB 1.x/2.0 standard pinout


USB 1.x/2.0 standard pinout
Pin Name Cable color Description
1 VBUS Red +5 V
2 D− White Data −
3 D+ Green Data +
4 GND Black Ground
USB 1.x/2.0 Mini/Micro pinout
Pin Name Cable color Description
1 VBUS Red +5 V
2 D− White Data −
3 D+ Green Data +
4 ID None Permits distinction of A plug from B plug
* A plug: connected to Signal ground
* B plug: not connected
5 GND Black Signal ground

12/30/2011

How to mount the USB disk storage decies in android device

in device/qcom/msm7627_7x_surf/vold.fstab
change:
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_sdcc.1/mmc_host
to
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_hsusb_host.0/usb1