ch04s06.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Things to Remember</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><meta name="keywords" content="Intellon, Atheros, Qualcomm, HomePlug, powerline, communications, INT6000, INT6300, INT6400, AR7400, AR7420"><link rel="home" href="index.html" title="Qualcomm Atheros Open Powerline Toolkit"><link rel="up" href="ch04.html" title="Chapter 4.  Firmware"><link rel="prev" href="ch04s05.html" title="Boot from Host Configuration"><link rel="next" href="ch04s07.html" title="Every Little Bit Hurts"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">
  2. Things to Remember
  3. </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><th width="60%" align="center">Chapter 4. 
  4. Firmware
  5. </th><td width="20%" align="right"> <a accesskey="n" href="ch04s07.html">Next</a></td></tr></table><hr></div><div class="section" title="Things to Remember"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bootload-rules"></a>
  6. Things to Remember
  7. </h2></div></div></div><p>
  8. The Boot from Host configuration offers design flexibility but also increases the possibilities. Remember that the processes described here are based on simple rules that ultimately dictate why each process step is needed. Readers may find it helpful to review these rules.
  9. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
  10. <span class="emphasis"><em>
  11. The softloader and bootloader programs have limited vocabulary.
  12. </em></span>
  13. </p><p>
  14. The <span class="productname">INT6000</span>™ softloader recognizes only the <code class="constant">VS_SW_VER</code>, <code class="constant">VS_ST_MAC</code>, <code class="constant">VS_RS_DEV</code>, <code class="constant">VS_WR_MOD</code> requests. It does not recognize <code class="constant">VS_WR_MEM</code>.
  15. </p><p>
  16. The <span class="productname">INT6300</span>™ bootloader recognizes only the <code class="constant">VS_SW_VER</code>, <code class="constant">VS_WR_MEM</code>, <code class="constant">VS_ST_MAC</code>, <code class="constant">VS_RS_DEV</code> and <code class="constant">VS_SET_SDRAM</code> requests. It does not recognize <code class="constant">VS_WR_MOD</code>.
  17. </p><p>
  18. The <span class="productname">INT6400</span>™ bootloader recognizes only the <code class="constant">VS_SW_VER</code>, <code class="constant">VS_WR_MEM</code>, <code class="constant">VS_ST_MAC</code>, <code class="constant">VS_RS_DEV</code> requests. It recognizes <code class="constant">VS_SET_SDRAM</code> and responds to it but ignores it. It does not recognize <code class="constant">VS_WR_MOD</code>.
  19. </p><p>
  20. The <span class="productname">AR7400</span>™ bootloader recognizes only <code class="constant">VS_SW_VER</code>, <code class="constant">VS_WR_MEM</code>, <code class="constant">VS_ST_MAC</code>, <code class="constant">VS_RS_DEV</code> requests. It recognizes <code class="constant">VS_SET_SDRAM</code> and responds to it but ignores it. It does not recognize <code class="constant">VS_WR_MOD</code>.
  21. </p><p>
  22. The <span class="productname">AR7420</span>™ bootloader recognizes only <code class="constant">VS_SW_VER</code>, <code class="constant">VS_RS_DEV</code>, <code class="constant">VS_WRITE_AND_EXECUTE</code> and <code class="constant">VS_RAND_MAC_ADDRESS</code> requests. Early versions recognize <code class="constant">VS_WRITE_MEM</code> and <code class="constant">VS_ST_MAC</code> requests but they must not be used.
  23. </p><div class="table"><a name="idp21231472"></a><p class="title"><b>Table 4.1. 
  24. Softloader/Bootloader MMEs
  25. </b></p><div class="table-contents"><table summary="
  26. Softloader/Bootloader MMEs
  27. " border="1"><colgroup><col class="bootload-code"><col class="bootload-name"><col class="bootload-softloader"><col class="bootload-bootloader1"></colgroup><thead><tr><th>
  28. MME
  29. </th><th>
  30. NAME
  31. </th><th>
  32. INT6000 Softloader
  33. </th><th>
  34. INT6300 Bootloader
  35. </th><th>
  36. INT6400 Bootloader
  37. </th><th>
  38. AR7400 Bootloader
  39. </th><th>
  40. AR7420 Bootloader
  41. </th></tr></thead><tbody><tr><td>
  42. 0xA000
  43. </td><td>
  44. VS_SW_VER
  45. </td><td>
  46. Yes
  47. </td><td>
  48. Yes
  49. </td><td>
  50. Yes
  51. </td><td>
  52. Yes
  53. </td><td>
  54. Yes
  55. </td></tr><tr><td>
  56. 0xA008
  57. </td><td>
  58. VS_WR_MEM
  59. </td><td>
  60. No
  61. </td><td>
  62. Yes
  63. </td><td>
  64. Yes
  65. </td><td>
  66. Yes
  67. </td><td>
  68. Deprecated
  69. </td></tr><tr><td>
  70. 0xA00C
  71. </td><td>
  72. VS_ST_MAC
  73. </td><td>
  74. Yes
  75. </td><td>
  76. Yes
  77. </td><td>
  78. Yes
  79. </td><td>
  80. Yes
  81. </td><td>
  82. Deprecated
  83. </td></tr><tr><td>
  84. 0xA01C
  85. </td><td>
  86. VS_RS_DEV
  87. </td><td>
  88. Yes
  89. </td><td>
  90. Yes
  91. </td><td>
  92. Yes
  93. </td><td>
  94. Yes
  95. </td><td>
  96. Yes
  97. </td></tr><tr><td>
  98. 0xA020
  99. </td><td>
  100. VS_WR_MOD
  101. </td><td>
  102. Yes
  103. </td><td>
  104. No
  105. </td><td>
  106. No
  107. </td><td>
  108. No
  109. </td><td>
  110. No
  111. </td></tr><tr><td>
  112. 0xA05C
  113. </td><td>
  114. VS_SDRAM
  115. </td><td>
  116. No
  117. </td><td>
  118. Yes
  119. </td><td>
  120. Ignored
  121. </td><td>
  122. Ignored
  123. </td><td>
  124. No
  125. </td></tr><tr><td>
  126. 0xA060
  127. </td><td>
  128. VS_HOST_ACTION
  129. </td><td>
  130. No
  131. </td><td>
  132. Yes
  133. </td><td>
  134. Yes
  135. </td><td>
  136. Yes
  137. </td><td>
  138. Yes
  139. </td></tr><tr><td>
  140. 0xA098
  141. </td><td>
  142. VS_WRITE_AND_EXECUTE
  143. </td><td>
  144. No
  145. </td><td>
  146. No
  147. </td><td>
  148. No
  149. </td><td>
  150. Yes
  151. </td><td>
  152. Yes
  153. </td></tr><tr><td>
  154. 0xA0D4
  155. </td><td>
  156. VS_RAND_MAC_ADDRESS
  157. </td><td>
  158. No
  159. </td><td>
  160. No
  161. </td><td>
  162. No
  163. </td><td>
  164. Yes
  165. </td><td>
  166. Yes
  167. </td></tr></tbody></table></div></div><br class="table-break"></li><li class="listitem"><p>
  168. <span class="emphasis"><em>The Softloader, Bootloader and runtime firmware may treat the same MME differently</em></span> because each is a different program. A notorious obvious example is the <code class="constant">VS_SW_VER</code> message type. This means that one may need to be aware of the device state when anticipating device behaviour or interpreting device response.
  169. </p></li><li class="listitem"><p>
  170. <span class="emphasis"><em>The local host is surrogate flash memory</em></span>. When dedicated flash memory is not available to a device, the device will request firmware and parameter storage services from the local host using <code class="constant">VS_HST_ACTION</code> messages. The local host must be programmed to detect and respond to these messages or the firmware will appear to hang. See program <a class="link" href="ch01s08.html#program-int6khost">int6khost</a>, <a class="link" href="ch01s08.html#program-int64host">int64host</a>, <a class="link" href="ch01s08.html#program-amphost">amphost</a> or <a class="link" href="ch01s08.html#program-plchost">plchost</a> to demonstrate and experiment with this interaction.
  171. </p></li><li class="listitem"><p>
  172. <span class="emphasis"><em>Only runtime firmware can write flash memory</em></span>. Runtime firmware must be executing in order to write flash memory or upload to the local host. The Softloader and Bootloader cannot perform either operation.
  173. </p></li><li class="listitem"><p>
  174. <span class="emphasis"><em>All <acronym class="acronym">PIB</acronym> changes must be written in flash memory</em></span>. There are several things that can cause <acronym class="acronym">PIB</acronym> changes. When a <acronym class="acronym">PIB</acronym> change is needed, the Working <acronym class="acronym">PIB</acronym> is copied to a scratch area and modified there. The Scratch <acronym class="acronym">PIB</acronym> must then be written to flash memory or sent to the local host for storage. The device then resets causing the stored <acronym class="acronym">PIB</acronym> to replace the Working <acronym class="acronym">PIB</acronym>. If a freshly downloaded <acronym class="acronym">PIB</acronym> changes for any reason then the cycle will repeat, automatically.
  175. </p></li><li class="listitem"><p>
  176. <span class="emphasis"><em>Runtime firmware updates the PIB after joining and before leaving an AVLN</em></span>. This will cause a device reset in each case. If the device is using the local host for persistent storage, runtime firmware will send the associated <code class="constant">VS_HST_ACTION</code> messages to the host and the host will send the associated <code class="constant">VS_RD_MOD</code> and <code class="constant">VS_RS_DEV</code> messages as per <a class="link" href="ch04s11.html" title="Update Local Host (INT6000/INT6300/INT6400)">Update Local Host</a>.
  177. </p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
  178. Boot from Host Configuration
  179.  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
  180. Every Little Bit Hurts
  181. </td></tr></table></div></body></html>