diff mbox

PPC: Move ppc specific hw emulation to hw/ppc

Message ID 1359076338-16264-1-git-send-email-agraf@suse.de
State New
Headers show

Commit Message

Alexander Graf Jan. 25, 2013, 1:12 a.m. UTC
This patch moves all PowerPC specific hardware emulation except for
PREP to hw/ppc.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 MAINTAINERS                  |   20 ++++++++++----------
 hw/Makefile.objs             |   16 +---------------
 hw/ppc/Makefile.objs         |   38 ++++++++++++++++++++++++++++++--------
 hw/{ => ppc}/adb.c           |    2 +-
 hw/{ => ppc}/adb.h           |    2 +-
 hw/{ => ppc}/cuda.c          |    4 ++--
 hw/{ => ppc}/dec_pci.c       |   10 +++++-----
 hw/{ => ppc}/dec_pci.h       |    0
 hw/ppc/e500.c                |    6 +++---
 hw/ppc/e500plat.c            |    4 ++--
 hw/{ => ppc}/grackle_pci.c   |    6 +++---
 hw/{ => ppc}/heathrow_pic.c  |    4 ++--
 hw/ppc/mac.h                 |    2 +-
 hw/{ => ppc}/mac_dbdma.c     |    4 ++--
 hw/{ => ppc}/mac_dbdma.h     |    0
 hw/ppc/mac_newworld.c        |   10 +++++-----
 hw/{ => ppc}/mac_nvram.c     |    6 +++---
 hw/ppc/mac_oldworld.c        |    4 ++--
 hw/{ => ppc}/macio.c         |    8 ++++----
 hw/{ => ppc}/mpc8544_guts.c  |    4 ++--
 hw/ppc/mpc8544ds.c           |    4 ++--
 hw/{ => ppc}/openpic.c       |   10 +++++-----
 hw/{ => ppc}/openpic.h       |    0
 hw/{ => ppc}/ppc-viosrp.h    |    0
 hw/{ => ppc}/ppc.c           |    8 ++++----
 hw/{ => ppc}/ppc.h           |    0
 hw/{ => ppc}/ppc405.h        |    0
 hw/{ => ppc}/ppc405_boards.c |   10 +++++-----
 hw/{ => ppc}/ppc405_uc.c     |    4 ++--
 hw/{ => ppc}/ppc440_bamboo.c |   12 ++++++------
 hw/{ => ppc}/ppc4xx.h        |    2 +-
 hw/{ => ppc}/ppc4xx_devs.c   |    2 +-
 hw/{ => ppc}/ppc4xx_pci.c    |    6 +++---
 hw/{ => ppc}/ppc_booke.c     |    6 +++---
 hw/{ => ppc}/ppc_prep.c      |    0
 hw/{ => ppc}/ppce500_pci.c   |    8 ++++----
 hw/{ => ppc}/ppce500_pci.h   |    0
 hw/{ => ppc}/ppce500_spin.c  |    4 ++--
 hw/{ => ppc}/spapr.c         |   14 +++++++-------
 hw/{ => ppc}/spapr.h         |    2 +-
 hw/{ => ppc}/spapr_events.c  |    4 ++--
 hw/{ => ppc}/spapr_hcall.c   |    2 +-
 hw/{ => ppc}/spapr_iommu.c   |    6 +++---
 hw/{ => ppc}/spapr_llan.c    |    6 +++---
 hw/{ => ppc}/spapr_nvram.c   |    4 ++--
 hw/{ => ppc}/spapr_pci.c     |   14 +++++++-------
 hw/{ => ppc}/spapr_pci.h     |    2 +-
 hw/{ => ppc}/spapr_rtas.c    |    4 ++--
 hw/{ => ppc}/spapr_vio.c     |   12 ++++++------
 hw/{ => ppc}/spapr_vio.h     |    0
 hw/{ => ppc}/spapr_vscsi.c   |   12 ++++++------
 hw/{ => ppc}/spapr_vty.c     |    6 +++---
 hw/{ => ppc}/srp.h           |    0
 hw/{ => ppc}/unin_pci.c      |    8 ++++----
 hw/{ => ppc}/virtex_ml507.c  |   16 ++++++++--------
 hw/{ => ppc}/xics.c          |    6 +++---
 hw/{ => ppc}/xics.h          |    0
 target-ppc/kvm.c             |    6 +++---
 58 files changed, 179 insertions(+), 171 deletions(-)
 rename hw/{ => ppc}/adb.c (99%)
 rename hw/{ => ppc}/adb.h (99%)
 rename hw/{ => ppc}/cuda.c (99%)
 rename hw/{ => ppc}/dec_pci.c (97%)
 rename hw/{ => ppc}/dec_pci.h (100%)
 rename hw/{ => ppc}/grackle_pci.c (98%)
 rename hw/{ => ppc}/heathrow_pic.c (99%)
 rename hw/{ => ppc}/mac_dbdma.c (99%)
 rename hw/{ => ppc}/mac_dbdma.h (100%)
 rename hw/{ => ppc}/mac_nvram.c (98%)
 rename hw/{ => ppc}/macio.c (99%)
 rename hw/{ => ppc}/mpc8544_guts.c (98%)
 rename hw/{ => ppc}/openpic.c (99%)
 rename hw/{ => ppc}/openpic.h (100%)
 rename hw/{ => ppc}/ppc-viosrp.h (100%)
 rename hw/{ => ppc}/ppc.c (99%)
 rename hw/{ => ppc}/ppc.h (100%)
 rename hw/{ => ppc}/ppc405.h (100%)
 rename hw/{ => ppc}/ppc405_boards.c (99%)
 rename hw/{ => ppc}/ppc405_uc.c (99%)
 rename hw/{ => ppc}/ppc440_bamboo.c (98%)
 rename hw/{ => ppc}/ppc4xx.h (99%)
 rename hw/{ => ppc}/ppc4xx_devs.c (99%)
 rename hw/{ => ppc}/ppc4xx_pci.c (99%)
 rename hw/{ => ppc}/ppc_booke.c (99%)
 rename hw/{ => ppc}/ppc_prep.c (100%)
 rename hw/{ => ppc}/ppce500_pci.c (99%)
 rename hw/{ => ppc}/ppce500_pci.h (100%)
 rename hw/{ => ppc}/ppce500_spin.c (99%)
 rename hw/{ => ppc}/spapr.c (99%)
 rename hw/{ => ppc}/spapr.h (99%)
 rename hw/{ => ppc}/spapr_events.c (99%)
 rename hw/{ => ppc}/spapr_hcall.c (99%)
 rename hw/{ => ppc}/spapr_iommu.c (99%)
 rename hw/{ => ppc}/spapr_llan.c (99%)
 rename hw/{ => ppc}/spapr_nvram.c (99%)
 rename hw/{ => ppc}/spapr_pci.c (99%)
 rename hw/{ => ppc}/spapr_pci.h (99%)
 rename hw/{ => ppc}/spapr_rtas.c (99%)
 rename hw/{ => ppc}/spapr_vio.c (99%)
 rename hw/{ => ppc}/spapr_vio.h (100%)
 rename hw/{ => ppc}/spapr_vscsi.c (99%)
 rename hw/{ => ppc}/spapr_vty.c (98%)
 rename hw/{ => ppc}/srp.h (100%)
 rename hw/{ => ppc}/unin_pci.c (99%)
 rename hw/{ => ppc}/virtex_ml507.c (97%)
 rename hw/{ => ppc}/xics.c (99%)
 rename hw/{ => ppc}/xics.h (100%)

Comments

Andreas Färber Jan. 25, 2013, 8:16 a.m. UTC | #1
Am 25.01.2013 02:12, schrieb Alexander Graf:
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 35c260d..3664dc8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
[...]
>  
>  New World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_newworld.c
> -F: hw/unin_pci.c
> -F: hw/dec_pci.[hc]
> +F: hw/ppc/ppc_newworld.c

F: hw/ppc/mac_newworld.c

> +F: hw/ppc/unin_pci.c
> +F: hw/ppc/dec_pci.[hc]
>  
>  Old World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_oldworld.c
> -F: hw/grackle_pci.c
> +F: hw/ppc/ppc_oldworld.c

F: hw/ppc/mac_oldworld.c

> +F: hw/ppc/grackle_pci.c
>  
>  PReP
>  M: Andreas FÀrber <andreas.faerber@web.de>

My bad. I'll send you a diff to fix-up my movement patch.

Andreas
Blue Swirl Jan. 25, 2013, 7:06 p.m. UTC | #2
On Fri, Jan 25, 2013 at 1:12 AM, Alexander Graf <agraf@suse.de> wrote:
> This patch moves all PowerPC specific hardware emulation except for
> PREP to hw/ppc.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  MAINTAINERS                  |   20 ++++++++++----------
>  hw/Makefile.objs             |   16 +---------------
>  hw/ppc/Makefile.objs         |   38 ++++++++++++++++++++++++++++++--------
>  hw/{ => ppc}/adb.c           |    2 +-
>  hw/{ => ppc}/adb.h           |    2 +-
>  hw/{ => ppc}/cuda.c          |    4 ++--
>  hw/{ => ppc}/dec_pci.c       |   10 +++++-----
>  hw/{ => ppc}/dec_pci.h       |    0

Please don't, Sparc64 should also use this device.

