Hitachi H8 Integrated Into uClinux

111
Miles Gillham writes “SnapGear, Inc. recently completed integration of support for the Hitachi H8 300S processor with the uClinux distribution. This involved taking the kernel port to completion by incorporating bug fixes, improving library and user application support, and providing a simple boot loader to get developers started. SnapGear’s work was at the instigation of Hitachi in order to support intended developments in the mobile security market.

The project leveraged heavily from the kernel work of Yoshinori Sato and Rob Wehrli who have made considerable contributions to the open source port. More recent integration was completed by a leading uClinux maintainer, David McCullough of SnapGear.

In David’s words: “At just over 7 bogomips it’s exciting for an inexpensive Linux capable CPU!”

First David did the elf2flt port, to give the H8S 2674R the same powerful userland
applications support that other uClinux ports have (ie., m68k and ARM).
elf2flt allows you to build large applications and take advantage of the
more advanced features provided by ELF compilers such as gcc.

One of the challenges was that were a number of bugs in the existing H8 support, primarily in
the context switching and syscall area as well as Unix signal handling. He added flash reading/writing support to the uClinux blkmem driver which allows the dev board to be a fully upgradable web-manageable appliance that provides persistant storage across reboots.

Lastly, David wrote a small example boot loader to start and run uClinux.

McCullough said: “The trickiest part was the context switching. With only serial output
for debug it was quite a challenge to track down what was going
wrong with system calls and interrupts.”

Also found and fixed was a compiler
bug that meant some C bit fields were addressing the wrong byte of memory.
This was causing weird behaviour in the kernel to say the least.

The uClinux distribution provides many features including:

  • web server (boa)
  • example CGI and web site setup
  • networking tools (ifconfig, route etc)
  • a filesystem that is saved to flash and restored on reboot
  • flash upgradability over the network using http or tftp
  • telnetd, ping, inetd
  • syslogd and klogd

About the Hitachi H8S 2674R Microprocessor and EDOSK-2674 Development Board

The Hitachi H8S microprocessor has numerous advanced features and capabilities that make it an ideal candidate for highly integrated, embedded Linux systems. Hitachi positions this processor at the top end of their 16bit family, just under the 32-bit SuperH® RISC engine. Clocking at 33MHz, the dual-mode H8S 2674R processor operates in 16/32bit modes.

The EDOSK-2674 development board has 4MB flash and 8MB RAM, 1x10Mbps ethernet, a serial port and expansion ports:

Availability

Patches and tools for building the uClinux-dist with H8 support are now available. Currently uClinux-2.4.21 and uClibc-0.9.19 are supported on the EDOSK-2674 platform. Full networking, telnetd, boa web server, CGI, flatfsd config filesystem and flash upgrades are all included.

The code is available from the uClinux CVS repository at cvs.uclinux.org

These changes are also part of SnapGear® Embedded Linux which encompasses both uClinux MMUless targets as well as MMUful microprocessors, with toolchains.

Further information:

SnapGear is a trademark of SnapGear Inc. All other trademarks are the property of their respective owners.”

Link: snapgear.com