1.1. Hardware Design Reference¶
Hardware is obviously a very important part of any embedded system. This section focuses on the various collateral that TI provides to help design good hardware.

For a Linux System, it is also important to consider the Linux software support available. Choosing devices that already have good Linux support can dramatically speed the design process and help ensure robustness.
1.1.1. Hardware Design Collateral¶
While it is not necessarily expected that Linux developers are also doing hardware design, the quality of hardware definitely has an impact on them. Dealing with hardware issues can dramatically impact software schedules. So, this list of helpful collateral is included to highlight the resources available to help ensure quality hardware for great software development.
Document/Resource | Notes |
---|---|
Data Sheet | Foundational document |
Technical Reference Manual | Foundational document |
Si Errata | Important for checking known issues and workarounds |
Schematic Review Checklist | Very important as a guide for board design. This document should be well understood before board design. |
High-Speed Interface Layout Guidelines | An excellent complement to Schematic Review Checklist above. Required reading for board designers. |
DDR Board Design and Layout Guidelines | Another required reading. DDR design seems to constantly be a challenge for new boards. |
SysConfig Configuration Tool | Important for Pin Mux, DDR Config, and MCU+ SDK. |
Power Estimation Tool | Useful tool to help estimate power consumption. |
BGA Escape Routing | Sample PCB escape routing. |
AM64x Starter Kit | Design files serve as good examples. |
AM64x GP EVM | 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 often advantageous to choose hardware that is already well supported by Linux. Linux code that has been used in other systems has inherently been tested and hardened. It is also available, which avoids having to develop new drivers and work 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 check makes sure that software project deadlines are planned accordingly. If a components without Linux support is chosen, the software development efforts to enable that device should be factored into the overall project costs and timelines.