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

From eLinux.org
Jump to: navigation, search
(Background to Interface Selection)
(Requirements for USB)
Line 38: Line 38:
* Providing USB2 but not USB3 is acceptable.
* Providing USB2 but not USB3 is acceptable.
* Providing USB3 only but no backwards-compatibility with USB2 is '''not''' acceptable.
* Providing USB3 only but no backwards-compatibility with USB2 is '''not''' acceptable.
Chassis (devices) must also 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.
=== Requirements for Ethernet ===
=== Requirements for Ethernet ===

Revision as of 18:13, 3 November 2012


EOMA-68 Specification

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.

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.

The interfaces are:

  • 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).

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.

Background to Interface Selection

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.

  • 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 GL831A, GL830, the JMicron JM20337 or the TI USB3 to SATA bridge IC [www.ti.com/lit/ds/symlink/tusb9260.pdf TUSB9260].
  • 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 six. USB, 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 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

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:

  • Providing USB Low Speed (1.5 Mbit/s) is acceptable.
  • Providing USB Full Speed (12 Mbit/s) is acceptable if USB Low Speed is also provided
  • Providing USB Hi Speed is acceptable provided that Full Speed and Low Speed is also provided
  • Providing USB Hi Speed (480 Mbit/s) only and supporting no other speeds is not acceptable.
  • Providing USB2 but not USB3 is acceptable.
  • Providing USB3 only but no backwards-compatibility with USB2 is not acceptable.

Chassis (devices) must also 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.

Requirements for Ethernet

All CPU Cards are required to support the full auto-negotiation capabilities of Ethernet, up to the maximum speed chosen to be provided. Specifically:

  • Providing 10 Mbit/s Ethernet is acceptable
  • Providing 100 Mbit/s Ethernet and down-negotiation to 10 Mbit/s Ethernet is acceptable
  • Providing 100 Mbit/s Ethernet only is not acceptable
  • Providing 1,000 Mbit/s Ethernet is acceptable as long as down-level negotiation to both 100 Mbit/s and 10 Mbit/s is also provided
  • Providing 1,000 Mbit/s Ethernet only is not acceptable.

Requirements for SATA

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:

  • Provision of SATA-II is acceptable, but provision of SATA-II with only support for 3 Gbit/s SATA-II i.e. no support for all lower speeds is not acceptable.
  • Provision of SATA-III is acceptable, provided that backwards-compatibility with all prior versions of SATA are also provided

Pinouts (version 1.0)

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.

Four 5.0 V power inputs must be provided: all pins are rated at 0.5 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 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 V TTL but requires 5 V TTL tolerance. Typical TTL high-level voltage is 2.0 volts; threshold is 1.4 V; low-level TTL voltage is 0.8 V.

Also, because the GPIO pins can be reconfigured individually bi-directional for any digital purposes, they must be made to be 5 V TTL tolerant and tri-state isolated, and Motherboards also must be 5.0 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 V TTL levels, thus expect "high" voltage of 2.0 volts, threshold of 1.4 V and "low" voltage of 0.8 V, but must accept voltages from 0–5 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

Row 1 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 StdA_SSRX- * 54 ---- not used ---- / USB3 StdA_SSRX+
* 21 ---- not used ---- / USB3 StdA_SSTX- * 55 ---- not used ---- / USB3 StdA_SSTX+
* 22 ---- reserved ---- * 56 ---- reserved ----
* 23 ---- reserved ---- * 57 ---- reserved ----
* 24 PWR (5.0 V) * 58 PWR (5.0 V)
* 25 ---- not used ---- / 1000 Eth BI_DD+ * 59 ---- not used ---- / 1000 Eth BI_DD−
* 26 10/100 Ethernet (RX+) / 1000 Eth BI_DB+ * 60 10/100 Ethernet (RX−) / 1000 Eth BI_DB−
* 27 10/100 Ethernet (TX+) / 1000 Eth BI_DA+ * 61 10/100 Ethernet (TX−) / 1000 Eth BI_DA−
* 28 ---- not used ---- / 1000 Eth BI_DC+ * 62 ---- not used ---- / 1000 Eth BI_DC−
* 29 PWR (5.0 V) * 63 PWR (5.0 V)
* 30 USB2 (Data+) * 64 USB2 (Data−)
* 32 SATA-III Transmit (A+) * 66 SATA-III Transmit (A−)
* 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. 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 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 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 mm as well as recessed by some 8 mm, along the length of one of the 85 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, 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 mm × 5.5 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:

  • 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


