Re: SDSynchronousBusRequest taking long time



>>device and nothing really shows up after I restart. Does the boot sequence
>>keep some log somewhere?

No, you can't get any boot log on retail WM device.
That is why I suggested you using a development kit
instead if you want full featured debugging capabilities ...

Keep in mind that some WM devices will not accept
unsigned binaries. You may need to sign your driver
binary first:

http://msdn2.microsoft.com/en-us/library/ms839681.aspx


>>Also are you available to help us this problem in person? Are you in Bay
>>area(San Francisco)?

I'm not in USA and not able to provide offline help.
Like most developers here, I'm full time on my own
projects.


--
Oleg


Advait wrote:
Yes I have "Show All files" turned on as other dlls show up. Also this dll does not show up when I connect the handheld to the cradle.

I tried using the SDBus.dll that I built. Changed the filename to SDBus.dll to SDBus_debug.dll and updated the registry to look at it and rebooted the device and nothing really shows up after I restart. Does the boot sequence keep some log somewhere?

Also are you available to help us this problem in person? Are you in Bay area(San Francisco)?
Thanks
-
Shiva

"voidcoder" wrote:

>>I cannot even see sdbus.dll in the

How do you see that? If you are using WM File Explorer
make sure "Show All Files" option is turned on.


>> when I try to copy it across it shows that the file is
>> in there and is being overwritten.

I'd suggest you to build the binary using different
file name and then patch registry under:

HKLM\Drivers\Builtin\SDBusDriver
"Dll"="My_SDbus_Driver_With_Debug_Output.dll"


--
Oleg


Advait wrote:
Oleg,
I see the sdbus.dll built in my workspace but when I tried to copy it across to WM device it says access denied. I cannot even see sdbus.dll in the \Windows directory BUT when I try to copy it across it shows that the file is in there and is being overwritten.
Any suggestions on this.
-
Shiva

"Advait" wrote:

Oleg,
Thanks for all your replies.
We were wondering if you will be able to help us out in person. Are you in Bay Area? -
Shiva

"voidcoder" wrote:

It is definitely bad idea to modify public sources
in place. Instead copy SDCARD tree to your platform
directory and correct SOURCES files to build from
there. Or you can use sysgen capture tool (I'm not
a big fun of it):

http://msdn2.microsoft.com/en-us/library/aa459163.aspx


Sdcardlib is a statically linked library containing
various sdcard related functions that you are using
in your client driver. While sdbus driver is a true
standalone driver, sdbus.dll or something like that
on WM devices. I pointed you to the sources.


--
Oleg


Advait wrote:
Yes other cards work fine and are recognized after a reboot.

How do I clone the sdbus and sdcard libraries? I was thinking of changing the source for these libraries and build their libs. Use these libs when I compile my dll. Will this NOT suffice? Are the sdbus and sdcard libraries a separate dll in the system?

"voidcoder" wrote:

> Associated with this I have some more questions. The SDIO card we have is
> NOT identified by the Symbol M70 running Windows Mobile 5.0 after a reboot.
> We have to remove the card and re-insert it back for the OS to recognize the
> card and load the driver dll.

Does M70 recognize any other sdcard after reboot, say sdmemory?
Try turning it off, then insert the memory card and power on.
Is the card detected?


>> 1. Are there sources in Platform Builder that I can add some print
>> statements and find out what is happening during the boot process when the
>> devices are being loaded?

In theory, you can clone sdbus driver/sdcardlib and add some
additional debug output to it. Next you can patch registry
on WM target to load your new sdbus driver instead of original
one. This may or may not work properly, do not forget that
WM is a bit different thing although it is based on CE core.


>> 2. Is it possible to write a EXE that I can run to force load the driver
>> instead of physically re-inserting the card.

No, you can't do that. The client drivers get loaded in response
to the slot state change notification initiated by the host
controller driver (which is normally triggered by the card
detection interrupt). Something what you don't have sources for.


--
Oleg


Advait wrote:
Thanks for the much helpful info. We will follow your suggestions to find the problem.

Associated with this I have some more questions. The SDIO card we have is NOT identified by the Symbol M70 running Windows Mobile 5.0 after a reboot. We have to remove the card and re-insert it back for the OS to recognize the card and load the driver dll. The registry settings are right as the driver loads successully when we re-insert the card. So questions are:
1. Are there sources in Platform Builder that I can add some print statements and find out what is happening during the boot process when the devices are being loaded?
2. Is it possible to write a EXE that I can run to force load the driver instead of physically re-inserting the card.

"voidcoder" wrote:

> Can you suggest me how to go through the debugger? The code runs on a
> Windows Mobile device. Currently I am debugging by writing to a file. I
>

Well, if you have no possibility to debug on the target device
it is getting more complicated. There are not too much things
you can do about it on a ready made WM5 device. Especially because
the bottleneck may be in the lower level sdcard host controller
driver (device specific) and not in the sdbus driver
or sdcard lib (device independent thing). Try different
WM devices, try to analyze sdcard sources, fortunately you have
PB installed. Look here:

....\WINCExxx\PUBLIC\COMMON\OAK\DRIVERS\SDCARD\SDBUS\*


It is definitely worth buying a development KIT if you
want to untie your hands. Try to google around, there
are enough devkits with SDCARD on board and Windows CE
support ...


--
Oleg


Advait wrote:
Sorry I was not aware that I could taget multiple groups in "to" field.
Can you suggest me how to go through the debugger? The code runs on a Windows Mobile device. Currently I am debugging by writing to a file. I thought SDSynchronousBusRequest is a call in a library provided by Microsoft. How can I step through? I am new to Platform builder.
Thanks for your help.

"voidcoder" wrote:

Why not just step in debugger and see where
it spends so much time?

Also separate cross posting is evil. List all
target groups in "to" field if you want to post
to multiple groups.


--
Oleg


Advait wrote:
Hi,

From the SDIO driver we get from Arasan they use SDSynchronousBusRequest() to issue a bus request to their chip.

We timestamp before and after calling this API, and it takes > 230ms. Why it takes so long and how can we make it

much faster? The following are the code sample:

SDSynchronousBusRequest(pDevice->hDevice, SD_CMD_IO_RW_EXTENDED,
argument,
SD_WRITE, ResponseR5,
&response, 1,
blockLength , pBuffer,
0);



where:

argument = BUILD_IO_RW_EXTENDED_ARG(SD_IO_OP_WRITE, SD_IO_BLOCK_MODE, pDevice->Function, wAddress, SD_IO_FIXED_ADDRESS, 1);

SD_COMMAND_RESPONSE response

Your kind responses are greatly appreciated.

.



Relevant Pages

  • Re: SDSynchronousBusRequest taking long time
    ... Both are including SDCARD support and both are natively ... Here you can find some more boards with Windows CE ... You may need to sign your driver ... > card and load the driver dll. ...
    (microsoft.public.windowsce.embedded)
  • Re: Installer does not detect video card (not an X issue)
    ... > at the boot prompt. ... >> manufacturer's web site and was hoping to install it once the machine ... > select the generic SVGA driver from xf86config, ... I don't know where on the net it shows the card database. ...
    (comp.os.linux.questions)
  • Re: SDSynchronousBusRequest taking long time
    ... Instead copy SDCARD tree to your platform ... While sdbus driver is a true ... > card and load the driver dll. ... on WM target to load your new sdbus driver instead of original ...
    (microsoft.public.windowsce.embedded)
  • Re: SDSynchronousBusRequest taking long time
    ... Instead copy SDCARD tree to your platform ... While sdbus driver is a true ... > card and load the driver dll. ... on WM target to load your new sdbus driver instead of original ...
    (microsoft.public.windowsce.embedded)
  • Problem with Windows XP and onboard Intel Pro 100 NIC
    ... card on that and a professional Aardvark audio card, ... I've found that modifying driver boot ... Please note that (apart from the Radeon 7500AIW) I don't have any ...
    (microsoft.public.windowsxp.hardware)

Loading