wiki:Component/MPC7447A

Version 5 (modified by mouchard, 15 years ago) (diff)

--

UNDER DEVELOPMENT

MPC7447A Processor Functional Description

This hardware component is a Freescale MPC7447A, a 32-bit implementation of the PowerPC architecture used for both general purpose (PowerMacintosh and CHRP machines) and embedded applications (industrial and network). This model is still in development and currently uses IssWrapper to connect the ISS to the VCI xcache. The model should run applications not requiring the standard PowerPC MMU, and the PowerPC specific TLB and cache instructions.

Compiling the ISS

Some additionnal step are necessary to compile the model that will be removed once the model will be stable enough. The model needs three things to compile:

  • the macro SOCLIB must be defined: add '-DSOCLIB' to 'cflags'
  • libxml2 development headers must be installed: add -L/usr/include/libxml2 to the 'cflags' and -lxml2 to the 'libs'
  • UNISIM Library somewhere on the file system and do a symbolic link source and include directories:
$ svn --username guest --password "" export https://unisim.org/svn/devel/unisim_lib/unisim@10987
$ ln -s unisim `soclib-cc --getpath`/soclib/lib/mpc7447a/src/iss/unisim
$ ln -s unisim `soclib-cc --getpath`/soclib/lib/mpc7447a/include/iss/unisim

Here is a sample for soclib.conf to make it compile:

# -*- python -*-
# Maintainers: nipo

def _platform():
	"""
	Retrieves platform information and make it look-like systemc's
	lib-xxx thing.

	Working so far with:
	 * linux
	 * darwin
	"""
	import sys
	pf = sys.platform
	# Strip numeric suffix from platform name
	while pf[-1] in "0123456789":
		pf = pf[:-1]

	remap_pf = {'darwin':'macosx'}
	if pf in remap_pf:
		pf = remap_pf[pf]
	return pf

config.systemc = Config(
	base = config.systemc,
	dir = "${SYSTEMC}",
	os = _platform(),
	)

config.mytoolchain = Config(
	base= config.toolchain,
	cflags=['-DSOCLIB', '-I/usr/include/libxml2'],
	libs=['-lxml2', '-lbfd']
	)

config.default = Config(
	base = config.build_env,
	systemc = config.systemc,
	toolchain = config.mytoolchain,
	repos = "/tmp/build/sc",
	)

Example platform

An example platform is available in directory soclib/soclib/platform/topcells/caba-vgmn-mpc7447a It uses one MPC7447A module (Wrapped ISS), one VGMN interconnect module, two memory banks, and one output console (TTY). An software example is provided. The software includes a primitive firmware with some installed exceptions handlers and a primitive library to write characters on the TTY.

Screenhost of an MPC7447A application printing the Fibonnacci numbers over a TTY

Attachments (1)

Download all attachments as: .zip