>  hw/ppc/e500.c                |    6 +++---
>  hw/ppc/e500plat.c            |    4 ++--
>  hw/{ => ppc}/grackle_pci.c   |    6 +++---
>  hw/{ => ppc}/heathrow_pic.c  |    4 ++--
>  hw/ppc/mac.h                 |    2 +-
>  hw/{ => ppc}/mac_dbdma.c     |    4 ++--
>  hw/{ => ppc}/mac_dbdma.h     |    0
>  hw/ppc/mac_newworld.c        |   10 +++++-----
>  hw/{ => ppc}/mac_nvram.c     |    6 +++---
>  hw/ppc/mac_oldworld.c        |    4 ++--
>  hw/{ => ppc}/macio.c         |    8 ++++----
>  hw/{ => ppc}/mpc8544_guts.c  |    4 ++--
>  hw/ppc/mpc8544ds.c           |    4 ++--
>  hw/{ => ppc}/openpic.c       |   10 +++++-----
>  hw/{ => ppc}/openpic.h       |    0
>  hw/{ => ppc}/ppc-viosrp.h    |    0
>  hw/{ => ppc}/ppc.c           |    8 ++++----
>  hw/{ => ppc}/ppc.h           |    0
>  hw/{ => ppc}/ppc405.h        |    0
>  hw/{ => ppc}/ppc405_boards.c |   10 +++++-----
>  hw/{ => ppc}/ppc405_uc.c     |    4 ++--
>  hw/{ => ppc}/ppc440_bamboo.c |   12 ++++++------
>  hw/{ => ppc}/ppc4xx.h        |    2 +-
>  hw/{ => ppc}/ppc4xx_devs.c   |    2 +-
>  hw/{ => ppc}/ppc4xx_pci.c    |    6 +++---
>  hw/{ => ppc}/ppc_booke.c     |    6 +++---
>  hw/{ => ppc}/ppc_prep.c      |    0
>  hw/{ => ppc}/ppce500_pci.c   |    8 ++++----
>  hw/{ => ppc}/ppce500_pci.h   |    0
>  hw/{ => ppc}/ppce500_spin.c  |    4 ++--
>  hw/{ => ppc}/spapr.c         |   14 +++++++-------
>  hw/{ => ppc}/spapr.h         |    2 +-
>  hw/{ => ppc}/spapr_events.c  |    4 ++--
>  hw/{ => ppc}/spapr_hcall.c   |    2 +-
>  hw/{ => ppc}/spapr_iommu.c   |    6 +++---
>  hw/{ => ppc}/spapr_llan.c    |    6 +++---
>  hw/{ => ppc}/spapr_nvram.c   |    4 ++--
>  hw/{ => ppc}/spapr_pci.c     |   14 +++++++-------
>  hw/{ => ppc}/spapr_pci.h     |    2 +-
>  hw/{ => ppc}/spapr_rtas.c    |    4 ++--
>  hw/{ => ppc}/spapr_vio.c     |   12 ++++++------
>  hw/{ => ppc}/spapr_vio.h     |    0
>  hw/{ => ppc}/spapr_vscsi.c   |   12 ++++++------
>  hw/{ => ppc}/spapr_vty.c     |    6 +++---
>  hw/{ => ppc}/srp.h           |    0
>  hw/{ => ppc}/unin_pci.c      |    8 ++++----
>  hw/{ => ppc}/virtex_ml507.c  |   16 ++++++++--------
>  hw/{ => ppc}/xics.c          |    6 +++---
>  hw/{ => ppc}/xics.h          |    0
>  target-ppc/kvm.c             |    6 +++---
>  58 files changed, 179 insertions(+), 171 deletions(-)
>  rename hw/{ => ppc}/adb.c (99%)
>  rename hw/{ => ppc}/adb.h (99%)
>  rename hw/{ => ppc}/cuda.c (99%)
>  rename hw/{ => ppc}/dec_pci.c (97%)
>  rename hw/{ => ppc}/dec_pci.h (100%)
>  rename hw/{ => ppc}/grackle_pci.c (98%)
>  rename hw/{ => ppc}/heathrow_pic.c (99%)
>  rename hw/{ => ppc}/mac_dbdma.c (99%)
>  rename hw/{ => ppc}/mac_dbdma.h (100%)
>  rename hw/{ => ppc}/mac_nvram.c (98%)
>  rename hw/{ => ppc}/macio.c (99%)
>  rename hw/{ => ppc}/mpc8544_guts.c (98%)
>  rename hw/{ => ppc}/openpic.c (99%)
>  rename hw/{ => ppc}/openpic.h (100%)
>  rename hw/{ => ppc}/ppc-viosrp.h (100%)
>  rename hw/{ => ppc}/ppc.c (99%)
>  rename hw/{ => ppc}/ppc.h (100%)
>  rename hw/{ => ppc}/ppc405.h (100%)
>  rename hw/{ => ppc}/ppc405_boards.c (99%)
>  rename hw/{ => ppc}/ppc405_uc.c (99%)
>  rename hw/{ => ppc}/ppc440_bamboo.c (98%)
>  rename hw/{ => ppc}/ppc4xx.h (99%)
>  rename hw/{ => ppc}/ppc4xx_devs.c (99%)
>  rename hw/{ => ppc}/ppc4xx_pci.c (99%)
>  rename hw/{ => ppc}/ppc_booke.c (99%)
>  rename hw/{ => ppc}/ppc_prep.c (100%)
>  rename hw/{ => ppc}/ppce500_pci.c (99%)
>  rename hw/{ => ppc}/ppce500_pci.h (100%)
>  rename hw/{ => ppc}/ppce500_spin.c (99%)
>  rename hw/{ => ppc}/spapr.c (99%)
>  rename hw/{ => ppc}/spapr.h (99%)
>  rename hw/{ => ppc}/spapr_events.c (99%)
>  rename hw/{ => ppc}/spapr_hcall.c (99%)
>  rename hw/{ => ppc}/spapr_iommu.c (99%)
>  rename hw/{ => ppc}/spapr_llan.c (99%)
>  rename hw/{ => ppc}/spapr_nvram.c (99%)
>  rename hw/{ => ppc}/spapr_pci.c (99%)
>  rename hw/{ => ppc}/spapr_pci.h (99%)
>  rename hw/{ => ppc}/spapr_rtas.c (99%)
>  rename hw/{ => ppc}/spapr_vio.c (99%)
>  rename hw/{ => ppc}/spapr_vio.h (100%)
>  rename hw/{ => ppc}/spapr_vscsi.c (99%)
>  rename hw/{ => ppc}/spapr_vty.c (98%)
>  rename hw/{ => ppc}/srp.h (100%)
>  rename hw/{ => ppc}/unin_pci.c (99%)
>  rename hw/{ => ppc}/virtex_ml507.c (97%)
>  rename hw/{ => ppc}/xics.c (99%)
>  rename hw/{ => ppc}/xics.h (100%)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 35c260d..3664dc8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -352,13 +352,13 @@ PowerPC Machines
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/ppc405_boards.c
> +F: hw/ppc/ppc405_boards.c
>
>  Bamboo
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/ppc440_bamboo.c
> +F: hw/ppc/ppc440_bamboo.c
>
>  e500
>  M: Alexander Graf <agraf@suse.de>
> @@ -374,22 +374,22 @@ M: Scott Wood <scottwood@freescale.com>
>  L: qemu-ppc@nongnu.org
>  S: Supported
>  F: hw/ppc/mpc8544ds.c
> -F: hw/mpc8544_guts.c
> +F: hw/ppc/mpc8544_guts.c
>
>  New World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_newworld.c
> -F: hw/unin_pci.c
> -F: hw/dec_pci.[hc]
> +F: hw/ppc/ppc_newworld.c
> +F: hw/ppc/unin_pci.c
> +F: hw/ppc/dec_pci.[hc]
>
>  Old World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_oldworld.c
> -F: hw/grackle_pci.c
> +F: hw/ppc/ppc_oldworld.c
> +F: hw/ppc/grackle_pci.c
>
>  PReP
>  M: Andreas Färber <andreas.faerber@web.de>
> @@ -404,13 +404,13 @@ M: David Gibson <david@gibson.dropbear.id.au>
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Supported
> -F: hw/spapr*
> +F: hw/ppc/spapr*
>
>  virtex_ml507
>  M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/virtex_ml507.c
> +F: hw/ppc/virtex_ml507.c
>
>  SH4 Machines
>  ------------
> diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> index 23ac249..d38e704 100644
> --- a/hw/Makefile.objs
> +++ b/hw/Makefile.objs
> @@ -45,24 +45,10 @@ common-obj-y += pam.o
>
>  extra-obj-y += pci/
>
> -# PPC devices
> +# PPC PREP devices
>  common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
>  common-obj-$(CONFIG_I82378) += i82378.o
>  common-obj-$(CONFIG_PC87312) += pc87312.o
> -# Mac shared devices
> -common-obj-$(CONFIG_MACIO) += macio.o
> -common-obj-$(CONFIG_CUDA) += cuda.o
> -common-obj-$(CONFIG_ADB) += adb.o
> -common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
> -common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
> -# OldWorld PowerMac
> -common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
> -common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
> -# NewWorld PowerMac
> -common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
> -common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
> -# PowerPC E500 boards
> -common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
>
>  # MIPS devices
>  common-obj-$(CONFIG_PIIX4) += piix4.o
> diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
> index 462146b..193c5e9 100644
> --- a/hw/ppc/Makefile.objs
> +++ b/hw/ppc/Makefile.objs
> @@ -1,32 +1,54 @@
> -# shared objects
> -obj-y = ppc.o ppc_booke.o
>  # PREP target
>  obj-y += mc146818rtc.o
>  obj-y += ppc_prep.o
> +
> +# Xilinx PPC peripherals
> +obj-y += xilinx_ethlite.o
> +
> +obj-y := $(addprefix ../,$(obj-y))
> +
> +# shared objects
> +obj-y = ppc.o ppc_booke.o
> +
>  # IBM pSeries (sPAPR)
>  obj-$(CONFIG_PSERIES) += spapr.o spapr_hcall.o spapr_rtas.o spapr_vio.o
>  obj-$(CONFIG_PSERIES) += xics.o spapr_vty.o spapr_llan.o spapr_vscsi.o
> -obj-$(CONFIG_PSERIES) += spapr_pci.o pci/pci-hotplug.o spapr_iommu.o
> +obj-$(CONFIG_PSERIES) += spapr_pci.o ../pci/pci-hotplug.o spapr_iommu.o
>  obj-$(CONFIG_PSERIES) += spapr_events.o spapr_nvram.o
> +
>  # PowerPC 4xx boards
>  obj-y += ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
>  obj-y += ppc440_bamboo.o
> +
>  # PowerPC E500 boards
>  obj-$(CONFIG_FDT) += mpc8544_guts.o ppce500_spin.o
> +obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
> +
>  # PowerPC 440 Xilinx ML507 reference board.
>  obj-y += virtex_ml507.o
> +
>  # PowerPC OpenPIC
>  obj-y += openpic.o
> -obj-$(CONFIG_FDT) += ../device_tree.o
>
> -# Xilinx PPC peripherals
> -obj-y += xilinx_ethlite.o
> -
> -obj-y := $(addprefix ../,$(obj-y))
> +# PowerMac hardware
> +obj-$(CONFIG_MACIO) += macio.o
> +obj-$(CONFIG_CUDA) += cuda.o
> +obj-$(CONFIG_ADB) += adb.o
> +obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
> +obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
> +obj-$(CONFIG_UNIN_PCI) += unin_pci.o
> +obj-$(CONFIG_DEC_PCI) += dec_pci.o
>
>  # OldWorld PowerMac
> +obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
> +obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
>  obj-y += mac_oldworld.o
> +
>  # NewWorld PowerMac
>  obj-y += mac_newworld.o
> +
>  # e500
>  obj-$(CONFIG_FDT) += e500.o mpc8544ds.o e500plat.o
> +
> +# Device tree support
> +obj-$(CONFIG_FDT) += ../../device_tree.o
> diff --git a/hw/adb.c b/hw/ppc/adb.c
> similarity index 99%
> rename from hw/adb.c
> rename to hw/ppc/adb.c
> index 6cf5465..b2a55d6 100644
> --- a/hw/adb.c
> +++ b/hw/ppc/adb.c
> @@ -21,7 +21,7 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "adb.h"
>  #include "ui/console.h"
>
> diff --git a/hw/adb.h b/hw/ppc/adb.h
> similarity index 99%
> rename from hw/adb.h
> rename to hw/ppc/adb.h
> index 721f1ac..bdfccd4 100644
> --- a/hw/adb.h
> +++ b/hw/ppc/adb.h
> @@ -26,7 +26,7 @@
>  #if !defined(__ADB_H__)
>  #define __ADB_H__
>
> -#include "qdev.h"
> +#include "hw/qdev.h"
>
>  #define MAX_ADB_DEVICES 16
>
> diff --git a/hw/cuda.c b/hw/ppc/cuda.c
> similarity index 99%
> rename from hw/cuda.c
> rename to hw/ppc/cuda.c
> index b36c535..4c289f5 100644
> --- a/hw/cuda.c
> +++ b/hw/ppc/cuda.c
> @@ -22,8 +22,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> +#include "hw/hw.h"
> +#include "mac.h"
>  #include "adb.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> diff --git a/hw/dec_pci.c b/hw/ppc/dec_pci.c
> similarity index 97%
> rename from hw/dec_pci.c
> rename to hw/ppc/dec_pci.c
> index ee3f4ca..ae1fd27 100644
> --- a/hw/dec_pci.c
> +++ b/hw/ppc/dec_pci.c
> @@ -24,11 +24,11 @@
>   */
>
>  #include "dec_pci.h"
> -#include "sysbus.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> -#include "pci/pci_bridge.h"
> -#include "pci/pci_bus.h"
> +#include "hw/sysbus.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
> +#include "hw/pci/pci_bridge.h"
> +#include "hw/pci/pci_bus.h"
>
>  /* debug DEC */
>  //#define DEBUG_DEC
> diff --git a/hw/dec_pci.h b/hw/ppc/dec_pci.h
> similarity index 100%
> rename from hw/dec_pci.h
> rename to hw/ppc/dec_pci.h
> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
> index b7474c0..241bde4 100644
> --- a/hw/ppc/e500.c
> +++ b/hw/ppc/e500.c
> @@ -28,14 +28,14 @@
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/device_tree.h"
> -#include "hw/openpic.h"
> -#include "hw/ppc.h"
> +#include "openpic.h"
> +#include "ppc.h"
>  #include "hw/loader.h"
>  #include "elf.h"
>  #include "hw/sysbus.h"
>  #include "exec/address-spaces.h"
>  #include "qemu/host-utils.h"
> -#include "hw/ppce500_pci.h"
> +#include "ppce500_pci.h"
>
>  #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
>  #define UIMAGE_LOAD_BASE           0
> diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
> index 25ac4b1..477c3df 100644
> --- a/hw/ppc/e500plat.c
> +++ b/hw/ppc/e500plat.c
> @@ -12,10 +12,10 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "e500.h"
> -#include "../boards.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
>  #include "hw/pci/pci.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>
>  static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
>  {
> diff --git a/hw/grackle_pci.c b/hw/ppc/grackle_pci.c
> similarity index 98%
> rename from hw/grackle_pci.c
> rename to hw/ppc/grackle_pci.c
> index 95639d5..0a8c320 100644
> --- a/hw/grackle_pci.c
> +++ b/hw/ppc/grackle_pci.c
> @@ -23,9 +23,9 @@
>   * THE SOFTWARE.
>   */
>
> -#include "pci/pci_host.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/pci/pci_host.h"
> +#include "hw/pci/pci.h"
> +#include "mac.h"
>
>  /* debug Grackle */
>  //#define DEBUG_GRACKLE
> diff --git a/hw/heathrow_pic.c b/hw/ppc/heathrow_pic.c
> similarity index 99%
> rename from hw/heathrow_pic.c
> rename to hw/ppc/heathrow_pic.c
> index c0a71c3..8b3635e 100644
> --- a/hw/heathrow_pic.c
> +++ b/hw/ppc/heathrow_pic.c
> @@ -22,8 +22,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> +#include "hw/hw.h"
> +#include "mac.h"
>
>  /* debug PIC */
>  //#define DEBUG_PIC
> diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
> index b17107b..8b40d95 100644
> --- a/hw/ppc/mac.h
> +++ b/hw/ppc/mac.h
> @@ -28,7 +28,7 @@
>  #include "exec/memory.h"
>  #include "hw/sysbus.h"
>  #include "hw/ide/internal.h"
> -#include "hw/adb.h"
> +#include "hw/ppc/adb.h"
>
>  /* SMP is not enabled, for now */
>  #define MAX_CPUS 1
> diff --git a/hw/mac_dbdma.c b/hw/ppc/mac_dbdma.c
> similarity index 99%
> rename from hw/mac_dbdma.c
> rename to hw/ppc/mac_dbdma.c
> index b894ab2..5a304d7 100644
> --- a/hw/mac_dbdma.c
> +++ b/hw/ppc/mac_dbdma.c
> @@ -36,8 +36,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "isa.h"
> +#include "hw/hw.h"
> +#include "hw/isa.h"
>  #include "mac_dbdma.h"
>  #include "qemu/main-loop.h"
>
> diff --git a/hw/mac_dbdma.h b/hw/ppc/mac_dbdma.h
> similarity index 100%
> rename from hw/mac_dbdma.h
> rename to hw/ppc/mac_dbdma.h
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 6de810b..2e13e27 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -47,10 +47,10 @@
>   *
>   */
>  #include "hw/hw.h"
> -#include "hw/ppc.h"
> -#include "hw/ppc/mac.h"
> -#include "hw/adb.h"
> -#include "hw/mac_dbdma.h"
> +#include "ppc.h"
> +#include "mac.h"
> +#include "adb.h"
> +#include "mac_dbdma.h"
>  #include "hw/nvram.h"
>  #include "hw/pci/pci.h"
>  #include "net/net.h"
> @@ -58,7 +58,7 @@
>  #include "hw/boards.h"
>  #include "hw/fw_cfg.h"
>  #include "hw/escc.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>  #include "hw/ide.h"
>  #include "hw/loader.h"
>  #include "elf.h"
> diff --git a/hw/mac_nvram.c b/hw/ppc/mac_nvram.c
> similarity index 98%
> rename from hw/mac_nvram.c
> rename to hw/ppc/mac_nvram.c
> index 25121fa..e8a7255 100644
> --- a/hw/mac_nvram.c
> +++ b/hw/ppc/mac_nvram.c
> @@ -22,10 +22,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "firmware_abi.h"
> +#include "hw/hw.h"
> +#include "hw/firmware_abi.h"
>  #include "sysemu/sysemu.h"
> -#include "ppc/mac.h"
> +#include "mac.h"
>
>  /* debug NVR */
>  //#define DEBUG_NVR
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index 9ed303a..d436141 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -24,9 +24,9 @@
>   * THE SOFTWARE.
>   */
>  #include "hw/hw.h"
> -#include "hw/ppc.h"
> +#include "ppc.h"
>  #include "mac.h"
> -#include "hw/adb.h"
> +#include "adb.h"
>  #include "hw/nvram.h"
>  #include "sysemu/sysemu.h"
>  #include "net/net.h"
> diff --git a/hw/macio.c b/hw/ppc/macio.c
> similarity index 99%
> rename from hw/macio.c
> rename to hw/ppc/macio.c
> index 74bdcd1..f9cb52f 100644
> --- a/hw/macio.c
> +++ b/hw/ppc/macio.c
> @@ -22,11 +22,11 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
>  #include "mac_dbdma.h"
> -#include "escc.h"
> +#include "hw/escc.h"
>
>  #define TYPE_MACIO "macio"
>  #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
> diff --git a/hw/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
> similarity index 98%
> rename from hw/mpc8544_guts.c
> rename to hw/ppc/mpc8544_guts.c
> index 728723c..193beab 100644
> --- a/hw/mpc8544_guts.c
> +++ b/hw/ppc/mpc8544_guts.c
> @@ -17,9 +17,9 @@
>   *
>   */
>
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>
>  #define MPC8544_GUTS_MMIO_SIZE        0x1000
>  #define MPC8544_GUTS_RSTCR_RESET      0x02
> diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
> index e25c70b..fcf57e5 100644
> --- a/hw/ppc/mpc8544ds.c
> +++ b/hw/ppc/mpc8544ds.c
> @@ -12,9 +12,9 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "e500.h"
> -#include "../boards.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>
>  static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt)
>  {
> diff --git a/hw/openpic.c b/hw/ppc/openpic.c
> similarity index 99%
> rename from hw/openpic.c
> rename to hw/ppc/openpic.c
> index 20a479c..f1b2880 100644
> --- a/hw/openpic.c
> +++ b/hw/ppc/openpic.c
> @@ -33,12 +33,12 @@
>   * Serial interrupts, as implemented in Raven chipset are not supported yet.
>   *
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
>  #include "openpic.h"
> -#include "sysbus.h"
> -#include "pci/msi.h"
> +#include "hw/sysbus.h"
> +#include "hw/pci/msi.h"
>  #include "qemu/bitops.h"
>  #include "ppc.h"
>
> diff --git a/hw/openpic.h b/hw/ppc/openpic.h
> similarity index 100%
> rename from hw/openpic.h
> rename to hw/ppc/openpic.h
> diff --git a/hw/ppc-viosrp.h b/hw/ppc/ppc-viosrp.h
> similarity index 100%
> rename from hw/ppc-viosrp.h
> rename to hw/ppc/ppc-viosrp.h
> diff --git a/hw/ppc.c b/hw/ppc/ppc.c
> similarity index 99%
> rename from hw/ppc.c
> rename to hw/ppc/ppc.c
> index c52e22f..b984c3f 100644
> --- a/hw/ppc.c
> +++ b/hw/ppc/ppc.c
> @@ -21,13 +21,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc.h"
> +#include "hw/hw.h"
> +#include "hw/ppc/ppc.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> -#include "nvram.h"
> +#include "hw/nvram.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>
> diff --git a/hw/ppc.h b/hw/ppc/ppc.h
> similarity index 100%
> rename from hw/ppc.h
> rename to hw/ppc/ppc.h
> diff --git a/hw/ppc405.h b/hw/ppc/ppc405.h
> similarity index 100%
> rename from hw/ppc405.h
> rename to hw/ppc/ppc405.h
> diff --git a/hw/ppc405_boards.c b/hw/ppc/ppc405_boards.c
> similarity index 99%
> rename from hw/ppc405_boards.c
> rename to hw/ppc/ppc405_boards.c
> index cf371db..bda9dcd 100644
> --- a/hw/ppc405_boards.c
> +++ b/hw/ppc/ppc405_boards.c
> @@ -21,16 +21,16 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc405.h"
> -#include "nvram.h"
> -#include "flash.h"
> +#include "hw/nvram.h"
> +#include "hw/flash.h"
>  #include "sysemu/sysemu.h"
>  #include "block/block.h"
> -#include "boards.h"
> +#include "hw/boards.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "sysemu/blockdev.h"
>  #include "exec/address-spaces.h"
>
> diff --git a/hw/ppc405_uc.c b/hw/ppc/ppc405_uc.c
> similarity index 99%
> rename from hw/ppc405_uc.c
> rename to hw/ppc/ppc405_uc.c
> index c96d103..9eadab0 100644
> --- a/hw/ppc405_uc.c
> +++ b/hw/ppc/ppc405_uc.c
> @@ -21,10 +21,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc405.h"
> -#include "serial.h"
> +#include "hw/serial.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
>  #include "qemu/log.h"
> diff --git a/hw/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
> similarity index 98%
> rename from hw/ppc440_bamboo.c
> rename to hw/ppc/ppc440_bamboo.c
> index 73b5ac7..6ef8821 100644
> --- a/hw/ppc440_bamboo.c
> +++ b/hw/ppc/ppc440_bamboo.c
> @@ -14,20 +14,20 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "net/net.h"
> -#include "hw.h"
> -#include "pci/pci.h"
> -#include "boards.h"
> +#include "hw/hw.h"
> +#include "hw/pci/pci.h"
> +#include "hw/boards.h"
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/device_tree.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "exec/address-spaces.h"
> -#include "serial.h"
> +#include "hw/serial.h"
>  #include "ppc.h"
>  #include "ppc405.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>
>  #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
>
> diff --git a/hw/ppc4xx.h b/hw/ppc/ppc4xx.h
> similarity index 99%
> rename from hw/ppc4xx.h
> rename to hw/ppc/ppc4xx.h
> index 59dba9e..91d84ba 100644
> --- a/hw/ppc4xx.h
> +++ b/hw/ppc/ppc4xx.h
> @@ -25,7 +25,7 @@
>  #if !defined(PPC_4XX_H)
>  #define PPC_4XX_H
>
> -#include "pci/pci.h"
> +#include "hw/pci/pci.h"
>
>  /* PowerPC 4xx core initialization */
>  PowerPCCPU *ppc4xx_init(const char *cpu_model,
> diff --git a/hw/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
> similarity index 99%
> rename from hw/ppc4xx_devs.c
> rename to hw/ppc/ppc4xx_devs.c
> index 5e491bc..b78a2de 100644
> --- a/hw/ppc4xx_devs.c
> +++ b/hw/ppc/ppc4xx_devs.c
> @@ -21,7 +21,7 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc4xx.h"
>  #include "qemu/log.h"
> diff --git a/hw/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
> similarity index 99%
> rename from hw/ppc4xx_pci.c
> rename to hw/ppc/ppc4xx_pci.c
> index ba2d669..8bc984e 100644
> --- a/hw/ppc4xx_pci.c
> +++ b/hw/ppc/ppc4xx_pci.c
> @@ -19,11 +19,11 @@
>  /* This file implements emulation of the 32-bit PCI controller found in some
>   * 4xx SoCs, such as the 440EP. */
>
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc4xx.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>  #include "exec/address-spaces.h"
>
>  #undef DEBUG
> diff --git a/hw/ppc_booke.c b/hw/ppc/ppc_booke.c
> similarity index 99%
> rename from hw/ppc_booke.c
> rename to hw/ppc/ppc_booke.c
> index 25a4e91..c096d07 100644
> --- a/hw/ppc_booke.c
> +++ b/hw/ppc/ppc_booke.c
> @@ -21,13 +21,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> -#include "nvram.h"
> +#include "hw/nvram.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>
>
>  /* Timer Control Register */
> diff --git a/hw/ppc_prep.c b/hw/ppc/ppc_prep.c
> similarity index 100%
> rename from hw/ppc_prep.c
> rename to hw/ppc/ppc_prep.c
> diff --git a/hw/ppce500_pci.c b/hw/ppc/ppce500_pci.c
> similarity index 99%
> rename from hw/ppce500_pci.c
> rename to hw/ppc/ppce500_pci.c
> index 1e1ade3..3b71840 100644
> --- a/hw/ppce500_pci.c
> +++ b/hw/ppc/ppce500_pci.c
> @@ -14,10 +14,10 @@
>   * (at your option) any later version.
>   */
>
> -#include "hw.h"
> -#include "hw/ppc/e500-ccsr.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/hw.h"
> +#include "e500-ccsr.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>  #include "qemu/bswap.h"
>  #include "ppce500_pci.h"
>
> diff --git a/hw/ppce500_pci.h b/hw/ppc/ppce500_pci.h
> similarity index 100%
> rename from hw/ppce500_pci.h
> rename to hw/ppc/ppce500_pci.h
> diff --git a/hw/ppce500_spin.c b/hw/ppc/ppce500_spin.c
> similarity index 99%
> rename from hw/ppce500_spin.c
> rename to hw/ppc/ppce500_spin.c
> index 7e90fb9..9cfb819 100644
> --- a/hw/ppce500_spin.c
> +++ b/hw/ppc/ppce500_spin.c
> @@ -27,9 +27,9 @@
>   *
>   */
>
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>  #include "sysemu/kvm.h"
>
>  #define MAX_CPUS 32
> diff --git a/hw/spapr.c b/hw/ppc/spapr.c
> similarity index 99%
> rename from hw/spapr.c
> rename to hw/ppc/spapr.c
> index e88a27a..b5e041e 100644
> --- a/hw/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -25,7 +25,7 @@
>   *
>   */
>  #include "sysemu/sysemu.h"
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "elf.h"
>  #include "net/net.h"
>  #include "sysemu/blockdev.h"
> @@ -34,18 +34,18 @@
>  #include "kvm_ppc.h"
>
>  #include "hw/boards.h"
> -#include "hw/ppc.h"
> +#include "ppc.h"
>  #include "hw/loader.h"
>
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/spapr_pci.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "spapr_pci.h"
> +#include "xics.h"
>  #include "hw/pci/msi.h"
>
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
> -#include "pci/pci.h"
> +#include "hw/pci/pci.h"
>
>  #include "exec/address-spaces.h"
>  #include "hw/usb.h"
> diff --git a/hw/spapr.h b/hw/ppc/spapr.h
> similarity index 99%
> rename from hw/spapr.h
> rename to hw/ppc/spapr.h
> index 3a1f69f..864bee9 100644
> --- a/hw/spapr.h
> +++ b/hw/ppc/spapr.h
> @@ -2,7 +2,7 @@
>  #define __HW_SPAPR_H__
>
>  #include "sysemu/dma.h"
> -#include "hw/xics.h"
> +#include "hw/ppc/xics.h"
>
>  struct VIOsPAPRBus;
>  struct sPAPRPHBState;
> diff --git a/hw/spapr_events.c b/hw/ppc/spapr_events.c
> similarity index 99%
> rename from hw/spapr_events.c
> rename to hw/ppc/spapr_events.c
> index ce78f09..571e2cf 100644
> --- a/hw/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -30,8 +30,8 @@
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>
>  #include <libfdt.h>
>
> diff --git a/hw/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> similarity index 99%
> rename from hw/spapr_hcall.c
> rename to hw/ppc/spapr_hcall.c
> index 2889742..9dbfa62 100644
> --- a/hw/spapr_hcall.c
> +++ b/hw/ppc/spapr_hcall.c
> @@ -2,7 +2,7 @@
>  #include "cpu.h"
>  #include "sysemu/sysemu.h"
>  #include "helper_regs.h"
> -#include "hw/spapr.h"
> +#include "spapr.h"
>
>  #define HPTES_PER_GROUP 8
>
> diff --git a/hw/spapr_iommu.c b/hw/ppc/spapr_iommu.c
> similarity index 99%
> rename from hw/spapr_iommu.c
> rename to hw/ppc/spapr_iommu.c
> index d8a098c..a23931e 100644
> --- a/hw/spapr_iommu.c
> +++ b/hw/ppc/spapr_iommu.c
> @@ -16,14 +16,14 @@
>   * You should have received a copy of the GNU Lesser General Public
>   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/kvm.h"
> -#include "qdev.h"
> +#include "hw/qdev.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/dma.h"
>  #include "exec/address-spaces.h"
>
> -#include "hw/spapr.h"
> +#include "spapr.h"
>
>  #include <libfdt.h>
>
> diff --git a/hw/spapr_llan.c b/hw/ppc/spapr_llan.c
> similarity index 99%
> rename from hw/spapr_llan.c
> rename to hw/ppc/spapr_llan.c
> index db34b48..ce5d9ee 100644
> --- a/hw/spapr_llan.c
> +++ b/hw/ppc/spapr_llan.c
> @@ -24,11 +24,11 @@
>   * THE SOFTWARE.
>   *
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "net/net.h"
>  #include "hw/qdev.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>
>  #include <libfdt.h>
>
> diff --git a/hw/spapr_nvram.c b/hw/ppc/spapr_nvram.c
> similarity index 99%
> rename from hw/spapr_nvram.c
> rename to hw/ppc/spapr_nvram.c
> index 680cdba..29dabb5 100644
> --- a/hw/spapr_nvram.c
> +++ b/hw/ppc/spapr_nvram.c
> @@ -26,8 +26,8 @@
>
>  #include "sysemu/device_tree.h"
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>
>  typedef struct sPAPRNVRAM {
>      VIOsPAPRDevice sdev;
> diff --git a/hw/spapr_pci.c b/hw/ppc/spapr_pci.c
> similarity index 99%
> rename from hw/spapr_pci.c
> rename to hw/ppc/spapr_pci.c
> index 4eacbcf..0034290 100644
> --- a/hw/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -22,13 +22,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "pci/pci.h"
> -#include "pci/msi.h"
> -#include "pci/msix.h"
> -#include "pci/pci_host.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_pci.h"
> +#include "hw/hw.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/msi.h"
> +#include "hw/pci/msix.h"
> +#include "hw/pci/pci_host.h"
> +#include "spapr.h"
> +#include "spapr_pci.h"
>  #include "exec/address-spaces.h"
>  #include <libfdt.h>
>  #include "trace.h"
> diff --git a/hw/spapr_pci.h b/hw/ppc/spapr_pci.h
> similarity index 99%
> rename from hw/spapr_pci.h
> rename to hw/ppc/spapr_pci.h
> index 8bb3c62..f32a04b 100644
> --- a/hw/spapr_pci.h
> +++ b/hw/ppc/spapr_pci.h
> @@ -25,7 +25,7 @@
>
>  #include "hw/pci/pci.h"
>  #include "hw/pci/pci_host.h"
> -#include "hw/xics.h"
> +#include "hw/ppc/xics.h"
>
>  #define SPAPR_MSIX_MAX_DEVS 32
>
> diff --git a/hw/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> similarity index 99%
> rename from hw/spapr_rtas.c
> rename to hw/ppc/spapr_rtas.c
> index 5ec787f..a1da864 100644
> --- a/hw/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -30,8 +30,8 @@
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>
>  #include <libfdt.h>
>
> diff --git a/hw/spapr_vio.c b/hw/ppc/spapr_vio.c
> similarity index 99%
> rename from hw/spapr_vio.c
> rename to hw/ppc/spapr_vio.c
> index 34c9ca6..7e2cbe5 100644
> --- a/hw/spapr_vio.c
> +++ b/hw/ppc/spapr_vio.c
> @@ -19,20 +19,20 @@
>   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
>   */
>
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "boards.h"
> +#include "hw/boards.h"
>  #include "monitor/monitor.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "hw/sysbus.h"
>  #include "sysemu/kvm.h"
>  #include "sysemu/device_tree.h"
>  #include "kvm_ppc.h"
>
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "xics.h"
>
>  #ifdef CONFIG_FDT
>  #include <libfdt.h>
> diff --git a/hw/spapr_vio.h b/hw/ppc/spapr_vio.h
> similarity index 100%
> rename from hw/spapr_vio.h
> rename to hw/ppc/spapr_vio.h
> diff --git a/hw/spapr_vscsi.c b/hw/ppc/spapr_vscsi.c
> similarity index 99%
> rename from hw/spapr_vscsi.c
> rename to hw/ppc/spapr_vscsi.c
> index 7fc0e13..68cd072 100644
> --- a/hw/spapr_vscsi.c
> +++ b/hw/ppc/spapr_vscsi.c
> @@ -31,14 +31,14 @@
>   *  - Add indirect descriptors support
>   *  - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)
>   */
> -#include "hw.h"
> -#include "scsi.h"
> -#include "scsi-defs.h"
> +#include "hw/hw.h"
> +#include "hw/scsi.h"
> +#include "hw/scsi-defs.h"
>  #include "srp.h"
>  #include "hw/qdev.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/ppc-viosrp.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "ppc-viosrp.h"
>
>  #include <libfdt.h>
>
> diff --git a/hw/spapr_vty.c b/hw/ppc/spapr_vty.c
> similarity index 98%
> rename from hw/spapr_vty.c
> rename to hw/ppc/spapr_vty.c
> index 5c63eaa..9dffa5e 100644
> --- a/hw/spapr_vty.c
> +++ b/hw/ppc/spapr_vty.c
> @@ -1,7 +1,7 @@
> -#include "qdev.h"
> +#include "hw/qdev.h"
>  #include "char/char.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>
>  #define VTERM_BUFSIZE   16
>
> diff --git a/hw/srp.h b/hw/ppc/srp.h
> similarity index 100%
> rename from hw/srp.h
> rename to hw/ppc/srp.h
> diff --git a/hw/unin_pci.c b/hw/ppc/unin_pci.c
> similarity index 99%
> rename from hw/unin_pci.c
> rename to hw/ppc/unin_pci.c
> index f1c3c20..f5a0597 100644
> --- a/hw/unin_pci.c
> +++ b/hw/ppc/unin_pci.c
> @@ -21,10 +21,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>
>  /* debug UniNorth */
>  //#define DEBUG_UNIN
> diff --git a/hw/virtex_ml507.c b/hw/ppc/virtex_ml507.c
> similarity index 97%
> rename from hw/virtex_ml507.c
> rename to hw/ppc/virtex_ml507.c
> index 8c4e8e4..6551eb1 100644
> --- a/hw/virtex_ml507.c
> +++ b/hw/ppc/virtex_ml507.c
> @@ -22,15 +22,15 @@
>   * THE SOFTWARE.
>   */
>
> -#include "sysbus.h"
> -#include "hw.h"
> -#include "serial.h"
> -#include "flash.h"
> +#include "hw/sysbus.h"
> +#include "hw/hw.h"
> +#include "hw/serial.h"
> +#include "hw/flash.h"
>  #include "sysemu/sysemu.h"
> -#include "devices.h"
> -#include "boards.h"
> +#include "hw/devices.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "qemu/log.h"
>  #include "exec/address-spaces.h"
> @@ -40,7 +40,7 @@
>  #include "ppc405.h"
>
>  #include "sysemu/blockdev.h"
> -#include "xilinx.h"
> +#include "hw/xilinx.h"
>
>  #define EPAPR_MAGIC    (0x45504150)
>  #define FLASH_SIZE     (16 * 1024 * 1024)
> diff --git a/hw/xics.c b/hw/ppc/xics.c
> similarity index 99%
> rename from hw/xics.c
> rename to hw/ppc/xics.c
> index 9ef0d61..b6aec77 100644
> --- a/hw/xics.c
> +++ b/hw/ppc/xics.c
> @@ -25,10 +25,10 @@
>   *
>   */
>
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "trace.h"
> -#include "hw/spapr.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "xics.h"
>
>  /*
>   * ICP: Presentation layer
> diff --git a/hw/xics.h b/hw/ppc/xics.h
> similarity index 100%
> rename from hw/xics.h
> rename to hw/ppc/xics.h
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index 2f4f068..4506af1 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -31,11 +31,11 @@
>  #include "sysemu/cpus.h"
>  #include "sysemu/device_tree.h"
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> +#include "hw/ppc/spapr.h"
>
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "hw/ppc/spapr.h"
> +#include "hw/ppc/spapr_vio.h"
>
>  //#define DEBUG_KVM
>
> --
> 1.6.0.2
>
>
Alexander Graf Jan. 25, 2013, 7:26 p.m. UTC | #3
On 25.01.2013, at 20:06, Blue Swirl wrote:

> On Fri, Jan 25, 2013 at 1:12 AM, Alexander Graf <agraf@suse.de> wrote:
>> This patch moves all PowerPC specific hardware emulation except for
>> PREP to hw/ppc.
>> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> MAINTAINERS                  |   20 ++++++++++----------
>> hw/Makefile.objs             |   16 +---------------
>> hw/ppc/Makefile.objs         |   38 ++++++++++++++++++++++++++++++--------
>> hw/{ => ppc}/adb.c           |    2 +-
>> hw/{ => ppc}/adb.h           |    2 +-
>> hw/{ => ppc}/cuda.c          |    4 ++--
>> hw/{ => ppc}/dec_pci.c       |   10 +++++-----
>> hw/{ => ppc}/dec_pci.h       |    0
> 
> Please don't, Sparc64 should also use this device.

I think it makes sense to move it back as soon as sparc64 actually starts using it. Potentially you could use the e500 pci controller on a possible future ARM machine or some other frankenstein combination, but that's not what the current code reflects.

If you feel strongly about it, I can just not move the dec pci controller, but I really don't think it makes sense unless you have patches or plan to have patches very soon.


Alex
Scott Wood Jan. 25, 2013, 7:41 p.m. UTC | #4
On 01/25/2013 01:26:48 PM, Alexander Graf wrote:
> 
> On 25.01.2013, at 20:06, Blue Swirl wrote:
> 
> > On Fri, Jan 25, 2013 at 1:12 AM, Alexander Graf <agraf@suse.de>  
> wrote:
> >> This patch moves all PowerPC specific hardware emulation except for
> >> PREP to hw/ppc.
> >>
> >> Signed-off-by: Alexander Graf <agraf@suse.de>
> >> ---
> >> MAINTAINERS                  |   20 ++++++++++----------
> >> hw/Makefile.objs             |   16 +---------------
> >> hw/ppc/Makefile.objs         |   38  
> ++++++++++++++++++++++++++++++--------
> >> hw/{ => ppc}/adb.c           |    2 +-
> >> hw/{ => ppc}/adb.h           |    2 +-
> >> hw/{ => ppc}/cuda.c          |    4 ++--
> >> hw/{ => ppc}/dec_pci.c       |   10 +++++-----
> >> hw/{ => ppc}/dec_pci.h       |    0
> >
> > Please don't, Sparc64 should also use this device.
> 
> I think it makes sense to move it back as soon as sparc64 actually  
> starts using it.

...and then you break the history chain again (not totally, but it  
requires more effort to follow with things like git blame), and make it  
less likely that someone looking to reuse this code for another  
architecture finds out that it exists.

IMHO files that don't actually depend on arch details should not go in  
an arch directory, just as drivers don't generally go into arch  
directories on Linux even if they're only found on a single platform.   
They can still be hierarchalized based on function (which is also  
helpful for finding files that use similar interfaces).  Even files  
that do depend on arch details may make more sense grouped by something  
else, if the arch interaction is minor compared to the other interfaces.

-Scott
Alexander Graf Jan. 25, 2013, 9:03 p.m. UTC | #5
On 25.01.2013, at 20:41, Scott Wood wrote:

> On 01/25/2013 01:26:48 PM, Alexander Graf wrote:
>> On 25.01.2013, at 20:06, Blue Swirl wrote:
>> > On Fri, Jan 25, 2013 at 1:12 AM, Alexander Graf <agraf@suse.de> wrote:
>> >> This patch moves all PowerPC specific hardware emulation except for
>> >> PREP to hw/ppc.
>> >>
>> >> Signed-off-by: Alexander Graf <agraf@suse.de>
>> >> ---
>> >> MAINTAINERS                  |   20 ++++++++++----------
>> >> hw/Makefile.objs             |   16 +---------------
>> >> hw/ppc/Makefile.objs         |   38 ++++++++++++++++++++++++++++++--------
>> >> hw/{ => ppc}/adb.c           |    2 +-
>> >> hw/{ => ppc}/adb.h           |    2 +-
>> >> hw/{ => ppc}/cuda.c          |    4 ++--
>> >> hw/{ => ppc}/dec_pci.c       |   10 +++++-----
>> >> hw/{ => ppc}/dec_pci.h       |    0
>> >
>> > Please don't, Sparc64 should also use this device.
>> I think it makes sense to move it back as soon as sparc64 actually starts using it.
> 
> ...and then you break the history chain again (not totally, but it requires more effort to follow with things like git blame), and make it less likely that someone looking to reuse this code for another architecture finds out that it exists.
> 
> IMHO files that don't actually depend on arch details should not go in an arch directory, just as drivers don't generally go into arch directories on Linux even if they're only found on a single platform.  They can still be hierarchalized based on function (which is also helpful for finding files that use similar interfaces).  Even files that do depend on arch details may make more sense grouped by something else, if the arch interaction is minor compared to the other interfaces.

Fair enough. I've removed this patch from my queues again - both ppc-next as well as ppc-for-upstream. That way the pull request is still valid and we can discuss this patch further.


Alex
Paolo Bonzini Jan. 25, 2013, 10:40 p.m. UTC | #6
Il 25/01/2013 02:12, Alexander Graf ha scritto:
> This patch moves all PowerPC specific hardware emulation except for
> PREP to hw/ppc.

NACK, I believe it's too early for this.

For example spapr_llan.c could go under hw/net, and hw/*_pci.c under
hw/pci just as well.

Paolo

> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  MAINTAINERS                  |   20 ++++++++++----------
>  hw/Makefile.objs             |   16 +---------------
>  hw/ppc/Makefile.objs         |   38 ++++++++++++++++++++++++++++++--------
>  hw/{ => ppc}/adb.c           |    2 +-
>  hw/{ => ppc}/adb.h           |    2 +-
>  hw/{ => ppc}/cuda.c          |    4 ++--
>  hw/{ => ppc}/dec_pci.c       |   10 +++++-----
>  hw/{ => ppc}/dec_pci.h       |    0
>  hw/ppc/e500.c                |    6 +++---
>  hw/ppc/e500plat.c            |    4 ++--
>  hw/{ => ppc}/grackle_pci.c   |    6 +++---
>  hw/{ => ppc}/heathrow_pic.c  |    4 ++--
>  hw/ppc/mac.h                 |    2 +-
>  hw/{ => ppc}/mac_dbdma.c     |    4 ++--
>  hw/{ => ppc}/mac_dbdma.h     |    0
>  hw/ppc/mac_newworld.c        |   10 +++++-----
>  hw/{ => ppc}/mac_nvram.c     |    6 +++---
>  hw/ppc/mac_oldworld.c        |    4 ++--
>  hw/{ => ppc}/macio.c         |    8 ++++----
>  hw/{ => ppc}/mpc8544_guts.c  |    4 ++--
>  hw/ppc/mpc8544ds.c           |    4 ++--
>  hw/{ => ppc}/openpic.c       |   10 +++++-----
>  hw/{ => ppc}/openpic.h       |    0
>  hw/{ => ppc}/ppc-viosrp.h    |    0
>  hw/{ => ppc}/ppc.c           |    8 ++++----
>  hw/{ => ppc}/ppc.h           |    0
>  hw/{ => ppc}/ppc405.h        |    0
>  hw/{ => ppc}/ppc405_boards.c |   10 +++++-----
>  hw/{ => ppc}/ppc405_uc.c     |    4 ++--
>  hw/{ => ppc}/ppc440_bamboo.c |   12 ++++++------
>  hw/{ => ppc}/ppc4xx.h        |    2 +-
>  hw/{ => ppc}/ppc4xx_devs.c   |    2 +-
>  hw/{ => ppc}/ppc4xx_pci.c    |    6 +++---
>  hw/{ => ppc}/ppc_booke.c     |    6 +++---
>  hw/{ => ppc}/ppc_prep.c      |    0
>  hw/{ => ppc}/ppce500_pci.c   |    8 ++++----
>  hw/{ => ppc}/ppce500_pci.h   |    0
>  hw/{ => ppc}/ppce500_spin.c  |    4 ++--
>  hw/{ => ppc}/spapr.c         |   14 +++++++-------
>  hw/{ => ppc}/spapr.h         |    2 +-
>  hw/{ => ppc}/spapr_events.c  |    4 ++--
>  hw/{ => ppc}/spapr_hcall.c   |    2 +-
>  hw/{ => ppc}/spapr_iommu.c   |    6 +++---
>  hw/{ => ppc}/spapr_llan.c    |    6 +++---
>  hw/{ => ppc}/spapr_nvram.c   |    4 ++--
>  hw/{ => ppc}/spapr_pci.c     |   14 +++++++-------
>  hw/{ => ppc}/spapr_pci.h     |    2 +-
>  hw/{ => ppc}/spapr_rtas.c    |    4 ++--
>  hw/{ => ppc}/spapr_vio.c     |   12 ++++++------
>  hw/{ => ppc}/spapr_vio.h     |    0
>  hw/{ => ppc}/spapr_vscsi.c   |   12 ++++++------
>  hw/{ => ppc}/spapr_vty.c     |    6 +++---
>  hw/{ => ppc}/srp.h           |    0
>  hw/{ => ppc}/unin_pci.c      |    8 ++++----
>  hw/{ => ppc}/virtex_ml507.c  |   16 ++++++++--------
>  hw/{ => ppc}/xics.c          |    6 +++---
>  hw/{ => ppc}/xics.h          |    0
>  target-ppc/kvm.c             |    6 +++---
>  58 files changed, 179 insertions(+), 171 deletions(-)
>  rename hw/{ => ppc}/adb.c (99%)
>  rename hw/{ => ppc}/adb.h (99%)
>  rename hw/{ => ppc}/cuda.c (99%)
>  rename hw/{ => ppc}/dec_pci.c (97%)
>  rename hw/{ => ppc}/dec_pci.h (100%)
>  rename hw/{ => ppc}/grackle_pci.c (98%)
>  rename hw/{ => ppc}/heathrow_pic.c (99%)
>  rename hw/{ => ppc}/mac_dbdma.c (99%)
>  rename hw/{ => ppc}/mac_dbdma.h (100%)
>  rename hw/{ => ppc}/mac_nvram.c (98%)
>  rename hw/{ => ppc}/macio.c (99%)
>  rename hw/{ => ppc}/mpc8544_guts.c (98%)
>  rename hw/{ => ppc}/openpic.c (99%)
>  rename hw/{ => ppc}/openpic.h (100%)
>  rename hw/{ => ppc}/ppc-viosrp.h (100%)
>  rename hw/{ => ppc}/ppc.c (99%)
>  rename hw/{ => ppc}/ppc.h (100%)
>  rename hw/{ => ppc}/ppc405.h (100%)
>  rename hw/{ => ppc}/ppc405_boards.c (99%)
>  rename hw/{ => ppc}/ppc405_uc.c (99%)
>  rename hw/{ => ppc}/ppc440_bamboo.c (98%)
>  rename hw/{ => ppc}/ppc4xx.h (99%)
>  rename hw/{ => ppc}/ppc4xx_devs.c (99%)
>  rename hw/{ => ppc}/ppc4xx_pci.c (99%)
>  rename hw/{ => ppc}/ppc_booke.c (99%)
>  rename hw/{ => ppc}/ppc_prep.c (100%)
>  rename hw/{ => ppc}/ppce500_pci.c (99%)
>  rename hw/{ => ppc}/ppce500_pci.h (100%)
>  rename hw/{ => ppc}/ppce500_spin.c (99%)
>  rename hw/{ => ppc}/spapr.c (99%)
>  rename hw/{ => ppc}/spapr.h (99%)
>  rename hw/{ => ppc}/spapr_events.c (99%)
>  rename hw/{ => ppc}/spapr_hcall.c (99%)
>  rename hw/{ => ppc}/spapr_iommu.c (99%)
>  rename hw/{ => ppc}/spapr_llan.c (99%)
>  rename hw/{ => ppc}/spapr_nvram.c (99%)
>  rename hw/{ => ppc}/spapr_pci.c (99%)
>  rename hw/{ => ppc}/spapr_pci.h (99%)
>  rename hw/{ => ppc}/spapr_rtas.c (99%)
>  rename hw/{ => ppc}/spapr_vio.c (99%)
>  rename hw/{ => ppc}/spapr_vio.h (100%)
>  rename hw/{ => ppc}/spapr_vscsi.c (99%)
>  rename hw/{ => ppc}/spapr_vty.c (98%)
>  rename hw/{ => ppc}/srp.h (100%)
>  rename hw/{ => ppc}/unin_pci.c (99%)
>  rename hw/{ => ppc}/virtex_ml507.c (97%)
>  rename hw/{ => ppc}/xics.c (99%)
>  rename hw/{ => ppc}/xics.h (100%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 35c260d..3664dc8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -352,13 +352,13 @@ PowerPC Machines
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/ppc405_boards.c
> +F: hw/ppc/ppc405_boards.c
>  
>  Bamboo
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/ppc440_bamboo.c
> +F: hw/ppc/ppc440_bamboo.c
>  
>  e500
>  M: Alexander Graf <agraf@suse.de>
> @@ -374,22 +374,22 @@ M: Scott Wood <scottwood@freescale.com>
>  L: qemu-ppc@nongnu.org
>  S: Supported
>  F: hw/ppc/mpc8544ds.c
> -F: hw/mpc8544_guts.c
> +F: hw/ppc/mpc8544_guts.c
>  
>  New World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_newworld.c
> -F: hw/unin_pci.c
> -F: hw/dec_pci.[hc]
> +F: hw/ppc/ppc_newworld.c
> +F: hw/ppc/unin_pci.c
> +F: hw/ppc/dec_pci.[hc]
>  
>  Old World
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Maintained
> -F: hw/ppc_oldworld.c
> -F: hw/grackle_pci.c
> +F: hw/ppc/ppc_oldworld.c
> +F: hw/ppc/grackle_pci.c
>  
>  PReP
>  M: Andreas Färber <andreas.faerber@web.de>
> @@ -404,13 +404,13 @@ M: David Gibson <david@gibson.dropbear.id.au>
>  M: Alexander Graf <agraf@suse.de>
>  L: qemu-ppc@nongnu.org
>  S: Supported
> -F: hw/spapr*
> +F: hw/ppc/spapr*
>  
>  virtex_ml507
>  M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
>  L: qemu-ppc@nongnu.org
>  S: Odd Fixes
> -F: hw/virtex_ml507.c
> +F: hw/ppc/virtex_ml507.c
>  
>  SH4 Machines
>  ------------
> diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> index 23ac249..d38e704 100644
> --- a/hw/Makefile.objs
> +++ b/hw/Makefile.objs
> @@ -45,24 +45,10 @@ common-obj-y += pam.o
>  
>  extra-obj-y += pci/
>  
> -# PPC devices
> +# PPC PREP devices
>  common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
>  common-obj-$(CONFIG_I82378) += i82378.o
>  common-obj-$(CONFIG_PC87312) += pc87312.o
> -# Mac shared devices
> -common-obj-$(CONFIG_MACIO) += macio.o
> -common-obj-$(CONFIG_CUDA) += cuda.o
> -common-obj-$(CONFIG_ADB) += adb.o
> -common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
> -common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
> -# OldWorld PowerMac
> -common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
> -common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
> -# NewWorld PowerMac
> -common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
> -common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
> -# PowerPC E500 boards
> -common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
>  
>  # MIPS devices
>  common-obj-$(CONFIG_PIIX4) += piix4.o
> diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
> index 462146b..193c5e9 100644
> --- a/hw/ppc/Makefile.objs
> +++ b/hw/ppc/Makefile.objs
> @@ -1,32 +1,54 @@
> -# shared objects
> -obj-y = ppc.o ppc_booke.o
>  # PREP target
>  obj-y += mc146818rtc.o
>  obj-y += ppc_prep.o
> +
> +# Xilinx PPC peripherals
> +obj-y += xilinx_ethlite.o
> +
> +obj-y := $(addprefix ../,$(obj-y))
> +
> +# shared objects
> +obj-y = ppc.o ppc_booke.o
> +
>  # IBM pSeries (sPAPR)
>  obj-$(CONFIG_PSERIES) += spapr.o spapr_hcall.o spapr_rtas.o spapr_vio.o
>  obj-$(CONFIG_PSERIES) += xics.o spapr_vty.o spapr_llan.o spapr_vscsi.o
> -obj-$(CONFIG_PSERIES) += spapr_pci.o pci/pci-hotplug.o spapr_iommu.o
> +obj-$(CONFIG_PSERIES) += spapr_pci.o ../pci/pci-hotplug.o spapr_iommu.o
>  obj-$(CONFIG_PSERIES) += spapr_events.o spapr_nvram.o
> +
>  # PowerPC 4xx boards
>  obj-y += ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
>  obj-y += ppc440_bamboo.o
> +
>  # PowerPC E500 boards
>  obj-$(CONFIG_FDT) += mpc8544_guts.o ppce500_spin.o
> +obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
> +
>  # PowerPC 440 Xilinx ML507 reference board.
>  obj-y += virtex_ml507.o
> +
>  # PowerPC OpenPIC
>  obj-y += openpic.o
> -obj-$(CONFIG_FDT) += ../device_tree.o
>  
> -# Xilinx PPC peripherals
> -obj-y += xilinx_ethlite.o
> -
> -obj-y := $(addprefix ../,$(obj-y))
> +# PowerMac hardware
> +obj-$(CONFIG_MACIO) += macio.o
> +obj-$(CONFIG_CUDA) += cuda.o
> +obj-$(CONFIG_ADB) += adb.o
> +obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
> +obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
> +obj-$(CONFIG_UNIN_PCI) += unin_pci.o
> +obj-$(CONFIG_DEC_PCI) += dec_pci.o
>  
>  # OldWorld PowerMac
> +obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
> +obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
>  obj-y += mac_oldworld.o
> +
>  # NewWorld PowerMac
>  obj-y += mac_newworld.o
> +
>  # e500
>  obj-$(CONFIG_FDT) += e500.o mpc8544ds.o e500plat.o
> +
> +# Device tree support
> +obj-$(CONFIG_FDT) += ../../device_tree.o
> diff --git a/hw/adb.c b/hw/ppc/adb.c
> similarity index 99%
> rename from hw/adb.c
> rename to hw/ppc/adb.c
> index 6cf5465..b2a55d6 100644
> --- a/hw/adb.c
> +++ b/hw/ppc/adb.c
> @@ -21,7 +21,7 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "adb.h"
>  #include "ui/console.h"
>  
> diff --git a/hw/adb.h b/hw/ppc/adb.h
> similarity index 99%
> rename from hw/adb.h
> rename to hw/ppc/adb.h
> index 721f1ac..bdfccd4 100644
> --- a/hw/adb.h
> +++ b/hw/ppc/adb.h
> @@ -26,7 +26,7 @@
>  #if !defined(__ADB_H__)
>  #define __ADB_H__
>  
> -#include "qdev.h"
> +#include "hw/qdev.h"
>  
>  #define MAX_ADB_DEVICES 16
>  
> diff --git a/hw/cuda.c b/hw/ppc/cuda.c
> similarity index 99%
> rename from hw/cuda.c
> rename to hw/ppc/cuda.c
> index b36c535..4c289f5 100644
> --- a/hw/cuda.c
> +++ b/hw/ppc/cuda.c
> @@ -22,8 +22,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> +#include "hw/hw.h"
> +#include "mac.h"
>  #include "adb.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> diff --git a/hw/dec_pci.c b/hw/ppc/dec_pci.c
> similarity index 97%
> rename from hw/dec_pci.c
> rename to hw/ppc/dec_pci.c
> index ee3f4ca..ae1fd27 100644
> --- a/hw/dec_pci.c
> +++ b/hw/ppc/dec_pci.c
> @@ -24,11 +24,11 @@
>   */
>  
>  #include "dec_pci.h"
> -#include "sysbus.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> -#include "pci/pci_bridge.h"
> -#include "pci/pci_bus.h"
> +#include "hw/sysbus.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
> +#include "hw/pci/pci_bridge.h"
> +#include "hw/pci/pci_bus.h"
>  
>  /* debug DEC */
>  //#define DEBUG_DEC
> diff --git a/hw/dec_pci.h b/hw/ppc/dec_pci.h
> similarity index 100%
> rename from hw/dec_pci.h
> rename to hw/ppc/dec_pci.h
> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
> index b7474c0..241bde4 100644
> --- a/hw/ppc/e500.c
> +++ b/hw/ppc/e500.c
> @@ -28,14 +28,14 @@
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/device_tree.h"
> -#include "hw/openpic.h"
> -#include "hw/ppc.h"
> +#include "openpic.h"
> +#include "ppc.h"
>  #include "hw/loader.h"
>  #include "elf.h"
>  #include "hw/sysbus.h"
>  #include "exec/address-spaces.h"
>  #include "qemu/host-utils.h"
> -#include "hw/ppce500_pci.h"
> +#include "ppce500_pci.h"
>  
>  #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
>  #define UIMAGE_LOAD_BASE           0
> diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
> index 25ac4b1..477c3df 100644
> --- a/hw/ppc/e500plat.c
> +++ b/hw/ppc/e500plat.c
> @@ -12,10 +12,10 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "e500.h"
> -#include "../boards.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
>  #include "hw/pci/pci.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>  
>  static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
>  {
> diff --git a/hw/grackle_pci.c b/hw/ppc/grackle_pci.c
> similarity index 98%
> rename from hw/grackle_pci.c
> rename to hw/ppc/grackle_pci.c
> index 95639d5..0a8c320 100644
> --- a/hw/grackle_pci.c
> +++ b/hw/ppc/grackle_pci.c
> @@ -23,9 +23,9 @@
>   * THE SOFTWARE.
>   */
>  
> -#include "pci/pci_host.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/pci/pci_host.h"
> +#include "hw/pci/pci.h"
> +#include "mac.h"
>  
>  /* debug Grackle */
>  //#define DEBUG_GRACKLE
> diff --git a/hw/heathrow_pic.c b/hw/ppc/heathrow_pic.c
> similarity index 99%
> rename from hw/heathrow_pic.c
> rename to hw/ppc/heathrow_pic.c
> index c0a71c3..8b3635e 100644
> --- a/hw/heathrow_pic.c
> +++ b/hw/ppc/heathrow_pic.c
> @@ -22,8 +22,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> +#include "hw/hw.h"
> +#include "mac.h"
>  
>  /* debug PIC */
>  //#define DEBUG_PIC
> diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
> index b17107b..8b40d95 100644
> --- a/hw/ppc/mac.h
> +++ b/hw/ppc/mac.h
> @@ -28,7 +28,7 @@
>  #include "exec/memory.h"
>  #include "hw/sysbus.h"
>  #include "hw/ide/internal.h"
> -#include "hw/adb.h"
> +#include "hw/ppc/adb.h"
>  
>  /* SMP is not enabled, for now */
>  #define MAX_CPUS 1
> diff --git a/hw/mac_dbdma.c b/hw/ppc/mac_dbdma.c
> similarity index 99%
> rename from hw/mac_dbdma.c
> rename to hw/ppc/mac_dbdma.c
> index b894ab2..5a304d7 100644
> --- a/hw/mac_dbdma.c
> +++ b/hw/ppc/mac_dbdma.c
> @@ -36,8 +36,8 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "isa.h"
> +#include "hw/hw.h"
> +#include "hw/isa.h"
>  #include "mac_dbdma.h"
>  #include "qemu/main-loop.h"
>  
> diff --git a/hw/mac_dbdma.h b/hw/ppc/mac_dbdma.h
> similarity index 100%
> rename from hw/mac_dbdma.h
> rename to hw/ppc/mac_dbdma.h
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 6de810b..2e13e27 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -47,10 +47,10 @@
>   *
>   */
>  #include "hw/hw.h"
> -#include "hw/ppc.h"
> -#include "hw/ppc/mac.h"
> -#include "hw/adb.h"
> -#include "hw/mac_dbdma.h"
> +#include "ppc.h"
> +#include "mac.h"
> +#include "adb.h"
> +#include "mac_dbdma.h"
>  #include "hw/nvram.h"
>  #include "hw/pci/pci.h"
>  #include "net/net.h"
> @@ -58,7 +58,7 @@
>  #include "hw/boards.h"
>  #include "hw/fw_cfg.h"
>  #include "hw/escc.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>  #include "hw/ide.h"
>  #include "hw/loader.h"
>  #include "elf.h"
> diff --git a/hw/mac_nvram.c b/hw/ppc/mac_nvram.c
> similarity index 98%
> rename from hw/mac_nvram.c
> rename to hw/ppc/mac_nvram.c
> index 25121fa..e8a7255 100644
> --- a/hw/mac_nvram.c
> +++ b/hw/ppc/mac_nvram.c
> @@ -22,10 +22,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "firmware_abi.h"
> +#include "hw/hw.h"
> +#include "hw/firmware_abi.h"
>  #include "sysemu/sysemu.h"
> -#include "ppc/mac.h"
> +#include "mac.h"
>  
>  /* debug NVR */
>  //#define DEBUG_NVR
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index 9ed303a..d436141 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -24,9 +24,9 @@
>   * THE SOFTWARE.
>   */
>  #include "hw/hw.h"
> -#include "hw/ppc.h"
> +#include "ppc.h"
>  #include "mac.h"
> -#include "hw/adb.h"
> +#include "adb.h"
>  #include "hw/nvram.h"
>  #include "sysemu/sysemu.h"
>  #include "net/net.h"
> diff --git a/hw/macio.c b/hw/ppc/macio.c
> similarity index 99%
> rename from hw/macio.c
> rename to hw/ppc/macio.c
> index 74bdcd1..f9cb52f 100644
> --- a/hw/macio.c
> +++ b/hw/ppc/macio.c
> @@ -22,11 +22,11 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
>  #include "mac_dbdma.h"
> -#include "escc.h"
> +#include "hw/escc.h"
>  
>  #define TYPE_MACIO "macio"
>  #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
> diff --git a/hw/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
> similarity index 98%
> rename from hw/mpc8544_guts.c
> rename to hw/ppc/mpc8544_guts.c
> index 728723c..193beab 100644
> --- a/hw/mpc8544_guts.c
> +++ b/hw/ppc/mpc8544_guts.c
> @@ -17,9 +17,9 @@
>   *
>   */
>  
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>  
>  #define MPC8544_GUTS_MMIO_SIZE        0x1000
>  #define MPC8544_GUTS_RSTCR_RESET      0x02
> diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
> index e25c70b..fcf57e5 100644
> --- a/hw/ppc/mpc8544ds.c
> +++ b/hw/ppc/mpc8544ds.c
> @@ -12,9 +12,9 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "e500.h"
> -#include "../boards.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
> -#include "hw/openpic.h"
> +#include "openpic.h"
>  
>  static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt)
>  {
> diff --git a/hw/openpic.c b/hw/ppc/openpic.c
> similarity index 99%
> rename from hw/openpic.c
> rename to hw/ppc/openpic.c
> index 20a479c..f1b2880 100644
> --- a/hw/openpic.c
> +++ b/hw/ppc/openpic.c
> @@ -33,12 +33,12 @@
>   * Serial interrupts, as implemented in Raven chipset are not supported yet.
>   *
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
>  #include "openpic.h"
> -#include "sysbus.h"
> -#include "pci/msi.h"
> +#include "hw/sysbus.h"
> +#include "hw/pci/msi.h"
>  #include "qemu/bitops.h"
>  #include "ppc.h"
>  
> diff --git a/hw/openpic.h b/hw/ppc/openpic.h
> similarity index 100%
> rename from hw/openpic.h
> rename to hw/ppc/openpic.h
> diff --git a/hw/ppc-viosrp.h b/hw/ppc/ppc-viosrp.h
> similarity index 100%
> rename from hw/ppc-viosrp.h
> rename to hw/ppc/ppc-viosrp.h
> diff --git a/hw/ppc.c b/hw/ppc/ppc.c
> similarity index 99%
> rename from hw/ppc.c
> rename to hw/ppc/ppc.c
> index c52e22f..b984c3f 100644
> --- a/hw/ppc.c
> +++ b/hw/ppc/ppc.c
> @@ -21,13 +21,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc.h"
> +#include "hw/hw.h"
> +#include "hw/ppc/ppc.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> -#include "nvram.h"
> +#include "hw/nvram.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>  
> diff --git a/hw/ppc.h b/hw/ppc/ppc.h
> similarity index 100%
> rename from hw/ppc.h
> rename to hw/ppc/ppc.h
> diff --git a/hw/ppc405.h b/hw/ppc/ppc405.h
> similarity index 100%
> rename from hw/ppc405.h
> rename to hw/ppc/ppc405.h
> diff --git a/hw/ppc405_boards.c b/hw/ppc/ppc405_boards.c
> similarity index 99%
> rename from hw/ppc405_boards.c
> rename to hw/ppc/ppc405_boards.c
> index cf371db..bda9dcd 100644
> --- a/hw/ppc405_boards.c
> +++ b/hw/ppc/ppc405_boards.c
> @@ -21,16 +21,16 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc405.h"
> -#include "nvram.h"
> -#include "flash.h"
> +#include "hw/nvram.h"
> +#include "hw/flash.h"
>  #include "sysemu/sysemu.h"
>  #include "block/block.h"
> -#include "boards.h"
> +#include "hw/boards.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "sysemu/blockdev.h"
>  #include "exec/address-spaces.h"
>  
> diff --git a/hw/ppc405_uc.c b/hw/ppc/ppc405_uc.c
> similarity index 99%
> rename from hw/ppc405_uc.c
> rename to hw/ppc/ppc405_uc.c
> index c96d103..9eadab0 100644
> --- a/hw/ppc405_uc.c
> +++ b/hw/ppc/ppc405_uc.c
> @@ -21,10 +21,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc405.h"
> -#include "serial.h"
> +#include "hw/serial.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
>  #include "qemu/log.h"
> diff --git a/hw/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
> similarity index 98%
> rename from hw/ppc440_bamboo.c
> rename to hw/ppc/ppc440_bamboo.c
> index 73b5ac7..6ef8821 100644
> --- a/hw/ppc440_bamboo.c
> +++ b/hw/ppc/ppc440_bamboo.c
> @@ -14,20 +14,20 @@
>  #include "config.h"
>  #include "qemu-common.h"
>  #include "net/net.h"
> -#include "hw.h"
> -#include "pci/pci.h"
> -#include "boards.h"
> +#include "hw/hw.h"
> +#include "hw/pci/pci.h"
> +#include "hw/boards.h"
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/device_tree.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "exec/address-spaces.h"
> -#include "serial.h"
> +#include "hw/serial.h"
>  #include "ppc.h"
>  #include "ppc405.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>  
>  #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
>  
> diff --git a/hw/ppc4xx.h b/hw/ppc/ppc4xx.h
> similarity index 99%
> rename from hw/ppc4xx.h
> rename to hw/ppc/ppc4xx.h
> index 59dba9e..91d84ba 100644
> --- a/hw/ppc4xx.h
> +++ b/hw/ppc/ppc4xx.h
> @@ -25,7 +25,7 @@
>  #if !defined(PPC_4XX_H)
>  #define PPC_4XX_H
>  
> -#include "pci/pci.h"
> +#include "hw/pci/pci.h"
>  
>  /* PowerPC 4xx core initialization */
>  PowerPCCPU *ppc4xx_init(const char *cpu_model,
> diff --git a/hw/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
> similarity index 99%
> rename from hw/ppc4xx_devs.c
> rename to hw/ppc/ppc4xx_devs.c
> index 5e491bc..b78a2de 100644
> --- a/hw/ppc4xx_devs.c
> +++ b/hw/ppc/ppc4xx_devs.c
> @@ -21,7 +21,7 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc4xx.h"
>  #include "qemu/log.h"
> diff --git a/hw/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
> similarity index 99%
> rename from hw/ppc4xx_pci.c
> rename to hw/ppc/ppc4xx_pci.c
> index ba2d669..8bc984e 100644
> --- a/hw/ppc4xx_pci.c
> +++ b/hw/ppc/ppc4xx_pci.c
> @@ -19,11 +19,11 @@
>  /* This file implements emulation of the 32-bit PCI controller found in some
>   * 4xx SoCs, such as the 440EP. */
>  
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "ppc4xx.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>  #include "exec/address-spaces.h"
>  
>  #undef DEBUG
> diff --git a/hw/ppc_booke.c b/hw/ppc/ppc_booke.c
> similarity index 99%
> rename from hw/ppc_booke.c
> rename to hw/ppc/ppc_booke.c
> index 25a4e91..c096d07 100644
> --- a/hw/ppc_booke.c
> +++ b/hw/ppc/ppc_booke.c
> @@ -21,13 +21,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "ppc.h"
>  #include "qemu/timer.h"
>  #include "sysemu/sysemu.h"
> -#include "nvram.h"
> +#include "hw/nvram.h"
>  #include "qemu/log.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  
>  
>  /* Timer Control Register */
> diff --git a/hw/ppc_prep.c b/hw/ppc/ppc_prep.c
> similarity index 100%
> rename from hw/ppc_prep.c
> rename to hw/ppc/ppc_prep.c
> diff --git a/hw/ppce500_pci.c b/hw/ppc/ppce500_pci.c
> similarity index 99%
> rename from hw/ppce500_pci.c
> rename to hw/ppc/ppce500_pci.c
> index 1e1ade3..3b71840 100644
> --- a/hw/ppce500_pci.c
> +++ b/hw/ppc/ppce500_pci.c
> @@ -14,10 +14,10 @@
>   * (at your option) any later version.
>   */
>  
> -#include "hw.h"
> -#include "hw/ppc/e500-ccsr.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/hw.h"
> +#include "e500-ccsr.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>  #include "qemu/bswap.h"
>  #include "ppce500_pci.h"
>  
> diff --git a/hw/ppce500_pci.h b/hw/ppc/ppce500_pci.h
> similarity index 100%
> rename from hw/ppce500_pci.h
> rename to hw/ppc/ppce500_pci.h
> diff --git a/hw/ppce500_spin.c b/hw/ppc/ppce500_spin.c
> similarity index 99%
> rename from hw/ppce500_spin.c
> rename to hw/ppc/ppce500_spin.c
> index 7e90fb9..9cfb819 100644
> --- a/hw/ppce500_spin.c
> +++ b/hw/ppc/ppce500_spin.c
> @@ -27,9 +27,9 @@
>   *
>   */
>  
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "sysbus.h"
> +#include "hw/sysbus.h"
>  #include "sysemu/kvm.h"
>  
>  #define MAX_CPUS 32
> diff --git a/hw/spapr.c b/hw/ppc/spapr.c
> similarity index 99%
> rename from hw/spapr.c
> rename to hw/ppc/spapr.c
> index e88a27a..b5e041e 100644
> --- a/hw/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -25,7 +25,7 @@
>   *
>   */
>  #include "sysemu/sysemu.h"
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "elf.h"
>  #include "net/net.h"
>  #include "sysemu/blockdev.h"
> @@ -34,18 +34,18 @@
>  #include "kvm_ppc.h"
>  
>  #include "hw/boards.h"
> -#include "hw/ppc.h"
> +#include "ppc.h"
>  #include "hw/loader.h"
>  
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/spapr_pci.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "spapr_pci.h"
> +#include "xics.h"
>  #include "hw/pci/msi.h"
>  
>  #include "sysemu/kvm.h"
>  #include "kvm_ppc.h"
> -#include "pci/pci.h"
> +#include "hw/pci/pci.h"
>  
>  #include "exec/address-spaces.h"
>  #include "hw/usb.h"
> diff --git a/hw/spapr.h b/hw/ppc/spapr.h
> similarity index 99%
> rename from hw/spapr.h
> rename to hw/ppc/spapr.h
> index 3a1f69f..864bee9 100644
> --- a/hw/spapr.h
> +++ b/hw/ppc/spapr.h
> @@ -2,7 +2,7 @@
>  #define __HW_SPAPR_H__
>  
>  #include "sysemu/dma.h"
> -#include "hw/xics.h"
> +#include "hw/ppc/xics.h"
>  
>  struct VIOsPAPRBus;
>  struct sPAPRPHBState;
> diff --git a/hw/spapr_events.c b/hw/ppc/spapr_events.c
> similarity index 99%
> rename from hw/spapr_events.c
> rename to hw/ppc/spapr_events.c
> index ce78f09..571e2cf 100644
> --- a/hw/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -30,8 +30,8 @@
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>  
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>  
>  #include <libfdt.h>
>  
> diff --git a/hw/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> similarity index 99%
> rename from hw/spapr_hcall.c
> rename to hw/ppc/spapr_hcall.c
> index 2889742..9dbfa62 100644
> --- a/hw/spapr_hcall.c
> +++ b/hw/ppc/spapr_hcall.c
> @@ -2,7 +2,7 @@
>  #include "cpu.h"
>  #include "sysemu/sysemu.h"
>  #include "helper_regs.h"
> -#include "hw/spapr.h"
> +#include "spapr.h"
>  
>  #define HPTES_PER_GROUP 8
>  
> diff --git a/hw/spapr_iommu.c b/hw/ppc/spapr_iommu.c
> similarity index 99%
> rename from hw/spapr_iommu.c
> rename to hw/ppc/spapr_iommu.c
> index d8a098c..a23931e 100644
> --- a/hw/spapr_iommu.c
> +++ b/hw/ppc/spapr_iommu.c
> @@ -16,14 +16,14 @@
>   * You should have received a copy of the GNU Lesser General Public
>   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/kvm.h"
> -#include "qdev.h"
> +#include "hw/qdev.h"
>  #include "kvm_ppc.h"
>  #include "sysemu/dma.h"
>  #include "exec/address-spaces.h"
>  
> -#include "hw/spapr.h"
> +#include "spapr.h"
>  
>  #include <libfdt.h>
>  
> diff --git a/hw/spapr_llan.c b/hw/ppc/spapr_llan.c
> similarity index 99%
> rename from hw/spapr_llan.c
> rename to hw/ppc/spapr_llan.c
> index db34b48..ce5d9ee 100644
> --- a/hw/spapr_llan.c
> +++ b/hw/ppc/spapr_llan.c
> @@ -24,11 +24,11 @@
>   * THE SOFTWARE.
>   *
>   */
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "net/net.h"
>  #include "hw/qdev.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>  
>  #include <libfdt.h>
>  
> diff --git a/hw/spapr_nvram.c b/hw/ppc/spapr_nvram.c
> similarity index 99%
> rename from hw/spapr_nvram.c
> rename to hw/ppc/spapr_nvram.c
> index 680cdba..29dabb5 100644
> --- a/hw/spapr_nvram.c
> +++ b/hw/ppc/spapr_nvram.c
> @@ -26,8 +26,8 @@
>  
>  #include "sysemu/device_tree.h"
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>  
>  typedef struct sPAPRNVRAM {
>      VIOsPAPRDevice sdev;
> diff --git a/hw/spapr_pci.c b/hw/ppc/spapr_pci.c
> similarity index 99%
> rename from hw/spapr_pci.c
> rename to hw/ppc/spapr_pci.c
> index 4eacbcf..0034290 100644
> --- a/hw/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -22,13 +22,13 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "pci/pci.h"
> -#include "pci/msi.h"
> -#include "pci/msix.h"
> -#include "pci/pci_host.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_pci.h"
> +#include "hw/hw.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/msi.h"
> +#include "hw/pci/msix.h"
> +#include "hw/pci/pci_host.h"
> +#include "spapr.h"
> +#include "spapr_pci.h"
>  #include "exec/address-spaces.h"
>  #include <libfdt.h>
>  #include "trace.h"
> diff --git a/hw/spapr_pci.h b/hw/ppc/spapr_pci.h
> similarity index 99%
> rename from hw/spapr_pci.h
> rename to hw/ppc/spapr_pci.h
> index 8bb3c62..f32a04b 100644
> --- a/hw/spapr_pci.h
> +++ b/hw/ppc/spapr_pci.h
> @@ -25,7 +25,7 @@
>  
>  #include "hw/pci/pci.h"
>  #include "hw/pci/pci_host.h"
> -#include "hw/xics.h"
> +#include "hw/ppc/xics.h"
>  
>  #define SPAPR_MSIX_MAX_DEVS 32
>  
> diff --git a/hw/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> similarity index 99%
> rename from hw/spapr_rtas.c
> rename to hw/ppc/spapr_rtas.c
> index 5ec787f..a1da864 100644
> --- a/hw/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -30,8 +30,8 @@
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>  
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>  
>  #include <libfdt.h>
>  
> diff --git a/hw/spapr_vio.c b/hw/ppc/spapr_vio.c
> similarity index 99%
> rename from hw/spapr_vio.c
> rename to hw/ppc/spapr_vio.c
> index 34c9ca6..7e2cbe5 100644
> --- a/hw/spapr_vio.c
> +++ b/hw/ppc/spapr_vio.c
> @@ -19,20 +19,20 @@
>   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
>   */
>  
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "boards.h"
> +#include "hw/boards.h"
>  #include "monitor/monitor.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "hw/sysbus.h"
>  #include "sysemu/kvm.h"
>  #include "sysemu/device_tree.h"
>  #include "kvm_ppc.h"
>  
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "xics.h"
>  
>  #ifdef CONFIG_FDT
>  #include <libfdt.h>
> diff --git a/hw/spapr_vio.h b/hw/ppc/spapr_vio.h
> similarity index 100%
> rename from hw/spapr_vio.h
> rename to hw/ppc/spapr_vio.h
> diff --git a/hw/spapr_vscsi.c b/hw/ppc/spapr_vscsi.c
> similarity index 99%
> rename from hw/spapr_vscsi.c
> rename to hw/ppc/spapr_vscsi.c
> index 7fc0e13..68cd072 100644
> --- a/hw/spapr_vscsi.c
> +++ b/hw/ppc/spapr_vscsi.c
> @@ -31,14 +31,14 @@
>   *  - Add indirect descriptors support
>   *  - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)
>   */
> -#include "hw.h"
> -#include "scsi.h"
> -#include "scsi-defs.h"
> +#include "hw/hw.h"
> +#include "hw/scsi.h"
> +#include "hw/scsi-defs.h"
>  #include "srp.h"
>  #include "hw/qdev.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> -#include "hw/ppc-viosrp.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
> +#include "ppc-viosrp.h"
>  
>  #include <libfdt.h>
>  
> diff --git a/hw/spapr_vty.c b/hw/ppc/spapr_vty.c
> similarity index 98%
> rename from hw/spapr_vty.c
> rename to hw/ppc/spapr_vty.c
> index 5c63eaa..9dffa5e 100644
> --- a/hw/spapr_vty.c
> +++ b/hw/ppc/spapr_vty.c
> @@ -1,7 +1,7 @@
> -#include "qdev.h"
> +#include "hw/qdev.h"
>  #include "char/char.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "spapr.h"
> +#include "spapr_vio.h"
>  
>  #define VTERM_BUFSIZE   16
>  
> diff --git a/hw/srp.h b/hw/ppc/srp.h
> similarity index 100%
> rename from hw/srp.h
> rename to hw/ppc/srp.h
> diff --git a/hw/unin_pci.c b/hw/ppc/unin_pci.c
> similarity index 99%
> rename from hw/unin_pci.c
> rename to hw/ppc/unin_pci.c
> index f1c3c20..f5a0597 100644
> --- a/hw/unin_pci.c
> +++ b/hw/ppc/unin_pci.c
> @@ -21,10 +21,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>   * THE SOFTWARE.
>   */
> -#include "hw.h"
> -#include "ppc/mac.h"
> -#include "pci/pci.h"
> -#include "pci/pci_host.h"
> +#include "hw/hw.h"
> +#include "mac.h"
> +#include "hw/pci/pci.h"
> +#include "hw/pci/pci_host.h"
>  
>  /* debug UniNorth */
>  //#define DEBUG_UNIN
> diff --git a/hw/virtex_ml507.c b/hw/ppc/virtex_ml507.c
> similarity index 97%
> rename from hw/virtex_ml507.c
> rename to hw/ppc/virtex_ml507.c
> index 8c4e8e4..6551eb1 100644
> --- a/hw/virtex_ml507.c
> +++ b/hw/ppc/virtex_ml507.c
> @@ -22,15 +22,15 @@
>   * THE SOFTWARE.
>   */
>  
> -#include "sysbus.h"
> -#include "hw.h"
> -#include "serial.h"
> -#include "flash.h"
> +#include "hw/sysbus.h"
> +#include "hw/hw.h"
> +#include "hw/serial.h"
> +#include "hw/flash.h"
>  #include "sysemu/sysemu.h"
> -#include "devices.h"
> -#include "boards.h"
> +#include "hw/devices.h"
> +#include "hw/boards.h"
>  #include "sysemu/device_tree.h"
> -#include "loader.h"
> +#include "hw/loader.h"
>  #include "elf.h"
>  #include "qemu/log.h"
>  #include "exec/address-spaces.h"
> @@ -40,7 +40,7 @@
>  #include "ppc405.h"
>  
>  #include "sysemu/blockdev.h"
> -#include "xilinx.h"
> +#include "hw/xilinx.h"
>  
>  #define EPAPR_MAGIC    (0x45504150)
>  #define FLASH_SIZE     (16 * 1024 * 1024)
> diff --git a/hw/xics.c b/hw/ppc/xics.c
> similarity index 99%
> rename from hw/xics.c
> rename to hw/ppc/xics.c
> index 9ef0d61..b6aec77 100644
> --- a/hw/xics.c
> +++ b/hw/ppc/xics.c
> @@ -25,10 +25,10 @@
>   *
>   */
>  
> -#include "hw.h"
> +#include "hw/hw.h"
>  #include "trace.h"
> -#include "hw/spapr.h"
> -#include "hw/xics.h"
> +#include "spapr.h"
> +#include "xics.h"
>  
>  /*
>   * ICP: Presentation layer
> diff --git a/hw/xics.h b/hw/ppc/xics.h
> similarity index 100%
> rename from hw/xics.h
> rename to hw/ppc/xics.h
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index 2f4f068..4506af1 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -31,11 +31,11 @@
>  #include "sysemu/cpus.h"
>  #include "sysemu/device_tree.h"
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> +#include "hw/ppc/spapr.h"
>  
>  #include "hw/sysbus.h"
> -#include "hw/spapr.h"
> -#include "hw/spapr_vio.h"
> +#include "hw/ppc/spapr.h"
> +#include "hw/ppc/spapr_vio.h"
>  
>  //#define DEBUG_KVM
>  
>
Alexander Graf Jan. 25, 2013, 10:42 p.m. UTC | #7
On 25.01.2013, at 23:40, Paolo Bonzini wrote:

> Il 25/01/2013 02:12, Alexander Graf ha scritto:
>> This patch moves all PowerPC specific hardware emulation except for
>> PREP to hw/ppc.
> 
> NACK, I believe it's too early for this.
> 
> For example spapr_llan.c could go under hw/net, and hw/*_pci.c under
> hw/pci just as well.

I already removed this patch from my queue again.


Alex
diff mbox

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 35c260d..3664dc8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -352,13 +352,13 @@  PowerPC Machines
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/ppc405_boards.c
+F: hw/ppc/ppc405_boards.c
 
 Bamboo
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/ppc440_bamboo.c
+F: hw/ppc/ppc440_bamboo.c
 
 e500
 M: Alexander Graf <agraf@suse.de>
@@ -374,22 +374,22 @@  M: Scott Wood <scottwood@freescale.com>
 L: qemu-ppc@nongnu.org
 S: Supported
 F: hw/ppc/mpc8544ds.c
-F: hw/mpc8544_guts.c
+F: hw/ppc/mpc8544_guts.c
 
 New World
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
-F: hw/ppc_newworld.c
-F: hw/unin_pci.c
-F: hw/dec_pci.[hc]
+F: hw/ppc/ppc_newworld.c
+F: hw/ppc/unin_pci.c
+F: hw/ppc/dec_pci.[hc]
 
 Old World
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
-F: hw/ppc_oldworld.c
-F: hw/grackle_pci.c
+F: hw/ppc/ppc_oldworld.c
+F: hw/ppc/grackle_pci.c
 
 PReP
 M: Andreas Färber <andreas.faerber@web.de>
@@ -404,13 +404,13 @@  M: David Gibson <david@gibson.dropbear.id.au>
 M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Supported
-F: hw/spapr*
+F: hw/ppc/spapr*
 
 virtex_ml507
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
 L: qemu-ppc@nongnu.org
 S: Odd Fixes
-F: hw/virtex_ml507.c
+F: hw/ppc/virtex_ml507.c
 
 SH4 Machines
 ------------
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 23ac249..d38e704 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -45,24 +45,10 @@  common-obj-y += pam.o
 
 extra-obj-y += pci/
 
-# PPC devices
+# PPC PREP devices
 common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
 common-obj-$(CONFIG_I82378) += i82378.o
 common-obj-$(CONFIG_PC87312) += pc87312.o
-# Mac shared devices
-common-obj-$(CONFIG_MACIO) += macio.o
-common-obj-$(CONFIG_CUDA) += cuda.o
-common-obj-$(CONFIG_ADB) += adb.o
-common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
-common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
-# OldWorld PowerMac
-common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
-common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
-# NewWorld PowerMac
-common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
-common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
-# PowerPC E500 boards
-common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
 
 # MIPS devices
 common-obj-$(CONFIG_PIIX4) += piix4.o
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 462146b..193c5e9 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -1,32 +1,54 @@ 
-# shared objects
-obj-y = ppc.o ppc_booke.o
 # PREP target
 obj-y += mc146818rtc.o
 obj-y += ppc_prep.o
+
+# Xilinx PPC peripherals
+obj-y += xilinx_ethlite.o
+
+obj-y := $(addprefix ../,$(obj-y))
+
+# shared objects
+obj-y = ppc.o ppc_booke.o
+
 # IBM pSeries (sPAPR)
 obj-$(CONFIG_PSERIES) += spapr.o spapr_hcall.o spapr_rtas.o spapr_vio.o
 obj-$(CONFIG_PSERIES) += xics.o spapr_vty.o spapr_llan.o spapr_vscsi.o
-obj-$(CONFIG_PSERIES) += spapr_pci.o pci/pci-hotplug.o spapr_iommu.o
+obj-$(CONFIG_PSERIES) += spapr_pci.o ../pci/pci-hotplug.o spapr_iommu.o
 obj-$(CONFIG_PSERIES) += spapr_events.o spapr_nvram.o
+
 # PowerPC 4xx boards
 obj-y += ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
 obj-y += ppc440_bamboo.o
+
 # PowerPC E500 boards
 obj-$(CONFIG_FDT) += mpc8544_guts.o ppce500_spin.o
+obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
+
 # PowerPC 440 Xilinx ML507 reference board.
 obj-y += virtex_ml507.o
+
 # PowerPC OpenPIC
 obj-y += openpic.o
-obj-$(CONFIG_FDT) += ../device_tree.o
 
-# Xilinx PPC peripherals
-obj-y += xilinx_ethlite.o
-
-obj-y := $(addprefix ../,$(obj-y))
+# PowerMac hardware
+obj-$(CONFIG_MACIO) += macio.o
+obj-$(CONFIG_CUDA) += cuda.o
+obj-$(CONFIG_ADB) += adb.o
+obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
+obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
+obj-$(CONFIG_UNIN_PCI) += unin_pci.o
+obj-$(CONFIG_DEC_PCI) += dec_pci.o
 
 # OldWorld PowerMac
+obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
+obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
 obj-y += mac_oldworld.o
+
 # NewWorld PowerMac
 obj-y += mac_newworld.o
+
 # e500
 obj-$(CONFIG_FDT) += e500.o mpc8544ds.o e500plat.o
+
+# Device tree support
+obj-$(CONFIG_FDT) += ../../device_tree.o
diff --git a/hw/adb.c b/hw/ppc/adb.c
similarity index 99%
rename from hw/adb.c
rename to hw/ppc/adb.c
index 6cf5465..b2a55d6 100644
--- a/hw/adb.c
+++ b/hw/ppc/adb.c
@@ -21,7 +21,7 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "adb.h"
 #include "ui/console.h"
 
diff --git a/hw/adb.h b/hw/ppc/adb.h
similarity index 99%
rename from hw/adb.h
rename to hw/ppc/adb.h
index 721f1ac..bdfccd4 100644
--- a/hw/adb.h
+++ b/hw/ppc/adb.h
@@ -26,7 +26,7 @@ 
 #if !defined(__ADB_H__)
 #define __ADB_H__
 
-#include "qdev.h"
+#include "hw/qdev.h"
 
 #define MAX_ADB_DEVICES 16
 
diff --git a/hw/cuda.c b/hw/ppc/cuda.c
similarity index 99%
rename from hw/cuda.c
rename to hw/ppc/cuda.c
index b36c535..4c289f5 100644
--- a/hw/cuda.c
+++ b/hw/ppc/cuda.c
@@ -22,8 +22,8 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
+#include "hw/hw.h"
+#include "mac.h"
 #include "adb.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/dec_pci.c b/hw/ppc/dec_pci.c
similarity index 97%
rename from hw/dec_pci.c
rename to hw/ppc/dec_pci.c
index ee3f4ca..ae1fd27 100644
--- a/hw/dec_pci.c
+++ b/hw/ppc/dec_pci.c
@@ -24,11 +24,11 @@ 
  */
 
 #include "dec_pci.h"
-#include "sysbus.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
-#include "pci/pci_bridge.h"
-#include "pci/pci_bus.h"
+#include "hw/sysbus.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pci/pci_bridge.h"
+#include "hw/pci/pci_bus.h"
 
 /* debug DEC */
 //#define DEBUG_DEC
diff --git a/hw/dec_pci.h b/hw/ppc/dec_pci.h
similarity index 100%
rename from hw/dec_pci.h
rename to hw/ppc/dec_pci.h
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index b7474c0..241bde4 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -28,14 +28,14 @@ 
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 #include "sysemu/device_tree.h"
-#include "hw/openpic.h"
-#include "hw/ppc.h"
+#include "openpic.h"
+#include "ppc.h"
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
 #include "exec/address-spaces.h"
 #include "qemu/host-utils.h"
-#include "hw/ppce500_pci.h"
+#include "ppce500_pci.h"
 
 #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
 #define UIMAGE_LOAD_BASE           0
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
index 25ac4b1..477c3df 100644
--- a/hw/ppc/e500plat.c
+++ b/hw/ppc/e500plat.c
@@ -12,10 +12,10 @@ 
 #include "config.h"
 #include "qemu-common.h"
 #include "e500.h"
-#include "../boards.h"
+#include "hw/boards.h"
 #include "sysemu/device_tree.h"
 #include "hw/pci/pci.h"
-#include "hw/openpic.h"
+#include "openpic.h"
 
 static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
 {
diff --git a/hw/grackle_pci.c b/hw/ppc/grackle_pci.c
similarity index 98%
rename from hw/grackle_pci.c
rename to hw/ppc/grackle_pci.c
index 95639d5..0a8c320 100644
--- a/hw/grackle_pci.c
+++ b/hw/ppc/grackle_pci.c
@@ -23,9 +23,9 @@ 
  * THE SOFTWARE.
  */
 
-#include "pci/pci_host.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/pci/pci.h"
+#include "mac.h"
 
 /* debug Grackle */
 //#define DEBUG_GRACKLE
diff --git a/hw/heathrow_pic.c b/hw/ppc/heathrow_pic.c
similarity index 99%
rename from hw/heathrow_pic.c
rename to hw/ppc/heathrow_pic.c
index c0a71c3..8b3635e 100644
--- a/hw/heathrow_pic.c
+++ b/hw/ppc/heathrow_pic.c
@@ -22,8 +22,8 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
+#include "hw/hw.h"
+#include "mac.h"
 
 /* debug PIC */
 //#define DEBUG_PIC
diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
index b17107b..8b40d95 100644
--- a/hw/ppc/mac.h
+++ b/hw/ppc/mac.h
@@ -28,7 +28,7 @@ 
 #include "exec/memory.h"
 #include "hw/sysbus.h"
 #include "hw/ide/internal.h"
-#include "hw/adb.h"
+#include "hw/ppc/adb.h"
 
 /* SMP is not enabled, for now */
 #define MAX_CPUS 1
diff --git a/hw/mac_dbdma.c b/hw/ppc/mac_dbdma.c
similarity index 99%
rename from hw/mac_dbdma.c
rename to hw/ppc/mac_dbdma.c
index b894ab2..5a304d7 100644
--- a/hw/mac_dbdma.c
+++ b/hw/ppc/mac_dbdma.c
@@ -36,8 +36,8 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "isa.h"
+#include "hw/hw.h"
+#include "hw/isa.h"
 #include "mac_dbdma.h"
 #include "qemu/main-loop.h"
 
diff --git a/hw/mac_dbdma.h b/hw/ppc/mac_dbdma.h
similarity index 100%
rename from hw/mac_dbdma.h
rename to hw/ppc/mac_dbdma.h
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 6de810b..2e13e27 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -47,10 +47,10 @@ 
  *
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
-#include "hw/ppc/mac.h"
-#include "hw/adb.h"
-#include "hw/mac_dbdma.h"
+#include "ppc.h"
+#include "mac.h"
+#include "adb.h"
+#include "mac_dbdma.h"
 #include "hw/nvram.h"
 #include "hw/pci/pci.h"
 #include "net/net.h"
@@ -58,7 +58,7 @@ 
 #include "hw/boards.h"
 #include "hw/fw_cfg.h"
 #include "hw/escc.h"
-#include "hw/openpic.h"
+#include "openpic.h"
 #include "hw/ide.h"
 #include "hw/loader.h"
 #include "elf.h"
diff --git a/hw/mac_nvram.c b/hw/ppc/mac_nvram.c
similarity index 98%
rename from hw/mac_nvram.c
rename to hw/ppc/mac_nvram.c
index 25121fa..e8a7255 100644
--- a/hw/mac_nvram.c
+++ b/hw/ppc/mac_nvram.c
@@ -22,10 +22,10 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "firmware_abi.h"
+#include "hw/hw.h"
+#include "hw/firmware_abi.h"
 #include "sysemu/sysemu.h"
-#include "ppc/mac.h"
+#include "mac.h"
 
 /* debug NVR */
 //#define DEBUG_NVR
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 9ed303a..d436141 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -24,9 +24,9 @@ 
  * THE SOFTWARE.
  */
 #include "hw/hw.h"
-#include "hw/ppc.h"
+#include "ppc.h"
 #include "mac.h"
-#include "hw/adb.h"
+#include "adb.h"
 #include "hw/nvram.h"
 #include "sysemu/sysemu.h"
 #include "net/net.h"
diff --git a/hw/macio.c b/hw/ppc/macio.c
similarity index 99%
rename from hw/macio.c
rename to hw/ppc/macio.c
index 74bdcd1..f9cb52f 100644
--- a/hw/macio.c
+++ b/hw/ppc/macio.c
@@ -22,11 +22,11 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "mac.h"
+#include "hw/pci/pci.h"
 #include "mac_dbdma.h"
-#include "escc.h"
+#include "hw/escc.h"
 
 #define TYPE_MACIO "macio"
 #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
diff --git a/hw/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
similarity index 98%
rename from hw/mpc8544_guts.c
rename to hw/ppc/mpc8544_guts.c
index 728723c..193beab 100644
--- a/hw/mpc8544_guts.c
+++ b/hw/ppc/mpc8544_guts.c
@@ -17,9 +17,9 @@ 
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define MPC8544_GUTS_MMIO_SIZE        0x1000
 #define MPC8544_GUTS_RSTCR_RESET      0x02
diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
index e25c70b..fcf57e5 100644
--- a/hw/ppc/mpc8544ds.c
+++ b/hw/ppc/mpc8544ds.c
@@ -12,9 +12,9 @@ 
 #include "config.h"
 #include "qemu-common.h"
 #include "e500.h"
-#include "../boards.h"
+#include "hw/boards.h"
 #include "sysemu/device_tree.h"
-#include "hw/openpic.h"
+#include "openpic.h"
 
 static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt)
 {
diff --git a/hw/openpic.c b/hw/ppc/openpic.c
similarity index 99%
rename from hw/openpic.c
rename to hw/ppc/openpic.c
index 20a479c..f1b2880 100644
--- a/hw/openpic.c
+++ b/hw/ppc/openpic.c
@@ -33,12 +33,12 @@ 
  * Serial interrupts, as implemented in Raven chipset are not supported yet.
  *
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
+#include "hw/hw.h"
+#include "mac.h"
+#include "hw/pci/pci.h"
 #include "openpic.h"
-#include "sysbus.h"
-#include "pci/msi.h"
+#include "hw/sysbus.h"
+#include "hw/pci/msi.h"
 #include "qemu/bitops.h"
 #include "ppc.h"
 
diff --git a/hw/openpic.h b/hw/ppc/openpic.h
similarity index 100%
rename from hw/openpic.h
rename to hw/ppc/openpic.h
diff --git a/hw/ppc-viosrp.h b/hw/ppc/ppc-viosrp.h
similarity index 100%
rename from hw/ppc-viosrp.h
rename to hw/ppc/ppc-viosrp.h
diff --git a/hw/ppc.c b/hw/ppc/ppc.c
similarity index 99%
rename from hw/ppc.c
rename to hw/ppc/ppc.c
index c52e22f..b984c3f 100644
--- a/hw/ppc.c
+++ b/hw/ppc/ppc.c
@@ -21,13 +21,13 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc.h"
+#include "hw/hw.h"
+#include "hw/ppc/ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "nvram.h"
+#include "hw/nvram.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 
diff --git a/hw/ppc.h b/hw/ppc/ppc.h
similarity index 100%
rename from hw/ppc.h
rename to hw/ppc/ppc.h
diff --git a/hw/ppc405.h b/hw/ppc/ppc405.h
similarity index 100%
rename from hw/ppc405.h
rename to hw/ppc/ppc405.h
diff --git a/hw/ppc405_boards.c b/hw/ppc/ppc405_boards.c
similarity index 99%
rename from hw/ppc405_boards.c
rename to hw/ppc/ppc405_boards.c
index cf371db..bda9dcd 100644
--- a/hw/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -21,16 +21,16 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ppc.h"
 #include "ppc405.h"
-#include "nvram.h"
-#include "flash.h"
+#include "hw/nvram.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
 #include "block/block.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "sysemu/blockdev.h"
 #include "exec/address-spaces.h"
 
diff --git a/hw/ppc405_uc.c b/hw/ppc/ppc405_uc.c
similarity index 99%
rename from hw/ppc405_uc.c
rename to hw/ppc/ppc405_uc.c
index c96d103..9eadab0 100644
--- a/hw/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -21,10 +21,10 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ppc.h"
 #include "ppc405.h"
-#include "serial.h"
+#include "hw/serial.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
diff --git a/hw/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
similarity index 98%
rename from hw/ppc440_bamboo.c
rename to hw/ppc/ppc440_bamboo.c
index 73b5ac7..6ef8821 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -14,20 +14,20 @@ 
 #include "config.h"
 #include "qemu-common.h"
 #include "net/net.h"
-#include "hw.h"
-#include "pci/pci.h"
-#include "boards.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/boards.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
 #include "sysemu/device_tree.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "exec/address-spaces.h"
-#include "serial.h"
+#include "hw/serial.h"
 #include "ppc.h"
 #include "ppc405.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 
 #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
 
diff --git a/hw/ppc4xx.h b/hw/ppc/ppc4xx.h
similarity index 99%
rename from hw/ppc4xx.h
rename to hw/ppc/ppc4xx.h
index 59dba9e..91d84ba 100644
--- a/hw/ppc4xx.h
+++ b/hw/ppc/ppc4xx.h
@@ -25,7 +25,7 @@ 
 #if !defined(PPC_4XX_H)
 #define PPC_4XX_H
 
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 /* PowerPC 4xx core initialization */
 PowerPCCPU *ppc4xx_init(const char *cpu_model,
diff --git a/hw/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
similarity index 99%
rename from hw/ppc4xx_devs.c
rename to hw/ppc/ppc4xx_devs.c
index 5e491bc..b78a2de 100644
--- a/hw/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -21,7 +21,7 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ppc.h"
 #include "ppc4xx.h"
 #include "qemu/log.h"
diff --git a/hw/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
similarity index 99%
rename from hw/ppc4xx_pci.c
rename to hw/ppc/ppc4xx_pci.c
index ba2d669..8bc984e 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -19,11 +19,11 @@ 
 /* This file implements emulation of the 32-bit PCI controller found in some
  * 4xx SoCs, such as the 440EP. */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "ppc.h"
 #include "ppc4xx.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "exec/address-spaces.h"
 
 #undef DEBUG
diff --git a/hw/ppc_booke.c b/hw/ppc/ppc_booke.c
similarity index 99%
rename from hw/ppc_booke.c
rename to hw/ppc/ppc_booke.c
index 25a4e91..c096d07 100644
--- a/hw/ppc_booke.c
+++ b/hw/ppc/ppc_booke.c
@@ -21,13 +21,13 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "ppc.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
-#include "nvram.h"
+#include "hw/nvram.h"
 #include "qemu/log.h"
-#include "loader.h"
+#include "hw/loader.h"
 
 
 /* Timer Control Register */
diff --git a/hw/ppc_prep.c b/hw/ppc/ppc_prep.c
similarity index 100%
rename from hw/ppc_prep.c
rename to hw/ppc/ppc_prep.c
diff --git a/hw/ppce500_pci.c b/hw/ppc/ppce500_pci.c
similarity index 99%
rename from hw/ppce500_pci.c
rename to hw/ppc/ppce500_pci.c
index 1e1ade3..3b71840 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppc/ppce500_pci.c
@@ -14,10 +14,10 @@ 
  * (at your option) any later version.
  */
 
-#include "hw.h"
-#include "hw/ppc/e500-ccsr.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "e500-ccsr.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 #include "qemu/bswap.h"
 #include "ppce500_pci.h"
 
diff --git a/hw/ppce500_pci.h b/hw/ppc/ppce500_pci.h
similarity index 100%
rename from hw/ppce500_pci.h
rename to hw/ppc/ppce500_pci.h
diff --git a/hw/ppce500_spin.c b/hw/ppc/ppce500_spin.c
similarity index 99%
rename from hw/ppce500_spin.c
rename to hw/ppc/ppce500_spin.c
index 7e90fb9..9cfb819 100644
--- a/hw/ppce500_spin.c
+++ b/hw/ppc/ppce500_spin.c
@@ -27,9 +27,9 @@ 
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "sysbus.h"
+#include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 
 #define MAX_CPUS 32
diff --git a/hw/spapr.c b/hw/ppc/spapr.c
similarity index 99%
rename from hw/spapr.c
rename to hw/ppc/spapr.c
index e88a27a..b5e041e 100644
--- a/hw/spapr.c
+++ b/hw/ppc/spapr.c
@@ -25,7 +25,7 @@ 
  *
  */
 #include "sysemu/sysemu.h"
-#include "hw.h"
+#include "hw/hw.h"
 #include "elf.h"
 #include "net/net.h"
 #include "sysemu/blockdev.h"
@@ -34,18 +34,18 @@ 
 #include "kvm_ppc.h"
 
 #include "hw/boards.h"
-#include "hw/ppc.h"
+#include "ppc.h"
 #include "hw/loader.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
-#include "hw/spapr_pci.h"
-#include "hw/xics.h"
+#include "spapr.h"
+#include "spapr_vio.h"
+#include "spapr_pci.h"
+#include "xics.h"
 #include "hw/pci/msi.h"
 
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
-#include "pci/pci.h"
+#include "hw/pci/pci.h"
 
 #include "exec/address-spaces.h"
 #include "hw/usb.h"
diff --git a/hw/spapr.h b/hw/ppc/spapr.h
similarity index 99%
rename from hw/spapr.h
rename to hw/ppc/spapr.h
index 3a1f69f..864bee9 100644
--- a/hw/spapr.h
+++ b/hw/ppc/spapr.h
@@ -2,7 +2,7 @@ 
 #define __HW_SPAPR_H__
 
 #include "sysemu/dma.h"
-#include "hw/xics.h"
+#include "hw/ppc/xics.h"
 
 struct VIOsPAPRBus;
 struct sPAPRPHBState;
diff --git a/hw/spapr_events.c b/hw/ppc/spapr_events.c
similarity index 99%
rename from hw/spapr_events.c
rename to hw/ppc/spapr_events.c
index ce78f09..571e2cf 100644
--- a/hw/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -30,8 +30,8 @@ 
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "spapr.h"
+#include "spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_hcall.c b/hw/ppc/spapr_hcall.c
similarity index 99%
rename from hw/spapr_hcall.c
rename to hw/ppc/spapr_hcall.c
index 2889742..9dbfa62 100644
--- a/hw/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -2,7 +2,7 @@ 
 #include "cpu.h"
 #include "sysemu/sysemu.h"
 #include "helper_regs.h"
-#include "hw/spapr.h"
+#include "spapr.h"
 
 #define HPTES_PER_GROUP 8
 
diff --git a/hw/spapr_iommu.c b/hw/ppc/spapr_iommu.c
similarity index 99%
rename from hw/spapr_iommu.c
rename to hw/ppc/spapr_iommu.c
index d8a098c..a23931e 100644
--- a/hw/spapr_iommu.c
+++ b/hw/ppc/spapr_iommu.c
@@ -16,14 +16,14 @@ 
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/kvm.h"
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "kvm_ppc.h"
 #include "sysemu/dma.h"
 #include "exec/address-spaces.h"
 
-#include "hw/spapr.h"
+#include "spapr.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_llan.c b/hw/ppc/spapr_llan.c
similarity index 99%
rename from hw/spapr_llan.c
rename to hw/ppc/spapr_llan.c
index db34b48..ce5d9ee 100644
--- a/hw/spapr_llan.c
+++ b/hw/ppc/spapr_llan.c
@@ -24,11 +24,11 @@ 
  * THE SOFTWARE.
  *
  */
-#include "hw.h"
+#include "hw/hw.h"
 #include "net/net.h"
 #include "hw/qdev.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "spapr.h"
+#include "spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_nvram.c b/hw/ppc/spapr_nvram.c
similarity index 99%
rename from hw/spapr_nvram.c
rename to hw/ppc/spapr_nvram.c
index 680cdba..29dabb5 100644
--- a/hw/spapr_nvram.c
+++ b/hw/ppc/spapr_nvram.c
@@ -26,8 +26,8 @@ 
 
 #include "sysemu/device_tree.h"
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "spapr.h"
+#include "spapr_vio.h"
 
 typedef struct sPAPRNVRAM {
     VIOsPAPRDevice sdev;
diff --git a/hw/spapr_pci.c b/hw/ppc/spapr_pci.c
similarity index 99%
rename from hw/spapr_pci.c
rename to hw/ppc/spapr_pci.c
index 4eacbcf..0034290 100644
--- a/hw/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -22,13 +22,13 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "pci/pci.h"
-#include "pci/msi.h"
-#include "pci/msix.h"
-#include "pci/pci_host.h"
-#include "hw/spapr.h"
-#include "hw/spapr_pci.h"
+#include "hw/hw.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/msix.h"
+#include "hw/pci/pci_host.h"
+#include "spapr.h"
+#include "spapr_pci.h"
 #include "exec/address-spaces.h"
 #include <libfdt.h>
 #include "trace.h"
diff --git a/hw/spapr_pci.h b/hw/ppc/spapr_pci.h
similarity index 99%
rename from hw/spapr_pci.h
rename to hw/ppc/spapr_pci.h
index 8bb3c62..f32a04b 100644
--- a/hw/spapr_pci.h
+++ b/hw/ppc/spapr_pci.h
@@ -25,7 +25,7 @@ 
 
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_host.h"
-#include "hw/xics.h"
+#include "hw/ppc/xics.h"
 
 #define SPAPR_MSIX_MAX_DEVS 32
 
diff --git a/hw/spapr_rtas.c b/hw/ppc/spapr_rtas.c
similarity index 99%
rename from hw/spapr_rtas.c
rename to hw/ppc/spapr_rtas.c
index 5ec787f..a1da864 100644
--- a/hw/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -30,8 +30,8 @@ 
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "spapr.h"
+#include "spapr_vio.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_vio.c b/hw/ppc/spapr_vio.c
similarity index 99%
rename from hw/spapr_vio.c
rename to hw/ppc/spapr_vio.c
index 34c9ca6..7e2cbe5 100644
--- a/hw/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -19,20 +19,20 @@ 
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "boards.h"
+#include "hw/boards.h"
 #include "monitor/monitor.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
 #include "sysemu/kvm.h"
 #include "sysemu/device_tree.h"
 #include "kvm_ppc.h"
 
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
-#include "hw/xics.h"
+#include "spapr.h"
+#include "spapr_vio.h"
+#include "xics.h"
 
 #ifdef CONFIG_FDT
 #include <libfdt.h>
diff --git a/hw/spapr_vio.h b/hw/ppc/spapr_vio.h
similarity index 100%
rename from hw/spapr_vio.h
rename to hw/ppc/spapr_vio.h
diff --git a/hw/spapr_vscsi.c b/hw/ppc/spapr_vscsi.c
similarity index 99%
rename from hw/spapr_vscsi.c
rename to hw/ppc/spapr_vscsi.c
index 7fc0e13..68cd072 100644
--- a/hw/spapr_vscsi.c
+++ b/hw/ppc/spapr_vscsi.c
@@ -31,14 +31,14 @@ 
  *  - Add indirect descriptors support
  *  - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)
  */
-#include "hw.h"
-#include "scsi.h"
-#include "scsi-defs.h"
+#include "hw/hw.h"
+#include "hw/scsi.h"
+#include "hw/scsi-defs.h"
 #include "srp.h"
 #include "hw/qdev.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
-#include "hw/ppc-viosrp.h"
+#include "spapr.h"
+#include "spapr_vio.h"
+#include "ppc-viosrp.h"
 
 #include <libfdt.h>
 
diff --git a/hw/spapr_vty.c b/hw/ppc/spapr_vty.c
similarity index 98%
rename from hw/spapr_vty.c
rename to hw/ppc/spapr_vty.c
index 5c63eaa..9dffa5e 100644
--- a/hw/spapr_vty.c
+++ b/hw/ppc/spapr_vty.c
@@ -1,7 +1,7 @@ 
-#include "qdev.h"
+#include "hw/qdev.h"
 #include "char/char.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "spapr.h"
+#include "spapr_vio.h"
 
 #define VTERM_BUFSIZE   16
 
diff --git a/hw/srp.h b/hw/ppc/srp.h
similarity index 100%
rename from hw/srp.h
rename to hw/ppc/srp.h
diff --git a/hw/unin_pci.c b/hw/ppc/unin_pci.c
similarity index 99%
rename from hw/unin_pci.c
rename to hw/ppc/unin_pci.c
index f1c3c20..f5a0597 100644
--- a/hw/unin_pci.c
+++ b/hw/ppc/unin_pci.c
@@ -21,10 +21,10 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "hw.h"
-#include "ppc/mac.h"
-#include "pci/pci.h"
-#include "pci/pci_host.h"
+#include "hw/hw.h"
+#include "mac.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
 
 /* debug UniNorth */
 //#define DEBUG_UNIN
diff --git a/hw/virtex_ml507.c b/hw/ppc/virtex_ml507.c
similarity index 97%
rename from hw/virtex_ml507.c
rename to hw/ppc/virtex_ml507.c
index 8c4e8e4..6551eb1 100644
--- a/hw/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -22,15 +22,15 @@ 
  * THE SOFTWARE.
  */
 
-#include "sysbus.h"
-#include "hw.h"
-#include "serial.h"
-#include "flash.h"
+#include "hw/sysbus.h"
+#include "hw/hw.h"
+#include "hw/serial.h"
+#include "hw/flash.h"
 #include "sysemu/sysemu.h"
-#include "devices.h"
-#include "boards.h"
+#include "hw/devices.h"
+#include "hw/boards.h"
 #include "sysemu/device_tree.h"
-#include "loader.h"
+#include "hw/loader.h"
 #include "elf.h"
 #include "qemu/log.h"
 #include "exec/address-spaces.h"
@@ -40,7 +40,7 @@ 
 #include "ppc405.h"
 
 #include "sysemu/blockdev.h"
-#include "xilinx.h"
+#include "hw/xilinx.h"
 
 #define EPAPR_MAGIC    (0x45504150)
 #define FLASH_SIZE     (16 * 1024 * 1024)
diff --git a/hw/xics.c b/hw/ppc/xics.c
similarity index 99%
rename from hw/xics.c
rename to hw/ppc/xics.c
index 9ef0d61..b6aec77 100644
--- a/hw/xics.c
+++ b/hw/ppc/xics.c
@@ -25,10 +25,10 @@ 
  *
  */
 
-#include "hw.h"
+#include "hw/hw.h"
 #include "trace.h"
-#include "hw/spapr.h"
-#include "hw/xics.h"
+#include "spapr.h"
+#include "xics.h"
 
 /*
  * ICP: Presentation layer
diff --git a/hw/xics.h b/hw/ppc/xics.h
similarity index 100%
rename from hw/xics.h
rename to hw/ppc/xics.h
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 2f4f068..4506af1 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -31,11 +31,11 @@ 
 #include "sysemu/cpus.h"
 #include "sysemu/device_tree.h"
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
+#include "hw/ppc/spapr.h"
 
 #include "hw/sysbus.h"
-#include "hw/spapr.h"
-#include "hw/spapr_vio.h"
+#include "hw/ppc/spapr.h"
+#include "hw/ppc/spapr_vio.h"
 
 //#define DEBUG_KVM