| 1 | | UNDER DEVELOPMENT |
| 2 | | |
| 3 | | |
| 4 | | == MPC7447A Processor Functional Description == |
| 5 | | |
| 6 | | 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). |
| 7 | | This model is still in development and currently uses [wiki:Component/IssWrapper IssWrapper] to connect the ISS to the VCI xcache. |
| 8 | | The model should run applications not requiring the standard PowerPC MMU, and the PowerPC specific TLB and cache instructions. |
| 9 | | |
| 10 | | == Compiling the ISS == |
| 11 | | |
| 12 | | Some additionnal step are necessary to compile the model that will be removed once the model will be stable enough. |
| 13 | | The model needs three things to compile: |
| 14 | | * the macro SOCLIB must be defined: add '-DSOCLIB' to 'cflags' |
| 15 | | * libxml2 development headers must be installed: add -L/usr/include/libxml2 to the 'cflags' and -lxml2 to the 'libs' |
| 16 | | * UNISIM Library somewhere on the file system and do a symbolic link into source and include directories. |
| 17 | | The following shell commands should be enough to do the job as long as SoCLib utilities (especially soclib-cc tool) are in you PATH: |
| 18 | | |
| 19 | | {{{ |
| 20 | | $ svn --username guest --password "" export https://unisim.org/svn/devel/unisim_lib/unisim@10987 |
| 21 | | $ export SOCLIB=`soclib-cc --getpath` |
| 22 | | $ ln -s unisim ${SOCLIB}/soclib/lib/mpc7447a/src/iss/unisim |
| 23 | | $ ln -s unisim ${SOCLIB}/soclib/lib/mpc7447a/include/iss/unisim |
| 24 | | }}} |
| 25 | | |
| 26 | | Here is a sample for '~/.soclib/global.conf' to make it compile: |
| 27 | | |
| 28 | | {{{ |
| 29 | | def _platform(): |
| 30 | | """ |
| 31 | | Retrieves platform information and make it look-like systemc's |
| 32 | | lib-xxx thing. |
| 33 | | |
| 34 | | Working so far with: |
| 35 | | * linux |
| 36 | | * darwin |
| 37 | | """ |
| 38 | | import sys |
| 39 | | pf = sys.platform |
| 40 | | # Strip numeric suffix from platform name |
| 41 | | while pf[-1] in "0123456789": |
| 42 | | pf = pf[:-1] |
| 43 | | |
| 44 | | remap_pf = {'darwin':'macosx'} |
| 45 | | if pf in remap_pf: |
| 46 | | pf = remap_pf[pf] |
| 47 | | return pf |
| 48 | | |
| 49 | | config.systemc = Config( |
| 50 | | base = config.systemc, |
| 51 | | dir = "${SYSTEMC}", |
| 52 | | os = _platform(), |
| 53 | | ) |
| 54 | | |
| 55 | | config.mytoolchain = Config( |
| 56 | | base= config.toolchain, |
| 57 | | cflags=['-DSOCLIB', '-I/usr/include/libxml2'], |
| 58 | | libs=['-lxml2', '-lbfd'] |
| 59 | | ) |
| 60 | | |
| 61 | | config.default = Config( |
| 62 | | base = config.build_env, |
| 63 | | systemc = config.systemc, |
| 64 | | toolchain = config.mytoolchain, |
| 65 | | repos = "/tmp/build/sc", |
| 66 | | ) |
| 67 | | }}} |
| 68 | | |
| 69 | | |
| 70 | | == Example platform == |
| 71 | | |
| 72 | | An example platform is available in directory soclib/soclib/platform/topcells/caba-vgmn-mpc7447a |
| 73 | | It uses one MPC7447A module (Wrapped ISS), one VGMN interconnect module, two memory banks, and one output console (TTY). |
| 74 | | 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. |
| 75 | | |
| 76 | | [[Image(caba-vgmn-mpc7447a-tty-soft.png)]] |
| | 1 | This component is deprecated and got removed at [1673]. |
| | 2 | If you want to try (without support), you can search through history of this page and SVN. |