Manufacturing data: Difference between revisions

From OLPC
Jump to navigation Jump to search
(OLPC OS 18.04.0)
 
(448 intermediate revisions by 17 users not shown)
Line 1: Line 1:
{{OLPC}}
{{OLPC}}
{{TOCright}}
{{TOCright}}
[[Category:Developers]]
[[Category:Firmware]]
[[Category:Hardware]]
'''Manufacturing Data Specification'''


This document defines the content of manufacturing data on OLPC laptops.
Version 2,1, 2007-10-07 add keyboard data


Manufacturing data is information about a specific OLPC laptop that is known at time of manufacture and stored in the unit's SPI FLASH. It includes basic data such as the product model, part number, and motherboard model number; unique identifying information such as the serial number, unique user ID, and WLAN MAC address; and language localization information such as the keyboard version and language locale. There are also flag indicating the anti-theft "status" of the laptop (activated, developer).
Version 2.0, 2007-05-24 manufacturing data now lives in Sector E, not Sector 0.


See the [[Manufacturing Data Specification]] for more details about predefined manufacturing data tags and how they are stored.
Version 1.0, 2006-11-16 added some example data values from Quanta.


==SKU(s)==
Version 0.2, 2006-09-14 added approvals process, added wp/ww to tags list, specified tag registration process
===XO-1===
<table border=1>
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>Model</th><th>KA Reference†</th><th>LA</th><th>Comment</th></tr>
<tr><td>01</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Developers, other</td></tr>
<tr><td>02</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Developers, other</td></tr>
<tr><td>03</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Mexico/Peru</td></tr>
<tr><td>04</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Peru</td></tr>
<tr><td>05</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Uruguay, Paraguay</td></tr>
<tr><td>06</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Uruguay</td></tr>
<tr><td>07</td><td>[[OLPC_Libya_Keyboard|Arabic keyboard]]</td><td>yes</td><td>olpc</td><td>us,ara</td><td>olpc2,olpc</td><td>ar_EG.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Iraq, Palestine, Egypt</td></tr>
<tr><td>08</td><td>[[OLPC_Thailand_Keyboard|Thai keyboard]]</td><td>yes</td><td>olpc</td><td>us,th</td><td>olpc2,olpc</td><td>th_TH.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Thailand</td></tr>
<tr><td>09?</td><td>[[OLPC_Nigeria_Keyboard|Nigerian keyboard]]</td><td>yes</td><td>olpc</td><td>ng</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us(?)</td><td></td><td>(US/International keyboard only) for Igbo, Yoruba, and Hausa</td></tr>
<tr><td>10</td><td>[[OLPC_Brasil_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL1</td><td>pt</td><td></td><td>Brazil</td></tr>
<tr><td>11</td><td>[[OLPC_Ethiopia_Keyboard|Amharic keyboard]]</td><td>no</td><td>olpc</td><td>us,et</td><td>olpc2,basic</td><td>am_ET.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Ethiopia</td></tr>
<tr><td>12?</td><td>[[Urdu Keyboard|Urdu keyboard]]</td><td>yes</td><td>olpc</td><td>us,pk</td><td>olpc2,olpc</td><td>ur_PK.UTF-8</td><td>12</td><td>us</td><td></td><td>Pakistan</td></tr>
<tr><td>13</td><td>[[OLPC_Mongolian_Keyboard|Mongolian keyboard]]</td><td>yes</td><td>olpc</td><td>us,mn</td><td>olpc2,olpc</td><td>mn_MN.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Mongolia</td></tr>
<tr><td>14</td><td>[[Devanagari_Keyboard|Devanagari keyboard]]</td><td>yes</td><td>olpc</td><td>us,in</td><td>olpc2,olpc</td><td>hi_IN.UTF-8</td><td>CL1</td><td>us</td><td></td><td>India</td></tr>
<tr><td>15?</td><td>[[OLPC_Nepal_Keyboard|Nepali keyboard]]</td><td>yes</td><td>olpc</td><td>us,np</td><td>olpc2,olpc</td><td>ne_NP.UTF-8</td><td>15</td><td>us</td><td></td><td>Nepal</td></tr>
<tr><td>16?</td></tr>
<tr><td>17?</td><td>[[OLPC_Brasil_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL1</td><td>pt</td><td></td><td>Brazil</td></tr>
<tr><td>18</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Uruguay</td></tr>
<tr><td>19</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Developers, other</td></tr>
<tr><td>20</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Alabama</td></tr>
<tr><td>21</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Rwanda</td></tr>
<tr><td>22</td><td>[[Dari_Keyboard|Dari keyboard]]</td><td>yes</td><td>olpc</td><td>us,af</td><td>olpc2,fa-olpc</td><td>fa_AF.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Afghanistan</td></tr>
<tr><td>23</td><td>[[Italian_Keyboard|Italian keyboard]]</td><td>yes</td><td>olpc</td><td>it</td><td>olpc</td><td>it_IT.UTF-8</td><td>CL1</td><td>it</td><td></td><td>Italy</td></tr>
<tr><td>24</td><td>[[French Canadian|French Canadian keyboard]]</td><td>yes</td><td>olpc</td><td>ca</td><td>olpc</td><td>ht_HT.UTF-8</td><td>CL1</td><td>ht</td><td></td><td>Kreyòl for Haiti</td></tr>
<tr><td>25</td><td>[[Khmer_Keyboard|Khmer keyboard]]</td><td>yes</td><td>olpc</td><td>us,kh</td><td>olpc2,olpc</td><td>km_KH.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Cambodia</td></tr>
<tr><td>26</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1</td><td>es</td><td></td><td>Developers, General Spanish laptops</td></tr>
<tr><td>27</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td>
<td></td></tr>
<tr><td>28</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Nigeria</td></tr>
<tr><td>29</td><td>??</td><td>?</td><td>?</td><td>?</td><td>?</td><td>??</td><td>CL1</td><td>us</td><td></td><td>Panama</td></tr>
<tr><td>30</td><td>[[Cyrillic_Keyboard|Cyrillic keyboard]]</td><td>yes</td><td>olpc</td><td>us,ru</td><td>olpc2,olpc</td><td>uk_UA.UTF-8</td><td>CL1</td><td>us</td><td></td><td>Russia</td></tr>
<tr><td>31</td><td>??</td><td>?</td><td>?</td><td>?</td><td>?</td><td>??</td><td>CL1</td><td>us</td><td></td><td>Senegal</td></tr>
<tr><td>32</td><td>??</td><td>?</td><td>?</td><td>?</td><td>?</td><td>??</td><td>CL1</td><td>us</td><td></td><td>Sri Lanka</td></tr>
<tr><td>33</td><td>[[OLPC_Turkey_Keyboard|Turkish Keyboard]]</td><td>yes</td><td>?</td><td>?</td><td>?</td><td>??</td><td>CL1</td><td>us</td><td></td><td>Turkey</td></tr>
<tr><td>34?</td><td>[[OLPC_Mongolian_Keyboard|Mongolian keyboard]]</td><td>yes</td><td>olpc</td><td>us,mn</td><td>olpc2,olpc</td><td>mn_MN.UTF-8</td><td>CL1</td><td>us</td><td></td><td>MS Mongolia</td></tr>
<tr><td>35?</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8?</td><td>CL1A</td><td>es</td><td></td><td>MS Uruguay</td></tr>
<tr><td>36?</td><td>[[OLPC_Thailand_Keyboard|Thai keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8?</td><td>CL1</td><td>us</td><td></td><td>MS Thailand</td></tr>
<tr><td>37?</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>MS Rwanda</td></tr>
<tr><td>38?</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>MS South Africa</td></tr>
<tr><td>39</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>Developers, other</td></tr>
<tr><td>40</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1A</td><td>es</td><td></td><td>Uruguay</td></tr>
<tr><td>41</td><td>[[OLPC_Libya_Keyboard|Arabic keyboard]]</td><td>yes</td><td>olpc</td><td>us,ara</td><td>olpc2,olpc</td><td>ar_EG.UTF-8</td><td>CL1A</td><td>us</td><td></td><td></td></tr>
<tr><td>42</td><td>[[OLPC_Brasil_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL1A</td><td>pt</td><td></td><td>Brazil</td></tr>
<tr><td>43</td><td>[[OLPC_Mongolian_Keyboard|Mongolian keyboard]]</td><td>yes</td><td>olpc</td><td>us,mn</td><td>olpc2,olpc</td><td>mn_MN.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>Mongolia</td></tr>
<tr><td>44</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>Rwanda</tr>
<tr><td>45</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_GH.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>Ghana</td></tr>
<tr><td>46</td><td>[[OLPC_Nepal_Keyboard|Nepali keyboard]]</td><td>yes</td><td>olpc</td><td>us,np</td><td>olpc2,olpc</td><td>ne_NP.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>Nepal</td></tr>
<tr><td>47</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1A</td><td>es</td><td></td><td>Peru Custom Keys: http://dev.laptop.org/~reuben/per/</td></tr>
<tr><td>48</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1A</td><td>es</td><td></td><td>MS Peru, MS Colombia</td></tr>
<tr><td>49?</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1A</td><td>es</td><td></td><td>MS Uruguay</td></tr>
<tr><td>50</td><td>[[OLPC_Thailand_Keyboard|Thai keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8?</td><td>CL1</td><td>us</td><td></td><td>MS Thailand</td></tr>
<tr><td>51</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>MS Rwanda</td></tr>
<tr><td>52</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td></td><td>MS South Africa</td></tr>
<tr><td>54</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td><td>N/A</td></tr>
<tr><td>55</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL1A</td><td>es</td><td>NIC</td><td>Nicaragua (new TP)</td></tr>
<tr><td>56</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td>PNG</td><td>Oceania</td></tr>
<tr><td>57</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL1</td><td>es</td><td>NIC</td><td>Nicaragua (old TP, not manufactured but field-updated)</td></tr>
<tr><td>58</td><td>[[Dari_Keyboard|Dari keyboard]]</td><td>yes</td><td>olpc</td><td>us,af</td><td>olpc2,fa-olpc</td><td>fa_AF.UTF-8</td><td>CL1A</td><td>us</td><td>AFG</td><td>Afghanistan</td></tr>
<tr><td>59</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL1A</td><td>es</td><td>COL</td><td>Colombia</td></tr>
<tr><td>60</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_SZ.UTF-8</td><td>CL1A</td><td>us</td><td>SWZ</td><td>Swaziland</td></tr>
<tr><td>61</td><td>[[OLPC_Libya_Keyboard|Arabic keyboard]]</td><td>yes</td><td>olpc</td><td>us,ara</td><td>olpc2,olpc</td><td>ar_IQ.UTF-8</td><td>CL1A</td><td>us</td><td>IRQ</td><td>Iraq</td></tr>
<tr><td>62</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1A</td><td>us</td><td>GRC</td><td>Greece - EU Adapter</td></tr>
<tr><td>63</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_ML.UTF-8</td><td>CL1A</td><td>azerty</td><td>RMM</td><td>Mali-EU</td></tr>
<tr><td>64</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_BI.UTF-8</td><td>CL1A</td><td>azerty</td><td>BDI</td><td>Burundi-EU</td></tr>
<tr><td>65</td><td>[[OLPC_Portuguese_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_MZ.UTF-8</td><td>CL1A</td><td>pt</td><td>MOZ</td><td>Mozambique-EU</td></tr>
<tr><td>66</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>olpc</td><td>es</td><td>olpc</td><td>es_SV.UTF-8</td><td>CL1A</td><td>es</td><td>SLV</td><td>El Salvador - US Power Adapter</td></tr>
<tr><td>67</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL1A</td><td>us</td><td>AUS</td><td>Australia - No Power Adapter</td></tr>
<tr><td>68</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>olpc</td><td>us</td><td>olpc</td><td>en_IT.UTF-8</td><td>CL1A</td><td>us</td><td>ITA</td><td>Italy-EU Adapter</td></tr>


<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>Model</th><th>KA Reference†</th><th>LA</th><th>Comment</th></tr>
Version 0.1, 2006-09-13
</table>


:†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is ''not'' the actual KA string, which is described [[Manufacturing_Data_Specification#Keyboard ASCII Map|in the spec]], but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).


===XO-1.5===
This document defines the method for storing manufacturing data
in the SPI FLASH on the OLPC system, and its interaction with
SPI FLASH write protection.


<table border=1>
Manufacturing data is information about a specific OLPC unit that
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>Model</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>FLASH</th><th>RAM</th><th>Comment</th><th>Deployment Keys</th></tr>
is known at the factory and stored in the unit's SPI FLASH. It could
include things like the serial number, date of manufacture, etc.


<tr><td>98</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td></td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Developers, other</td><td></td></tr>
==Goals==
<tr><td>99</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td></td><td>none</td><td>4 GB</td><td>1 GB</td><td>other (5-pack)</td><td></td></tr>
* Security: When an OLPC machine leaves the factory, the SPI FLASH '''must''' be write protected
<tr><td>100</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>USA</td><td>US brick</td><td>4 GB</td><td>1 GB</td><td>Developers, other</td><td></td></tr>
* Manufacturability: The procedures should be fast, reliable, and convenient within the constraints of the manufacturing flow.
<tr><td>101</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_AR.UTF-8</td><td>CL1B</td><td>es</td><td>ARG</td><td>AR wall</td><td>4 GB</td><td>1 GB</td><td>Argentina</td><td>http://dev.laptop.org/~reuben/arg/</td></tr>
* Extensibility: The data formats should make it easy to revise or extend the manufacturing data set in the future.
<tr><td>102</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1B</td><td>es</td><td>PER</td><td>US wall</td><td>2 GB</td><td>512 MB</td><td>Peru</td><td>http://dev.laptop.org/~reuben/per/</td></tr>
* Sanity: The validity of the manufacturing data should be easy to verify.
<tr><td>103</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL1B</td><td>es</td><td>COL</td><td>US Brick</td><td>4 GB</td><td>1 GB</td><td>Colombia</td><td></td></tr>
* Robustness: Programs that read or write manufacturing data should continue to work when the data set is revised.
<tr><td>104</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL1B</td><td>us</td><td>AUS</td><td> NONE </td><td>4 GB</td><td>1 GB</td><td>Australia</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image: http://download.laptop.org.au/XO/F11/10.1.3/au3/XO-1.5/</td></tr>
* Simplicity: The implementation programs should be small and easy to write and verify.
<tr><td>105</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1B</td><td>es</td><td>MEX</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Mexico</td><td></td></tr>
<tr><td>106</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_ID.UTF-8</td><td>CL1B</td><td>us</td><td>IDN</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Indonesia</td><td></td></tr>
<tr><td>107</td><td>[[OLPC_Portuguese_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL1B</td><td>pt</td><td>BRA</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Brazil</td><td></td></tr>
<tr><td>108</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_CA.UTF-8</td><td>CL1B</td><td>us</td><td>CAN</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Canada</td><td></td></tr>
<tr><td>109</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_PH.UTF-8</td><td>CL1B</td><td>us</td><td>PHL</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Philippines</td><td></td></tr>
<tr><td>110</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_AN.UTF-8</td><td>CL1B</td><td>us</td><td>ANT</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Netherlands Antilles</td><td></td></tr>
<tr><td>111</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_NL.UTF-8</td><td>CL1B</td><td>us</td><td>NLD</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Netherlands</td><td></td></tr>
<tr><td>112</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>USA</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>OLPC EU Developers</td><td></td></tr>
<tr><td>113</td><td>[[OLPC_Keyboard_layouts|African AZERTY keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td></td><td>CL1B</td><td></td><td></td><td>EU brick</td><td>4 GB</td><td>1 GB</td><td>Francophone Africa</td><td></td></tr>
<tr><td>114</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL1B</td><td>es</td><td>NIC</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Nicaragua -- Custom Image: http://dev.laptop.org/~dsd/nic-xo1.5-costa/</td><td>http://dev.laptop.org/~reuben/nic/</td></tr>
<tr><td>115</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1B</td><td>es</td><td>URY</td><td>EU wall</td><td>2 GB</td><td>512 MB</td><td>Uruguay</td><td>http://dev.laptop.org/~reuben/UY/</td></tr>
<tr><td>116</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>no</td><td>wp</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1C</td><td>es</td><td>URY</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Uruguay</td><td>http://dev.laptop.org/~reuben/UY/</td></tr>
<tr><td>117</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1B</td><td>es</td><td>PER</td><td>US wall</td><td>4 GB</td><td>512 MB</td><td>Peru</td><td>http://dev.laptop.org/~reuben/per/</td></tr>
<tr><td>118</td><td>[[OLPC_Libya_Keyboard|Arabic keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,ara</td><td>olpc2,olpc</td><td>ar_SY.UTF-8</td><td>CL1B</td><td>us</td><td>SYR</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Palestinian Territories, others</td><td></td></tr>
<tr><td>119</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL1B</td><td>us</td><td>SEN</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Senegal & generic Francophone Africa</td><td></td></tr>
<tr><td>120</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_JM.UTF-8</td><td>CL1B</td><td>us</td><td>JAM</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Jamaica</td><td></td></tr>
<tr><td>121</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>no</td><td>wp</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1C</td><td>es</td><td>URY</td><td>EU wall</td><td>8 GB</td><td>1 GB</td><td>Uruguay</td><td>http://dev.laptop.org/~reuben/UY/</td></tr>
<tr><td>122</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_BB.UTF-8</td><td>CL1B</td><td>us</td><td>BRB</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Barbados</td><td></td></tr>
<tr><td>123</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_FM.UTF-8</td><td>CL1B</td><td>us</td><td>FSM</td><td>US wall</td><td>4 GB</td><td>1 GB</td><td>Micronesia</td><td></td></tr>
<tr><td>124</td><td>[[Dari_Keyboard|Dari keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,af</td><td>olpc2,fa-olpc</td><td>fa_AF.UTF-8</td><td>CL1B</td><td>us</td><td>AFG</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Afghanistan</td><td>Dari or Pashto?</td></tr>
<tr><td>125</td><td>[[Hebrew_Keyboard|Hebrew keyboard]]</td><td>yes</td><td>ww</td><td>?</td><td>?</td><td>?</td><td>?</td><td>CL1B</td><td>us</td><td>ISR</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Israel</td><td></td></tr>
<tr><td>126</td><td>N/A</td></tr>
<tr><td>127</td><td>[[OLPC_Portuguese_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL1B</td><td>pt</td><td>AGO</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Angola</td><td></td></tr>
<tr><td>128</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>en</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1C</td><td>us</td><td>USA</td><td>US brick</td><td>4 GB</td><td>1 GB</td><td>Developers</td><td></td></tr>
<tr><td>129</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>ZMB</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Zambia</td><td></td></tr>
<tr><td>130</td><td>[[OLPC_Ethiopia_Keyboard|Amharic keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,et</td><td>olpc2,basic</td><td>am_ET.UTF-8</td><td>CL1B</td><td>us</td><td>ETH</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Ethiopia</td><td></td></tr>
<tr><td>131</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_PY.UTF-8</td><td>CL1B</td><td>es</td><td>PRY</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Paraguay</td><td>http://dev.laptop.org/~reuben/PY/ and Custom Image: http://www.paraguayeduca.org/osbuild/os376py.zd </td></tr>
<tr><td>132</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>LKA</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Sri Lanka</td><td></td></tr>
<tr><td>133</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_CA.UTF-8</td><td>CL1B</td><td>us</td><td>CAN</td><td>US brick</td><td>4 GB</td><td>1 GB</td><td>Canada</td><td></td></tr>
<tr><td>134</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_SV.UTF-8</td><td>CL1B</td><td>es</td><td>SLV</td><td>US brick</td><td>4 GB</td><td>1 GB</td><td>El Salvador</td>
<tr><td>135</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>yes</td><td>wp</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1C</td><td>es</td><td>PER</td><td>Blue US wall</td><td>2 GB</td><td>512 MB</td><td>Peru</td><td>Keys: http://dev.laptop.org/~reuben/per/ <br> Custom Image: ftp://ftp.perueduca.edu.pe/XO_OLPC/secundaria/</td></tr>
<tr><td>136</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>no</td><td>wp</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL1C</td><td>es</td><td>URY</td><td>EU wall</td><td>8 GB</td><td>1 GB</td><td>Uruguay</td><td>Keys: http://dev.laptop.org/~reuben/UY/<br> Custom Image: UY Windows XP</td></tr>
<tr><td>137</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>wp</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>RWA</td><td>EU wall</td><td>2 GB</td><td>512 MB</td><td>Rwanda</td><td>Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>
<tr><td>138</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1B</td><td>es</td><td>HND</td><td>US brick</td><td>4 GB</td><td>1 GB</td><td>Honduras</td>
<tr><td>139</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>PAK</td><td>EU brick</td><td>4 GB</td><td>1 GB</td><td>Pakistan</td>
<tr><td>140</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CR.UTF-8</td><td>CL1B</td><td>es</td><td>CRI</td><td>US Brick</td><td>4 GB</td><td>1 GB</td><td>Costa Rica</td>
<tr><td>141</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>wp</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>RWA</td><td>EU wall</td><td>4 GB</td><td>1 GB</td><td>Rwanda</td><td>Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>
<tr><td>142</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_PH.UTF-8</td><td>CL1B</td><td>us</td><td>PHL</td><td>US Brick</td><td>4 GB</td><td>1 GB</td><td>Philippines</td><td></td></tr>
<tr><td>143</td><td>[[OLPC_Armenian_Keyboard|Armenian keyboard layout]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,am</td><td>olpc2,olpc-phonetic</td><td>hy_AM.UTF-8</td><td>CL1B</td><td>us</td><td>ARM</td><td>EU Brick</td><td>4 GB</td><td>1 GB</td><td>Armenia</td><td>Custom Image: http://dev.laptop.org/~reuben/armenia_10.1.3-xo1.5/os1-4g.zd</td></tr>
<tr><td>144</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL1B</td><td>es</td><td>HND</td><td>US Brick</td><td>8 GB</td><td>1 GB</td><td>Honduras</td>
<tr><td>145</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL1B</td><td>es</td><td>COL</td><td>US Wall</td><td>2 GB</td><td>512 MB</td><td>Colombia</td><td></td></tr>
<tr><td>146</td><td>[[Dari_Keyboard|Dari keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,af</td><td>olpc2,fa-olpc</td><td>fa_AF.UTF-8</td><td>CL1B</td><td>us</td><td>AFG</td><td>EU Brick</td><td>4 GB</td><td>1 GB</td><td>Afghanistan</td><td>Dari</td></tr>
<tr><td>147</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_PH.UTF-8</td><td>CL1B</td><td>us</td><td>PHL</td><td>US Brick</td><td>4 GB</td><td>1 GB</td><td>Philippines</td><td>Deployment Keys: http://dev.laptop.org/~reuben/PHL/</td></tr>
<tr><td>148</td><td>[[OLPC_Thailand_Keyboard|Thai keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,th</td><td>olpc2,olpc</td><td>th_TH.UTF-8</td><td>CL1B</td><td>us</td><td>THA</td><td>US Brick</td><td>4 GB</td><td>1 GB</td><td>Thailand</td><td></td></tr>
<tr><td>149</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>nl_NL.UTF-8</td><td>CL1B</td><td>us</td><td>SUR</td><td>EU Brick</td><td>4 GB</td><td>1 GB</td><td>Suriname</td><td></td></tr>
<tr><td>150</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>MHL</td><td>US Wall</td><td>4 GB</td><td>1 GB</td><td>Marshall Islands</td><td></td></tr>
<tr><td>151</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL1B</td><td>us</td><td>CMR</td><td>EU wall</td><td>2 GB</td><td>512 MB</td><td>Cameroon</td><td></td></tr>
<tr><td>152</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>CMR</td><td>EU wall</td><td>2 GB</td><td>512 MB</td><td>Cameroon</td><td></td></tr>
<tr><td>153</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL1B</td><td>us</td><td>RWA</td><td>EU wall</td><td>2 GB</td><td>512 MB</td><td>Rwanda</td><td>Custom Image: http://dev.laptop.org/~reuben/os5.zd2 <br> Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>
<tr><td>154</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>en</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL1C</td><td>us</td><td>AUS</td><td>None</td><td>4 GB</td><td>1 GB</td><td>Australia</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au886/</td></tr>


<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW/WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>Model</th><th>KA Reference†</th><th>LA</th><th>Comment</th><td></td></tr>
==Specification==
</table>
===Location===
The manufacturing data shall start at SPI FLASH offset 0xeffff and grow downwards. 2K of space is currently "reserved" for this purpose, although at that time of this writing (2007-05-24, ROM version Q2C14), there is nothing else in that 64K sector, so the 2K limit is not hard and fast.


:†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is ''not'' the actual KA string, which is described [[Manufacturing_Data_Specification#Keyboard ASCII Map|in the spec]], but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).
''Historical note: Prior to the C-series firmware, i.e. up to and including Q2B87, the manufacturing data was located at the end of the first 64K sector of the SPI FLASH chip, growing down toward the "EC" code area. (The VSA code was above the upper boundary of the manufacturing data.)''


====Rationale====
===XO-1.75===
<table border=1>
''This rationale is obsolete now that the manufacturing data is no longer in the EC sector, but remains here for historical background.''
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>FLASH</th><th>RAM</th><th>Comment</th><th>Deployment Keys</th></tr>
* Placing the manufacturing data near the EC code results in a single boundary below which the data is effectively immutable. This simplifies and increases the reliability of the code for field updates to OFW.
* 64K is the size of an erase sector; the EC code plus the manufacturing data should "never need to be erased".
* The current size of the EC code is approximately 16K, so there should be plenty of space for manufacturing data within that 64K sector.


<tr><td>198</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td></td><td>US Wall</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Developers, other</td><td></td></tr>
===Data Format===
<tr><td>199</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2A</td><td>us</td><td></td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Developers, other</td><td></td></tr>
The manufacturing data shall be stored using the following extensible tagged representation:
<tr><td>200</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td></td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Developers, other</td><td></td></tr>
# Each item shall consist of a tag header plus optional binary data.
<tr><td>201</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2A</td><td>us</td><td></td><td>US Wall</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Developers, other</td><td></td></tr>
# There are two tag formats - a 4-byte format that can have from 0 to 127 bytes of data, and a 5-byte format that can have from 0 to 16383 bytes of data (the practical limit is less because of the overall size limits on the manufacturing data area).
<tr><td>202</td><td>[[OLPC_Portuguese_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL2</td><td>pt</td><td>BRA</td><td>US Brick</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Developers, Brazil</td><td></td></tr>
## The 4-byte tag shall consist of:
<tr><td>203</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td></td><td>US Wall</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>RAMP, Developers, other</td><td></td></tr>
### Two name bytes, each containing a case-sensitive 7-bit ASCII character
<tr><td>204</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2A</td><td>us</td><td></td><td>US Wall</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>RAMP, Developers, other</td><td></td></tr>
### A length byte whose binary value is from 0 to 127, indicating the number of additional data bytes (not including the 4-byte tag).
<tr><td>205</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL2</td><td>es</td><td>NIC</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Nicaragua -- Custom Image: </td><td>http://dev.laptop.org/~reuben/nic/</td></tr>
### A check byte whose binary value is the one's complement of the length byte
<tr><td>206</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL2</td><td>es</td><td>URY</td><td>EU Wall</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Uruguay</td><td>http://dev.laptop.org/~reuben/UY/</td></tr>
## The 5-byte tag shall consist of:
<tr><td>207</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_SV.UTF-8</td><td>CL2</td><td>es</td><td>SLV</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>El Salvador</td>
### Two name bytes, each containing a case-sensitive 7-bit ASCII character
<tr><td>208</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL2</td><td>es</td><td>HND</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Honduras</td><td>http://dev.laptop.org/~reuben/hn.zip</td>
### A check byte whose binary value is from 128 to 255, computed as described below.
<tr><td>209</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_ID.UTF-8</td><td>CL2</td><td>us</td><td>IDN</td><td>EU Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Indonesia</td><td></td></tr>
### A low length byte (0..127), containing the 7 least significant bits of the data length
<tr><td>210</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL2</td><td>es</td><td>PER</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Peru</td><td>http://dev.laptop.org/~reuben/per/ and <br> http://dev.laptop.org/~reuben/peru_amazonas.zip</td></tr>
### A high length byte (0..127), containing the 7 most significant bits of the data length.
<tr><td>211</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL2A</td><td>es</td><td>PER</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Peru</td><td>http://dev.laptop.org/~reuben/per/ and <br> http://dev.laptop.org/~reuben/peru_amazonas.zip</td></tr>
### The data length is given by ((high_length << 7) + low_length). (If the most-significant bit of either low_length or high_length is set, the tag is invalid.)
<tr><td>212</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL2</td><td>azerty</td><td>HTI</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Haiti</td><td>Custom Image: http://dev.laptop.org/~reuben/azerty/</td></tr>
### The check byte value is calculated as (low_length ^ high_length ^ 0xff). Note that this guarantees that the most-significant bit of the check byte will be 1, thus distinguishing the 5-byte tag from the 4-byte tag format.
<tr><td>213</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td>USA</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>SF, Developers, other</td><td></td></tr>
# The list of manufacturing data is the concatenation of individual items.
<tr><td>214</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_CA.UTF-8</td><td>CL2A</td><td>us</td><td>CAN</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>ICT4E</td><td></td></tr>
# The list grows in the "downward" direction, reflecting the fact that the manufacturing data is stored at the end of a region.
<tr><td>215</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_CA.UTF-8</td><td>CL2A</td><td>us</td><td>CAN</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Canada - TBSF</td><td></td></tr>
# There is no padding for alignment purposes - each tagged item is immediately adjacent to (i.e. just below) its predecessor.
<tr><td>216</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td>RWA</td><td>EU Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Girls Initiative - Rwanda</td><td></td></tr>
# The end of the list is denoted by the absence of a valid tag "after" (i.e. at the address just below) the last item.
<tr><td>217</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL2</td><td>es</td><td>USA</td><td>US Brick</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>OLPC Inventory</td></tr>
# Within a tagged item, the order of bytes is:
<tr><td>218</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>es</td><td>USA</td><td>US Wall</td><td>1 GHz</td><td>8 GB</td><td>1 GB</td><td>Quanta internal testing</td><td></td></tr>
## Highest address: second name character
<tr><td>219</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>es</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2A</td><td>es</td><td>USA</td><td>US Wall</td><td>1 GHz</td><td>8 GB</td><td>1 GB</td><td>Quanta internal testing</td><td></td></tr>
## Highest address minus 1: first name character
<tr><td>220</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_PH.UTF-8</td><td>CL2</td><td>us</td><td>PHL</td><td>US Wall</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Philippines</td><td>Deployment Keys: http://dev.laptop.org/~reuben/PHL/</td></tr>
## Highest address minus 2: length byte of 4-byte format (0-127) or check byte of 5-byte format (128-255)
<tr><td>221</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_FJ.UTF-8</td><td>CL2</td><td>us</td><td>FJI</td><td>US Wall</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Fiji</td><td></td></tr>
## Highest address minus 3: check byte (~length) of 4-byte format or low length of 5-byte format
<tr><td>222</td><td>[[OLPC_Armenian_Keyboard|Armenian keyboard layout]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,am</td><td>olpc2,olpc-phonetic</td><td>hy_AM.UTF-8</td><td>CL2</td><td>us</td><td>ARM</td><td>EU Brick</td><td>800 MHz</td><td>?? GB</td><td>?? GB</td><td>Armenia</td><td>Custom Image: Yes?? <br> Deployment Keys: Yes??</td></tr>
## Highest address minus 4: last data byte (if any) of 4-byte format or high length byte of 5-byte format
<tr><td>223</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL2</td><td>azerty</td><td>GAB</td><td>EU Wall</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Gabon</td><td></td></tr>
## Highest address minus 5: next-to-last data byte (if any) of 5-byte format or last data byte (if any) of 5-byte format
<tr><td>224</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8 GB</td><td>1 GB</td><td>Charlotte</td><td>Deployment Keys: http://dev.laptop.org/~reuben/clt.zip </td></tr>
## ... (additional data bytes)
<tr><td>225</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>no</td><td>wp</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2A</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8 GB</td><td>1 GB</td><td>Charlotte</td><td>Deployment Keys: http://dev.laptop.org/~reuben/clt.zip</td></tr>
# The interpretation of the data bytes within an item varies from name to name; code that operates on such data must know the appropriate data interpretation for the names that it uses. (But see also [[#Data Value Encoding Conventions]] .)
<tr><td>226</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL2</td><td>es</td><td>HND</td><td>US Wall </td><td>1 GHz</td><td>8 GB</td><td>1 GB</td><td>Gobierno de Honduras</td><td>Standard Image: 12.1.0 <br> Deployment Keys: http://dev.laptop.org/~reuben/hn.zip</td>
<tr><td>227</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL2</td><td>azerty</td><td>TGO</td><td>EU Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Atlantique Télécom TOGO</td><td></td></tr>
<tr><td>228</td><td>[[OLPC_Keyboard_layouts|US International keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td>BTN</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Olpc Asia - Buthan</td><td></td></tr>
<tr><td>229</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL2A</td><td>us</td><td>AUS</td><td> None </td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Australia</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au891/XO-1.75/ </td></tr>
<tr><td>230</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL2</td><td>es</td><td>URY</td><td>EU Wall</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Uruguay Generic</td><td>None</td></tr>
<tr><td>231</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL2A</td><td>us</td><td>AUS</td><td> AUS Brick </td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Australia - Single Pack</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au891/XO-1.75/</td></tr>
<tr><td>232</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_PH.UTF-8</td><td>CL2</td><td>us</td><td>PHL</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Philippines </td><td></td></tr>


<tr><td>233</td><td>[[Dari_Keyboard|Dari keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,af</td><td>olpc2,fa-olpc</td><td>fa_AF.UTF-8</td><td>CL2</td><td>us</td><td>AFG</td><td>EU Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Afghanistan</td><td>Dari</td></tr>
====Rationale====
* The list grows down because it has to start at a known location at the end of an erase sector
* The order of characters within tag names makes it easier to "visually parse" the data when looking at memory dumps, with no adverse effect on program code.
* Note that a valid check byte always has the most-significant bit set, and the other three tag bytes always have that bit clear.
* Erased FLASH storage (all bytes FF) does not constitute a valid tag, nor does all-zero storage.
* Software that inspects specific items of manufacturing data need not understand the details of all tags. It can just skip tags to find the one it's looking for.
* Appending a tag to the end of the list involves skipping to the end of the list and writing the new tag.
* Changing the value of an existing tag is difficult, except for the special case of changing some bits from 1 to 0 (which can be done without erasing the FLASH).
* It is possible to distinguish the 4-byte and 5-byte header formats from either direction. From the direction of the name bytes (going downward in memory), if the next byte is <128, it is the 4-byte format. Conversely, from the direction of the data bytes (going upward in memory), if the next byte is <128, it is the 5-byte format.
* The 5-byte format is not supported by any firmware version <= q2c28, and systems <= C1 do not have any 5-byte tags. It follows that systems that use 5-byte tags must have firmware > q2c29.


<tr><td>234</td><td>[[OLPC_Keyboard_layouts|US Int'l keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL2</td><td>us</td><td>RWA</td><td>EU Wall</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Rwanda</td><td>Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>
===Write Protect Behavior===
# Prior to starting execution of the main operating system, the bootloader shall control the hardware write protection for the SPI FLASH as follows:
## If the location of the first tag (i.e. the bytes at SPI FLASH offset 0xfffc-0xffff) is erased (i.e. all four byte values are 0xff), the bootloader shall ''not'' enable the hardware write protection.
## If the location of the first tag contains a valid tag with the name 'ww' and zero data length (i.e. 'w' at 0xffff, 'w' at 0xfffe, 0x0 at 0xfffd , and 0xff at 0xfffc), the bootloader shall ''not'' enable the hardware write protection.
## Otherwise, the bootloader shall enable the hardware write protection.


<tr><td>235</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL2</td><td>azerty</td><td>RWA</td><td>EU Wall</td><td>800 MHz</td><td>4 GB</td><td>512 MB</td><td>Rwanda</td><td>Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>
====Rationale====
* The "all erased" clause handles the "virgin FLASH" case, for initial manufacturing procedures.
* The "ww" clause enables the possibility of "incremental logging" during the manufacturing flow. The first manufacturing phase that adds an item to the manufacturing data area creates a "ww" tag at the beginning. Subsequent phases can extend the list with other tags as necessary. The final step in the manufacturing flow changes the "ww" to "wp", thus causing the bootloader to enable write protection.
* Note that changing "ww" to "wp" drives three bits from 1 to 0, which can be done without erasing. The only way to return to "ww" (or to 0xff) is to erase the entire sector.
* (Need a link to the document defining the auto-bootloader-update procedure).


<tr><td>236</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL2</td><td>es</td><td>COL</td><td>US Brick</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Colombia</td><td>None</td></tr>
===Data Value Encoding Conventions===
# The following conventions should be observed when defining data formats for new tags:
## Store text strings with the first character at the lowest address, null terminated.
## Store variable length text strings using only the amount of space needed (including the null terminator).
## Consider storing numeric values as human-readable ASCII text when it is reasonable to do so.
## Store multi-byte binary numbers in little-endian form, i.e. with the least-significant byte at the lowest address.


<tr><td>237</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL2</td><td>es</td><td>NIC</td><td>US Brick</td><td>800 MHz</td><td>8 GB</td><td>1 GB</td><td>Nicaragua </td><td> Deployment Keys: http://dev.laptop.org/~reuben/nic/ <br>Custom Image: http://dev.laptop.org/~dsd/nicaragua-2014/</td></tr>
====Rationale====
* The order of characters within text strings makes it easier to "visually parse" the data when looking at memory dumps, while also being easier (or at least no harder) to operate on with program code.
* Null termination makes it easy to use C library routines.
* There's no need to pad out strings to a predefined maximum length, because the tag encapsulation can tell you the actual length.
* Note that there is no guarantee that multi-byte binary numbers will be naturally-aligned.


<tr><td>238</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL2</td><td>es</td><td>COL</td><td>US Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Colombia</td><td>None</td></tr>
===Tag Registration===
# The most recent version of this document at http://wiki.laptop.org/go/Manufacturing_Data contains the definitive list of tag names and values.
# The method for arbitrating changes to the list is as follows: Someone associated with the OLPC project will be designated as the gatekeeper of the list. The gatekeeper is currently Mitch Bradley, wmb@firmworks.com . Upon request, the gatekeeper will add tags to the list. Such requests should include complete definitions of the proposed new tags and their value encodings.


<tr><td>239</td><td>[[OLPC_Azerty_Keyboard|Azerty keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>fr</td><td>olpc</td><td>fr_FR.UTF-8</td><td>CL2</td><td>azerty</td><td>GAB</td><td>EU Brick</td><td>800 MHz</td><td>4 GB</td><td>1 GB</td><td>Gabon</td><td></td></tr>
====Rationale====

* The assumption is that new tags will be defined infrequently.
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>FLASH</th><th>RAM</th><th>Comment</th><th>Deployment Keys</th></tr>


===Defined Tags===


(In the tag name DQ, the "first name character" is "D", the "second name character" is "Q")


<table border=1>
<tr><th>Tag Name</th><th>Data Length</th><th>Meaning</th><th>Encoding</th></tr>
<tr><td>ww</td><td>0</td><td>Write Allow</td><td>(No Data) Presence at beginning of tag list prevents bootloader from enabling hardware write protect of SPI FLASH. This can be used to allow incremental updates to the tag list during multiple manufacturing phases. See [[#Write Protect Behavior]].</td></tr>
<tr><td>wp</td><td>0</td><td>Write Protect</td><td>(No Data) Change 'ww' to 'wp' to enable hardware write protect. Note that if the first tag is not 'ww', write protect will be enabled, so if the entire tag list is written at once (no incremental tagging), it is not necessary to include the 'wp' tag.</td></tr>
<tr><td>SN</td><td>20</td><td>Serial Number</td><td>TCL1xxxxxxxxx (x is 16 digits)</td></tr>
<tr><td>B#</td><td>20</td><td>Motherboard Number</td><td>TBD</td></tr>
<tr><td>U#</td><td>40</td><td>UUID#</td><td>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx (Random Generate)</td></tr>
<tr><td>P#</td><td>12</td><td>Part Number</td><td> 1CL1XZU0kD0/……</td></tr>
<tr><td>M#</td><td>8</td><td>Product Model Number</td><td>TBD</td></tr>
<tr><td>LA</td><td>varies</td><td>Product Localization (Language)</td><td>At best a hint. It is the POSIX locale (LANG environment variable) to use as default; if not present, the "en_US.UTF-8" locale will be used. (Older systems have values like "USA" and "ESP" in this tag; those values should be treated as equivalent to "en_US.UTF-8" and "es_AR.UTF-8", respectively. We need a table of all previous values ... .)</td></tr>
<tr><td>KA</td><td>256</td><td>Keyboard ASCII map</td><td>Specifies the keyboard key numbers for the US ASCII characters on this system's keyboard. This lets Open Firmware automatically adapt to different keyboard layouts. See [[#Keyboard ASCII Map]]</td></tr>
<tr><TD>KM</td><td>varies</td><td>Keyboard Model</td><td>Always "olpc" on the XO-1.</td></tr>
<tr><TD>KL</td><td>varies</td><td>Keyboard Layout</td><td>Layout of the keyboard: "es", "fi", "us,ar", "us,ru"; see table below for settings for OLPC Keyboards</td></tr>
<tr><TD>KV</td><td>varies</td><td>Keyboard Variant</td><td>Keyboard variant for OLPC Keyboards</td></tr>
<tr><td>CC</td><td>16</td><td>Configuration Code</td><td>TBD</td></tr>
<tr><td>F#</td><td>2</td><td>Factory Number</td><td>Example: F6</td></tr>
<tr><td>L#</td><td>2</td><td>Line Number</td><td>H</td></tr>
<tr><td>S#</td><td>12</td><td>SWID #</td><td>Base On Image File name 182-xxxxx.img</td></tr>
<tr><td>T#</td><td>12</td><td>TSWID#</td><td>20061113-B001</td></tr>
<tr><td>WM</td><td>12</td><td>Wireless MAC #</td><td>TBD</td></tr>
<tr><td>MN</td><td>4</td><td>Model Name</td><td>TBD</td></tr>
<tr><td>BV</td><td>12</td><td>BIOS Version</td><td>BQ2A42</td></tr>
<tr><td>TS</td><td>2</td><td>Test Station</td><td>ASSY/RUNIN/FINAL/FQA/DOWNLOAD</td></tr>
<tr><td>SS</td><td>2</td><td>SMT Status</td><td>START/END</td></tr>
<tr><td>FQ</td><td>2</td><td>FQA</td><td>START/END</td></tr>
<tr><td>SD</td><td>8</td><td>SWDL Date</td><td>14/11/2006</td></tr>
</table>
</table>


:†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is ''not'' the actual KA string, which is described [[Manufacturing_Data_Specification#Keyboard ASCII Map|in the spec]], but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).
===Keyboards===
<b>This keyboard specification is currently a draft; note that no prototype systems include this information</b>


===XO-4===
The scheme selected (using the KM, KL, and KV flags) maps directly to the X
<table border=1>
Window System Xkb extension.
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>


<tr><td>291</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>USA</td><td>US wall</td><td>1 GHz</td><td>8686</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>Developers, other</td><td></td></tr>
The KM field is the model of the keyboard: for the XO-1, it will always have the value of "olpc", unless some different keyboard is designed in subsequent production. We include it here for completeness and to allow for such a different keyboard model sometime in the future, or this manufacturing data scheme to be easily used on other systems.


<tr><td>292</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8686</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Developers, others</td><td></td></tr>
The KL field specifies the layouts on the keyboard. Keyboards may have multiple layouts, which can be switched between at run time. The names for these layouts generally bear resemblance to ISO country codes, as a given keyboard is often (but not necessarily) in use in particular countries. One or more layouts can be present on a keyboard. If there are multiple layouts, the layout codes are separated by the "," character.


<tr><td>293</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8686</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>Developers, other</td><td></td></tr>
The KV field specifies one or more variants on a layout. Example variants include strings such as "olpc", "olpc2", "dvorak", "winkeys", ",bksl,".


<tr><td>294</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>US wall</td><td>1 GHz</td><td>8686</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>Developers, other</td><td></td></tr>

<tr><td>295</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>USA</td><td>US wall</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>NiMH</td><td>Developers, other</td><td></td></tr>

<tr><td>296</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>NiMH</td><td>Developers, other</td><td></td></tr>

<tr><td>297</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4B</td><td>no</td><td>us</td><td>USA</td><td>US wall</td><td>1.2 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>NiMH</td><td>Developers, other</td><td></td></tr>

<tr><td>298</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4C</td><td>no</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>NiMH</td><td>Developers, other</td><td></td></tr>

<tr><td>299</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>USA</td><td>US Wall Darfon</td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>Quanta IQC</td><td></td></tr>

<tr><td>300</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4B</td><td>no</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Developers</td><td></td></tr>

<tr><td>301</td><td>[[OLPC_Spanish_Non-membrane_Keyboard|Spanish HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4A</td><td>yes</td><td>es</td><td>URY</td><td>US Brick</td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>LatAm developers, other</td><td></td></tr>

<tr><td>302</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>EU Wall</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Uruguay</td><td>Deployment Keys: http://dev.laptop.org/~reuben/UY/ <br> Standard OLPC Image</td></tr>

<tr><td>303</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>AUS</td><td> AUS Brick </td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Australia - Single Pack</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image:http://download.laptop.org.au/XO/F18/13.1.0/XO-system/1a-pre-v4/15023OE4.zd</td></tr>

<tr><td>304</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>AUS</td><td> None </td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Australia - 5 Pack</td><td>Deployment Keys: None <br> Custom Image: http://system.one-education.org/au1c/images/testing/33043xx4/33043xx4.zd</td></tr>

<tr><td>305</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4B</td><td>no</td><td>us</td><td>USA</td><td>US Wall</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Charlotte</td><td></td></tr>

<tr><td>306</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>Developers, other</td><td></td></tr>

<tr><td>307</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_MX.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>DOM</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>DR Empowering Action</td><td></td></tr>

<tr><td>308</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>AUS</td><td> AUS Brick </td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>Australia - Single Pack</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image:http://download.laptop.org.au/XO/F18/13.2.0/XO-system/1a/</td></tr>

<tr><td>309</td><td>AUS HS KB</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_AU.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>AUS</td><td> None </td><td>1.2 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiFePo4</td><td>Australia - 5 Pack</td><td>Deployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip <br> Custom Image: http://harvest.one-education.org/public/release-images/ 33029xx4.zd</td></tr>

<tr><td>310</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us,gr</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>GRC</td><td>EU Brick</td><td>1 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>HELLENIC MEDICAL SOCIETY OF NY</td><td>

<tr><td>311</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>NPL</td><td>EU Brick</td><td>1 GHz</td><td>8686</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>Nepal</td><td></td></tr>

<tr><td>312</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8686</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>Hands Along the Nile Development Services, Inc (HANDS)</td><td></td></tr>

<tr><td>313</td><td>[[OLPC_English_Non-membrane_Keyboard|English HS KB]]</td><td>yes</td><td>ww</td><td>olpcm</td><td>us</td><td>olpc</td><td>en_FJ.UTF-8</td><td>CL4A</td><td>yes</td><td>us</td><td>FJI</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td> LiFePo4</td><td>International School Suva</td><td></td></tr>

<tr><td>314</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>COL</td><td>US Wall</td><td>1 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>LiFePo4</td><td>FUNDAUNIBAN</td><td></td></tr>

<tr><td>315</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>COL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Manuelita</td><td></td></tr>

<tr><td>316</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Inventory, other</td><td></td></tr>

<tr><td>317</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>NIC</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>NIC</td><td>Deployment Keys: http://dev.laptop.org/~reuben/nic/ <br> Custom Image: http://download.laptop.org/xo-4/os/official/13.2.1-14/32014o4.zd </td></tr>

<tr><td>318</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td> INVENOTRY FOR SOUTH AMERICA</td><td></td></tr>

<tr><td>319</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_CA.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>CAN</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Canada</td><td></td></tr>

<tr><td>320</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>NPL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiFePo4</td><td>Nepal</td><td></td></tr>

<tr><td>321</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>EU Wall</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>Uruguay</td><td>Deployment Keys: http://dev.laptop.org/~reuben/UY/ <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/</td></tr>

<tr><td>322</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>US Wall</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>Latam </td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/</td></tr>

<tr><td>323</td><td>[[OLPC_Portuguese_Keyboard|Portuguese keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>br</td><td>olpc</td><td>pt_BR.UTF-8</td><td>CL4</td><td>yes</td><td>pt</td><td>AGO</td><td>EU Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>Angola</td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/</td></tr>

<tr><td>324</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>NIG</td><td>EU Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>Nigeria</td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/</td></tr>

<tr><td>325</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_UY.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>URY</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>Latam </td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/</td></tr>

<tr><td>326</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>USA</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td> </td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.7-19/
</td></tr>

<tr><td>327</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4B</td><td>no</td><td>us</td><td>RWA</td><td>EU Wall</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>2 GB</td><td>LiPoly</td><td>CBU Format Rwanda</td><td>Deployment Keys: http://dev.laptop.org/~reuben/RWA/</td></tr>

<tr><td>328</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL4</td><td>yes</td><td>es</td><td>COL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>TI TECNOLOGIA INFORMATICA</td><td></td></tr>

<tr><td>329</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>COL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>4 GB</td><td>1 GB</td><td>LiPoly</td><td></td><td></td></tr>

<tr><td>330</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_CO.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>COL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>8 GB</td><td>1 GB</td><td>LiPoly</td><td></td><td></td></tr>

<tr><td>331</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>no</td><td>wp</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>NIC</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>NIC</td><td>Deployment Keys: http://dev.laptop.org/~reuben/nic/ <br> Custom Image: http://dev.laptop.org/~german/2016/xo4/v2/ </td></tr>

<tr><td>332</td><td>[[OLPC_English_Keyboard|English keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>us</td><td>olpc</td><td>en_US.UTF-8</td><td>CL4</td><td>yes</td><td>us</td><td>NPL</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td> Nepal </td><td>Deployment Keys: <br> Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.7-19/</td></tr>

<tr><td>333</td><td>[[OLPC_Argentina_Keyboard|Spanish keyboard]]</td><td>yes</td><td>ww</td><td>olpc</td><td>es</td><td>olpc</td><td>es_NI.UTF-8</td><td>CL4B</td><td>no</td><td>es</td><td>NIC</td><td>US Brick</td><td>1 GHz</td><td>8787</td><td>16 GB</td><td>2 GB</td><td>LiPoly</td><td>NIC</td><td></td></tr>


<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>


<table border=1>
<tr><th>Keyboard Layout</th><th>KM</th><th>KL</th><th>KV</th><th>Comment</th></tr>
<tr><td>[[OLPC_Keyboard_layouts|USInternational_Keyboard]]</td><td>olpc</td><td>us</td><td>olpc</td><td></td></tr>
<tr><td>[[OLPC_Argentina_Keyboard]]</td><td>olpc</td><td>es</td><td>olpc</td><td>(Spanish)</td></tr>
<tr><td>[[OLPC_Brasil_Keyboard]]</td><td>olpc</td><td>br</td><td>olpc</td><td>(Portuguese)</td></tr>
<tr><td>[[OLPC_Ethiopia_Keyboard]]</td><td>olpc</td><td>us,et</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[OLPC_Libya_Keyboard]]</td><td>olpc</td><td>us,ara</td><td>olpc2,olpc</td><td>(Arabic)</td></tr>
<tr><td>[[OLPC_Nigeria_Keyboard]]</td><td>olpc</td><td>ng</td><td>olpc</td><td>(for West Africa)</td></tr>
<tr><td>[[OLPC_Rwanda_Keyboard]]</td><td>olpc</td><td></td><td></td><td>(not current)</td></tr>
<tr><td>[[OLPC_Thailand_Keyboard]]</td><td>olpc</td><td>us,th</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[Urdu_Keyboard]]</td><td>olpc</td><td>us,ur</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[Cyrillic_Keyboard]]</td><td>olpc</td><td>us,ru</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[OLPC_Turkey_Keyboard]]</td><td>olpc</td><td>us,tr</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[OLPC_Nepal_Keyboard]]</td><td>olpc</td><td>us,np</td><td>olpc2,olpc</td><td>(Not final)</td></tr>
<tr><td>[[:Image:MO-MP-v1.png|Mongolian_Keyboard]]</td><td>olpc</td><td>us,mo</td><td>olpc2,olpc</td><td></td></tr>
<tr><td>[[:Image:KA-MP-v1.png|Kazakhstan_Keyboard]]</td><td>olpc</td><td>us,kz</td><td>olpc2,olpc</td><td></td></tr>
</table>
</table>
====Keyboard ASCII Map====


:†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is ''not'' the actual KA string, which is described [[Manufacturing_Data_Specification#Keyboard ASCII Map|in the spec]], but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).
The KA tag specifies the keyboard key IDs where the US ASCII characters appear on the keyboard. It is primarily intended for use by Open Firmware, whose command character set is US ASCII. This tag makes it unnecessary to revise the firmware for new keyboard layouts.


===XO-Laptop===
The tag value consists of 256 bytes of binary data, organized as 128 byte pairs. Each byte pair specifies the modifier state and key number for a 7-bit US ASCII character. The first byte pair is for ASCII code 0x00 (NUL), the second for ASCII code 0x01 (SOH, i.e. Ctrl-A), and so on until the final pair for ASCII code 0x7f (DEL).


<table border=1>
The first byte of each pair specifies the modifier bits and the second byte specifies the key number. The key number is the physical layout key ID, as shown in the "key" column of the table at the beginning of [[OLPC_Keyboard_layouts]]. (That key number is also the "Key Number" from the original IBM documentation for PC keyboards. For example, key number 2 corresponds to the digit "1" on most keyboard layouts.)
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>


<tr><td>400</td><td>English Grid</td><td></td><td></td><td></td><td></td><td></td><td></td><td>NL3</td><td></td><td></td><td></td><td>US Brick</td><td>N2940</td><td>802.11abgn1x1</td><td>32 GB</td><td>4 GB</td><td>LiPoly</td><td></td><td></td></tr>
The modifier byte - the first byte in each pair - is a bitmask of the modifiers that must be present in conjunction with the indicated key number, as follows:

<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>

</table>

===Infinity===


<table border=1>
<table border=1>
<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>
<tr><th>Bit Number</th><th>Bit Mask</th><th>Modifier</th></tr>

<tr><td>0</td><td>0x01</td><td>Shift</td></tr>
<tr><td>500</td><td>English</td><td></td><td></td><td></td><td></td><td></td><td></td><td>ED20 A03</td><td></td><td></td><td></td><td>AU Brick</td><td>N4100</td><td>802.11 AC (2 x 2)</td><td>128 GB</td><td>4 GB</td><td>LiPoly</td><td></td><td></td></tr>
<tr><td>1</td><td>0x02</td><td>Ctrl</td></tr>

<tr><td>2</td><td>0x04</td><td>AltGr</td></tr>
<tr><td>501</td><td>English</td><td></td><td></td><td></td><td></td><td></td><td></td><td>ED20 A04</td><td></td><td></td><td></td><td>AU Brick</td><td>N4100</td><td>802.11 AC (2 x 2)</td><td>128 GB</td><td>4 GB</td><td>LiPoly</td><td></td><td></td></tr>
<tr><td>3</td><td>0x08</td><td>Fn</td></tr>

<tr><th>SKU(s)</th><th>Keyboard Layout</th><th>AK</th><th>WW-WP</th><th>KM</th><th>KL</th><th>KV</th><th>LO</th><th>[[#Model_Names|Model]]</th><th>Touch ?</th><th>KA Reference†</th><th>LA</th><th>Adapter</th><th>CPU</th><th>WLAN</th><th>FLASH</th><th>RAM</th><th>Battery</th><th>Comment</th><th>Deployment Keys</th></tr>

</table>
</table>


==Model Names==
Combinations of bits are possible. For example, modifier value 0x03 means that both Shift and Ctrl must be active.
The model names used by OLPC (XO-1, XO-4, etc.) are not the same as those used by our manufacturers. Here are the correspondences:


* CL1 = XO-1 with resistive/capacitive touchpad
The map should not contain entries for control characters for which there is no dedicated key and that are ordinarily generated by typing a regular character with Ctrl held down, for example Ctrl-A. The firmware will infer such control characters. The map should contain entries for control characters with dedicated keys (for example Esc, Tab, Enter), and for control characters that are on keys that do not correspond to the non-control version of the same character. This rule implies that the control-character region of the map will typically be sparsely populated, and that the Ctrl modifier bit will appear infrequently.
* CL1A = XO-1 with capacitive touchpad only
* CL1B = XO-1.5
* CL1C = XO-1.5 HS (High School) w. mechanical keyboard and blue color
* CL2 = XO-1.75 w. membrane keyboard
* CL2A = XO-1.75 w. mechanical keyboard
* CL3 = XO-3 (never produced)
* CL4 = XO-4 Touch
* CL4A = XO-4 HS Touch w. mechanical keyboard
* CL4B = XO-4
* CL4C = XO-4 HS w. mechanical keyboard
* NL3 = XO Laptop
* ED20 = Infinity


==Useful links==
For ASCII codes with no corresponding key, the map entry should be 0,0.
:[http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm ISO Country Codes]
:[https://www.cia.gov/library/publications/the-world-factbook/appendix/appendix-d.html CIA World Factbook Table of ISO 3166 Codes (includes three-letter codes not given in the ISO document above)]
:[http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO Language Codes]
:[http://www.iana.org/assignments/language-subtag-registry IANA Language Tag Registry]
:[http://en.wikipedia.org/wiki/Mains_electricity_by_country Mains electricity by country, with power specs and plug descriptions]
:[[wikipedia:Language code]]
:[[wikipedia:Country code]]
:[[XO_1.75_Parts|Preproduction components in XO-1.75]]
:[[XO_4_Parts|Preproduction components in XO-4]]

[[Category:XO localization]]
[[Category:Developers]]
[[Category:Firmware]]
[[Category:Hardware]]
[[Category:XO-1]]
[[Category:XO-1.5]]
[[Category:XO-1.75]]
[[Category:XO-4]]

Latest revision as of 08:46, 17 April 2019

  This page is monitored by the OLPC team.

This document defines the content of manufacturing data on OLPC laptops.

Manufacturing data is information about a specific OLPC laptop that is known at time of manufacture and stored in the unit's SPI FLASH. It includes basic data such as the product model, part number, and motherboard model number; unique identifying information such as the serial number, unique user ID, and WLAN MAC address; and language localization information such as the keyboard version and language locale. There are also flag indicating the anti-theft "status" of the laptop (activated, developer).

See the Manufacturing Data Specification for more details about predefined manufacturing data tags and how they are stored.

SKU(s)

XO-1

SKU(s)Keyboard LayoutAKKMKLKVLOModelKA Reference†LAComment
01US International keyboardyesolpcusolpcen_US.UTF-8CL1usDevelopers, other
02US International keyboardyesolpcusolpcen_US.UTF-8CL1usDevelopers, other
03Spanish keyboardnoolpcesolpces_MX.UTF-8CL1esMexico/Peru
04Spanish keyboardnoolpcesolpces_MX.UTF-8CL1esPeru
05Spanish keyboardnoolpcesolpces_UY.UTF-8CL1esUruguay, Paraguay
06Spanish keyboardnoolpcesolpces_UY.UTF-8CL1esUruguay
07Arabic keyboardyesolpcus,araolpc2,olpcar_EG.UTF-8CL1usIraq, Palestine, Egypt
08Thai keyboardyesolpcus,tholpc2,olpcth_TH.UTF-8CL1usThailand
09?Nigerian keyboardyesolpcngolpcen_US.UTF-8CL1us(?)(US/International keyboard only) for Igbo, Yoruba, and Hausa
10Portuguese keyboardyesolpcbrolpcpt_BR.UTF-8CL1ptBrazil
11Amharic keyboardnoolpcus,etolpc2,basicam_ET.UTF-8CL1usEthiopia
12?Urdu keyboardyesolpcus,pkolpc2,olpcur_PK.UTF-812usPakistan
13Mongolian keyboardyesolpcus,mnolpc2,olpcmn_MN.UTF-8CL1usMongolia
14Devanagari keyboardyesolpcus,inolpc2,olpchi_IN.UTF-8CL1usIndia
15?Nepali keyboardyesolpcus,npolpc2,olpcne_NP.UTF-815usNepal
16?
17?Portuguese keyboardyesolpcbrolpcpt_BR.UTF-8CL1ptBrazil
18Spanish keyboardnoolpcesolpces_UY.UTF-8CL1esUruguay
19US International keyboardyesolpcusolpcen_US.UTF-8CL1usDevelopers, other
20US International keyboardyesolpcusolpcen_US.UTF-8CL1usAlabama
21US International keyboardyesolpcusolpcen_US.UTF-8CL1usRwanda
22Dari keyboardyesolpcus,afolpc2,fa-olpcfa_AF.UTF-8CL1usAfghanistan
23Italian keyboardyesolpcitolpcit_IT.UTF-8CL1itItaly
24French Canadian keyboardyesolpccaolpcht_HT.UTF-8CL1htKreyòl for Haiti
25Khmer keyboardyesolpcus,kholpc2,olpckm_KH.UTF-8CL1usCambodia
26Spanish keyboardyesolpcesolpces_UY.UTF-8CL1esDevelopers, General Spanish laptops
27US International keyboardyesolpcusolpcen_US.UTF-8CL1us
28US International keyboardyesolpcusolpcen_US.UTF-8CL1usNigeria
29????????CL1usPanama
30Cyrillic keyboardyesolpcus,ruolpc2,olpcuk_UA.UTF-8CL1usRussia
31????????CL1usSenegal
32????????CL1usSri Lanka
33Turkish Keyboardyes?????CL1usTurkey
34?Mongolian keyboardyesolpcus,mnolpc2,olpcmn_MN.UTF-8CL1usMS Mongolia
35?Spanish keyboardnoolpcesolpces_MX.UTF-8?CL1AesMS Uruguay
36?Thai keyboardyesolpcusolpcen_US.UTF-8?CL1usMS Thailand
37?US International keyboardyesolpcusolpcen_US.UTF-8CL1AusMS Rwanda
38?US International keyboardyesolpcusolpcen_US.UTF-8CL1AusMS South Africa
39US International keyboardyesolpcusolpcen_US.UTF-8CL1AusDevelopers, other
40Spanish keyboardnoolpcesolpces_UY.UTF-8CL1AesUruguay
41Arabic keyboardyesolpcus,araolpc2,olpcar_EG.UTF-8CL1Aus
42Portuguese keyboardyesolpcbrolpcpt_BR.UTF-8CL1AptBrazil
43Mongolian keyboardyesolpcus,mnolpc2,olpcmn_MN.UTF-8CL1AusMongolia
44US International keyboardyesolpcusolpcen_US.UTF-8CL1AusRwanda
45US International keyboardyesolpcusolpcen_GH.UTF-8CL1AusGhana
46Nepali keyboardyesolpcus,npolpc2,olpcne_NP.UTF-8CL1AusNepal
47Spanish keyboardnoolpcesolpces_MX.UTF-8CL1AesPeru Custom Keys: http://dev.laptop.org/~reuben/per/
48Spanish keyboardyesolpcesolpces_MX.UTF-8CL1AesMS Peru, MS Colombia
49?Spanish keyboardyesolpcesolpces_UY.UTF-8CL1AesMS Uruguay
50Thai keyboardyesolpcusolpcen_US.UTF-8?CL1usMS Thailand
51US International keyboardyesolpcusolpcen_US.UTF-8CL1AusMS Rwanda
52US International keyboardyesolpcusolpcen_US.UTF-8CL1AusMS South Africa
54N/AN/AN/AN/AN/AN/AN/AN/AN/AN/A
55Spanish keyboardnoolpcesolpces_NI.UTF-8CL1AesNICNicaragua (new TP)
56US International keyboardyesolpcusolpcen_US.UTF-8CL1AusPNGOceania
57Spanish keyboardnoolpcesolpces_NI.UTF-8CL1esNICNicaragua (old TP, not manufactured but field-updated)
58Dari keyboardyesolpcus,afolpc2,fa-olpcfa_AF.UTF-8CL1AusAFGAfghanistan
59Spanish keyboardnoolpcesolpces_CO.UTF-8CL1AesCOLColombia
60US International keyboardyesolpcusolpcen_SZ.UTF-8CL1AusSWZSwaziland
61Arabic keyboardyesolpcus,araolpc2,olpcar_IQ.UTF-8CL1AusIRQIraq
62US International keyboardyesolpcusolpcen_US.UTF-8CL1AusGRCGreece - EU Adapter
63Azerty keyboardyesolpcfrolpcfr_ML.UTF-8CL1AazertyRMMMali-EU
64Azerty keyboardyesolpcfrolpcfr_BI.UTF-8CL1AazertyBDIBurundi-EU
65Portuguese keyboardyesolpcbrolpcpt_MZ.UTF-8CL1AptMOZMozambique-EU
66Spanish keyboardyesolpcesolpces_SV.UTF-8CL1AesSLVEl Salvador - US Power Adapter
67US International keyboardyesolpcusolpcen_AU.UTF-8CL1AusAUSAustralia - No Power Adapter
68US International keyboardyesolpcusolpcen_IT.UTF-8CL1AusITAItaly-EU Adapter
SKU(s)Keyboard LayoutAKKMKLKVLOModelKA Reference†LAComment
†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is not the actual KA string, which is described in the spec, but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).

XO-1.5

SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelKA Reference†LAAdapterFLASHRAMCommentDeployment Keys
98US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusUS wall4 GB1 GBDevelopers, other
99US International keyboardyeswwolpcusolpcen_US.UTF-8CL1Busnone4 GB1 GBother (5-pack)
100US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusUSAUS brick4 GB1 GBDevelopers, other
101Spanish keyboardnowpolpcesolpces_AR.UTF-8CL1BesARGAR wall4 GB1 GBArgentinahttp://dev.laptop.org/~reuben/arg/
102Spanish keyboardnowpolpcesolpces_MX.UTF-8CL1BesPERUS wall2 GB512 MBPeruhttp://dev.laptop.org/~reuben/per/
103Spanish keyboardnowpolpcesolpces_CO.UTF-8CL1BesCOLUS Brick4 GB1 GBColombia
104US International keyboardyeswwolpcusolpcen_AU.UTF-8CL1BusAUS NONE 4 GB1 GBAustraliaDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image: http://download.laptop.org.au/XO/F11/10.1.3/au3/XO-1.5/
105Spanish keyboardnowpolpcesolpces_MX.UTF-8CL1BesMEXUS wall4 GB1 GBMexico
106US International keyboardyeswwolpcusolpcen_ID.UTF-8CL1BusIDNEU wall4 GB1 GBIndonesia
107Portuguese keyboardyeswwolpcbrolpcpt_BR.UTF-8CL1BptBRAUS wall4 GB1 GBBrazil
108US International keyboardyeswwolpcusolpcen_CA.UTF-8CL1BusCANUS wall4 GB1 GBCanada
109US International keyboardyeswwolpcusolpcen_PH.UTF-8CL1BusPHLUS wall4 GB1 GBPhilippines
110US International keyboardyeswwolpcusolpcen_AN.UTF-8CL1BusANTUS wall4 GB1 GBNetherlands Antilles
111US International keyboardyeswwolpcusolpcen_NL.UTF-8CL1BusNLDEU wall4 GB1 GBNetherlands
112US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusUSAEU wall4 GB1 GBOLPC EU Developers
113African AZERTY keyboardyeswwolpcfrolpcCL1BEU brick4 GB1 GBFrancophone Africa
114Spanish keyboardnowpolpcesolpces_NI.UTF-8CL1BesNICUS wall4 GB1 GBNicaragua -- Custom Image: http://dev.laptop.org/~dsd/nic-xo1.5-costa/http://dev.laptop.org/~reuben/nic/
115Spanish keyboardnowpolpcesolpces_UY.UTF-8CL1BesURYEU wall2 GB512 MBUruguayhttp://dev.laptop.org/~reuben/UY/
116Spanish HS KBnowpolpcmesolpces_UY.UTF-8CL1CesURYEU wall4 GB1 GBUruguayhttp://dev.laptop.org/~reuben/UY/
117Spanish keyboardnowpolpcesolpces_MX.UTF-8CL1BesPERUS wall4 GB512 MBPeruhttp://dev.laptop.org/~reuben/per/
118Arabic keyboardyeswwolpcus,araolpc2,olpcar_SY.UTF-8CL1BusSYREU wall4 GB1 GBPalestinian Territories, others
119Azerty keyboardyeswwolpcusolpcfr_FR.UTF-8CL1BusSENEU wall4 GB1 GBSenegal & generic Francophone Africa
120US International keyboardyeswwolpcusolpcen_JM.UTF-8CL1BusJAMUS wall4 GB1 GBJamaica
121Spanish HS KBnowpolpcmesolpces_UY.UTF-8CL1CesURYEU wall8 GB1 GBUruguayhttp://dev.laptop.org/~reuben/UY/
122US International keyboardyeswwolpcusolpcen_BB.UTF-8CL1BusBRBUS wall4 GB1 GBBarbados
123US International keyboardyeswwolpcusolpcen_FM.UTF-8CL1BusFSMUS wall4 GB1 GBMicronesia
124Dari keyboardyeswwolpcus,afolpc2,fa-olpcfa_AF.UTF-8CL1BusAFGEU wall4 GB1 GBAfghanistanDari or Pashto?
125Hebrew keyboardyesww????CL1BusISREU wall4 GB1 GBIsrael
126N/A
127Portuguese keyboardyeswwolpcbrolpcpt_BR.UTF-8CL1BptAGOEU wall4 GB1 GBAngola
128English HS KByeswwolpcmenolpcen_US.UTF-8CL1CusUSAUS brick4 GB1 GBDevelopers
129US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusZMBEU wall4 GB1 GBZambia
130Amharic keyboardyeswwolpcus,etolpc2,basicam_ET.UTF-8CL1BusETHEU wall4 GB1 GBEthiopia
131Spanish keyboardnowpolpcesolpces_PY.UTF-8CL1BesPRYEU wall4 GB1 GBParaguayhttp://dev.laptop.org/~reuben/PY/ and Custom Image: http://www.paraguayeduca.org/osbuild/os376py.zd
132US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusLKAEU wall4 GB1 GBSri Lanka
133US International keyboardyeswwolpcusolpcen_CA.UTF-8CL1BusCANUS brick4 GB1 GBCanada
134Spanish keyboardyeswwolpcesolpces_SV.UTF-8CL1BesSLVUS brick4 GB1 GBEl Salvador
135Spanish HS KByeswpolpcmesolpces_MX.UTF-8CL1CesPERBlue US wall2 GB512 MBPeruKeys: http://dev.laptop.org/~reuben/per/
Custom Image: ftp://ftp.perueduca.edu.pe/XO_OLPC/secundaria/
136Spanish HS KBnowpolpcmesolpces_UY.UTF-8CL1CesURYEU wall8 GB1 GBUruguayKeys: http://dev.laptop.org/~reuben/UY/
Custom Image: UY Windows XP
137US International keyboardyeswpolpcusolpcen_US.UTF-8CL1BusRWAEU wall2 GB512 MBRwandaKeys: http://dev.laptop.org/~reuben/RWA/
138Spanish keyboardyeswwolpcesolpces_MX.UTF-8CL1BesHNDUS brick4 GB1 GBHonduras
139US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusPAKEU brick4 GB1 GBPakistan
140Spanish keyboardnowpolpcesolpces_CR.UTF-8CL1BesCRIUS Brick4 GB1 GBCosta Rica
141US International keyboardyeswpolpcusolpcen_US.UTF-8CL1BusRWAEU wall4 GB1 GBRwandaKeys: http://dev.laptop.org/~reuben/RWA/
142US International keyboardyeswwolpcusolpcen_PH.UTF-8CL1BusPHLUS Brick4 GB1 GBPhilippines
143Armenian keyboard layoutyeswwolpcus,amolpc2,olpc-phonetichy_AM.UTF-8CL1BusARMEU Brick4 GB1 GBArmeniaCustom Image: http://dev.laptop.org/~reuben/armenia_10.1.3-xo1.5/os1-4g.zd
144Spanish keyboardnowpolpcesolpces_MX.UTF-8CL1BesHNDUS Brick8 GB1 GBHonduras
145Spanish keyboardnowpolpcesolpces_CO.UTF-8CL1BesCOLUS Wall2 GB512 MBColombia
146Dari keyboardyeswwolpcus,afolpc2,fa-olpcfa_AF.UTF-8CL1BusAFGEU Brick4 GB1 GBAfghanistanDari
147US International keyboardyeswwolpcusolpcen_PH.UTF-8CL1BusPHLUS Brick4 GB1 GBPhilippinesDeployment Keys: http://dev.laptop.org/~reuben/PHL/
148Thai keyboardyeswwolpcus,tholpc2,olpcth_TH.UTF-8CL1BusTHAUS Brick4 GB1 GBThailand
149US International keyboardyeswwolpcusolpcnl_NL.UTF-8CL1BusSUREU Brick4 GB1 GBSuriname
150US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusMHLUS Wall4 GB1 GBMarshall Islands
151Azerty keyboardyeswwolpcusolpcfr_FR.UTF-8CL1BusCMREU wall2 GB512 MBCameroon
152US International keyboardyeswwolpcusolpcen_US.UTF-8CL1BusCMREU wall2 GB512 MBCameroon
153US International keyboardnowpolpcusolpcen_US.UTF-8CL1BusRWAEU wall2 GB512 MBRwandaCustom Image: http://dev.laptop.org/~reuben/os5.zd2
Keys: http://dev.laptop.org/~reuben/RWA/
154English HS KByeswwolpcmenolpcen_AU.UTF-8CL1CusAUSNone4 GB1 GBAustraliaDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au886/
SKU(s)Keyboard LayoutAKWW/WPKMKLKVLOModelKA Reference†LAComment
†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is not the actual KA string, which is described in the spec, but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).

XO-1.75


SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelKA Reference†LAAdapterCPUFLASHRAMCommentDeployment Keys
198US Int'l keyboardyeswwolpcusolpcen_US.UTF-8CL2usUS Wall800 MHz4 GB512 MBDevelopers, other
199English HS KByeswwolpcmusolpcen_US.UTF-8CL2AusUS Brick800 MHz4 GB512 MBDevelopers, other
200US Int'l keyboardyeswwolpcusolpcen_US.UTF-8CL2usUS Brick800 MHz4 GB512 MBDevelopers, other
201English HS KByeswwolpcmusolpcen_US.UTF-8CL2AusUS Wall800 MHz8 GB1 GBDevelopers, other
202Portuguese keyboardyeswwolpcbrolpcpt_BR.UTF-8CL2ptBRAUS Brick800 MHz8 GB1 GBDevelopers, Brazil
203US Int'l keyboardyeswwolpcusolpcen_US.UTF-8CL2usUS Wall800 MHz4 GB512 MBRAMP, Developers, other
204English HS KByeswwolpcmusolpcen_US.UTF-8CL2AusUS Wall800 MHz8 GB1 GBRAMP, Developers, other
205Spanish keyboardnowpolpcesolpces_NI.UTF-8CL2esNICUS Brick800 MHz4 GB1 GBNicaragua -- Custom Image: http://dev.laptop.org/~reuben/nic/
206Spanish keyboardnowpolpcesolpces_UY.UTF-8CL2esURYEU Wall800 MHz8 GB1 GBUruguayhttp://dev.laptop.org/~reuben/UY/
207Spanish keyboardyeswwolpcesolpces_SV.UTF-8CL2esSLVUS Brick800 MHz4 GB1 GBEl Salvador
208Spanish keyboardnowpolpcesolpces_MX.UTF-8CL2esHNDUS Brick800 MHz4 GB1 GBHondurashttp://dev.laptop.org/~reuben/hn.zip
209US International keyboardyeswwolpcusolpcen_ID.UTF-8CL2usIDNEU Brick800 MHz4 GB1 GBIndonesia
210Spanish keyboardyeswwolpcesolpces_MX.UTF-8CL2esPERUS Brick800 MHz4 GB512 MBPeruhttp://dev.laptop.org/~reuben/per/ and
http://dev.laptop.org/~reuben/peru_amazonas.zip
211Spanish HS KByeswwolpcmesolpces_MX.UTF-8CL2AesPERUS Brick800 MHz4 GB512 MBPeruhttp://dev.laptop.org/~reuben/per/ and
http://dev.laptop.org/~reuben/peru_amazonas.zip
212Azerty keyboardyeswwolpcfrolpcfr_FR.UTF-8CL2azertyHTIUS Brick800 MHz4 GB1 GBHaitiCustom Image: http://dev.laptop.org/~reuben/azerty/
213US Int'l keyboardyeswwolpcusolpcen_US.UTF-8CL2usUSAUS Brick800 MHz4 GB1 GBSF, Developers, other
214English HS KByeswwolpcmusolpcen_CA.UTF-8CL2AusCANUS Brick800 MHz4 GB1 GBICT4E
215English HS KByeswwolpcmusolpcen_CA.UTF-8CL2AusCANUS Brick800 MHz4 GB1 GBCanada - TBSF
216US International keyboardyeswwolpcusolpcen_US.UTF-8CL2usRWAEU Brick800 MHz4 GB1 GBGirls Initiative - Rwanda
217Spanish keyboardyeswwolpcesolpces_MX.UTF-8CL2esUSAUS Brick800 MHz8 GB1 GBOLPC Inventory
218Spanish keyboardyeswwolpcesolpcen_US.UTF-8CL2esUSAUS Wall1 GHz8 GB1 GBQuanta internal testing
219Spanish HS KByeswwolpcmesolpcen_US.UTF-8CL2AesUSAUS Wall1 GHz8 GB1 GBQuanta internal testing
220US International keyboardyeswwolpcusolpcen_PH.UTF-8CL2usPHLUS Wall800 MHz4 GB1 GBPhilippinesDeployment Keys: http://dev.laptop.org/~reuben/PHL/
221US International keyboardyeswwolpcusolpcen_FJ.UTF-8CL2usFJIUS Wall800 MHz4 GB1 GBFiji
222Armenian keyboard layoutyeswwolpcus,amolpc2,olpc-phonetichy_AM.UTF-8CL2usARMEU Brick800 MHz?? GB?? GBArmeniaCustom Image: Yes??
Deployment Keys: Yes??
223Azerty keyboardyeswwolpcfrolpcfr_FR.UTF-8CL2azertyGABEU Wall800 MHz4 GB1 GBGabon
224US Int'l keyboardnowpolpcusolpcen_US.UTF-8CL2usUSAUS Brick1 GHz8 GB1 GBCharlotteDeployment Keys: http://dev.laptop.org/~reuben/clt.zip
225English HS KBnowpolpcmusolpcen_US.UTF-8CL2AusUSAUS Brick1 GHz8 GB1 GBCharlotteDeployment Keys: http://dev.laptop.org/~reuben/clt.zip
226Spanish keyboardnowpolpcesolpces_MX.UTF-8CL2esHNDUS Wall 1 GHz8 GB1 GBGobierno de HondurasStandard Image: 12.1.0
Deployment Keys: http://dev.laptop.org/~reuben/hn.zip
227Azerty keyboardyeswwolpcfrolpcfr_FR.UTF-8CL2azertyTGOEU Brick800 MHz4 GB1 GBAtlantique Télécom TOGO
228US International keyboardyeswwolpcusolpcen_US.UTF-8CL2usBTNUS Brick800 MHz4 GB1 GBOlpc Asia - Buthan
229AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL2AusAUS None 800 MHz8 GB1 GBAustraliaDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au891/XO-1.75/
230Spanish keyboardnowpolpcesolpces_UY.UTF-8CL2esURYEU Wall800 MHz8 GB1 GBUruguay GenericNone
231AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL2AusAUS AUS Brick 800 MHz8 GB1 GBAustralia - Single PackDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image: http://download.laptop.org.au/XO/F14/11.3.1/au891/XO-1.75/
232US Int'l keyboardyeswwolpcusolpcen_PH.UTF-8CL2usPHLUS Brick800 MHz4 GB1 GBPhilippines
233Dari keyboardyeswwolpcus,afolpc2,fa-olpcfa_AF.UTF-8CL2usAFGEU Brick800 MHz4 GB1 GBAfghanistanDari
234US Int'l keyboardyeswwolpcusolpcen_US.UTF-8CL2usRWAEU Wall800 MHz4 GB512 MBRwandaKeys: http://dev.laptop.org/~reuben/RWA/
235Azerty keyboardyeswwolpcfrolpcfr_FR.UTF-8CL2azertyRWAEU Wall800 MHz4 GB512 MBRwandaKeys: http://dev.laptop.org/~reuben/RWA/
236Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL2esCOLUS Brick800 MHz8 GB1 GBColombiaNone
237Spanish keyboardnowpolpcesolpces_NI.UTF-8CL2esNICUS Brick800 MHz8 GB1 GBNicaragua Deployment Keys: http://dev.laptop.org/~reuben/nic/
Custom Image: http://dev.laptop.org/~dsd/nicaragua-2014/
238Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL2esCOLUS Brick800 MHz4 GB1 GBColombiaNone
239Azerty keyboardyeswwolpcfrolpcfr_FR.UTF-8CL2azertyGABEU Brick800 MHz4 GB1 GBGabon
SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelKA Reference†LAAdapterCPUFLASHRAMCommentDeployment Keys
†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is not the actual KA string, which is described in the spec, but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).

XO-4


SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys
291English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusUSAUS wall1 GHz86864 GB1 GBLiFePo4Developers, other
292English HS KByeswwolpcmusolpcen_US.UTF-8CL4AyesusUSAUS Brick1 GHz86868 GB1 GBLiFePo4Developers, others
293English HS KByeswwolpcmusolpcen_US.UTF-8CL4AyesusUSAUS Brick1 GHz86868 GB2 GBLiFePo4Developers, other
294Spanish keyboardyeswwolpcesolpces_UY.UTF-8CL4yesesURYUS wall1 GHz86864 GB1 GBLiFePo4Developers, other
295English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusUSAUS wall1 GHz87878 GB2 GBNiMHDevelopers, other
296English HS KByeswwolpcmusolpcen_US.UTF-8CL4AyesusUSAUS Brick1.2 GHz87878 GB2 GBNiMHDevelopers, other
297English keyboardyeswwolpcusolpcen_US.UTF-8CL4BnousUSAUS wall1.2 GHz87874 GB1 GBNiMHDevelopers, other
298English HS KByeswwolpcmusolpcen_US.UTF-8CL4CnousUSAUS Brick1 GHz87874 GB1 GBNiMHDevelopers, other
299English HS KByeswwolpcmusolpcen_US.UTF-8CL4AyesusUSAUS Wall Darfon1.2 GHz87878 GB2 GBLiFePo4Quanta IQC
300English keyboardyeswwolpcusolpcen_US.UTF-8CL4BnousUSAUS Brick1 GHz87878 GB1 GBLiFePo4Developers
301Spanish HS KByeswwolpcmesolpces_UY.UTF-8CL4AyesesURYUS Brick1.2 GHz87878 GB2 GBLiFePo4LatAm developers, other
302Spanish keyboardnowpolpcesolpces_UY.UTF-8CL4yesesURYEU Wall1 GHz87878 GB1 GBLiFePo4UruguayDeployment Keys: http://dev.laptop.org/~reuben/UY/
Standard OLPC Image
303AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL4AyesusAUS AUS Brick 1 GHz87878 GB1 GBLiFePo4Australia - Single PackDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image:http://download.laptop.org.au/XO/F18/13.1.0/XO-system/1a-pre-v4/15023OE4.zd
304AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL4AyesusAUS None 1 GHz87878 GB1 GBLiFePo4Australia - 5 PackDeployment Keys: None
Custom Image: http://system.one-education.org/au1c/images/testing/33043xx4/33043xx4.zd
305English keyboardyeswwolpcusolpcen_US.UTF-8CL4BnousUSAUS Wall1 GHz87878 GB1 GBLiFePo4Charlotte
306English HS KByeswwolpcmusolpcen_US.UTF-8CL4AyesusUSAUS Brick1.2 GHz87878 GB2 GBLiFePo4Developers, other
307Spanish keyboardnowpolpcesolpces_MX.UTF-8CL4yesesDOMUS Brick1 GHz87874 GB1 GBLiFePo4DR Empowering Action
308AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL4AyesusAUS AUS Brick 1.2 GHz87878 GB2 GBLiFePo4Australia - Single PackDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image:http://download.laptop.org.au/XO/F18/13.2.0/XO-system/1a/
309AUS HS KByeswwolpcmusolpcen_AU.UTF-8CL4AyesusAUS None 1.2 GHz87878 GB2 GBLiFePo4Australia - 5 PackDeployment Keys: http://download.laptop.org.au/XO/keys/pubkeys.zip
Custom Image: http://harvest.one-education.org/public/release-images/ 33029xx4.zd
310English keyboardyeswwolpcus,grolpcen_US.UTF-8CL4yesusGRCEU Brick1 GHz87874 GB1 GBLiFePo4HELLENIC MEDICAL SOCIETY OF NY
311English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusNPLEU Brick1 GHz86864 GB1 GBLiFePo4Nepal
312English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusUSAUS Brick1 GHz86864 GB1 GBLiFePo4Hands Along the Nile Development Services, Inc (HANDS)
313English HS KByeswwolpcmusolpcen_FJ.UTF-8CL4AyesusFJIUS Brick1 GHz87878 GB1 GB LiFePo4International School Suva
314Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL4yesesCOLUS Wall1 GHz87874 GB1 GBLiFePo4FUNDAUNIBAN
315Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL4BnoesCOLUS Brick1 GHz87878 GB1 GBLiFePo4Manuelita
316English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusUSAUS Brick1 GHz87878 GB1 GBLiFePo4Inventory, other
317Spanish keyboardnowpolpcesolpces_NI.UTF-8CL4BnoesNICUS Brick1 GHz87878 GB1 GBLiFePo4NICDeployment Keys: http://dev.laptop.org/~reuben/nic/
Custom Image: http://download.laptop.org/xo-4/os/official/13.2.1-14/32014o4.zd
318Spanish keyboardyeswwolpcesolpces_UY.UTF-8CL4yesesURYUS Brick1 GHz87878 GB1 GBLiFePo4 INVENOTRY FOR SOUTH AMERICA
319English keyboardyeswwolpcusolpcen_CA.UTF-8CL4yesusCANUS Brick1 GHz87878 GB1 GBLiFePo4Canada
320English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusNPLUS Brick1 GHz87878 GB1 GBLiFePo4Nepal
321Spanish keyboardnowpolpcesolpces_UY.UTF-8CL4yesesURYEU Wall1 GHz878716 GB2 GBLiPolyUruguayDeployment Keys: http://dev.laptop.org/~reuben/UY/
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/
322Spanish keyboardyeswwolpcesolpces_UY.UTF-8CL4yesesURYUS Wall1 GHz878716 GB2 GBLiPolyLatam Deployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/
323Portuguese keyboardyeswwolpcbrolpcpt_BR.UTF-8CL4yesptAGOEU Brick1 GHz878716 GB2 GBLiPolyAngolaDeployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/
324English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusNIGEU Brick1 GHz878716 GB2 GBLiPolyNigeriaDeployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/
325Spanish keyboardyeswwolpcesolpces_UY.UTF-8CL4yesesURYUS Brick1 GHz878716 GB2 GBLiPolyLatam Deployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.2-15/
326English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusUSAUS Brick1 GHz878716 GB2 GBLiPoly Deployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.7-19/
327English keyboardnowpolpcusolpcen_US.UTF-8CL4BnousRWAEU Wall1 GHz87878 GB2 GBLiPolyCBU Format RwandaDeployment Keys: http://dev.laptop.org/~reuben/RWA/
328Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL4yesesCOLUS Brick1 GHz878716 GB2 GBLiPolyTI TECNOLOGIA INFORMATICA
329Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL4BnoesCOLUS Brick1 GHz87874 GB1 GBLiPoly
330Spanish keyboardyeswwolpcesolpces_CO.UTF-8CL4BnoesCOLUS Brick1 GHz87878 GB1 GBLiPoly
331Spanish keyboardnowpolpcesolpces_NI.UTF-8CL4BnoesNICUS Brick1 GHz878716 GB2 GBLiPolyNICDeployment Keys: http://dev.laptop.org/~reuben/nic/
Custom Image: http://dev.laptop.org/~german/2016/xo4/v2/
332English keyboardyeswwolpcusolpcen_US.UTF-8CL4yesusNPLUS Brick1 GHz878716 GB2 GBLiPoly Nepal Deployment Keys:
Deployment Image: http://download.laptop.org/xo-4/os/official/13.2.7-19/
333Spanish keyboardyeswwolpcesolpces_NI.UTF-8CL4BnoesNICUS Brick1 GHz878716 GB2 GBLiPolyNIC
SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys
†KA Reference is a hint as to which Keyboard ASCII Map to load for both OFW and the Console. It is not the actual KA string, which is described in the spec, but it can be used with the 'loadkeys' command on the console (It should match the value of the KEYTABLE field in /etc/sysconfig/keyboard).

XO-Laptop

SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys
400English GridNL3US BrickN2940802.11abgn1x132 GB4 GBLiPoly
SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys

Infinity

SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys
500EnglishED20 A03AU BrickN4100802.11 AC (2 x 2)128 GB4 GBLiPoly
501EnglishED20 A04AU BrickN4100802.11 AC (2 x 2)128 GB4 GBLiPoly
SKU(s)Keyboard LayoutAKWW-WPKMKLKVLOModelTouch ?KA Reference†LAAdapterCPUWLANFLASHRAMBatteryCommentDeployment Keys

Model Names

The model names used by OLPC (XO-1, XO-4, etc.) are not the same as those used by our manufacturers. Here are the correspondences:

  • CL1 = XO-1 with resistive/capacitive touchpad
  • CL1A = XO-1 with capacitive touchpad only
  • CL1B = XO-1.5
  • CL1C = XO-1.5 HS (High School) w. mechanical keyboard and blue color
  • CL2 = XO-1.75 w. membrane keyboard
  • CL2A = XO-1.75 w. mechanical keyboard
  • CL3 = XO-3 (never produced)
  • CL4 = XO-4 Touch
  • CL4A = XO-4 HS Touch w. mechanical keyboard
  • CL4B = XO-4
  • CL4C = XO-4 HS w. mechanical keyboard
  • NL3 = XO Laptop
  • ED20 = Infinity

Useful links

ISO Country Codes
CIA World Factbook Table of ISO 3166 Codes (includes three-letter codes not given in the ISO document above)
ISO Language Codes
IANA Language Tag Registry
Mains electricity by country, with power specs and plug descriptions
wikipedia:Language code
wikipedia:Country code
Preproduction components in XO-1.75
Preproduction components in XO-4