This section is more informal than the specification above. Its main purpose is to highlight, from key conversations held on the Internet, what is special about EOMA-68 when compared to other standards.

  • OK, but why do you want EOMA to be installed/removed more often - I want to understand why granny would want to do this?
    • " SO-DIMM sockets have a lifecycle of about .... something like 25 cycles *total*. Maybe not Granny but a professional who has an EOMA-68-compliant Digital SLR Camera, as well as an EOMA-68-compliant smartphone, tablet, laptop, and 30in LCD monitor at work and a games console at home. They might end up inserting/removing their EOMA-68 CPU Cards up to 10 times a *day*. The potential here is *huge*. it covers virtually every mass-volume electronics system you can think of, in the world. With the exception of the hard-core gaming industry, the high-end server market, high-end / real-time video editing Industry and ... err... i run out of examples where EOMA-68 could not be used. oh yeah: portable watches :)"
    • http://lists.phcomp.co.uk/pipermail/arm-netbook/2012-October/005796.html
    • From: http://ibot.rikers.org/%23arm-netbook/20120929.html.gz @ 18:57.53 (slightly reformatted)
  • Why are the interfaces in EOMA-68 mandatory?
    • EOMA-68 is a mass-volume user standard, not a factory-installation standard. Imagine a situation where a customer buys a CPU Card where there was no support for SATA, for example. They would be extremely annoyed when plugging it in to a laptop, desktop or NAS box with an SATA drive, to find that the very expensive internal hard drive was inaccessible. This would result in returns of products, threatening the viability and acceptability of the standard.
    • About the only situation where not supporting some of the interfaces would be acceptable is a "pass-through card", especially one that's pre-installed, say in an LCD product that can be upgraded to a TV or a PC. Under these circumstances, not putting on an SATA pass-through socket would for example be reasonable, especially if that LCD product did not have a built-in SATA drive. However, a "general-purpose" pass-through card not associated with a specific product really should be sold with an eSATA socket, RJ45 connector, USB connector and a DVI, HDMI or other video input along with conversion internally to 24-pin RGB/TTL, in order to comply with the EOMA-68 specification.
  • Why are there so many pins dedicated to the LCD? 28 pins out of 68 is a lot: surely some other interface such as composite video (VGA) could be used for example?
    • VGA is surprisingly power-hungry as it is 75 ohms, and, at higher resolutions the analog R,G,B lines would be running at exceptionally high frequencies. A 24-pin parallel digital bus runs at much lower speeds, using less power. Additionally, the EOMA-68 Standard is designed for use for devices with LCD panels all the way from around 320x240 all the way up to 1920x1080 if the CPU supports that rate. If the standard required Composite Video, the cost of the ICs for converting from RGB/TTL to VGA plus the cost of converting back from VGA into RGB/TTL would threaten the viability of a low-cost product due to the additional cost. The larger products can however much easier absorb the cost of an LVDS converter IC. So the main reasons are: economics of scale. Also, the remaining 40 pins are perfectly sufficient for providing general-purpose "multi-peripheral" interfaces (I2C, SATA, Ethernet, USB).
  • We have a device where we want to save cost by assuming that all CPU Cards will come with the same ports as the very first CPU Card (the Allwinner A10). Is that ok?
    • It would be best not make any such assumptions when developing products. Future CPU Cards will include, for example, a built-in 3G antenna at the end (just as there are now with 3G cards for the legacy PCMCIA standard), where it will be important to keep any metal away from the antenna. Such CPU Cards could not have metal connectors like HDMI, or USB-OTG or Micro-SD; Micro-SD, just like with the SIM Card, would have to be top-loaded through the case. Products should be designed with this in mind. Realistically, however, end-users will clearly be able to see from the specification of a particular CPU Card what connectors it has.
  • Could you please modify the EOMA-68 Standard so that it at least requires Micro-SD, or HDMI, or USB-OTG?
    • Taking each of these in turn, the answer has to be no, each for different reasons:
    • HDMI - some ultra-low-cost SoCs only have one video output (usually RGB/TTL LCD out). The cost of an RGB/TTL LCD to HDMI Converter IC is often $5 and requires a $50,000 HDMI License! To require an HDMI output, apart from R.F. interference with a 3G CPU Card's antenna, would make such low-cost SoCs prohibitively expensive.
    • USB-OTG - again: many ultra-low-cost SoCs only have USB2. Whilst many of them have 2 USB2 interfaces, if one came along which only had 1x USB interface, then if USB-OTG user-facing was part of the EOMA-68 Standard it would be necessary to put down a $1.50 USB-OTG Hub IC and other components, automatically eliminating any competitive advantage of using that lower-cost SoC in the first place.
    • Micro-SD here it is different, but the same story. Even Micro-SD is quite wide (16mm) so in cases where a 3rd party EOMA-68 CPU Card Manufacturer makes a card with many connectors on the end, there simply may not be space for Micro-SD, and they may choose to make the Micro-SD "top-loading", or even leave it out altogether and use NAND Flash only.