Difference between revisions of "Embedded Open Modular Architecture/EOMA68"

From eLinux.org
Jump to: navigation, search
m (Future Versions)
 
(146 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[File:EOMA68-CARD00.png|right|frame]]
 
[[File:EOMA68-CARD00.png|right|frame]]
  
= EOMA-68 Specification =
+
= NOTE TO WIKIPEDIA EDITORS AND WIKIPEDIA READERS REGARDING FALSE AND MISLEADING INFORMATION ON WIKIPEDIA =
  
This page describes the specification of EOMA-68.  The number of pins on the interface is 68; the physical form-factor is the legacy PCMCIA.
+
'''NEITHER WIKIPEDIA NOR EDITORS OF WIKIPEDIA HAVE RECEIVED AUTHORISATION TO MAKE AUTHORITATIVE STATEMENTS REGARDING THE EOMA68 STANDARD.'''
  
Re-purposing of the PCMCIA interface and form-factor has been chosen to create portable mass-volume (100 million units and above) Embedded Computing Modules (Computer on Module)Mass-volume "Lowest Common Denominator" interfaces have been chosen, all of which have existed for over a decade, but are low-power enough to be standard across virtually all mass-produced powerful Embedded CPUs.
+
'''A Wikipedia page covering the EOMA68 Standard was created recently and is being edited by people who have clearly not read the standard nor are familiar with the standard's background. In a little under two weeks at the time of writing there have been no less than SIX separate individuals providing false and misleading statementsThe page on the site known as "Wikipedia" is NOT AUTHORITATIVE: considerable effort is being expended to ensure that factually inaccurate statements are not made, however at any one time there may be another editor who has, once again, not read the standard, edited the page without thinking of the consequences, and thus brought both EOMA68 and Wikipedia into disrepute as a direct result.  If you intend to edit the page on Wikipedia and are unsure of any facts CONSULT THE AUTHOR OF THIS STANDARD.  Update 26sep2016: the false and misleading page has been moved to a user page and is currently being developed in a safe environment that clearly carries no implicit "authority" - not that the Wikipedia page will ''ever'' be granted "authority" '''
  
The interfaces are:
+
= Table of contents =
* 24-pin RGB/TTL (for LCD Panels)
 
* I2C
 
* USB (Low Speed, Full Speed, optionally Hi Speed/480 Mbit/s and optionally USB3)
 
* 10/100 Ethernet (optionally 1,000 ethernet)
 
* SATA-II (optionally SATA-III)
 
* 8 pins of General-purpose Digital I/O (GPIO).
 
  
These interfaces are '''NOT OPTIONAL''' for CPU Cards.  All CPU Cards '''MUST''' provide '''all''' interfaces.  I/O Boards on the other hand are free to implement whichever interfaces are required for the device.  For example: whilst all CPU Cards '''must''' have an SATA interface, devices such as tablets or laptops into which CPU Cards are plugged are not ''required'' to have an SATA hard drive, or an ethernet port.  The only exception is I2C (due to the EOMA-68 identification EEPROM).
+
__TOC__
  
Exactly like legacy PCMCIA Cards, EOMA-68 CPU Cards may have absolutely any functions, any additional connectors, peripherals and so on ''without'' limitation, except for compliance with the EOMA-68 pinouts and physical size constraints.  These additional functions, which may include access ports in the casework, may extend outwards from the user-facing end of the CPU Card to any practical extent, exactly as with legacy PCMCIA.
+
= Glossary of Terms =
  
== Background to Interface Selection ==
+
* '''EOMA68''': name of the standard (not EOMA-68).  stands for "an Embedded Open Modular Architecture Standard (68 pin connector variant)".
 +
* '''EOMA68-<designation>''': recommended unique naming convention for Cards that implement the EOMA68 standard.  Examples: EOMA68-A20 (contains an Allwinner A20 SoC).  EOMA68-jz4775 (contains an Ingenic jz4775).
 +
* '''Housings''': a "base board" into which (one or more) EOMA68 Cards can be plugged.  similar to a "motherboard" but "motherboard" is subtly misleading (motherboards typically allow CPU and RAM to be replaced: EOMA68 Cards are where the entire computer is typically housed).  previous names used during the development of EOMA68 include "Dock" and "Chassis" - both now deprecated.
 +
* '''Card''': short-hand for "EOMA68 Card".  It slots into "Housings".  may contain a fully-functioning computer (Single-Board Computer), but legitimate implementations of the EOMA68 Standard include FPGA Cards and something known as a "Pass-through" Card.
 +
* '''MIC''': stands for "Manufacturer Identification Code", similar to USB and PCI Manufacturer Identification codes.  Currently defined as 4 bytes in length, and present in the EOMA68 I2C EEPROM.
  
The interfaces have been specifically chosen because they are either essential or they are multi-purpose buses, and surprisingly they are perfectly adequate despite being Lowest Common Denominator across a wide range of CPUs for at least a decade.  The goal here is not to attain ultra-high-speed latest-and-greatest performance but to use proven, long-established interfaces that will be easy to find parts for mass-volume appliances in potentially hundreds of millions of units and above.  Also, some graceful degradation through negotiation at the ''hardware'' level is particularly desirable.
+
= EOMA68 Introduction =
  
