qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 7162bd: e600 core for MPC86xx processors


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 7162bd: e600 core for MPC86xx processors
Date: Fri, 12 Jul 2013 08:00:24 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 7162bdea75e9f63afdd2cacfe26ee4b472a59362
      
https://github.com/qemu/qemu/commit/7162bdea75e9f63afdd2cacfe26ee4b472a59362
  Author: Julio Guerra <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M target-ppc/cpu-models.c
    M target-ppc/cpu-models.h
    M target-ppc/translate_init.c

  Log Message:
  -----------
  e600 core for MPC86xx processors

MPC86xx processors are based on the e600 core, which is not the case
in qemu where it is based on the 7400 processor.

This patch creates the e600 core and instantiates the MPC86xx
processors based on it. Therefore, adding the high BATs, the SPRG
4..7 registers, which are e600-specific [1], and a HW MMU model (as 7400).
This allows to define the MPC8610 processor too.

Tested with a kernel using the HW TLB misses.

[1] http://cache.freescale.com/files/32bit/doc/ref_manual/E600CORERM.pdf

Signed-off-by: Julio Guerra <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 9a39970df783cf8317e7dbf00a8af184ce868b1b
      
https://github.com/qemu/qemu/commit/9a39970df783cf8317e7dbf00a8af184ce868b1b
  Author: Stefan Weil <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr: Fix compiler warnings for some versions of gcc

i686-w64-mingw32-gcc (GCC) 4.6.3 from Debian wheezy reports these warnings:

hw/ppc/spapr_hcall.c:188:1: warning:
 control reaches end of non-void function [-Wreturn-type]

hw/ppc/spapr_pci.c:454:1: warning:
 control reaches end of non-void function [-Wreturn-type]

Both warnings are fixed by using g_assert_not_reached instead of assert.
A second line with assert(0) in spapr_pci.c which did not raise a compiler
warning was modified, too, because g_assert_not_reached documents the
purpose of that statement and is not removed in release builds.

Signed-off-by: Stefan Weil <address@hidden>
Acked-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: a3801402aa01e2ecb617f89b2e11f212d948b5af
      
https://github.com/qemu/qemu/commit/a3801402aa01e2ecb617f89b2e11f212d948b5af
  Author: Stefan Weil <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ppc/spapr_hcall.c

  Log Message:
  -----------
  spapr: Use named enum for function remove_hpte

The function returned a target_ulong which was made from unnamed enum
values. The target_ulong was then assigned to an int variable which
was used in a switch statement.

Using a named enum in both cases makes reviews easier.

Signed-off-by: Stefan Weil <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 8e7ea787a20e30d44232cafb5a6e9a9fea364c66
      
https://github.com/qemu/qemu/commit/8e7ea787a20e30d44232cafb5a6e9a9fea364c66
  Author: Andreas Färber <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: Respect -bios command line option for SLOF

Allow the user to override the firmware file name rather than always
using "slof.bin".

Reported-by: Dinar Valeev <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 42e5b4c9884c2c69825d6b6c6ddfbf25290856db
      
https://github.com/qemu/qemu/commit/42e5b4c9884c2c69825d6b6c6ddfbf25290856db
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M default-configs/ppc64-softmmu.mak
    M hw/intc/Makefile.objs
    A hw/intc/xics.c
    M hw/ppc/Makefile.objs
    R hw/ppc/xics.c

  Log Message:
  -----------
  pseries: move interrupt controllers to hw/intc/

Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Andreas Färber <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 8d43ea1c97d0d611f9cf868fe78b17f2a1031298
      
https://github.com/qemu/qemu/commit/8d43ea1c97d0d611f9cf868fe78b17f2a1031298
  Author: Prerna Saxena <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M target-ppc/cpu-models.c
    M target-ppc/cpu-models.h
    M target-ppc/translate_init.c

  Log Message:
  -----------
  target-ppc: Add POWER8 v1.0 CPU model

