Statistics
| Branch: | Revision:

root / hw / ppc / e500.c @ 9e2c1298

History | View | Annotate | Download (23.3 kB)

# Date Author Comment
347dd79d 12/14/2012 02:12 pm Alexander Graf

PPC: E500: Generate dt pci irq map dynamically

Today we're hardcoding the PCI interrupt map in the e500 machine file.
Instead, let's write it dynamically so that different machine types
can have different slot properties.

Signed-off-by: Alexander Graf <>

492ec48d 12/14/2012 02:12 pm Alexander Graf

PPC: E500: Move PCI slot information into params

We have a params struct that allows us to expose differences between
e500 machine models. Include PCI slot information there, so we can have
different machines with different PCI slot topology.

Signed-off-by: Alexander Graf <>

9e2c1298 12/14/2012 02:12 pm Alexander Graf

PPC: e500: pci: Export slot2irq calculation

We need the calculation method to get from a PCI slot ID to its respective
interrupt line twice. Once in the internal map function and once when
assembling the device tree.

So let's extract the calculation to a separate function that can be called...

5bac0701 12/14/2012 02:12 pm Alexander Graf

openpic: remove irq_out

The current openpic emulation contains half-ready code for bypass mode.
Remove it, so that when someone wants to finish it they can start from a
clean state.

Signed-off-by: Alexander Graf <>

d0b72631 12/14/2012 02:12 pm Alexander Graf

openpic: convert to qdev

This patch converts the OpenPIC device to qdev. Along the way it
renames the "openpic" target to "raven" and the "mpic" target to
"fsl_mpic_20", to better reflect the actual models they implement.

This way we have a generic OpenPIC device now that can handle...

a911b7a9 12/14/2012 02:12 pm Alexander Graf

PPC: e500: Add MSI support

Now that our interrupt controller supports MSIs, let's expose that feature
to the guest through the device tree!

Signed-off-by: Alexander Graf <>

cdbb912a 12/14/2012 02:12 pm Alexander Graf

mpic: Unify numbering scheme

MPIC interrupt numbers in Linux (device tree) and in QEMU are different,
because QEMU takes the sparseness of the IRQ number space into account.

Remove that cleverness and instead assume a flat number space. This makes
the code easier to understand, because we are actually aligned with Linux...

dffb1dc2 12/14/2012 02:12 pm Bharat Bhushan

e500: Adding CCSR memory region

All devices are also placed under CCSR memory region.
The CCSR memory region is exported to pci device. The MSI interrupt
generation is the main reason to export the CCSR region to PCI device.
This put the requirement to move mpic under CCSR region, but logically...

3eddc1be 12/14/2012 02:12 pm Bharat Bhushan

Adding BAR0 for e500 PCI controller

PCI Root complex have TYPE-1 configuration header while PCI endpoint
have type-0 configuration header. The type-1 configuration header have
a BAR (BAR0). In Freescale PCI controller BAR0 is used for mapping pci
address space to CCSR address space. This can used for 2 purposes: 1)...

a1bc20df 10/29/2012 12:45 pm Alexander Graf

PPC: e500: Map PIO space into core memory region

On PPC, we don't have PIO. So usually PIO space behind a PCI bridge is
accessible via MMIO. Do this mapping explicitly by mapping the PIO space
of our PCI bus into a memory region that lives in memory space....

59de4f98 10/29/2012 12:45 pm Bharat Bhushan

e500: Fix serial initialization

it was wrongly using serial_hds0 instead of serial_hds1

Signed-off-by: Bharat Bhushan <>
Reviewed-by: Andreas Färber <>
Signed-off-by: Alexander Graf <>

a8170e5e 10/23/2012 04:58 pm Avi Kivity

Rename target_phys_addr_t to hwaddr

target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are
reserved) and its purpose doesn't match the name (most target_phys_addr_t
addresses are not target specific). Replace it with a finger-friendly,...

488cb996 10/22/2012 09:26 pm Gerd Hoffmann

serial: split serial.c

Split serial.c into serial.c, serial.h and serial-isa.c. While being at
creating a serial.h header file move the serial prototypes from pc.h to
the new serial.h. The latter leads to s/pc.h/serial.h/ in tons of
boards which just want the serial bits from pc.h...

71193433 10/05/2012 03:35 am Alexander Graf

fdt: move dumpdtb interpretation code to device_tree.c

The dumpdtb code can be useful in more places than just for e500. Move it
to a generic place.

Signed-off-by: Alexander Graf <>

9dd5eba1 10/05/2012 03:35 am Scott Wood

PPC: e500: increase DTC_LOAD_PAD

An allowance of 5 MiB for BSS is not enough for Linux kernels with certain
debug options enabled (not sure exactly which one caused it, but I'd guess
lockdep). The kernel I ran into this with had a BSS of around 6.4 MB.
...

7e7ec2d2 10/05/2012 03:35 am Scott Wood

PPC: e500: calculate initrd_base like dt_base

While investigating dtb pad issues, I noticed that initrd_base wasn't taking
loadaddr into account the way dt_base was. This seems wrong.

Signed-off-by: Scott Wood <>
Signed-off-by: Alexander Graf <>

fb37c302 10/05/2012 03:35 am Alexander Graf

PPC: e500: Only expose even TLB sizes in initial TLB

When booting our e500 machine, we automatically generate a big TLB entry
in TLB1 that covers all of the code we need to run in there until the guest
can handle its TLB on its own.

However, e500v2 can only handle MAS1.0 sizes. However, we keep our TLB...

7e99826c 08/15/2012 08:43 pm Alexander Graf

Revert "PPC: e500: Use new MPIC dt format"

This reverts commit 518c7fb44f2182cde943dc64f88cb2fd4e4ff6b5. It breaks
new Linux guests with SMP, because IPIs get mapped to large vectors which
our MPIC emulation does not implement.

Conflicts:

hw/ppc/e500.c
4a18e7c9 08/15/2012 08:43 pm Scott Wood

PPC: e500: rename mpc8544ds into generic file

Rename the file (with no changes other than fixing up the header paths)
in preparation for refactoring into a generic e500 platform. Also move
it into the newly created ppc/ directory.

Signed-off-by: Scott Wood <>...

b3305981 08/15/2012 08:43 pm Scott Wood

PPC: e500: change internal references away from mpc8544ds

No functional changes -- machine is still outwardly mpc8544ds.

The references that are not changed contain mpc8544 hardware details that
need to be parameterized if/when a different e500 platform wants to...

e6eaabeb 08/15/2012 08:43 pm Scott Wood

PPC: e500: split mpc8544ds machine from generic e500 code

Currently the only mpc8544ds-ism that is factored out is
toplevel compatible and model. In the future the generic e500
code is expected to become more generic.

Signed-off-by: Scott Wood <>...