The GNU 64-bit PL8 compiler: toward an open standard environment for firmware development

  • Authors:
  • W. Gellerich;T. Hendel;R. Land;H. Lehmann;M. Mueller;P. H. Oden;H. Penner

  • Affiliations:
  • IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany;IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany;IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany;IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany;IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany;IBM Reasearch Division, IBM Thomas J. Watson Research Center, P.O. Box 218, Yorktown Heights, New York;IBM Systems and Technology Group, IBM Deutschland Entwicklung GmbH, Schoenaicherstrasse 220, 71032 Boeblingen, Germany

  • Venue:
  • IBM Journal of Research and Development
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

For two decades, large parts of zSeries® firmware have been Written in the PL8 programming language. The existence of a large amount of mature zSeries firmware source code and our excellent experienee with PL8 for system programming suggest keeping this language. However, the firmware address space of today's, zSeries servers may exceed 2 GB, raising the need for a new 64-bit PL8 compiler, since the original implementation, developed at the IBM Thomas J. Watson Research Center, Yorktown Heihts, New York, supports only 32-bit platforms. The GNU compiler collection (GCC) (GNU is a freeware UNIX® -like operating system) has been used to translate those parts of firmware written in C for some years and has also proved successful in compiling LinuxTM for zSeries. This fact, combined with the highly modular GCC design, suggested reimplementing PL8 within the GCC framework. In this paper, we report on the extension of PL8 to support 64-bit addressing, its implementation as a GCC front end, and the validation of the new compiler. We also evaluate PL8 as a language for highly reliable low-level programming and give some performance data. The paper documents the high level of quality achieved by the GCC open-source project and how Such software fits into the traditional IBM software development processes.