* '''SATA''' - The only interface which is not particularly common on mass-produced powerful Embedded CPUs is SATA-II: this can be constructed from a USB-to-SATA converter IC such as the Genesys Logic [http://www.genesyslogic.com/_en/product_01_1.php?id=67 GL831A], GL830, the JMicron [http://www.jmicron.com/JM20337.html JM20337] or the TI USB3 to SATA bridge IC [http://www.ti.com/lit/ds/symlink/tusb9260.pdf TUSB9260].
+
The primary purpose of the EOMA68 specification is to bring end-users the right to upgrade their own mass-produced Computing Appliances.  To make end-users lives easier, purchasing decision-making should be made not on technical interface capabilities, neither should they be expected to have significant technological expertise. This is the primary reason why EOMA specifications have no optional interfaces of any kind. The tag-line is "Just Plug It In: It Will Work"To achieve this level of simplicity for the lifetime of the specification (anticipated to be at least a decade) ''all'' Cards compliant with the EOMA68 specification have to be compatible with ''all'' compliant "Housings".
* '''I2C and USB''' - I2C is only two wires, is a global bus that can address multiple devices, and is a long-established proven Industry Standard with thousands of devices available.
 
* '''USB''' - USB2 is only two wires; USB3 is sixUSB, like I2C, is a global bus that can address multiple devices and is a long-established proven Industry Standard.
 
* '''Ethernet''' - 10/100/1,000 Ethernet was chosen because it is prevalent on the majority of computing devices.  In the case where chosen CPUs do not have Ethernet, a USB-to-Ethernet converter IC such as the SMSC [http://www.smsc.com/index.php?tid=292&pid=137 LAN9500] can be deployed.
 
* '''RGB/TTL''' - 24-pin RGB/TTL was chosen over LVDS or MIPI so as to keep the cost down, and also to keep the signal speed down.  Whilst LVDS seems initially to be a good candidate, Single-Channel LVDS is unsuitable for driving 1,920×1,080p60 LCD Panels: most 1,920×1,080 LCD panels require between 2 and 3 LVDS drivers.  MIPI also requires multiple parallel channels to achieve higher data rates.  Any low-cost CPU chosen which did not have LVDS or MIPI would be forced to add a converter chip, potentially on ''both'' sides of the interface (CPU card as well as motherboard).  So it makes sense to choose the proven, lower-speed, reliable 24-pin interface, thus making the EOMA-68 Standard suitable for use even with ultra-low-cost 320×240 RGB/TTL LCD Panels, right the way up to HDTV screen sizes.
 
  
=== Requirements for USB ===
+
The trade-off between choosing a single-board design or even another modular form-factor is as follows:
  
All CPU Cards are required to support the full backwards-compatible auto-negotiation USB device capabilities and speeds of all former versions of the USB Interface, up to the maximum speed and capabilities chosen to be provided. Specifically:
+
* EOMA68 products will not use all of the integrated functions of single-board designs, automatically resulting in minor cost increases for products, however this cost is negligeable compared to the long-term end-user cost savings.
 +
* EOMA68 products are user-upgradeable.  The Housings can be kept out of landfill - kept in useful service - for the lifetime of its components.  Only the Cards need be upgraded at a much lower cost than a single-board design in order to continuously give the product a new lease of life.
 +
* EOMA68 Cards can be shared by the same end-user across multiple products, automatically resulting in a cost saving that far outweighs the minor overhead of a single EOMA68 system when compared to a single hermetically-sealed throw-away product.
 +
* However, single-board designs are typically throw-away products where the lifetime of the product is critically dependent on an extremely fast-changing market.
 +
* Single-board designs are typically throw-away hermetically-sealed products with neither user-serviceable nor user-replaceable parts.
 +
* Old Housings and Cards can be re-purposed instead of discarded as e-waste.
 +
* Q-Seven and other similar standards are not realistically user-upgradeable (not for the average person) because products require tools, technical knowledge in the selection of technically-compatible replacement parts, and expert knowledge in the handling of electronics for ESD-precautions before even opening the case.
 +
* EOMA68 products are upgraded by pushing a button and popping out the module: it literally takes seconds to install a new Card.
  
* Providing USB Low Speed (version 1.0 - 1.5 Mbit/s) is acceptable.
+
So the benefits for end-users are very clear: EOMA68 is easily understandable as a long-term investment for its end-users with significant long-term cost savings and reductions in e-waste. The benefits for factories are very clear: Cards aggregated across multiple products means much better bulk purchasing power, and Housings can also continue to be produced ''without'' requiring redesigns pretty much until the components go end-of-life.
* Providing USB Full Speed (version 1.1 - 12 Mbit/s) is acceptable if Low Speed is also provided.
 
* Providing USB Hi Speed (version 2.0 - 480 Mbit/s) is acceptable if Full Speed and Low Speed are also provided.
 
* Providing USB Super Speed (version 3.0 - 5 Gbit/s) is acceptable if all lower speeds are also provided.
 
* Providing a higher version '''only''' and supporting no lower speeds is '''not''' acceptable.
 
* Providing no USB 3.0 is acceptable.
 
  
Chassis (devices) must support up to a maximum chosen USB specification and all speeds below. This guarantees that any CPU Card will work with any device, with any combination auto-negotiating to the maximum possible speed.
+
No other modular computing standard available today has been designed with these aims in mind.  An analysis of the standard is covered in-depth in a whitepaper on Ecocomputing at
 +
http://rhombus-tech.net/whitepapers/ecocomputing_07sep2015/
  
=== Requirements for Ethernet ===
+
= Scope =
  
All CPU Cards are required to support the full auto-negotiation capabilities of Ethernet, up to the maximum speed chosen to be provided. Specifically:
+
EOMA68 products are completely unlike throw-away single-purpose SBCs (Single-Board Computers) and throw-away hermetically-sealed monolithic devices: re-use, re-purposing and upgrading is encouraged, resulting in a greatly-extended lifetime for both Cards and Housings than would normally be expected. It is perfectly reasonable to expect any Card to change hands five or more times during its useful operational lifetime.  As such, the Requirements are correspondingly but simply a natural reflection of the full lifecycle, and may therefore come as a bit of a shock to those used to the usual "fire-and-forget" epidemic and endemic processes currently being deployed for standard mass-volume manufactured products.  
  
* Providing 10&nbsp;Mbit/s Ethernet is acceptable
+
EOMA68 is therefore not just a hardware standard: it is more of a collaborative commitment to certain procedures and processes, with each party having different roles and responsibilities to play. The main roles (where an individual or organisation may have more than one role) are:
* Providing 100&nbsp;Mbit/s Ethernet and down-negotiation to 10&nbsp;Mbit/s Ethernet is acceptable
 
* Providing 100&nbsp;Mbit/s Ethernet '''only''' is '''not''' acceptable
 
* Providing 1,000&nbsp;Mbit/s Ethernet is acceptable as long as down-level negotiation to both 100&nbsp;Mbit/s and 10&nbsp;Mbit/s is also provided
 
* Providing 1,000&nbsp;Mbit/s Ethernet '''only''' is '''not''' acceptable.
 
  
Chassis (devices) must also support up to a maximum chosen Ethernet specification and all speeds belowThis guarantees that any CPU Card will work with any device, with any combination auto-negotiating to the maximum possible speed.
+
* '''CERTIFIER''': an authorised agent who is exclusively permitted to issue Compliance Certification for EOMA68.  the role is very similar to that of the FCC, and exists for correspondingly analogous reasons (particularly safety).  the role is also similar to that of the USB hardware association (again, for correspondingly analogous reasons).
 +
* '''MANUFACTURER''': covers organisations that create both hardware (PCBs and casework) and software, or their authorised agents, or intermediaries (such as OEMs and ODMs).
 +
* '''LIBRE_ENGINEER''': a form of MANUFACTURER that is given a little bit more leeway if one or more aspects of their work (PCBs, casework, software, ASIC designs) are both libre-licensed and publicly available (as opposed to being kept private on the ''promise'' of availability, only being made available after release).
 +
* '''RETAILER''': anyone selling EOMA68 Cards or Housings.
 +
* '''RETAIL_ENDUSER''': anyone who buys EOMA68 Cards and Housings sold as new (and receives a warranty). usually will have zero technical knowledgelitmus test: "if they can run a command-prompt and can follow step-by-step instructions on their own initiative", they're not a RETAIL_ENDUSER.
 +
* '''TECHNICAL_ENDUSER''': anyone who is capable of doing out-of-the-box legal and legitimate things with and to their hardware
 +
* '''REPURPOSER''': a special form of TECHNICAL_ENDUSER who take it on themselves to buy or collect EOMA68 Cards and Housings, checks them, repairs them, re-flashes them, and either deploys them personally or sells or otherwise passes them on.
 +
* '''RECYCLER''': an organisation or individual responsible for the safe, legal, legitimate and environmentally-responsible disposal of EOMA68 Cards, Housings and parts associated with the same.  a RECYCLER (ideally) represents the sole exclusive sink for all EOMA68-compliant Cards and Housings at end-of-life.  not to be confused with REPURPOSER, who would be responsible for ensuring that the Cards or Housings go back into circulation.
  
=== Requirements for SATA ===
+
This document therefore defines the responsibilities for each role, as well as the relationships between each role, so that together they are able to collaborate and ensure that the lifecycle of EOMA68-compliant devices is extended to the maximum extent possible.
  
All CPU Cards are required to support the full backwards-compatible auto-negotiation capabilities of SATA, up to the maximum speed and capabilities chosen to be provided.  Specificially:
+
= External Considerations =
  
* Provision of SATA-II is acceptable, but provision of SATA-II with '''only''' support for 3&nbsp;Gbit/s SATA-II i.e. no support for all lower speeds is '''not''' acceptable.
+
[[Embedded_Open_Modular_Architecture/EOMA68/Considerations|External Factors and Considerations]] is now on its own page.
* Provision of SATA-III is acceptable, provided that backwards-compatibility with all prior versions of SATA are also provided
 
  
=== Requirements for RGB/TTL ===
+
= EOMA68 Hardware-related Requirements =
  
The RGB/TTL output is the one point where close attention has to be paid on the part of the CPU Card designers, because of the variance between devices in which the CPU Cards will be plugged.  This will need careful monitoring and may warrant a "Certification Programme" to ensure that CPU Cards are compliant with a wide range of devices.
+
[[Embedded_Open_Modular_Architecture/EOMA68/Hardware|Hardware-related Requirements]] is now on its own page.
  
* RGB/TTL is a parallel data bus, potentially running at up to 125 or even 150mhz.  Both CPU Cards and I/O Boards '''must''' ensure that the length of the tracks leading to the 68-pin connector are all of equal length.  It is recommended that both the source (e.g the CPU) and the sink (e.g an LVDS IC) are placed as close to the 68-pin connector as possible.
+
= EOMA68 Software / OS Requirements =
* CPU Cards '''must''' provide software-programmable support for anywhere between 190x120 RGB-TTL resolutions all the way up to the maximum that they are capable of, with the maximum resolution being clearly marked on both the CPU Card, as well as the retail packaging in which it is sold.
 
* CPU Cards '''should''' support up to at least 1920x1080 at at least 50fps.  However, some ultra-low-cost SoCs, especially those designed for mobile devices, only support up to XGA or WXGA resolutions.  The use of such SoCs is not entirely recommended.
 
* EOMA-68's RGB/TTL interface is 24-bit-wide.  If a particular SoC only has e.g. 18-bit or 15-bit RGB/TTL then the LSB (lower) bits '''must''' be set to logic output level 0 when the LCD interface is enabled: they must '''NOT''' be left floating or tri-state.  This ensures that devices which are expecting the full 24-bits do not receive noise on the lower bits of each of the R,G and B 8-bit inputs.
 
  
Although there is no reason why individual devices should not have more than one LCD screen, allowing them to be selected, the burden of complexity for screen selection is placed onto the CPU Card software, so any company planning such a multi-screen device should contact the authors of the EOMA-68 specification (lkcl@qimod.com).  Realistically, multi-screen devices ''should'' consider using USB-based screen driver technology such as that from DisplayLink.
+
[[Embedded_Open_Modular_Architecture/EOMA68/Software|Software / OS Requirements]] is now on its own page.
  
=== Requirements for I2C ===
+
= Example Housings =
  
These are the requirements for provision of I2C on an EOMA-68 interface.  The summary is that the I2C bus must not be shared with any peripherals on the CPU Card, and the CPU Card must be able to read an on-board EEPROM (at address 0xA2)
+
Here is a list of example designs which conform to the EOMA68 Standard:
  
* The I2C bus that is connected to the EOMA-68 interface will expect to have access to an EEPROM that is addressable (readable) at I2C address 0xA2.
+
* [[Embedded_Open_Modular_Architecture/EOMA68/MiniEngineeringBoard|Mini Engineering Board]] - suitable for Free Software Developers, ODM Development, SoC "Board Support Packages", Experimentation, Prototyping, Electrical Engineers, Training and R&D purposes.
* There also '''MUST NOT''' be a device on address 0xA3 (this is the EEPROM "write" address, used at factory-install time).
+
* [[Embedded_Open_Modular_Architecture/EOMA68/EngineeringBoard|Monster Engineering Board]] - suitable for ODM Development "Demonstration" Purposes: designed to be "cut down to size", requiring the minimum amount of CAD/CAM Development effort and maximising return on investment.
* Additionally, there '''MUST NOT''' be ''any'' devices on the I2C bus on the CPU Card sideThe reason is that all other addresses (other than 0xA2 and 0xA3) '''must''' be available for peripherals on the I/O Board.
+
* [[Embedded_Open_Modular_Architecture/EOMA68/Tablet|The Obligatory Tablet]] - a simple tablet motherboard which could potentially be developed as a very low cost single-sided 2-layer PCBComponents are chosen to reduce development cost and risk, as well as reduce manufacturing cost.
* If a CPU Card needs to use address 0xA2 or 0xA3, or any other address, then the CPU Card '''MUST''' use another I2C bus, '''NOT''' the one that is connected to the EOMA-68 Interface.
+
* [[Embedded_Open_Modular_Architecture/EOMA68/Laptop|Laptop]] - a laptop motherboard which could potentially be developed as a very low cost single-sided 2-layer PCB, through the use of modular and optional components for WIFI and 3G.
 +
* [[Embedded_Open_Modular_Architecture/EOMA68/LCD-TV|LCD (TV)]] - an LCD Monitor (or Picture Frame) which can be upgraded into a TV or an All-in-One Computer or an Internet TV or Personal Video Recorder or Media Centre.  very versatile yet simple to do.
 +
* [[Embedded_Open_Modular_Architecture/EOMA68/Passthrough|Passthrough or "Blank" Card]] - a special type of card which simply passes through the connectors, with little or no signal conversion.
  
= Pinouts (version 1.0) =
+
= Contact and Discussion =
  
These pinouts make no attempt to be electrically or electronically compatible with the legacy PCMCIA standard.  8 GPIO pins, 24-pin RGB/TTL, USB2, I2C, 10/100/1000 Ethernet and SATA-III interfaces are included in the Version 1.0 specification.  ''Note: USB2, SATA-III and Ethernet MUST support auto-negotiation, and MUST support the lower capabilities (USB 1, USB 1.1, SATA-I, SATA-II, 10/100 Ethernet).  Higher speeds and capabilities are optional''.
+
For questions, comments and general discussion, please use [http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook arm-netbook mailing list]
 
 
Four 5.0&nbsp;V power inputs must be provided: all pins are rated at 0.5&nbsp;A, so the maximum power dissipation is limited to 10 watts.  ''Design consideration: please note that to ensure that thermal dissipation in an enclosed fanless situation is not exceeded, a maximum of 3.5 watts should be respected, or the card must contain its own fan.  Most systems will '''not''' have active cooling.''
 
 
 
All High-speed signals (USB2, Ethernet, SATA-III) are balanced lines that are still separated using GND or Power pins.  All other pins are low frequency, with the exception of the LCD Pixel Clock and Pixel Data pins, which could go as high as 125&nbsp;MHz for 1,920×1,080 @ 60fps (not recommended).  The eight GPIO pins are available, for general-purpose bi-directional use of digital data only.
 
 
 
The output from the 24-pin LCD RGB/TTL pins must be electrically compatible with a Texas Instruments SN75LVDS83B, which has electrical characteristics of 3.3&nbsp;V TTL but requires 5&nbsp;V TTL tolerance.  Typical TTL high-level voltage is 2.0 volts; threshold is 1.4&nbsp;V; low-level TTL voltage is 0.8&nbsp;V.
 
 
 
Also, because the GPIO pins can be reconfigured individually bi-directional for any digital purposes, they '''must''' be made to be 5&nbsp;V TTL tolerant and tri-state isolated, and Motherboards also must be 5.0&nbsp;V TTL tolerant as well as tri-state isolated.  Levels when any GPIO pin is used either as an input or as an output should again operate at nominal 3.3&nbsp;V TTL levels, thus expect "high" voltage of 2.0 volts, threshold of 1.4&nbsp;V and "low" voltage of 0.8&nbsp;V, but must accept voltages from 0–5&nbsp;V.
 
 
 
The option for a CPU Card to provide Gigabit Ethernet is also available, if a given system has it.  If, however, a particular system does not have Gigabit Ethernet, the pins '''must not''' be used for other purposes, and '''must''' be left unconnected (floating).  This is to ensure that automatic negotiation of 100/1000 Ethernet occurs correctly.
 
 
 
The option for a CPU Card to provide USB3 is also available, if a given system has it.  If, however, a particular system does not have USB3, the pins '''must not''' be used for other purposes, and '''must''' be left unconnected (floating).  This is to ensure that automatic down-negotiation of USB2 occurs correctly.
 
 
 
== Table of EOMA-68 pinouts ==
 
 
 
{| class="wikitable" border="1" width="100%"
 
! style="width:50%" | Row 1
 
! style="width:50%" | Row 2
 
|-
 
|* 1 LCD Pixel Data bit 0 (Red0)
 
|* 35 LCD Pixel Data bit 1 (Red1)
 
|-
 
|* 2 LCD Pixel Data bit 2 (Red2)
 
|* 36 LCD Pixel Data bit 3 (Red3)
 
|-
 
|* 3 LCD Pixel Data bit 4 (Red4)
 
|* 37 LCD Pixel Data bit 5 (Red5)
 
|-
 
|* 4 LCD Pixel Data bit 6 (Red6)
 
|* 38 LCD Pixel Data bit 7 (Red7)
 
|-
 
|* 5 LCD Pixel Data bit 8 (Green0)
 
|* 39 LCD Pixel Data bit 9 (Green1)
 
|-
 
|* 6 LCD Pixel Data bit 10 (Green2)
 
|* 40 LCD Pixel Data bit 11 (Green3)
 
|-
 
|* 7 LCD Pixel Data bit 12 (Green4)
 
|* 41 LCD Pixel Data bit 13 (Green5)
 
|-
 
|* 8 LCD Pixel Data bit 14 (Green6)
 
|* 42 LCD Pixel Data bit 15 (Green7)
 
|-
 
|* 9 LCD Pixel Data bit 16 (Blue0)
 
|* 43 LCD Pixel Data bit 17 (Blue1)
 
|-
 
|* 10 LCD Pixel Data bit 18 (Blue2)
 
|* 44 LCD Pixel Data bit 19 (Blue3)
 
|-
 
|* 11 LCD Pixel Data bit 20 (Blue4)
 
|* 45 LCD Pixel Data bit 21 (Blue5)
 
|-
 
|* 12 LCD Pixel Data bit 22 (Blue6)
 
|* 46 LCD Pixel Data bit 23 (Blue7)
 
|-
 
|* 13 LCD Pixel Clock
 
|* 47 LCD Vertical Synchronization
 
|-
 
|* 14 LCD Horizontal Synchronization
 
|* 48 LCD Pixel data enable (TFT) output
 
|-
 
|* 15 I2C Clock (SCL)
 
|* 49 I2C Data (SDA)
 
|-
 
|* 16 GPIO (0)
 
|* 50 GPIO (1)
 
|-
 
|* 17 GPIO (2)
 
|* 51 GPIO (3)
 
|-
 
|* 18 GPIO (4)
 
|* 52 GPIO (5)
 
|-
 
|* 19 GPIO (6)
 
|* 53 GPIO (7)
 
|-
 
|* 20 ---- not used ---- / USB3&nbsp;StdA_SSRX-
 
|* 54 ---- not used ---- / USB3&nbsp;StdA_SSRX+
 
|-
 
|* 21 ---- not used ---- / USB3&nbsp;StdA_SSTX-
 
|* 55 ---- not used ---- / USB3&nbsp;StdA_SSTX+
 
|-
 
|* 22 ---- reserved ----
 
|* 56 Ethernet Feedback (transformer mid-point)
 
|-
 
|* 23 ---- reserved ----
 
|* 57 ---- reserved ----
 
|-
 
|* 24 PWR (5.0&nbsp;V)
 
|* 58 PWR (5.0&nbsp;V)
 
|-
 
|* 25 ---- not used ---- / 1000&nbsp;Eth&nbsp;BI_DD+
 
|* 59 ---- not used ---- / 1000&nbsp;Eth&nbsp;BI_DD−
 
|-
 
|* 26 10/100 Ethernet (RX+) / 1000&nbsp;Eth&nbsp;BI_DB+
 
|* 60 10/100 Ethernet (RX−) / 1000&nbsp;Eth&nbsp;BI_DB−
 
|-
 
|* 27 10/100 Ethernet (TX+) / 1000&nbsp;Eth&nbsp;BI_DA+
 
|* 61 10/100 Ethernet (TX−) / 1000&nbsp;Eth&nbsp;BI_DA−
 
|-
 
|* 28 ---- not used ---- / 1000&nbsp;Eth&nbsp;BI_DC+
 
|* 62 ---- not used ---- / 1000&nbsp;Eth&nbsp;BI_DC−
 
|-
 
|* 29 PWR (5.0&nbsp;V)
 
|* 63 PWR (5.0&nbsp;V)
 
|-
 
|* 30 USB2 (Data+)
 
|* 64 USB2 (Data−)
 
|-
 
|* 31 GROUND
 
|* 65 GROUND
 
|-
 
|* 32 SATA-III Transmit (A+)
 
|* 66 SATA-III Transmit (A−)
 
|-
 
|* 33 GROUND
 
|* 67 GROUND
 
|-
 
|* 34 SATA-III Receive (B+)
 
|* 68 SATA-III Receive (B−)
 
|}
 
 
 
= Start-up procedure =
 
 
 
It is required that all pins be disabled (floating tri-state) with the exception of the I2C Bus, the 5.0v Power and the Ground Pins.  I2C Bus Master is then enabled, to search for an I2C EEPROM at address 0xA2.  This EEPROM contains Linux Kernel "Device Tree" data, which specifies the devices available on the motherboard, as well as the actual pin-outs.  The exact format of the EEPROM data is yet to be decided.
 
 
 
One important aspect of reading the I2C EEPROM is that the CPU card can then correctly access and initialise on-board devices.  It also defines the purpose and use of the GPIO pins (if any are required).  Also, the format of the LCD data is specified.  For example, the pinout diagram on this page assumes 24-pin RGB TTL, but some motherboards may have LCD panels which only have an 18-pin RGB/TTL interface.  The data in the I2C EEPROM therefore provides clear specifications on all the motherboard's peripherals.
 
 
 
Discussion of the startup procedure is here on [http://lists.phcomp.co.uk/pipermail/arm-netbook/2012-January/001787.html arm-netbooks]
 
 
 
= Future Versions =
 
 
 
All LCD and GPIO pins must be tri-state floating in order that future versions of this standard can provide faster (or merely alternative) interfaces.  At the time of writing (2011), the interfaces in the 1.0 Specification are "Lowest Common Denominator" yet are still present across the majority of 2011's powerful embedded SoCs (OMAP4440, Enyxos4210, Tegra 3, iMX53, iMX6, Allwinner A10, A20 etc.)  However, in the future, the "Lowest Common Denominator" could well comprise MIPI instead of RGB/TTL, 2 lane PCI-express (or its successor), and USB-3 instead of USB-2 (perhaps even a faster version of ULPI).
 
 
 
As of 2011 however, the total number of Embedded CPUs supporting all these newer interfaces and still keeping to a 1.5 watt budget is precisely zero.  Support for these high-speed interfaces will therefore be re-evaluated in 2 to 3 years time, and a future version of this standard created when a large proportion of available embedded CPUs have these or other high-speed interfaces that are available at the time.
 
 
 
= Deliberate Mechanical Non-interoperability =
 
 
 
The re-use of the PCMCIA standard pinouts with no electrical or electronic compatibility requires mechanical means to ensure that newer cards cannot be inserted into legacy sockets.  The proposed solution is therefore to deploy a fascia plate on the EOMA-68 card that is both larger in width than the standard 55&nbsp;mm as well as recessed by some 8&nbsp;mm, along the length of one of the 85&nbsp;mm edges.  The exact dimensions are yet to be determined, as specific PCMCIA housings need to be examined to ensure that one side can take the recessed "edge stop".  The following part, [http://www.te.com/catalog/pn/en/1717121-1 PCMCIA Ejector Assembly] from Tyco Electronics, is ideally suited: slimline and nothing at the left side.
 
 
 
= Physical Dimensions =
 
 
 
There are two sets of acceptable dimensions: as with the legacy PCMCIA interface, these must be backwards-compatible.
 
 
 
== Type II ==
 
 
 
The physical dimensions are a maximum of "Type II" (i.e. 5mm maximum height).  Cards should typically have all user-facing connectors "flush" with the standard PCMCIA size.  This will ensure that when a Card is inserted into a device, the connectors of the CPU Card appear to be part of the actual device.  However: devices should cater for the possibility that an EOMA-68 Card may have connectors sticking out of the end, to any practical height.
 
 
 
As the EOMA-68 pinouts have been designed to avoid matching the power lines of PCMCIA, there is no need for mechanical blocking.
 
 
 
== Type III ==
 
 
 
Type III Cards have a maximum height of 8mm: this is typically reserved for x86-based CPUs which require up to 10 watts to operate.
 
Motherboards that take the Type III cards '''must''' also accept the Type II lower-power cards.
 
 
 
TBC: Type III Cards should not assume that there will be fans available in the devices in which the cards are inserted, and should make arrangements for the removal of heat.
 
 
 
= Thermal Considerations =
 
 
 
In order to reduce the cost of Motherboards and system design, Type II Cards should not exceed an average of 3.5 watts power consumption for prolonged periods of time, despite there being provision for up to 10 watts on the EOMA-68 connector.
 
 
 
CPU Cards and Motherboards that support the Type III 8mm-high cards '''must''' be designed with a Thermal Dissipation capability that takes the 10 watt TDP into consideration, as well as taking into consideration the power consumption and heat generation of the devices used on the Motherboard as well.  Whilst fan-based solutions are acceptable, the use of thermally-conductive copolymer plastics (some of which have thermal dissipation capabilities exceeding that of Aluminium) are recommended.
 
 
 
= Header Connectors =
 
 
 
Within the physical dimensions, there is absolutely no restriction on the number of connectors, interfaces, headers, expansion headers or antenna protruding from the end of the device.  For example: a PCMCIA CPU card may typically have, for best useability, a Micro-HDMI, a USB-OTG, a 5-pin Audio Jack and a Micro-SD Card Slot.  These four interfaces fit neatly within the 57&nbsp;mm × 5.5&nbsp;mm fascia plate size limit, as long as mid-mount connectors are used.
 
 
 
Also, on the actual EOMA-68 CPU Card PCB itself, there is no restriction on the number of expansion headers (populated or unpopulated) - the only consideration being that the EOMA-68 CPU card clearly cannot have expansion headers except for Engineers and Embedded Device Designers, and also have a metal shield installed around the EOMA-68 CPU card at the same time.  However, there is no reason why the expansion headers should be unpopulated, supplied without a metal shield to Embedded Engineers, yet the exact same device shipped in mass-volume with a metal shield installed, for the average user.
 
 
 
The only issue to note is that there is a maximum power budget of about 10 watts (although there are four 5.0V 0.5A pins) but also that there is a practical maximum power dissipation of EOMA-68 cards of about 4 watts.  There is no provision in the standard for air-cooling (fans) in the cases: most devices will be a passive-cooled layout.
 
 
 
If however the EOMA-68 card is designed to operate "stand-alone", for example by being provided with a Power Connector on its user-facing edge or by making use of USB-OTG, then of course the designers are free to disregard these constraints.  If however the CPU card is also expected to operate inside a conformant device, then it must adjust accordingly and stick within the 4 watt heat dissipation budget.
 
 
 
= Example Motherboards =
 
  
Here is a list of example designs which conform the EOMA-68 Standard:
+
= Slides =
  
* [[Embedded_Open_Modular_Architecture/EOMA-68/MiniEngineeringBoard|Mini Engineering Board]] - suitable for Free Software Developers, ODM Development, SoC "Board Support Packages", Experimentation, Prototyping, Electrical Engineers, Training and R&D purposes.
+
[[Media:eoma68.pdf | Introduction of EOMA]]
* [[Embedded_Open_Modular_Architecture/EOMA-68/EngineeringBoard|Monster Engineering Board]] - suitable for ODM Development "Demonstration" Purposes: designed to be "cut down to size", requiring the minimum amount of CAD/CAM Development effort and maximising return on investment.
 
* [[Embedded_Open_Modular_Architecture/EOMA-68/Tablet|The Obligatory Tablet]] - a simple tablet motherboard which could potentially be developed as a very low cost single-sided 2-layer PCB.  Components are chosen to reduce development cost and risk, as well as reduce manufacturing cost.
 
* [[Embedded_Open_Modular_Architecture/EOMA-68/Laptop|Laptop]] - a laptop motherboard which could potentially be developed as a very low cost single-sided 2-layer PCB, through the use of modular and optional components for WIFI and 3G.
 
* [[Embedded_Open_Modular_Architecture/EOMA-68/LCD-TV|LCD (TV)]] - an LCD Monitor (or Picture Frame) which can be upgraded into a TV or an All-in-One Computer or an Internet TV or Personal Video Recorder or Media Centre.  very versatile yet simple to do.
 
* [[Embedded_Open_Modular_Architecture/EOMA-68/Passthrough|Passthrough or "Blank" Card]] - a special type of card which simply passes through the connectors, with little or no signal conversion.
 
 
 
= Contact and Discussion =
 
 
 
For questions, comments and general discussion, please use [http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook arm-netbook mailing list]
 
  
 
= FAQ =
 
= FAQ =
  
The [[Embedded_Open_Modular_Architecture/EOMA-68/FAQ|FAQ]] is now on its own page.
+
The [[Embedded_Open_Modular_Architecture/EOMA68/FAQ|FAQ]] is now on its own page.
  
  
 
[[Category:Embedded Open Modular Architecture]]
 
[[Category:Embedded Open Modular Architecture]]
 
[[Category:ARM processors]]
 
[[Category:ARM processors]]

Latest revision as of 00:10, 13 May 2018

EOMA68-CARD00.png

NOTE TO WIKIPEDIA EDITORS AND WIKIPEDIA READERS REGARDING FALSE AND MISLEADING INFORMATION ON WIKIPEDIA

NEITHER WIKIPEDIA NOR EDITORS OF WIKIPEDIA HAVE RECEIVED AUTHORISATION TO MAKE AUTHORITATIVE STATEMENTS REGARDING THE EOMA68 STANDARD.

A Wikipedia page covering the EOMA68 Standard was created recently and is being edited by people who have clearly not read the standard nor are familiar with the standard's background. In a little under two weeks at the time of writing there have been no less than SIX separate individuals providing false and misleading statements. The page on the site known as "Wikipedia" is NOT AUTHORITATIVE: considerable effort is being expended to ensure that factually inaccurate statements are not made, however at any one time there may be another editor who has, once again, not read the standard, edited the page without thinking of the consequences, and thus brought both EOMA68 and Wikipedia into disrepute as a direct result. If you intend to edit the page on Wikipedia and are unsure of any facts CONSULT THE AUTHOR OF THIS STANDARD. Update 26sep2016: the false and misleading page has been moved to a user page and is currently being developed in a safe environment that clearly carries no implicit "authority" - not that the Wikipedia page will ever be granted "authority"

Table of contents

Glossary of Terms

  • EOMA68: name of the standard (not EOMA-68). stands for "an Embedded Open Modular Architecture Standard (68 pin connector variant)".
  • EOMA68-<designation>: recommended unique naming convention for Cards that implement the EOMA68 standard. Examples: EOMA68-A20 (contains an Allwinner A20 SoC). EOMA68-jz4775 (contains an Ingenic jz4775).
  • Housings: a "base board" into which (one or more) EOMA68 Cards can be plugged. similar to a "motherboard" but "motherboard" is subtly misleading (motherboards typically allow CPU and RAM to be replaced: EOMA68 Cards are where the entire computer is typically housed). previous names used during the development of EOMA68 include "Dock" and "Chassis" - both now deprecated.
  • Card: short-hand for "EOMA68 Card". It slots into "Housings". may contain a fully-functioning computer (Single-Board Computer), but legitimate implementations of the EOMA68 Standard include FPGA Cards and something known as a "Pass-through" Card.
  • MIC: stands for "Manufacturer Identification Code", similar to USB and PCI Manufacturer Identification codes. Currently defined as 4 bytes in length, and present in the EOMA68 I2C EEPROM.

EOMA68 Introduction

The primary purpose of the EOMA68 specification is to bring end-users the right to upgrade their own mass-produced Computing Appliances. To make end-users lives easier, purchasing decision-making should be made not on technical interface capabilities, neither should they be expected to have significant technological expertise. This is the primary reason why EOMA specifications have no optional interfaces of any kind. The tag-line is "Just Plug It In: It Will Work". To achieve this level of simplicity for the lifetime of the specification (anticipated to be at least a decade) all Cards compliant with the EOMA68 specification have to be compatible with all compliant "Housings".

The trade-off between choosing a single-board design or even another modular form-factor is as follows:

  • EOMA68 products will not use all of the integrated functions of single-board designs, automatically resulting in minor cost increases for products, however this cost is negligeable compared to the long-term end-user cost savings.
  • EOMA68 products are user-upgradeable. The Housings can be kept out of landfill - kept in useful service - for the lifetime of its components. Only the Cards need be upgraded at a much lower cost than a single-board design in order to continuously give the product a new lease of life.
  • EOMA68 Cards can be shared by the same end-user across multiple products, automatically resulting in a cost saving that far outweighs the minor overhead of a single EOMA68 system when compared to a single hermetically-sealed throw-away product.
  • However, single-board designs are typically throw-away products where the lifetime of the product is critically dependent on an extremely fast-changing market.
  • Single-board designs are typically throw-away hermetically-sealed products with neither user-serviceable nor user-replaceable parts.
  • Old Housings and Cards can be re-purposed instead of discarded as e-waste.
  • Q-Seven and other similar standards are not realistically user-upgradeable (not for the average person) because products require tools, technical knowledge in the selection of technically-compatible replacement parts, and expert knowledge in the handling of electronics for ESD-precautions before even opening the case.
  • EOMA68 products are upgraded by pushing a button and popping out the module: it literally takes seconds to install a new Card.

So the benefits for end-users are very clear: EOMA68 is easily understandable as a long-term investment for its end-users with significant long-term cost savings and reductions in e-waste. The benefits for factories are very clear: Cards aggregated across multiple products means much better bulk purchasing power, and Housings can also continue to be produced without requiring redesigns pretty much until the components go end-of-life.

No other modular computing standard available today has been designed with these aims in mind. An analysis of the standard is covered in-depth in a whitepaper on Ecocomputing at http://rhombus-tech.net/whitepapers/ecocomputing_07sep2015/

Scope

EOMA68 products are completely unlike throw-away single-purpose SBCs (Single-Board Computers) and throw-away hermetically-sealed monolithic devices: re-use, re-purposing and upgrading is encouraged, resulting in a greatly-extended lifetime for both Cards and Housings than would normally be expected. It is perfectly reasonable to expect any Card to change hands five or more times during its useful operational lifetime. As such, the Requirements are correspondingly but simply a natural reflection of the full lifecycle, and may therefore come as a bit of a shock to those used to the usual "fire-and-forget" epidemic and endemic processes currently being deployed for standard mass-volume manufactured products.

EOMA68 is therefore not just a hardware standard: it is more of a collaborative commitment to certain procedures and processes, with each party having different roles and responsibilities to play. The main roles (where an individual or organisation may have more than one role) are:

  • CERTIFIER: an authorised agent who is exclusively permitted to issue Compliance Certification for EOMA68. the role is very similar to that of the FCC, and exists for correspondingly analogous reasons (particularly safety). the role is also similar to that of the USB hardware association (again, for correspondingly analogous reasons).
  • MANUFACTURER: covers organisations that create both hardware (PCBs and casework) and software, or their authorised agents, or intermediaries (such as OEMs and ODMs).
  • LIBRE_ENGINEER: a form of MANUFACTURER that is given a little bit more leeway if one or more aspects of their work (PCBs, casework, software, ASIC designs) are both libre-licensed and publicly available (as opposed to being kept private on the promise of availability, only being made available after release).
  • RETAILER: anyone selling EOMA68 Cards or Housings.
  • RETAIL_ENDUSER: anyone who buys EOMA68 Cards and Housings sold as new (and receives a warranty). usually will have zero technical knowledge. litmus test: "if they can run a command-prompt and can follow step-by-step instructions on their own initiative", they're not a RETAIL_ENDUSER.
  • TECHNICAL_ENDUSER: anyone who is capable of doing out-of-the-box legal and legitimate things with and to their hardware
  • REPURPOSER: a special form of TECHNICAL_ENDUSER who take it on themselves to buy or collect EOMA68 Cards and Housings, checks them, repairs them, re-flashes them, and either deploys them personally or sells or otherwise passes them on.
  • RECYCLER: an organisation or individual responsible for the safe, legal, legitimate and environmentally-responsible disposal of EOMA68 Cards, Housings and parts associated with the same. a RECYCLER (ideally) represents the sole exclusive sink for all EOMA68-compliant Cards and Housings at end-of-life. not to be confused with REPURPOSER, who would be responsible for ensuring that the Cards or Housings go back into circulation.

This document therefore defines the responsibilities for each role, as well as the relationships between each role, so that together they are able to collaborate and ensure that the lifecycle of EOMA68-compliant devices is extended to the maximum extent possible.

External Considerations

External Factors and Considerations is now on its own page.

EOMA68 Hardware-related Requirements

Hardware-related Requirements is now on its own page.

EOMA68 Software / OS Requirements

Software / OS Requirements is now on its own page.

Example Housings

Here is a list of example designs which conform to the EOMA68 Standard:

  • Mini Engineering Board - suitable for Free Software Developers, ODM Development, SoC "Board Support Packages", Experimentation, Prototyping, Electrical Engineers, Training and R&D purposes.
  • Monster Engineering Board - suitable for ODM Development "Demonstration" Purposes: designed to be "cut down to size", requiring the minimum amount of CAD/CAM Development effort and maximising return on investment.
  • The Obligatory Tablet - a simple tablet motherboard which could potentially be developed as a very low cost single-sided 2-layer PCB. Components are chosen to reduce development cost and risk, as well as reduce manufacturing cost.
  • Laptop - a laptop motherboard which could potentially be developed as a very low cost single-sided 2-layer PCB, through the use of modular and optional components for WIFI and 3G.
  • LCD (TV) - an LCD Monitor (or Picture Frame) which can be upgraded into a TV or an All-in-One Computer or an Internet TV or Personal Video Recorder or Media Centre. very versatile yet simple to do.
  • Passthrough or "Blank" Card - a special type of card which simply passes through the connectors, with little or no signal conversion.

Contact and Discussion

For questions, comments and general discussion, please use arm-netbook mailing list

Slides

Introduction of EOMA

FAQ

The FAQ is now on its own page.