⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faq_hdk.htm

📁 SDIO Linux documentation
💻 HTM
字号:
<html><!-- InstanceBegin template="/Templates/helpnav.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Frequently Asked Questions</title>
<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<!-- InstanceParam name="HeaderColor" type="color" value="#0000FF" -->
<!-- InstanceParam name="FooterColor" type="color" value="#0000FF" -->
<!-- InstanceParam name="NavBackgroundColor" type="color" value="#FFFFFF" -->
<!-- InstanceParam name="BodyBackgroundColor" type="color" value="#FFFFFF" -->
<link href="CodeTHelp.css" rel="stylesheet" type="text/css">
</head><a name="TopTopic"></a>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr> 
    <td width="40%" rowspan="2" bgcolor="#0000FF"><a href="http://www.codetelligence.com"><img src="Images/codetelligence_lrg.gif" name="image" width="252" height="40" border="0"></a></td>
    <td width="60%" height="62" bgcolor="#0000FF">
     <font color="#FFFFFF" size="5" face="Arial, Helvetica, sans-serif"><strong>Embedded SDIO Driver Kit Help </strong></font></td>
  </tr>
</table>

<table width="100%" border="0" cellspacing="10" cellpadding="0">
  <tr>
    <td width="93%"><font face="Arial, Helvetica, sans-serif">
<p class="Topic"><!-- InstanceBeginEditable name="SubTemplate" -->Frequently
        Asked Questions - HDK<!-- InstanceEndEditable --> </p>
</font></td>
    <td><!-- InstanceBeginEditable name="NavBack" -->
	<a href="faq_pdk.htm"><img src="Images/leftarrow.gif" width="27" height="32" border="0"></a><!-- InstanceEndEditable --></td><td><!-- InstanceBeginEditable name="Nav" --><a href="contact.htm"><img src="Images/rightarrow.gif" width="27" height="32" border="0"></a>
      <!-- InstanceEndEditable --></td>
  </tr>
</table>
<hr>
<table width="100%" border="0" cellspacing="0" cellpadding="15">
<tr><td>
<!-- InstanceBeginEditable name="Help Content" -->
<a name="BackToTop"></a>
<p class="BODYTEXT"> <strong>HDK Topics:
</strong>
<table width="70%" border="0">
    <tr>
      <td><a href="#pdkfaq1">I found in the HCD sample code that the driver has the possibility to enable/disable clock control after each request. 
Why is the clock turned off? For example in wifi or bluetooth communication, does the device card always need a clock on it ?
</a></td>
    
	</tr>
	<tr>
	 <td><a href="#pdkfaq2">I am developing a new host controller driver, I need to configure my hardware based on the command type (SD/MMC memory or SDIO command) , also
I need to know if the operation is suspending an outstanding command which will be resumed later (as per SDIO spec).
</a></td></tr>
	<tr>
	  <td><a href="#pdkfaq3">What clock rate should I use as a threshold for determining whether I should process a command/response operation using register polling?
</a> </td>
	  </tr>
	<tr>
	  <td><a href="#pdkfaq4">What are the consequences of not implementing a mechanical switch for card insert detection?  Is polling supported?</a></td>
	  </tr>
	<!-- <tr>
	  <td><a href="#pdkfaq5">ques5</a></td>
	  </tr> -->		
	  </table>
</p>
<p class="HEADING3"><strong><a name="pdkfaq1"></a>I found in the HCD sample code that the driver has the possibility to enable/disable clock control after each request. 
Why is the clock turned off? For example in wifi or bluetooth communication, does the device card always need a clock on it ?
</strong></p>
<p class="BODYTEXT">

There is a common misconception that the SD or MMC clock drives card-side logic.  This is not the case.  
The clock is only used in communications.  The SDIO card has to use its own clock for logic. The spec allows 
for the host to remove the clock at any time to either pause communications or to reduce power.  
In the sample code the clock is turned off only after the full transaction has completed.  
The only exception to having the clock on all the time is for cards that use 4 bit interrupts.  
Since the interrupt and the DATA1 line are shared, the card uses the clock to monitor the 
state of the bus and only drive the interrupt line when the bus is idle and during block gaps.  
If you look at the PCI ellen card driver, when the host requests 4-bit interrupt support, 
the PCI ellen driver sets a flag to keep the clock active even when a transaction is complete.

