Developing new systems for digital consumer electronics, office automation equipment, portable terminals and information appliances, as well as systems for cars and manufacturing applications requires increasingly powerful solutions.
On the hardware side a performance profile is required that can only be fulfilled by high-performance 32bit processors with integrated cache memories, MMUs and with highly integrated peripheral functions. On the software side, more and more developers use flexible operating systems, to achieve the scalability that is demanded in order to support the huge variety of these new applications.
Hence, the choice falls more frequently on Embedded Linux. This applies in particular, if free availability of source code, reliability, flexibility, networking capabilities and the support for multiple processor architectures are key requirements on the operating system.
Due to the increasing complexity of applications, it becomes more difficult to ensure short development times and low development costs on a long-term basis. A key requirement for a successful development of the target system is a complete and ready to use reference platform. In addition, reusability of hardware and software is a must today.
FLEXIBLE DEVELOPMENT PLATFORMS
This requires new solutions for operating systems and processors. The employment of flexible development platforms based on a scalable processor family, supported by board support packages for the Linux operating system, therefore represents a good combination.
The 32bit SuperH processor Renesas family was developed for the embedded market. They are based on a 32bit RISC architecture and on this architecture six upward compatible CPU cores have so far been developed. These are the SH-1, SH-2 and SH-3 cores, the CPU/DSP architectures SH-DSP and SH3-DSP and the superscalar SH-4 core with integrated FPU. Derivatives applicable for applications with Embedded Linux are based on the SH-3, SH3-DSP and SH-4 cores, because they all integrate a MMU and different cache memories.
In order to offer developers system solutions, Renesas produced a family of reference platforms.
Since these platforms can easily be adapted to different target markets, developers can use these as a starting point for their target application. The great advantage of these platforms is the broad support of operating systems through optimised board support packages. Hence, these can be used as demonstration platforms or for the development of embedded software. Let's take the Embedded Linux BSPs for the platforms EDOSK7705 (SH-3/SH7705) and SystemH7751 (SH-4/SH7751) as examples.
The EDOSK7705 is a low-cost reference platform for the SH7705 processor from the SH-3 family. Due to the availability of the Linux BSPs and the integration of 16Mbytes high speed SDRAM and 8Mbytes Intel Strata Flash, it is a good platform for CPU evaluation up to the direct development of the application software. The platform already contains a boot-loader, which makes it possible for the user to download code on to the board over the serial interface or over the Ethernet port. The key characteristics of the platform are:
- Standard Euro board-size (160mm x 100mm)
- USB1.1 interface (supporting 12Mbps full speed)
- Full-duplex serial interface with 64 byte buffer
- Ethernet 10BASE-T interface
- IrDA 1.0 interface with 64 byte buffer
- Local bus extension for connection of expansion cards.
The SystemH7751 platform has been designed to enable fast evaluation and development of systems based on the 2-way superscalar 32bit processor SH7751. This is achieved using the SystemH motherboard, with the addition of an engine card and either customer or Renesas expansion cards. Standard features on the motherboard include keyboard, mouse, serial port, parallel port, IrDA and Ethernet. There is also the ability to further expand the system using PC104 compliant cards. The main features of the reference platform are:
- 32Mbytes On-Board Flash
- 64Mbytes PC100 SDRAM
- 4Mbit Boot Flash
- Support of keyboard and mouse
- Serial port, parallel port and IrDA interface
- Ethernet 10BASE-T interface
- Four 32Bit 3.3V PCI interfaces.
In order to accelerate the beginning of a development, board support packages for Embedded Linux are free. Furthermore, professional support with the integration of Linux can be provided. For this purpose Renesas and MPC DATA have formed a partnership that covers the integration of Linux for the 32bit microprocessor families of the SuperH series. In the context of this partnership MPC DATA already launched the SH-Linux web page (www.shlinux.com) for dedicated support of the SuperH development platforms. This combination offers to system developers a cost-effective solution for the implementation of Embedded Linux.
MPC Data has been considerably involved in the development of Embedded Linux BSPs tailored for Renesas development boards. The features included in these BSPs go beyond conventional open source offers. Developers can use this as the basis for their own Embedded Linux project.
Furthermore MPC Data offers support with the software integration.
The BSP has been developed in a way that the features and characteristics of the SuperH processors are supported optimally. Not only have drivers and application software been developed, but optimisations on the kernel itself have also been made.
For example, the SH7705 has an enhanced cache and integrates 32Kbyte of cache memory, the double cache size compared with similar derivatives of the SH-3 family (eg SH7709S). This 4-way-set-associative cache structure is implemented as a compact 'unified' data and instruction cache with write back or write through mode. The support of this larger cache is not straightforward. With increasing size the cache becomes more susceptible to so-called aliasing. This is the effect where the same physical location can occur in more than one cache entry. The solution to this problem is to add a suitable cache flushing method. Thereby changes in the MMU page tables are recognised and analysed.
Similar optimisations have been made for the SH-4R CPU core. The standard SH-4 core has 8KByte instruction and 16KByte data cache, which are directly mapped. The SH-4R core, which is for instance integrated on the SH7751R device, implements an additional extended mode. In this extended mode the instruction cache is 16KByte and the data cache is 32Kbyte, whereby both are 2-way-set-associative.
Depending on the actual application, this extended cache can cause a considerable performance gain. Most 2.4 series Linux kernels, however, do not implement these characteristics. The BSP for the SystemH7751 development platform implements this extension in the kernel.
A further advantage of these BSPs is that not only are kernel and tool chain available, but they already contain many drivers and even application software. This is particularly helpful for developers who are dealing with the integration of Embedded Linux for the first time.
An additional driver that belongs to the BSP is a MTD (Memory Technology Device) driver for SuperAND Flash components of Renesas (eg HN29V12A). These SuperAND memories are a new generation of low-cost flash memories, which already integrate error correction mechanisms on-chip. Thus, they are particularly suitable for the employment as mass storage devices. For example, the driver contained in the BSP allows it to realise a persistent file system (eg JFF2) on the SuperAND Flash. An extension board for such an application is also available for the EDOSK7705 development platform.
The devices of the SuperH family are not only characterised by the efficient SuperH RISC CPUs with integrated MMUs and cache, but also by the high integration of various peripheral modules. Thus, system designs can be realised with a minimum of board level components. The SH7705, for instance, contains an USB function module with integrated USB transceiver (compatible to the 12-Mbit/s-version of the USB-V2.0-standards). This USB function module supports control-, interrupt- and bulk-transfers and can be connected to a USB host, such as a PC. In order to avoid confusion with standard USB device drivers, a driver for the USB device-side is known under Linux as a gadget driver. In the BSP, a gadget device driver for the SH7705 under Linux has been implemented and also several drivers for USB device-side functions have been included. These are networking over USB (CDC Ethernet), serial over USB and mass storage. When using the mass storage driver, the EDOSK7705 can be connected via USB to a Windows PC and files can be transferred without the need for any additional device driver to be installed on the Windows PC.
The entire development environment is completed by a boat-loader, which is stored in the flash of the development board. The SH TFTP boat loader is a utility program that allows the user to load code on to the board over the serial or the Ethernet interface.
The integrated debugging functions (H-UDI and AUD) support a JTAG emulator. An extensive development environment is generally available for the SuperH series of processors.
In addition to Renesas, third-party manufacturers like Lauterbach or Codescape offer soft and hardware tools.
The board support packages for Embedded Linux described in this article, can be downloaded free of charge under www.shlinux.com. Professional support for the software integration can be given by MPC Data, the Linux partner company of Renesas.