Supported Processors: Difference between revisions

From Linux/Xtensa
Jump to navigation Jump to search
(Reorganize, remove obsolete MontaVista specific verbiage, clarify a bit more.)
Line 6: Line 6:
Tensilica’s Diamond Standard Series processor family consists of a number of ready-to-use synthesizable cores and is based on the Xtensa processor architecture. The Diamond Standard 232L processor contains an MMU and fully supports running Linux.
Tensilica’s Diamond Standard Series processor family consists of a number of ready-to-use synthesizable cores and is based on the Xtensa processor architecture. The Diamond Standard 232L processor contains an MMU and fully supports running Linux.


== Processor Configurations ==
== Automatic Support for Custom Xtensa Cores ==


Xtensa processors can come in a variety of configurations as defined by processor vendors. Although the strength of the Xtensa architecture is certainly the ability to optimize a processor for a particular application, many generic applications usually don't benefit much from these extensions. User-defined instructions optimized for audio decoding, for example, will probably not improve the performance of a web server much. Developers can, therefore, choose to use development tools configured for a generic processor configuration that provides binary-compatibility across various Xtensa processors to compile generic applications. ''LinuxBE'' (big-endian) and ''LinuxLE'' (little-endian) are such configurations. Based on the ''linux'' template provided to processor designers, they define a subset of options required to run Linux. Applications compiled with development tools for this configuration should, therefore, work on all Xtensa processors running Linux.  
Despite the endless possibilities provided by the configurability and extensibility of the Xtensa architecture, obtaining an open source toolchain and kernel that fully support a specific configured Xtensa core is a straightforward matter. The process is mostly automated (scripted), avoiding any need to manually port the kernel to a new processor variant as is typical for a fixed processor architecture.  Modifications to toolchain and kernel sources are limited to a small set of configuration files, typically provided by Tensilica in the form of an ''overlay'' to be copied into the sources. The development tools and kernel are subsequently configured and built as usual.


== Development Toolchain ==
In the Linux kernel for example, all configuration files are located inside the Xtensa include directory in the kernel sources (<code>include/asm-xtensa/variant-''config''</code>).  Adding support to the kernel
for a custom configured Xtensa processor generally involves copying the appropriate
configuration files into the appropriate variant directory.
See [[Buildroot_Build_Instructions#Install_any_required_processor_specific_overlay|Buildroot Overlay Installation]] for an automated method of installing these files in both toolchain and kernel sources.


Although the Xtensa architecture provides seemingly unlimited combinations of processor configurations, modifications to create optimized development tools and kernels are limited to a small set of configuration files in the respective sources. Once the configuration files have been copied into the sources, the development tools can be configured and built as usual.


== Kernel Configuration ==
== Kernel and Processor Configuration ==


Because the kernel is much closer to the hardware and provides an abstraction for many architectural options, it needs to be configured and compiled for a particular platform and processor configuration. It also requires development tools configured for the particular processor.  Note that a ''processor configuration'' is also often referred to as a ''core variant''.  The following list shows processors currently supported by the kernel.  
Because the kernel is much closer to the hardware and provides an abstraction for many architectural options, it needs to be configured and compiled for a particular platform and processor configuration. It also requires development tools configured for the particular processor.  Note that a ''processor configuration'' is also often referred to as a ''core variant''.  The following list shows processors currently supported by the kernel.  
Line 32: Line 34:
| Stretch S5000 || little endian || For the S56xx platform
| Stretch S5000 || little endian || For the S56xx platform
|}
|}
All configuration files are located inside the Xtensa include directory in the kernel sources (<code>include/asm-xtensa/variant-''config''</code>).  Adding support to the kernel
for a custom configured Xtensa processor generally involves copying the appropriate
configuration files into the appropriate variant directory.
See [[Buildroot_Build_Instructions#Install_any_required_processor_specific_overlay|Buildroot Overlay Installation]] for an automated method of installing these files.

Revision as of 20:37, 9 December 2008

Xtensa Processor Architecture

Chip.jpg

The Xtensa processor architecture is a configurable, extensible, and synthesizable 32-bit RISC processor core. SoC and processor designers can select from a variety of options, such as instruction-set extensions, memory, cache, and interrupt configurations. Moreover, Xtensa processors can be extended with custom-defined instructions and registers, as well as custom port and queue interfaces. All Xtensa processors share a common base instruction set architecture, thereby ensuring compatibility of third party application software and development tools.

Tensilica’s Diamond Standard Series processor family consists of a number of ready-to-use synthesizable cores and is based on the Xtensa processor architecture. The Diamond Standard 232L processor contains an MMU and fully supports running Linux.

Automatic Support for Custom Xtensa Cores

Despite the endless possibilities provided by the configurability and extensibility of the Xtensa architecture, obtaining an open source toolchain and kernel that fully support a specific configured Xtensa core is a straightforward matter. The process is mostly automated (scripted), avoiding any need to manually port the kernel to a new processor variant as is typical for a fixed processor architecture. Modifications to toolchain and kernel sources are limited to a small set of configuration files, typically provided by Tensilica in the form of an overlay to be copied into the sources. The development tools and kernel are subsequently configured and built as usual.

In the Linux kernel for example, all configuration files are located inside the Xtensa include directory in the kernel sources (include/asm-xtensa/variant-config). Adding support to the kernel for a custom configured Xtensa processor generally involves copying the appropriate configuration files into the appropriate variant directory. See Buildroot Overlay Installation for an automated method of installing these files in both toolchain and kernel sources.


Kernel and Processor Configuration

Because the kernel is much closer to the hardware and provides an abstraction for many architectural options, it needs to be configured and compiled for a particular platform and processor configuration. It also requires development tools configured for the particular processor. Note that a processor configuration is also often referred to as a core variant. The following list shows processors currently supported by the kernel.


Supported processors in the Linux kernel
Name Byte order Notes
Custom-configured Xtensa little or big endian Vendor specific, requires overlay
Diamond 232L little or big endian Rev.A and Rev.B
'FSF' big endian Only for verification
Stretch S5000 little endian For the S56xx platform