<blockquote>
      <a href="#BackToTop">Back
    to top.</a></p>
</blockquote>
<p class="HEADING3"><strong><a name="pdkfaq2"></a>I am developing a new host controller driver, I need to configure my hardware based on the command type (SD/MMC memory or SDIO command) , also
I need to know if the operation is suspending an outstanding command which will be resumed later (as per SDIO spec).</strong></p>
<p class="BODYTEXT">If your controller needs information on whether it is a memory
  or I/O command,  you will need to put a switch statement in your hcdrequest
  callback and check the command code. 
Our architecture breaks down commands into its basic elements (command code,
  argument, expected response, and data blocks) ,  this makes it more extensible
  for new commands. If you need to know if it is a memory or SDIO command, you
  will need to add your own 
switch statement and check every command.   For SDIO commands, CMD5,CMD52 and
  CMD53 can be checked.  Everything else would fall under SD/MMC commands. 

As for I/O suspend/resume, the stack does not support this feature.  
All bus commands must complete and cannot be preempted by other commands.
<blockquote>
      <a href="#BackToTop">Back
    to top.</a></p>
</blockquote>
<p class="HEADING3"><strong><a name="pdkfaq3"></a>What clock rate should I use as a threshold for determining whether I should process a command/response operation using register polling?</strong></p>
<p class="BODYTEXT">
5 Mhz is common in the provided driver samples.  If you make it a module parameter,
  your end users (developers) can ultimately decide for themselves. Generally
  if
  the command can take less than 25-40us, you 
should use polling as the interrupt/context switch overhead can be greater than
  that. For a command you have:

48 + (up to) 64 + (up to) 136 = ~248 bit times  @ 5 mhz = ~50us.  
On average this is probably more like 15-20 us, since most commands have just
  a 48 bit response and  most commands do not take the entire 64 clocks to respond.
  You could take a more fine grained approach and calculate the number of response
bits and adjust accordingly.  We've found that anything higher than 5Mhz clock
  rate should be done with polling to save the
interrupt context switch time.
</p>
<blockquote>
  
      <a href="#BackToTop">Back
    to top.</a></p>
</blockquote>
<p class="HEADING3"><strong><a name="pdkfaq4"></a>What are the consequences of not implementing a mechanical switch for card insert detection?  Is polling supported?</strong></p>
<p class="BODYTEXT">The bus driver can handle HCDs that require periodic polling
  for card insertion or removal. The HCD simply has to indicate this in  an HCD
  atrribute bit. 
Slot polling uses a command every 1 second to check for presence or removal.
   The command issued is benign and is usually fetching the Card Version register
  for SDIO
cards or the card status for SD/MMC cards.  For many systems this is good enough
  and the additional bus request every second does not impact driver performance.
   However, for battery powered systems, this polling interval may prevent the
  CPU from going
  into full idle.  Depending on how the system is designed, this may not have
  any impact at all.</p>
<blockquote>
  
      <a href="#BackToTop">Back
    to top.</a></p>
</blockquote>
<!--
<p class="HEADING3"><strong><a name="pdkfaq9"></a>topic9</strong></p>
<p class="BODYTEXT"> answer
</p>
<blockquote>
  
      <a href="#BackToTop">Back
    to top.</a></p>
</blockquote> -->

<!-- InstanceEndEditable -->
&nbsp;<br/></table></td></tr>
<table width="100%" border="0" cellspacing="0" cellpadding="2" >
  <tr> <td><div align="right"><a href="#TopTopic">Back to top</a></div></td></tr>
  <tr bgcolor="#0000FF"> 
    <td> 
      <font color="#FFFFFF"face="Arial, Helvetica, sans-serif"><strong>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -