1.1. Hardware Design Reference¶
Hardware is a critical part of any embedded system. This section focuses on the collateral that TI provides to help design good hardware.
A Linux system must consider the Linux software support available. Choosing devices that already have good Linux support can dramatically speed the design process and help ensure software robustness.
1.1.1. Hardware Design Collateral¶
Linux developers may not perform hardware design, but the quality of hardware impacts Linux development. Hardware issues can dramatically impact software schedules. This list of helpful collateral is included to highlight the resources available to help ensure quality hardware for efficient software development.
Document/Resource |
Notes |
---|---|
Foundational document |
|
Foundational document |
|
Important for checking known issues and workarounds |
|
Very important as a guide for board design. This document should be well understood before board design. |
|
An excellent complement to Schematic Review Checklist above. Required reading for board designers. |
|
Another required reading. DDR design can be a challenge for new boards. |
|
Important for Pin Mux, DDR Config, and MCU+ SDK. |
|
Useful tool to help estimate power consumption. |
|
Sample PCB escape routing. |
|
Design files serve as good examples. |
|
Design files serve as good examples. |
1.1.2. Linux Software Compatibility¶
In addition to designing the best hardware for a robust embedded system, it is advantageous to choose hardware that is already well supported by Linux. Linux code that has been used in other systems has already been tested and hardened. If Linux support for a feature is already available, then the Linux developer can avoid developing new drivers and working out the likely bugs in them. This availability and robustness save time and effort by software teams and help keep schedules on track.
TI provides Linux drivers for most SoC functions and peripherals. The available drivers and features can be checked in the Software Build Sheet. While this covers the SoC peripherals, it does not cover the individual components that these peripherals are interfacing with. For example, I2C master on AM64x has a Linux driver provided with the Processor SDK for Linux. That does not mean that the I2C GPIO Expander that is chosen for a design has a corresponding driver. The availability of such a driver needs to be checked as well:
Search the Linux source code for driver support.
Ask the vendor if a Linux driver is provided.
Check what is used on a TI, community, or other public boards.
Leverage previous experience from other projects.
It is very important to understand the driver availability of all components being used on a board or project before project commissioning. This makes sure that software project deadlines are planned accordingly. If a component without Linux support is chosen, then the software development efforts to enable that device should be factored into the overall project costs and timelines.