1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
<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">
Things to Remember
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
Firmware
</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>
Things to Remember
</h2></div></div></div><p>
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.
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
<span class="emphasis"><em>
The softloader and bootloader programs have limited vocabulary.
</em></span>
</p><p>
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>.
</p><p>
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>.
</p><p>
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>.
</p><p>
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>.
</p><p>
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.
</p><div class="table"><a name="idp21231472"></a><p class="title"><b>Table 4.1.
Softloader/Bootloader MMEs
</b></p><div class="table-contents"><table summary="
Softloader/Bootloader MMEs
" border="1"><colgroup><col class="bootload-code"><col class="bootload-name"><col class="bootload-softloader"><col class="bootload-bootloader1"></colgroup><thead><tr><th>
MME
</th><th>
NAME
</th><th>
INT6000 Softloader
</th><th>
INT6300 Bootloader
</th><th>
INT6400 Bootloader
</th><th>
AR7400 Bootloader
</th><th>
AR7420 Bootloader
</th></tr></thead><tbody><tr><td>
0xA000
</td><td>
VS_SW_VER
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td></tr><tr><td>
0xA008
</td><td>
VS_WR_MEM
</td><td>
No
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Deprecated
</td></tr><tr><td>
0xA00C
</td><td>
VS_ST_MAC
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Deprecated
</td></tr><tr><td>
0xA01C
</td><td>
VS_RS_DEV
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td></tr><tr><td>
0xA020
</td><td>
VS_WR_MOD
</td><td>
Yes
</td><td>
No
</td><td>
No
</td><td>
No
</td><td>
No
</td></tr><tr><td>
0xA05C
</td><td>
VS_SDRAM
</td><td>
No
</td><td>
Yes
</td><td>
Ignored
</td><td>
Ignored
</td><td>
No
</td></tr><tr><td>
0xA060
</td><td>
VS_HOST_ACTION
</td><td>
No
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td><td>
Yes
</td></tr><tr><td>
0xA098
</td><td>
VS_WRITE_AND_EXECUTE
</td><td>
No
</td><td>
No
</td><td>
No
</td><td>
Yes
</td><td>
Yes
</td></tr><tr><td>
0xA0D4
</td><td>
VS_RAND_MAC_ADDRESS
</td><td>
No
</td><td>
No
</td><td>
No
</td><td>
Yes
</td><td>
Yes
</td></tr></tbody></table></div></div><br class="table-break"></li><li class="listitem"><p>
<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.
</p></li><li class="listitem"><p>
<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.
</p></li><li class="listitem"><p>
<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.
</p></li><li class="listitem"><p>
<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.
</p></li><li class="listitem"><p>
<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>.
</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">
Boot from Host Configuration
</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">
Every Little Bit Hurts
</td></tr></table></div></body></html>
|