This patch adds CPU PVR definition for POWER8,
and enables QEMU to launch guests on POWER8 hardware.

Signed-off-by: Prerna Saxena <address@hidden>
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Paul Mackerras <address@hidden>
Reviewed-by: Andreas Farber <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 536d8cda4adef3d202a800688ed5f63dae1f0f88
      
https://github.com/qemu/qemu/commit/536d8cda4adef3d202a800688ed5f63dae1f0f88
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c

  Log Message:
  -----------
  PPC: Mac: Fix guest exported tbfreq values

We can tell the guest the frequency of its time base through fwcfg.

However, we tell it a different value from the speed tb actually runs
at. Let's fix it and make the tbfreq initialization and the fwcfg exposure
use the same values.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 14eefd0ec3b4720faddf4cc7682d7ac8c82a3a45
      
https://github.com/qemu/qemu/commit/14eefd0ec3b4720faddf4cc7682d7ac8c82a3a45
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c
    M hw/misc/macio/macio.c
    M hw/ppc/mac_oldworld.c

  Log Message:
  -----------
  PPC: g3beige: Move secondary IDE bus to mac-io

On a real G3 Beige the secondary IDE bus lives on the mac-io chip, not
on some random PCI device. Move it there to become more compatible.

While at it, also clean up the IDE channel connection logic.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 8aef291fb876670b264297ab333f5072cddbf625
      
https://github.com/qemu/qemu/commit/8aef291fb876670b264297ab333f5072cddbf625
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c

  Log Message:
  -----------
  PPC: Macio: Replace tabs with spaces

s/^I/        /g on the file.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 9e232428784641b8e48a237a4cb2ffe84450d15c
      
https://github.com/qemu/qemu/commit/9e232428784641b8e48a237a4cb2ffe84450d15c
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c

  Log Message:
  -----------
  PPC: dbdma: Replace tabs with spaces

s/^I/        /g on the file with a few manual tweaks to align things.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 33ce36bb33cc00ac3070d49e17b4afed62b412a8
      
https://github.com/qemu/qemu/commit/33ce36bb33cc00ac3070d49e17b4afed62b412a8
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c
    M hw/misc/macio/mac_dbdma.c

  Log Message:
  -----------
  PPC: Mac: Add debug prints in macio and dbdma code

The macio code is basically undebuggable as it stands today, with no
debug prints anywhere whatsoever. DBDMA was better, but I needed a
few more to create reasonable logs that tell me where breakage is.

Add a DPRINTF macro in the macio source file and add a bunch of debug
prints that are all disabled by default of course.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 58c0c311838dd2c6622a156b4d261aa127c510dd
      
https://github.com/qemu/qemu/commit/58c0c311838dd2c6622a156b4d261aa127c510dd
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c

  Log Message:
  -----------
  PPC: dbdma: Fix debug print

There was a debug print that didn't compile for me because the format
and the arguments weren't in sync. Fix it up.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 7eaba824b6bc14ee724f8593891f2165d2faa4ab
      
https://github.com/qemu/qemu/commit/7eaba824b6bc14ee724f8593891f2165d2faa4ab
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c

  Log Message:
  -----------
  PPC: dbdma: Allow new commands in RUN state

The DBDMA controller can not change its command stream while it's
actively streaming data, true. But the fact that it's in RUN state
doesn't actually indicate anything. It could just as well be in
WAIT while in RUN. And then it's legal to change commands.

This fixes a real world issue I've encountered with Mac OS X.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: f2f963fd0775263f9c1cdd3cd92b171c8dae6c77
      
https://github.com/qemu/qemu/commit/f2f963fd0775263f9c1cdd3cd92b171c8dae6c77
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c
    M include/hw/ppc/mac_dbdma.h

  Log Message:
  -----------
  PPC: dbdma: Move defines into header file

