Skip to content

Add MVME3100 PPC SBC

Michael Davidsaver qemu-devel 1 version Applied

Status from this message: Applied to ppc-for-2.12.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest11 of 12 patches 21 repliesApplied

11 of 12 patches are in this archive. The cover letter announces 12.

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/12e500: add board config optionshw/ppc/e500.c hw/ppc/e500.h hw/ppc/e500plat.c +1 more+11 -24 replies
3/12e500: note possible bug with host bridgehw/pci-host/ppce500.c+3 -02 replies
4/12e500: additional CCSR registershw/ppc/e500.c hw/ppc/e500.h hw/ppc/e500_ccsr.c +2 more+75 -21 reply
5/12e500: name openpic and pci host bridgehw/ppc/e500.c+4 -01 reply
6/12i2c: add mpc8540 i2c controllerhw/i2c/Makefile.objs hw/i2c/mpc8540_i2c.c+288 -03 replies
7/12qtest: add e500_i2c_create()tests/Makefile.include tests/libqos/i2c-e500.c tests/libqos/i2c.h+70 -00 replies
8/12e500: add mpc8540 i2c controller to ccsrhw/ppc/e500.c+8 -02 replies
9/12nvram: add AT24Cx i2c eepromhw/nvram/Makefile.objs hw/nvram/eeprom_at24c.c+206 -01 reply
10/12timer: add ds1375 RTCdefault-configs/ppc-softmmu.mak hw/timer/Makefile.objs hw/timer/ds1375-i2c.c+295 -01 reply
11/12ppc: add mvme3100 machinehw/ppc/Makefile.objs hw/ppc/mvme3100.c hw/ppc/mvme3100_cpld.c+881 -00 replies
12/12tests: add mvme3100-testtests/Makefile.include tests/mvme3100-test.c+82 -00 replies

Reviews trailers per patch

1 of 11 patches has a Reviewed-by or Acked-by.

PatchDavid Gibson
1/12
3/12
4/12R-b
5/12
6/12
7/12
8/12
9/12
10/12
11/12
12/12

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 00/12] Add MVME3100 PPC SBC

This series adds simulation of MVME3100 powerpc SBCs, originally from Motorola, and now sold by Artesyn[1]. There are two variants differing in CPU speed and memory size.

I've been working on this sporadically for the past 2 year. Recently I've finished all the features which I have in mind. If this series is accepted there is a continuation which adds VME bus. I've found it useful in software compatibility testing. I wonder if there is any interest at large?

There are two main parts of this series. 1-5 are changing code common with the "ppce500" and "mpc8544ds" boards, with the remainder being additions.

The changes are to how the CCSR region is handled in order to support the CCSRBAR register which allows the whole region to be relocated. Also added are a couple of memory and clock configuration registers which RTEMS guests read.

#3 is actually a minor issue I found recently with the mpc8544 PCI host bridge, which I'm uncertain how to address. The host bridge device 0:0 identifies itself as a bridge, but doesn't properly implement the bridge config registers. This confuses Linux, which then does a full re-enumeration (successfully).

The rest are additions of an I2C controller, an I2C eeprom, an I2C RTC, and new board code.

My testing has been almost exclusively with an RTEMS guest[2]. Though I have recently done a little with Linux.

RTEMS guests (and Linux too for now) require a stub bootloader[3] to put the system in the same state as the real bootloader. RTEMS has an unfortunately strong dependence on bootloader provided configuration (eg. it doesn't re-enumerate the PCI bus).

[1] https://www.artesyn.com/computing/products/product/mvme3100-vme-board-with-freescale-mpc8540-system-on-chip-processor

[2] https://www.rtems.org/

[3] https://github.com/mdavidsaver/qemu/wiki

Michael Davidsaver (12):
e500: add board config options
e500: consolidate mpc8540 guts with e500-ccsr
e500: note possible bug with host bridge
e500: additional CCSR registers
e500: name openpic and pci host bridge
i2c: add mpc8540 i2c controller
qtest: add e500_i2c_create()
e500: add mpc8540 i2c controller to ccsr
nvram: add AT24Cx i2c eeprom
timer: add ds1375 RTC
ppc: add mvme3100 machine
tests: add mvme3100-test

 default-configs/ppc-softmmu.mak |   1 +
 hw/i2c/Makefile.objs            |   1 +
 hw/i2c/mpc8540_i2c.c            | 287 +++++++++++++++++
 hw/nvram/Makefile.objs          |   1 +
 hw/nvram/eeprom_at24c.c         | 205 ++++++++++++
 hw/pci-host/ppce500.c           |  13 +-
 hw/ppc/Makefile.objs            |   4 +-
 hw/ppc/e500-ccsr.h              |  17 -
 hw/ppc/e500.c                   |  59 ++--
 hw/ppc/e500.h                   |   4 +
 hw/ppc/e500_ccsr.c              | 220 +++++++++++++
 hw/ppc/e500plat.c               |   2 +
 hw/ppc/mpc8544_guts.c           | 143 ---------
 hw/ppc/mpc8544ds.c              |   2 +
 hw/ppc/mvme3100.c               | 688 ++++++++++++++++++++++++++++++++++++++++
 hw/ppc/mvme3100_cpld.c          | 192 +++++++++++
 hw/timer/Makefile.objs          |   1 +
 hw/timer/ds1375-i2c.c           | 293 +++++++++++++++++
 tests/Makefile.include          |   4 +
 tests/libqos/i2c-e500.c         |  66 ++++
 tests/libqos/i2c.h              |   3 +
 tests/mvme3100-test.c           |  79 +++++
 22 files changed, 2083 insertions(+), 202 deletions(-)
 create mode 100644 hw/i2c/mpc8540_i2c.c
 create mode 100644 hw/nvram/eeprom_at24c.c
 delete mode 100644 hw/ppc/e500-ccsr.h
 create mode 100644 hw/ppc/e500_ccsr.c
 delete mode 100644 hw/ppc/mpc8544_guts.c
 create mode 100644 hw/ppc/mvme3100.c
 create mode 100644 hw/ppc/mvme3100_cpld.c
 create mode 100644 hw/timer/ds1375-i2c.c
 create mode 100644 tests/libqos/i2c-e500.c
 create mode 100644 tests/mvme3100-test.c
Signature · 1 line
2.11.0