We usually keep struct and constant definitions in header files. Move
them there to stay consistent and to make access to fields easier.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: d1e562deb2de5c2ced639b18dee59a9ab08236b6
      
https://github.com/qemu/qemu/commit/d1e562deb2de5c2ced639b18dee59a9ab08236b6
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c
    M include/hw/ppc/mac_dbdma.h

  Log Message:
  -----------
  PPC: dbdma: Introduce kick function

The DBDMA engine really is running all the time, waiting for input. However
we don't want to waste cycles constantly polling.

So introduce a kick function that data providers can call to notify the
DBDMA controller of new input.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: d2f0ce2189feef94516d81fa5834fa4d65435053
      
https://github.com/qemu/qemu/commit/d2f0ce2189feef94516d81fa5834fa4d65435053
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c
    M include/hw/ppc/mac_dbdma.h

  Log Message:
  -----------
  PPC: dbdma: Move static bh variable to device struct

The DBDMA controller has a bottom half to asynchronously process DMA
request queues.

This bh was stored as a gross static variable. Move it into the device
struct instead.

While at it, move all users of it to the new generic kick function.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 4aa3510f6f36c5ea35219acf641788222d977437
      
https://github.com/qemu/qemu/commit/4aa3510f6f36c5ea35219acf641788222d977437
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c
    M hw/ppc/mac.h

  Log Message:
  -----------
  PPC: dbdma: macio: Add DMA callback

We need to know when the IDE core starts a DMA transfer. Add a notifier
function so we have the chance to start transmitting data.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 03ee3b1e58266c7e5b155d58f443d94b23d2bd05
      
https://github.com/qemu/qemu/commit/03ee3b1e58266c7e5b155d58f443d94b23d2bd05
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c
    M include/hw/ppc/mac_dbdma.h

  Log Message:
  -----------
  PPC: dbdma: Move processing to io

Soon we will introduce intermediate processing pauses which will
allow the bottom half to restart a DMA request that couldn't be
fulfilled yet.

For that to work, move the processing variable into the io struct
which is what DMA providers work with.

While touching it, also change it into a bool

Signed-off-by: Alexander Graf <address@hidden>


  Commit: cae323572eddc1a45e2f6ef98c006d98fed23b1e
      
https://github.com/qemu/qemu/commit/cae323572eddc1a45e2f6ef98c006d98fed23b1e
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c
    M hw/ppc/mac.h

  Log Message:
  -----------
  PPC: dbdma: Wait for DMA until we have data

We should only start processing DMA requests when we have data to process.
Hold off working through the DMA shuffling until the IDE core told us that
it's ready.

This is required because the guest can program the DMA engine or the IDE
transfer first. Both are legal.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: 80fc95d8bdaf3392106b131a97ca701fd374489a
      
https://github.com/qemu/qemu/commit/80fc95d8bdaf3392106b131a97ca701fd374489a
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c
    M include/hw/ppc/mac_dbdma.h

  Log Message:
  -----------
  PPC: dbdma: Support unaligned DMA access

The DBDMA engine really just reads bytes from a producing device (IDE
in our case) and shoves these bytes into memory. It doesn't care whether
any alignment takes place or not.

Our code today however assumes that block accesses always happen on
sector (512 byte) boundaries. This is a fair assumption for most cases.

However, Mac OS X really likes to do unaligned, incomplete accesses
that it finishes with the next DMA request.

So we need to read / write the unaligned bits independent of the actual
asynchronous request, because that one can only handle 512-byte-aligned
data. We also need to cache these unaligned sectors until the next DMA
request, at which point the data might be successfully flushed from the
pipe.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: a0f9fdfd98cc0571f9921a7eadd7316532e3e289
      
https://github.com/qemu/qemu/commit/a0f9fdfd98cc0571f9921a7eadd7316532e3e289
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/misc/macio/macio.c

  Log Message:
  -----------
  PPC: Add timer handler for newworld mac-io

Mac OS X accesses fancy timer registers inside of the mac-io on bootup.

These really should be ticking at the mac-io bus frequency, but I don't
see anyone upset when we just make them as fast as we want to.

With this patch on top of my previous patch queue and latest OpenBIOS
I am able to boot Mac OS X 10.4 with -M mac99.

Signed-off-by: Alexander Graf <address@hidden>


  Commit: f35ea98cd9f75db9286f05bf3dc4b532f4cb5eaa
      
https://github.com/qemu/qemu/commit/f35ea98cd9f75db9286f05bf3dc4b532f4cb5eaa
  Author: Alexander Graf <address@hidden>
  Date:   2013-07-11 (Thu, 11 Jul 2013)

  Changed paths:
    M hw/ide/macio.c

  Log Message:
  -----------
  PPC: dbdma: Support more multi-issue DMA requests

A DMA request can happen for data that hasn't been completely been
provided by the IDE core yet. For example

  - DBDMA request for 0x1000 bytes
  - IDE request for 1 sector
  - DBDMA wants to read 0x1000 bytes (8 sectors) from bdrv
  - breakage

Instead, we should truncate our bdrv request to the maximum number
of sectors we're allowed to read at that given time. Once that transfer
is through, we will fall into our recently introduced waiting logic.

  - DBDMA requests for 0x1000 bytes
  - IDE request for 1 sector
  - DBDMA wants to read MIN(0x1000, 1 * 512) bytes
  - DBDMA finishes reading, indicates to IDE core that transfer is complete
  - IDE request for 7 sectors
  - DBDMA finishes the DMA

Reported-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>


  Commit: 25ca6a1f5a3ee0a1ae670590877ed14f05e28fba
      
https://github.com/qemu/qemu/commit/25ca6a1f5a3ee0a1ae670590877ed14f05e28fba
  Author: Anthony Liguori <address@hidden>
  Date:   2013-07-12 (Fri, 12 Jul 2013)

  Changed paths:
    M default-configs/ppc64-softmmu.mak
    M hw/ide/macio.c
    M hw/intc/Makefile.objs
    A hw/intc/xics.c
    M hw/misc/macio/mac_dbdma.c
    M hw/misc/macio/macio.c
    M hw/ppc/Makefile.objs
    M hw/ppc/mac.h
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_pci.c
    R hw/ppc/xics.c
    M include/hw/ppc/mac_dbdma.h
    M target-ppc/cpu-models.c
    M target-ppc/cpu-models.h
    M target-ppc/translate_init.c

  Log Message:
  -----------
  Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging

# By Alexander Graf (16) and others
# Via Alexander Graf
* agraf/ppc-for-upstream: (22 commits)
  PPC: dbdma: Support more multi-issue DMA requests
  PPC: Add timer handler for newworld mac-io
  PPC: dbdma: Support unaligned DMA access
  PPC: dbdma: Wait for DMA until we have data
  PPC: dbdma: Move processing to io
  PPC: dbdma: macio: Add DMA callback
  PPC: dbdma: Move static bh variable to device struct
  PPC: dbdma: Introduce kick function
  PPC: dbdma: Move defines into header file
  PPC: dbdma: Allow new commands in RUN state
  PPC: dbdma: Fix debug print
  PPC: Mac: Add debug prints in macio and dbdma code
  PPC: dbdma: Replace tabs with spaces
  PPC: Macio: Replace tabs with spaces
  PPC: g3beige: Move secondary IDE bus to mac-io
  PPC: Mac: Fix guest exported tbfreq values
  target-ppc: Add POWER8 v1.0 CPU model
  pseries: move interrupt controllers to hw/intc/
  spapr: Respect -bios command line option for SLOF
  spapr: Use named enum for function remove_hpte
  ...

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/c170a23ca009...25ca6a1f5a3e

reply via email to

[Prev in Thread] Current Thread [Next in Thread]