qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21
@ 2012-01-21  4:18 Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 01/26] PPC: 440EP: Initialize timer Alexander Graf
                   ` (26 more replies)
  0 siblings, 27 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Hi Anthony / Aurelien / Blue,

This is my current patch queue for ppc. Please pull.

Alex


The following changes since commit 515689235c4c3d9c3f0406ddcdd21ed8da77062b:
  Anthony Liguori (1):
        Merge remote-tracking branch 'spice/spice.v47' into staging

are available in the git repository at:

  git://repo.or.cz/qemu/agraf.git for-upstream

Alexander Graf (14):
      PPC: 440EP: Initialize timer
      PPC: Bamboo: Register CPU reset
      PPC: Bamboo: Set initial TLB entry
      PPC: 440: Ignore invalid PCI IRQs
      PPC: Bamboo: recompile device tree
      PPC: 440: Default to 440EP CPU
      PPC: Enable 440EP CPU target
      PPC: bamboo: remove old machine descriptions
      PPC: bamboo: fix whitespace
      PPC: 4xx: Qdevify the 440 PCI host controller
      PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file
      PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI
      virtio: change memcpy to guest reads
      PPC: Pseries: Check for PCI boundaries

Andreas Färber (4):
      MAINTAINERS: Add qemu-ppc to all ppc target stuff
      MAINTAINERS: Add PCI host bridge files to CHRP machines
      MAINTAINERS: Add PCI-PCI bridge to New World Mac machine
      grackle_pci: Clean up qdev names

Benjamin Herrenschmidt (5):
      virtio-pci: Fix endianness of virtio config
      load_image_targphys() should enforce the max size
      Fix dirty logging with 32-bit qemu & 64-bit guests
      pseries: Support PCI extended config space in RTAS calls
      pseries: SLOF PCI flag day

David Gibson (3):
      Update gitignore file
      Correct types in bmdma_addr_{read,write}
      pseries: Use correct dispatcher for PCI config space accesses

 .gitignore                  |    4 +
 MAINTAINERS                 |    8 ++
 Makefile.target             |    2 +-
 exec.c                      |   14 ++++
 hw/grackle_pci.c            |   17 +++-
 hw/ide/pci.c                |    4 +-
 hw/loader.c                 |    6 +-
 hw/ppc440.c                 |  106 --------------------------
 hw/ppc440.h                 |   21 -----
 hw/ppc440_bamboo.c          |  154 ++++++++++++++++++++++++++++++---------
 hw/ppc4xx_pci.c             |  129 +++++++++++++++++---------------
 hw/spapr.c                  |  135 ++++++++++++++++++++++-----------
 hw/spapr_pci.c              |  173 +++++++++++--------------------------------
 hw/virtex_ml507.c           |    1 -
 hw/virtio-pci.c             |   28 +++++++-
 hw/virtio.c                 |   12 ++--
 kvm-all.c                   |    3 +-
 pc-bios/README              |    2 +-
 pc-bios/bamboo.dtb          |  Bin 3179 -> 3211 bytes
 pc-bios/bamboo.dts          |  128 ++++++++++++--------------------
 pc-bios/slof.bin            |  Bin 738744 -> 869584 bytes
 roms/SLOF                   |    2 +-
 target-ppc/translate_init.c |   16 +---
 23 files changed, 458 insertions(+), 507 deletions(-)
 delete mode 100644 hw/ppc440.c
 delete mode 100644 hw/ppc440.h

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 01/26] PPC: 440EP: Initialize timer
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 02/26] PPC: Bamboo: Register CPU reset Alexander Graf
                   ` (25 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

When using TCG with a BookE PowerPC core, we need to explicitly initialize
the BookE timers with the correct frequencies.

This was missing for 440EP, since that code came from KVM and was never used
with TCG.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/hw/ppc440.c b/hw/ppc440.c
index cd8a95d..f7779bf 100644
--- a/hw/ppc440.c
+++ b/hw/ppc440.c
@@ -56,6 +56,7 @@ CPUState *ppc440ep_init(MemoryRegion *address_space_mem, ram_addr_t *ram_size,
         exit(1);
     }
 
+    ppc_booke_timers_init(env, 400000000, 0);
     ppc_dcr_init(env, NULL, NULL);
 
     /* interrupt controller */
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 02/26] PPC: Bamboo: Register CPU reset
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 01/26] PPC: 440EP: Initialize timer Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 03/26] PPC: Bamboo: Set initial TLB entry Alexander Graf
                   ` (24 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

To be able to support CPU reset, we need to put all register initialization
and initial state into a CPU reset hook instead of a function that is only
called once on bootup.

This is a preparation step for the initial TLB setting code and brings bamboo
more in line with what e500 and virtex already do.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index b734e3a..f82d587 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -32,6 +32,8 @@
 #define FDT_ADDR     0x1800000
 #define RAMDISK_ADDR 0x1900000
 
+static target_phys_addr_t entry;
+
 static int bamboo_load_device_tree(target_phys_addr_t addr,
                                      uint32_t ramsize,
                                      target_phys_addr_t initrd_base,
@@ -101,6 +103,16 @@ out:
     return ret;
 }
 
+static void main_cpu_reset(void *opaque)
+{
+    CPUState *env = opaque;
+
+    cpu_reset(env);
+    env->gpr[1] = (16<<20) - 8;
+    env->gpr[3] = FDT_ADDR;
+    env->nip = entry;
+}
+
 static void bamboo_init(ram_addr_t ram_size,
                         const char *boot_device,
                         const char *kernel_filename,
@@ -114,7 +126,6 @@ static void bamboo_init(ram_addr_t ram_size,
     CPUState *env;
     uint64_t elf_entry;
     uint64_t elf_lowaddr;
-    target_phys_addr_t entry = 0;
     target_phys_addr_t loadaddr = 0;
     target_long initrd_size = 0;
     int success;
@@ -123,6 +134,7 @@ static void bamboo_init(ram_addr_t ram_size,
     /* Setup CPU. */
     env = ppc440ep_init(address_space_mem, &ram_size, &pcibus,
                         pci_irq_nrs, 1, cpu_model);
+    qemu_register_reset(main_cpu_reset, env);
 
     if (pcibus) {
         /* Register network interfaces. */
@@ -169,11 +181,6 @@ static void bamboo_init(ram_addr_t ram_size,
             fprintf(stderr, "couldn't load device tree\n");
             exit(1);
         }
-
-        /* Set initial guest state. */
-        env->gpr[1] = (16<<20) - 8;
-        env->gpr[3] = FDT_ADDR;
-        env->nip = entry;
         /* XXX we currently depend on KVM to create some initial TLB entries. */
     }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 03/26] PPC: Bamboo: Set initial TLB entry
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 01/26] PPC: 440EP: Initialize timer Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 02/26] PPC: Bamboo: Register CPU reset Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 04/26] PPC: 440: Ignore invalid PCI IRQs Alexander Graf
                   ` (23 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Back in the day when the bamboo target got introduced, the initial TLB was
dictated by KVM. TCG has been missing initial TLB values ever since, rendering
the target unusable for TCG usage.

This patch adds linear TLB maps the way Linux expects them, making the target
work.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index f82d587..c17f6f7 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -103,6 +103,29 @@ out:
     return ret;
 }
 
+/* Create reset TLB entries for BookE, spanning the 32bit addr space.  */
+static void mmubooke_create_initial_mapping(CPUState *env,
+                                     target_ulong va,
+                                     target_phys_addr_t pa)
+{
+    ppcemb_tlb_t *tlb = &env->tlb.tlbe[0];
+
+    tlb->attr = 0;
+    tlb->prot = PAGE_VALID | ((PAGE_READ | PAGE_WRITE | PAGE_EXEC) << 4);
+    tlb->size = 1 << 31; /* up to 0x80000000  */
+    tlb->EPN = va & TARGET_PAGE_MASK;
+    tlb->RPN = pa & TARGET_PAGE_MASK;
+    tlb->PID = 0;
+
+    tlb = &env->tlb.tlbe[1];
+    tlb->attr = 0;
+    tlb->prot = PAGE_VALID | ((PAGE_READ | PAGE_WRITE | PAGE_EXEC) << 4);
+    tlb->size = 1 << 31; /* up to 0xffffffff  */
+    tlb->EPN = 0x80000000 & TARGET_PAGE_MASK;
+    tlb->RPN = 0x80000000 & TARGET_PAGE_MASK;
+    tlb->PID = 0;
+}
+
 static void main_cpu_reset(void *opaque)
 {
     CPUState *env = opaque;
@@ -111,6 +134,9 @@ static void main_cpu_reset(void *opaque)
     env->gpr[1] = (16<<20) - 8;
     env->gpr[3] = FDT_ADDR;
     env->nip = entry;
+
+    /* Create a mapping for the kernel.  */
+    mmubooke_create_initial_mapping(env, 0, 0);
 }
 
 static void bamboo_init(ram_addr_t ram_size,
@@ -181,7 +207,6 @@ static void bamboo_init(ram_addr_t ram_size,
             fprintf(stderr, "couldn't load device tree\n");
             exit(1);
         }
-        /* XXX we currently depend on KVM to create some initial TLB entries. */
     }
 
     if (kvm_enabled())
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 04/26] PPC: 440: Ignore invalid PCI IRQs
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (2 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 03/26] PPC: Bamboo: Set initial TLB entry Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 05/26] PPC: Bamboo: recompile device tree Alexander Graf
                   ` (22 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

When running a 440 target, we currently get invalid irq_num values (-1)
which completely confuse the IRQ setting code.

This is most likely due to the missing qdev conversion.

While this shouldn't happen in the first place and should really rather
be fixed by converting the target, I dislike segfaults. So for now, let's
just print a warning and ignore invalid irq_num values.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc4xx_pci.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index 2c69210..1bf785b 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -275,6 +275,10 @@ static void ppc4xx_pci_set_irq(void *opaque, int irq_num, int level)
     qemu_irq *pci_irqs = opaque;
 
     DPRINTF("%s: PCI irq %d\n", __func__, irq_num);
+    if (irq_num < 0) {
+        fprintf(stderr, "%s: PCI irq %d\n", __func__, irq_num);
+        return;
+    }
     qemu_set_irq(pci_irqs[irq_num], level);
 }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 05/26] PPC: Bamboo: recompile device tree
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (3 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 04/26] PPC: 440: Ignore invalid PCI IRQs Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 06/26] PPC: 440: Default to 440EP CPU Alexander Graf
                   ` (21 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Recent dtc doesn't compile our dts anymore. Change all hex numbers to have
0x prefixes, indicate the old version and recompile using recent dtc.

This doesn't change any semantics in the device tree.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 pc-bios/bamboo.dtb |  Bin 3179 -> 3211 bytes
 pc-bios/bamboo.dts |  128 +++++++++++++++++++---------------------------------
 2 files changed, 47 insertions(+), 81 deletions(-)

diff --git a/pc-bios/bamboo.dtb b/pc-bios/bamboo.dtb
index c78e2544c0d7b22b49cb7d042100e8cbb0d30af8..d12e201aa0d855e5e2423b17976fb797177c00e5 100644
GIT binary patch
delta 92
zcmaDY(JiTQf%o5A1_qvP1_lNT1_rJdKw1Nc1%X%qh=G7{F;INN<cplb8?DbUaxw#j
eSb+HcB&Od8&gL&n!mNyZlO5RPH>-2FumAvhtP+?2

delta 73
zcmeB{d@Z4If%o5A1_qvN1_lNT1_rJZKw1Nc1%X)L-`jof85kHB1H~sy{>Ul3(fSPI
ZWO1f1o28j~SQ$koC$PzHcIR+m0RY<J6N&%;

diff --git a/pc-bios/bamboo.dts b/pc-bios/bamboo.dts
index 655442c..62fabcc 100644
--- a/pc-bios/bamboo.dts
+++ b/pc-bios/bamboo.dts
@@ -9,12 +9,14 @@
  * any warranty of any kind, whether express or implied.
  */
 
+/dts-v1/;
+
 / {
 	#address-cells = <2>;
 	#size-cells = <1>;
 	model = "amcc,bamboo";
 	compatible = "amcc,bamboo";
-	dcr-parent = <&/cpus/cpu@0>;
+	dcr-parent = <&{/cpus/cpu@0}>;
 
 	aliases {
 		serial0 = &UART0;
@@ -29,12 +31,12 @@
 			device_type = "cpu";
 			model = "PowerPC,440EP";
 			reg = <0>;
-			clock-frequency = <1fca0550>;
-			timebase-frequency = <017d7840>;
-			i-cache-line-size = <20>;
-			d-cache-line-size = <20>;
-			i-cache-size = <8000>;
-			d-cache-size = <8000>;
+			clock-frequency = <0x1fca0550>;
+			timebase-frequency = <0x017d7840>;
+			i-cache-line-size = <0x20>;
+			d-cache-line-size = <0x20>;
+			i-cache-size = <0x8000>;
+			d-cache-size = <0x8000>;
 			dcr-controller;
 			dcr-access-method = "native";
 		};
@@ -42,40 +44,27 @@
 
 	memory {
 		device_type = "memory";
-		reg = <0 0 9000000>;
+		reg = <0x0 0x0 0x9000000>;
 	};
 
 	UIC0: interrupt-controller0 {
 		compatible = "ibm,uic-440ep","ibm,uic";
 		interrupt-controller;
-		cell-index = <0>;
-		dcr-reg = <0c0 009>;
-		#address-cells = <0>;
-		#size-cells = <0>;
-		#interrupt-cells = <2>;
-	};
-/*
-	UIC1: interrupt-controller1 {
-		compatible = "ibm,uic-440ep","ibm,uic";
-		interrupt-controller;
-		cell-index = <1>;
-		dcr-reg = <0d0 009>;
-		#address-cells = <0>;
-		#size-cells = <0>;
-		#interrupt-cells = <2>;
-		interrupts = <1e 4 1f 4>;
-		interrupt-parent = <&UIC0>;
+		cell-index = <0x0>;
+		dcr-reg = <0x0c0 0x009>;
+		#address-cells = <0x0>;
+		#size-cells = <0x0>;
+		#interrupt-cells = <0x2>;
 	};
-*/
 
 	SDR0: sdr {
 		compatible = "ibm,sdr-440ep";
-		dcr-reg = <00e 002>;
+		dcr-reg = <0x00e 0x002>;
 	};
 
 	CPR0: cpr {
 		compatible = "ibm,cpr-440ep";
-		dcr-reg = <00c 002>;
+		dcr-reg = <0x00c 0x002>;
 	};
 
 	plb {
@@ -83,16 +72,16 @@
 		#address-cells = <2>;
 		#size-cells = <1>;
 		ranges;
-		clock-frequency = <07f28154>;
+		clock-frequency = <0x07f28154>;
 
 		SDRAM0: sdram {
 			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
-			dcr-reg = <010 2>;
+			dcr-reg = <0x010 0x2>;
 		};
 
 		DMA0: dma {
 			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
-			dcr-reg = <100 027>;
+			dcr-reg = <0x100 0x027>;
 		};
 
 		POB0: opb {
@@ -102,18 +91,18 @@
 			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
 			 * bits.
 			 */
-			ranges = <00000000 0 00000000 80000000
-			          80000000 0 80000000 80000000>;
+			ranges = <0x00000000 0x0 0x00000000 0x80000000
+			          0x80000000 0x0 0x80000000 0x80000000>;
 			/* interrupt-parent = <&UIC1>; */
 			interrupts = <7 4>;
-			clock-frequency = <03f940aa>;
+			clock-frequency = <0x03f940aa>;
 
 			EBC0: ebc {
 				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
-				dcr-reg = <012 2>;
+				dcr-reg = <0x012 2>;
 				#address-cells = <2>;
 				#size-cells = <1>;
-				clock-frequency = <03f940aa>;
+				clock-frequency = <0x03f940aa>;
 				interrupts = <5 1>;
 			/* interrupt-parent = <&UIC1>; */
 			};
@@ -121,10 +110,10 @@
 			UART0: serial@ef600300 {
 				device_type = "serial";
 				compatible = "ns16550";
-				reg = <ef600300 8>;
-				virtual-reg = <ef600300>;
-				clock-frequency = <00a8c000>;
-				current-speed = <1c200>;
+				reg = <0xef600300 8>;
+				virtual-reg = <0xef600300>;
+				clock-frequency = <0x00a8c000>;
+				current-speed = <0x1c200>;
 				interrupt-parent = <&UIC0>;
 				interrupts = <0 4>;
 			};
@@ -132,41 +121,18 @@
 			UART1: serial@ef600400 {
 				device_type = "serial";
 				compatible = "ns16550";
-				reg = <ef600400 8>;
-				virtual-reg = <ef600400>;
-				clock-frequency = <00a8c000>;
+				reg = <0xef600400 8>;
+				virtual-reg = <0xef600400>;
+				clock-frequency = <0x00a8c000>;
 				current-speed = <0>;
 				interrupt-parent = <&UIC0>;
 				interrupts = <1 4>;
 			};
-/*
-			UART2: serial@ef600500 {
-				device_type = "serial";
-				compatible = "ns16550";
-				reg = <ef600500 8>;
-				virtual-reg = <ef600500>;
-				clock-frequency = <0>;
-				current-speed = <0>;
-				interrupt-parent = <&UIC0>;
-				interrupts = <3 4>;
-			};
-
-			UART3: serial@ef600600 {
-				device_type = "serial";
-				compatible = "ns16550";
-				reg = <ef600600 8>;
-				virtual-reg = <ef600600>;
-				clock-frequency = <0>;
-				current-speed = <0>;
-				interrupt-parent = <&UIC0>;
-				interrupts = <4 4>;
-			};
 
-*/
 			IIC0: i2c@ef600700 {
 				device_type = "i2c";
 				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
-				reg = <ef600700 14>;
+				reg = <0xef600700 0x14>;
 				interrupt-parent = <&UIC0>;
 				interrupts = <2 4>;
 			};
@@ -174,7 +140,7 @@
 			IIC1: i2c@ef600800 {
 				device_type = "i2c";
 				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
-				reg = <ef600800 14>;
+				reg = <0xef600800 14>;
 				interrupt-parent = <&UIC0>;
 				interrupts = <7 4>;
 			};
@@ -182,7 +148,7 @@
 			ZMII0: emac-zmii@ef600d00 {
 				device_type = "zmii-interface";
 				compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
-				reg = <ef600d00 c>;
+				reg = <0xef600d00 0xc>;
 			};
 
 		};
@@ -194,35 +160,35 @@
 			#address-cells = <3>;
 			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
 			primary;
-			reg = <0 eec00000 8     /* Config space access */
-			       0 eed00000 4     /* IACK */
-			       0 eed00000 4     /* Special cycle */
-			       0 ef400000 40>;  /* Internal registers */
+			reg = <0 0xeec00000 8     /* Config space access */
+			       0 0xeed00000 4     /* IACK */
+			       0 0xeed00000 4     /* Special cycle */
+			       0 0xef400000 0x40>;  /* Internal registers */
 
 			/* Outbound ranges, one memory and one IO,
 			 * later cannot be changed. Chip supports a second
 			 * IO range but we don't use it for now
 			 */
-			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
-				  01000000 0 00000000 0 e8000000 0 00010000>;
+			ranges = <0x02000000 0 0xa0000000 0 0xa0000000 0 0x20000000
+				  0x01000000 0 0x00000000 0 0xe8000000 0 0x00010000>;
 
 			/* Inbound 2GB range starting at 0 */
-			dma-ranges = <42000000 0 0 0 0 0 80000000>;
+			dma-ranges = <0x42000000 0 0 0 0 0 0x80000000>;
 
 			/* Bamboo has all 4 IRQ pins tied together per slot */
-			interrupt-map-mask = <f800 0 0 0>;
+			interrupt-map-mask = <0xf800 0 0 0>;
 			interrupt-map = <
 				/* IDSEL 1 */
-				0800 0 0 0 &UIC0 1c 8
+				0x0800 0 0 0 &UIC0 0x1c 8
 
 				/* IDSEL 2 */
-				1000 0 0 0 &UIC0 1b 8
+				0x1000 0 0 0 &UIC0 0x1b 8
 
 				/* IDSEL 3 */
-				1800 0 0 0 &UIC0 1a 8
+				0x1800 0 0 0 &UIC0 0x1a 8
 
 				/* IDSEL 4 */
-				2000 0 0 0 &UIC0 19 8
+				0x2000 0 0 0 &UIC0 0x19 8
 			>;
 		};
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 06/26] PPC: 440: Default to 440EP CPU
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (4 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 05/26] PPC: Bamboo: recompile device tree Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 07/26] PPC: Enable 440EP CPU target Alexander Graf
                   ` (20 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Today we're exposing a Virtex 440 CPU to the guest despite the fact
that we're telling the guest that we're running on a 440EP one in the
device tree.

So let's better default to a real 440EP to make things synced again.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hw/ppc440.c b/hw/ppc440.c
index f7779bf..8920abb 100644
--- a/hw/ppc440.c
+++ b/hw/ppc440.c
@@ -48,7 +48,7 @@ CPUState *ppc440ep_init(MemoryRegion *address_space_mem, ram_addr_t *ram_size,
     qemu_irq *pci_irqs;
 
     if (cpu_model == NULL) {
-        cpu_model = "440-Xilinx"; // XXX: should be 440EP
+        cpu_model = "440EP";
     }
     env = cpu_init(cpu_model);
     if (!env) {
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 07/26] PPC: Enable 440EP CPU target
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (5 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 06/26] PPC: 440: Default to 440EP CPU Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 08/26] PPC: bamboo: remove old machine descriptions Alexander Graf
                   ` (19 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Now that we have 440 TLB emulation, we can also support running the 440EP
CPU target in system emulation mode.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/translate_init.c |   16 +++++-----------
 1 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 47d73a6..4d692d0 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -3516,6 +3516,9 @@ static void init_proc_405 (CPUPPCState *env)
 
 /* PowerPC 440 EP                                                            */
 #define POWERPC_INSNS_440EP  (PPC_INSNS_BASE | PPC_STRING |                   \
+                              PPC_FLOAT | PPC_FLOAT_FRES | PPC_FLOAT_FSEL |   \
+                              PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE |           \
+                              PPC_FLOAT_STFIWX |                              \
                               PPC_DCR | PPC_WRTEE | PPC_RFMCI |               \
                               PPC_CACHE | PPC_CACHE_ICBI |                    \
                               PPC_CACHE_DCBZ | PPC_CACHE_DCBA |               \
@@ -3523,7 +3526,7 @@ static void init_proc_405 (CPUPPCState *env)
                               PPC_BOOKE | PPC_4xx_COMMON | PPC_405_MAC |      \
                               PPC_440_SPEC)
 #define POWERPC_INSNS2_440EP (PPC_NONE)
-#define POWERPC_MSRM_440EP   (0x000000000006D630ULL)
+#define POWERPC_MSRM_440EP   (0x000000000006FF30ULL)
 #define POWERPC_MMU_440EP    (POWERPC_MMU_BOOKE)
 #define POWERPC_EXCP_440EP   (POWERPC_EXCP_BOOKE)
 #define POWERPC_INPUT_440EP  (PPC_FLAGS_INPUT_BookE)
@@ -3532,7 +3535,6 @@ static void init_proc_405 (CPUPPCState *env)
                               POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK)
 #define check_pow_440EP      check_pow_nocheck
 
-__attribute__ (( unused ))
 static void init_proc_440EP (CPUPPCState *env)
 {
     /* Time base */
@@ -3593,7 +3595,7 @@ static void init_proc_440EP (CPUPPCState *env)
     init_excp_BookE(env);
     env->dcache_line_size = 32;
     env->icache_line_size = 32;
-    /* XXX: TODO: allocate internal IRQ controller */
+    ppc40x_irq_init(env);
 
     SET_FIT_PERIOD(12, 16, 20, 24);
     SET_WDT_PERIOD(20, 24, 28, 32);
@@ -7869,22 +7871,14 @@ static const ppc_def_t ppc_defs[] = {
     POWERPC_DEF("440H6",         CPU_POWERPC_440H6,                  440Gx5),
 #endif
     /* PowerPC 440 microcontrolers                                           */
-#if defined(TODO_USER_ONLY)
     /* PowerPC 440 EP                                                        */
     POWERPC_DEF("440EP",         CPU_POWERPC_440EP,                  440EP),
-#endif
-#if defined(TODO_USER_ONLY)
     /* PowerPC 440 EPa                                                       */
     POWERPC_DEF("440EPa",        CPU_POWERPC_440EPa,                 440EP),
-#endif
-#if defined(TODO_USER_ONLY)
     /* PowerPC 440 EPb                                                       */
     POWERPC_DEF("440EPb",        CPU_POWERPC_440EPb,                 440EP),
-#endif
-#if defined(TODO_USER_ONLY)
     /* PowerPC 440 EPX                                                       */
     POWERPC_DEF("440EPX",        CPU_POWERPC_440EPX,                 440EP),
-#endif
 #if defined(TODO_USER_ONLY)
     /* PowerPC 440 GP                                                        */
     POWERPC_DEF("440GP",         CPU_POWERPC_440GP,                  440GP),
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 08/26] PPC: bamboo: remove old machine descriptions
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (6 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 07/26] PPC: Enable 440EP CPU target Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 09/26] PPC: bamboo: fix whitespace Alexander Graf
                   ` (18 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Nobody needs to run bamboo in 0.12 compat mode. Remove the machine.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |   22 +---------------------
 1 files changed, 1 insertions(+), 21 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index c17f6f7..84e45b4 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -214,34 +214,14 @@ static void bamboo_init(ram_addr_t ram_size,
 }
 
 static QEMUMachine bamboo_machine = {
-    .name = "bamboo-0.13",
-    .alias = "bamboo",
+    .name = "bamboo",
     .desc = "bamboo",
     .init = bamboo_init,
 };
 
-static QEMUMachine bamboo_machine_v0_12 = {
-    .name = "bamboo-0.12",
-    .desc = "bamboo",
-    .init = bamboo_init,
-    .compat_props = (GlobalProperty[]) {
-        {
-            .driver   = "virtio-serial-pci",
-            .property = "max_ports",
-            .value    = stringify(1),
-        },{
-            .driver   = "virtio-serial-pci",
-            .property = "vectors",
-            .value    = stringify(0),
-        },
-        { /* end of list */ }
-    },
-};
-
 static void bamboo_machine_init(void)
 {
     qemu_register_machine(&bamboo_machine);
-    qemu_register_machine(&bamboo_machine_v0_12);
 }
 
 machine_init(bamboo_machine_init);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 09/26] PPC: bamboo: fix whitespace
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (7 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 08/26] PPC: bamboo: remove old machine descriptions Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 10/26] PPC: 4xx: Qdevify the 440 PCI host controller Alexander Graf
                   ` (17 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Tabs followed by spaces are a no-go. My editor shows it red, distracting
me from actual work! :)

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 84e45b4..2369fba 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -3,9 +3,9 @@
  *
  * Copyright 2007 IBM Corporation.
  * Authors:
- * 	Jerone Young <jyoung5@us.ibm.com>
- * 	Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
- * 	Hollis Blanchard <hollisb@us.ibm.com>
+ *	Jerone Young <jyoung5@us.ibm.com>
+ *	Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
+ *	Hollis Blanchard <hollisb@us.ibm.com>
  *
  * This work is licensed under the GNU GPL license version 2 or later.
  *
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 10/26] PPC: 4xx: Qdevify the 440 PCI host controller
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (8 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 09/26] PPC: bamboo: fix whitespace Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 11/26] PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file Alexander Graf
                   ` (16 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Due to popular demand, this qdevifies the PCI host controller of 4xx SoCs
the same way as e500.

We have to introduce a small stub function for pci init that will be
removed in a later patch, once we qdev'ified the board, to keep the build
working.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |    9 ++++
 hw/ppc4xx_pci.c    |  125 +++++++++++++++++++++++++++-------------------------
 2 files changed, 74 insertions(+), 60 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 2369fba..124e7d7 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -34,6 +34,15 @@
 
 static target_phys_addr_t entry;
 
+static PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
+                               target_phys_addr_t config_space,
+                               target_phys_addr_t int_ack,
+                               target_phys_addr_t special_cycle,
+                               target_phys_addr_t registers)
+{
+    return NULL;
+}
+
 static int bamboo_load_device_tree(target_phys_addr_t addr,
                                      uint32_t ramsize,
                                      target_phys_addr_t initrd_base,
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index 1bf785b..26de007 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -49,13 +49,14 @@ struct PCITargetMap {
 #define PPC4xx_PCI_NR_PTMS 2
 
 struct PPC4xxPCIState {
+    PCIHostState pci_state;
+
     struct PCIMasterMap pmm[PPC4xx_PCI_NR_PMMS];
     struct PCITargetMap ptm[PPC4xx_PCI_NR_PTMS];
+    qemu_irq irq[4];
 
-    PCIHostState pci_state;
-    PCIDevice *pci_dev;
-    MemoryRegion iomem_addr;
-    MemoryRegion iomem_regs;
+    MemoryRegion container;
+    MemoryRegion iomem;
 };
 typedef struct PPC4xxPCIState PPC4xxPCIState;
 
@@ -83,8 +84,10 @@ typedef struct PPC4xxPCIState PPC4xxPCIState;
 #define PCIL0_PTM1LA        0x34
 #define PCIL0_PTM2MS        0x38
 #define PCIL0_PTM2LA        0x3c
+#define PCI_REG_BASE        0x800000
 #define PCI_REG_SIZE        0x40
 
+#define PCI_ALL_SIZE        (PCI_REG_BASE + PCI_REG_SIZE)
 
 static uint64_t pci4xx_cfgaddr_read(void *opaque, target_phys_addr_t addr,
                                     unsigned size)
@@ -314,7 +317,6 @@ static const VMStateDescription vmstate_ppc4xx_pci = {
     .minimum_version_id = 1,
     .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
-        VMSTATE_PCI_DEVICE_POINTER(pci_dev, PPC4xxPCIState),
         VMSTATE_STRUCT_ARRAY(pmm, PPC4xxPCIState, PPC4xx_PCI_NR_PMMS, 1,
                              vmstate_pci_master_map,
                              struct PCIMasterMap),
@@ -326,60 +328,63 @@ static const VMStateDescription vmstate_ppc4xx_pci = {
 };
 
 /* XXX Interrupt acknowledge cycles not supported. */
-PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
-                        target_phys_addr_t config_space,
-                        target_phys_addr_t int_ack,
-                        target_phys_addr_t special_cycle,
-                        target_phys_addr_t registers)
+static int ppc4xx_pcihost_initfn(SysBusDevice *dev)
+{
+    PPC4xxPCIState *s;
+    PCIHostState *h;
+    PCIBus *b;
+    int i;
+
+    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
+    s = DO_UPCAST(PPC4xxPCIState, pci_state, h);
+
+    for (i = 0; i < ARRAY_SIZE(s->irq); i++) {
+        sysbus_init_irq(dev, &s->irq[i]);
+    }
+
+    b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, ppc4xx_pci_set_irq,
+                         ppc4xx_pci_map_irq, s->irq, get_system_memory(),
+                         get_system_io(), 0, 4);
+    s->pci_state.bus = b;
+
+    pci_create_simple(b, 0, "ppc4xx-host-bridge");
+
+    /* XXX split into 2 memory regions, one for config space, one for regs */
+    memory_region_init(&s->container, "pci-container", PCI_ALL_SIZE);
+    memory_region_init_io(&h->conf_mem, &pci_host_conf_le_ops, h,
+                          "pci-conf-idx", 4);
+    memory_region_init_io(&h->data_mem, &pci_host_data_le_ops, h,
+                          "pci-conf-data", 4);
+    memory_region_init_io(&s->iomem, &pci_reg_ops, s,
+                          "pci.reg", PCI_REG_SIZE);
+    memory_region_add_subregion(&s->container, PCIC0_CFGADDR, &h->conf_mem);
+    memory_region_add_subregion(&s->container, PCIC0_CFGDATA, &h->data_mem);
+    memory_region_add_subregion(&s->container, PCI_REG_BASE, &s->iomem);
+    sysbus_init_mmio(dev, &s->container);
+    qemu_register_reset(ppc4xx_pci_reset, s);
+
+    return 0;
+}
+
+static PCIDeviceInfo ppc4xx_host_bridge_info = {
+    .qdev.name    = "ppc4xx-host-bridge",
+    .qdev.desc    = "Host bridge",
+    .qdev.size    = sizeof(PCIDevice),
+    .vendor_id    = PCI_VENDOR_ID_IBM,
+    .device_id    = PCI_DEVICE_ID_IBM_440GX,
+    .class_id     = PCI_CLASS_BRIDGE_OTHER,
+};
+
+static SysBusDeviceInfo ppc4xx_pcihost_info = {
+    .init         = ppc4xx_pcihost_initfn,
+    .qdev.name    = "ppc4xx-pcihost",
+    .qdev.size    = sizeof(PPC4xxPCIState),
+    .qdev.vmsd    = &vmstate_ppc4xx_pci,
+};
+
+static void ppc4xx_pci_register(void)
 {
-    PPC4xxPCIState *controller;
-    static int ppc4xx_pci_id;
-    uint8_t *pci_conf;
-
-    controller = g_malloc0(sizeof(PPC4xxPCIState));
-
-    controller->pci_state.bus = pci_register_bus(NULL, "pci",
-                                                 ppc4xx_pci_set_irq,
-                                                 ppc4xx_pci_map_irq,
-                                                 pci_irqs,
-                                                 get_system_memory(),
-                                                 get_system_io(),
-                                                 0, 4);
-
-    controller->pci_dev = pci_register_device(controller->pci_state.bus,
-                                              "host bridge", sizeof(PCIDevice),
-                                              0, NULL, NULL);
-    pci_conf = controller->pci_dev->config;
-    pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_IBM);
-    pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_IBM_440GX);
-    pci_config_set_class(pci_conf, PCI_CLASS_BRIDGE_OTHER);
-
-    /* CFGADDR */
-    memory_region_init_io(&controller->iomem_addr, &pci4xx_cfgaddr_ops,
-                          controller, "pci.cfgaddr", 4);
-    memory_region_add_subregion(get_system_memory(),
-                                config_space + PCIC0_CFGADDR,
-                                &controller->iomem_addr);
-
-    /* CFGDATA */
-    memory_region_init_io(&controller->pci_state.data_mem,
-                          &pci_host_data_be_ops,
-                          &controller->pci_state, "pci-conf-data", 4);
-    memory_region_add_subregion(get_system_memory(),
-                                config_space + PCIC0_CFGDATA,
-                                &controller->pci_state.data_mem);
-
-    /* Internal registers */
-    memory_region_init_io(&controller->iomem_regs, &pci_reg_ops, controller,
-                          "pci.regs", PCI_REG_SIZE);
-    memory_region_add_subregion(get_system_memory(), registers,
-                                &controller->iomem_regs);
-
-    qemu_register_reset(ppc4xx_pci_reset, controller);
-
-    /* XXX load/save code not tested. */
-    vmstate_register(&controller->pci_dev->qdev, ppc4xx_pci_id++,
-                     &vmstate_ppc4xx_pci, controller);
-
-    return controller->pci_state.bus;
+    sysbus_register_withprop(&ppc4xx_pcihost_info);
+    pci_qdev_register(&ppc4xx_host_bridge_info);
 }
+device_init(ppc4xx_pci_register);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 11/26] PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (9 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 10/26] PPC: 4xx: Qdevify the 440 PCI host controller Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 12/26] PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI Alexander Graf
                   ` (15 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

The separation of ppc440 and ppc440_bamboo makes some sense, since ppc440
is the SoC while ppc440_bamboo is the actual board. But the separation
makes things harder for us for no good reason, so let's just fold them
in together with each other.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 Makefile.target    |    2 +-
 hw/ppc440.c        |  107 ----------------------------------------------------
 hw/ppc440.h        |   21 ----------
 hw/ppc440_bamboo.c |   90 +++++++++++++++++++++++++++++++++++++++++++-
 hw/virtex_ml507.c  |    1 -
 5 files changed, 90 insertions(+), 131 deletions(-)
 delete mode 100644 hw/ppc440.c
 delete mode 100644 hw/ppc440.h

diff --git a/Makefile.target b/Makefile.target
index 06d79b8..a67e1fe 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -250,7 +250,7 @@ obj-ppc-$(CONFIG_PSERIES) += xics.o spapr_vty.o spapr_llan.o spapr_vscsi.o
 obj-ppc-$(CONFIG_PSERIES) += spapr_pci.o device-hotplug.o pci-hotplug.o
 # PowerPC 4xx boards
 obj-ppc-y += ppc4xx_devs.o ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
-obj-ppc-y += ppc440.o ppc440_bamboo.o
+obj-ppc-y += ppc440_bamboo.o
 # PowerPC E500 boards
 obj-ppc-y += ppce500_mpc8544ds.o mpc8544_guts.o ppce500_spin.o
 # PowerPC 440 Xilinx ML507 reference board.
diff --git a/hw/ppc440.c b/hw/ppc440.c
deleted file mode 100644
index 8920abb..0000000
--- a/hw/ppc440.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Qemu PowerPC 440 chip emulation
- *
- * Copyright 2007 IBM Corporation.
- * Authors:
- * 	Jerone Young <jyoung5@us.ibm.com>
- * 	Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
- * 	Hollis Blanchard <hollisb@us.ibm.com>
- *
- * This work is licensed under the GNU GPL license version 2 or later.
- *
- */
-
-#include "hw.h"
-#include "pc.h"
-#include "isa.h"
-#include "ppc.h"
-#include "ppc4xx.h"
-#include "ppc440.h"
-#include "ppc405.h"
-#include "sysemu.h"
-#include "kvm.h"
-
-#define PPC440EP_PCI_CONFIG     0xeec00000
-#define PPC440EP_PCI_INTACK     0xeed00000
-#define PPC440EP_PCI_SPECIAL    0xeed00000
-#define PPC440EP_PCI_REGS       0xef400000
-#define PPC440EP_PCI_IO         0xe8000000
-#define PPC440EP_PCI_IOLEN      0x00010000
-
-#define PPC440EP_SDRAM_NR_BANKS 4
-
-static const unsigned int ppc440ep_sdram_bank_sizes[] = {
-    256<<20, 128<<20, 64<<20, 32<<20, 16<<20, 8<<20, 0
-};
-
-CPUState *ppc440ep_init(MemoryRegion *address_space_mem, ram_addr_t *ram_size,
-                        PCIBus **pcip, const unsigned int pci_irq_nrs[4],
-                        int do_init, const char *cpu_model)
-{
-    MemoryRegion *ram_memories
-        = g_malloc(PPC440EP_SDRAM_NR_BANKS * sizeof(*ram_memories));
-    target_phys_addr_t ram_bases[PPC440EP_SDRAM_NR_BANKS];
-    target_phys_addr_t ram_sizes[PPC440EP_SDRAM_NR_BANKS];
-    CPUState *env;
-    qemu_irq *pic;
-    qemu_irq *irqs;
-    qemu_irq *pci_irqs;
-
-    if (cpu_model == NULL) {
-        cpu_model = "440EP";
-    }
-    env = cpu_init(cpu_model);
-    if (!env) {
-        fprintf(stderr, "Unable to initialize CPU!\n");
-        exit(1);
-    }
-
-    ppc_booke_timers_init(env, 400000000, 0);
-    ppc_dcr_init(env, NULL, NULL);
-
-    /* interrupt controller */
-    irqs = g_malloc0(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
-    irqs[PPCUIC_OUTPUT_INT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
-    irqs[PPCUIC_OUTPUT_CINT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
-    pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
-
-    /* SDRAM controller */
-    memset(ram_bases, 0, sizeof(ram_bases));
-    memset(ram_sizes, 0, sizeof(ram_sizes));
-    *ram_size = ppc4xx_sdram_adjust(*ram_size, PPC440EP_SDRAM_NR_BANKS,
-                                    ram_memories,
-                                    ram_bases, ram_sizes,
-                                    ppc440ep_sdram_bank_sizes);
-    /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */
-    ppc4xx_sdram_init(env, pic[14], PPC440EP_SDRAM_NR_BANKS, ram_memories,
-                      ram_bases, ram_sizes, do_init);
-
-    /* PCI */
-    pci_irqs = g_malloc(sizeof(qemu_irq) * 4);
-    pci_irqs[0] = pic[pci_irq_nrs[0]];
-    pci_irqs[1] = pic[pci_irq_nrs[1]];
-    pci_irqs[2] = pic[pci_irq_nrs[2]];
-    pci_irqs[3] = pic[pci_irq_nrs[3]];
-    *pcip = ppc4xx_pci_init(env, pci_irqs,
-                            PPC440EP_PCI_CONFIG,
-                            PPC440EP_PCI_INTACK,
-                            PPC440EP_PCI_SPECIAL,
-                            PPC440EP_PCI_REGS);
-    if (!*pcip)
-        printf("couldn't create PCI controller!\n");
-
-    isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
-
-    if (serial_hds[0] != NULL) {
-        serial_mm_init(address_space_mem, 0xef600300, 0, pic[0],
-                       PPC_SERIAL_MM_BAUDBASE, serial_hds[0],
-                       DEVICE_BIG_ENDIAN);
-    }
-    if (serial_hds[1] != NULL) {
-        serial_mm_init(address_space_mem, 0xef600400, 0, pic[1],
-                       PPC_SERIAL_MM_BAUDBASE, serial_hds[1],
-                       DEVICE_BIG_ENDIAN);
-    }
-
-    return env;
-}
diff --git a/hw/ppc440.h b/hw/ppc440.h
deleted file mode 100644
index 9c27c36..0000000
--- a/hw/ppc440.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Qemu PowerPC 440 board emualtion
- *
- * Copyright 2007 IBM Corporation.
- * Authors: Jerone Young <jyoung5@us.ibm.com>
- * 	    Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
- *
- * This work is licensed under the GNU GPL licence version 2 or later
- *
- */
-
-#ifndef QEMU_PPC440_H
-#define QEMU_PPC440_H
-
-#include "hw.h"
-
-CPUState *ppc440ep_init(MemoryRegion *address_space, ram_addr_t *ram_size,
-                        PCIBus **pcip, const unsigned int pci_irq_nrs[4],
-                        int do_init, const char *cpu_model);
-
-#endif
diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 124e7d7..d00bdda 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -17,13 +17,16 @@
 #include "hw.h"
 #include "pci.h"
 #include "boards.h"
-#include "ppc440.h"
 #include "kvm.h"
 #include "kvm_ppc.h"
 #include "device_tree.h"
 #include "loader.h"
 #include "elf.h"
 #include "exec-memory.h"
+#include "pc.h"
+#include "ppc.h"
+#include "ppc405.h"
+#include "sysemu.h"
 
 #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
 
@@ -32,6 +35,19 @@
 #define FDT_ADDR     0x1800000
 #define RAMDISK_ADDR 0x1900000
 
+#define PPC440EP_PCI_CONFIG     0xeec00000
+#define PPC440EP_PCI_INTACK     0xeed00000
+#define PPC440EP_PCI_SPECIAL    0xeed00000
+#define PPC440EP_PCI_REGS       0xef400000
+#define PPC440EP_PCI_IO         0xe8000000
+#define PPC440EP_PCI_IOLEN      0x00010000
+
+#define PPC440EP_SDRAM_NR_BANKS 4
+
+static const unsigned int ppc440ep_sdram_bank_sizes[] = {
+    256<<20, 128<<20, 64<<20, 32<<20, 16<<20, 8<<20, 0
+};
+
 static target_phys_addr_t entry;
 
 static PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
@@ -43,6 +59,78 @@ static PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
     return NULL;
 }
 
+CPUState *ppc440ep_init(MemoryRegion *address_space_mem, ram_addr_t *ram_size,
+                        PCIBus **pcip, const unsigned int pci_irq_nrs[4],
+                        int do_init, const char *cpu_model)
+{
+    MemoryRegion *ram_memories
+        = g_malloc(PPC440EP_SDRAM_NR_BANKS * sizeof(*ram_memories));
+    target_phys_addr_t ram_bases[PPC440EP_SDRAM_NR_BANKS];
+    target_phys_addr_t ram_sizes[PPC440EP_SDRAM_NR_BANKS];
+    CPUState *env;
+    qemu_irq *pic;
+    qemu_irq *irqs;
+    qemu_irq *pci_irqs;
+
+    if (cpu_model == NULL) {
+        cpu_model = "440EP";
+    }
+    env = cpu_init(cpu_model);
+    if (!env) {
+        fprintf(stderr, "Unable to initialize CPU!\n");
+        exit(1);
+    }
+
+    ppc_booke_timers_init(env, 400000000, 0);
+    ppc_dcr_init(env, NULL, NULL);
+
+    /* interrupt controller */
+    irqs = g_malloc0(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
+    irqs[PPCUIC_OUTPUT_INT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
+    irqs[PPCUIC_OUTPUT_CINT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
+    pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
+
+    /* SDRAM controller */
+    memset(ram_bases, 0, sizeof(ram_bases));
+    memset(ram_sizes, 0, sizeof(ram_sizes));
+    *ram_size = ppc4xx_sdram_adjust(*ram_size, PPC440EP_SDRAM_NR_BANKS,
+                                    ram_memories,
+                                    ram_bases, ram_sizes,
+                                    ppc440ep_sdram_bank_sizes);
+    /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */
+    ppc4xx_sdram_init(env, pic[14], PPC440EP_SDRAM_NR_BANKS, ram_memories,
+                      ram_bases, ram_sizes, do_init);
+
+    /* PCI */
+    pci_irqs = g_malloc(sizeof(qemu_irq) * 4);
+    pci_irqs[0] = pic[pci_irq_nrs[0]];
+    pci_irqs[1] = pic[pci_irq_nrs[1]];
+    pci_irqs[2] = pic[pci_irq_nrs[2]];
+    pci_irqs[3] = pic[pci_irq_nrs[3]];
+    *pcip = ppc4xx_pci_init(env, pci_irqs,
+                            PPC440EP_PCI_CONFIG,
+                            PPC440EP_PCI_INTACK,
+                            PPC440EP_PCI_SPECIAL,
+                            PPC440EP_PCI_REGS);
+    if (!*pcip)
+        printf("couldn't create PCI controller!\n");
+
+    isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
+
+    if (serial_hds[0] != NULL) {
+        serial_mm_init(address_space_mem, 0xef600300, 0, pic[0],
+                       PPC_SERIAL_MM_BAUDBASE, serial_hds[0],
+                       DEVICE_BIG_ENDIAN);
+    }
+    if (serial_hds[1] != NULL) {
+        serial_mm_init(address_space_mem, 0xef600400, 0, pic[1],
+                       PPC_SERIAL_MM_BAUDBASE, serial_hds[1],
+                       DEVICE_BIG_ENDIAN);
+    }
+
+    return env;
+}
+
 static int bamboo_load_device_tree(target_phys_addr_t addr,
                                      uint32_t ramsize,
                                      target_phys_addr_t initrd_base,
diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c
index bd16b97..f8d2b1b 100644
--- a/hw/virtex_ml507.c
+++ b/hw/virtex_ml507.c
@@ -38,7 +38,6 @@
 
 #include "ppc.h"
 #include "ppc4xx.h"
-#include "ppc440.h"
 #include "ppc405.h"
 
 #include "blockdev.h"
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 12/26] PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (10 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 11/26] PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 13/26] virtio-pci: Fix endianness of virtio config Alexander Graf
                   ` (14 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

Now that we have the SoC init function in the same file, let's integrate
it with the board initialization.

While at it, also make use of the newly qdev'ified PCI host controller.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc440_bamboo.c |  143 ++++++++++++++++++++++------------------------------
 1 files changed, 60 insertions(+), 83 deletions(-)

diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index d00bdda..f86b168 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -27,6 +27,7 @@
 #include "ppc.h"
 #include "ppc405.h"
 #include "sysemu.h"
+#include "sysbus.h"
 
 #define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
 
@@ -50,87 +51,6 @@ static const unsigned int ppc440ep_sdram_bank_sizes[] = {
 
 static target_phys_addr_t entry;
 
-static PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
-                               target_phys_addr_t config_space,
-                               target_phys_addr_t int_ack,
-                               target_phys_addr_t special_cycle,
-                               target_phys_addr_t registers)
-{
-    return NULL;
-}
-
-CPUState *ppc440ep_init(MemoryRegion *address_space_mem, ram_addr_t *ram_size,
-                        PCIBus **pcip, const unsigned int pci_irq_nrs[4],
-                        int do_init, const char *cpu_model)
-{
-    MemoryRegion *ram_memories
-        = g_malloc(PPC440EP_SDRAM_NR_BANKS * sizeof(*ram_memories));
-    target_phys_addr_t ram_bases[PPC440EP_SDRAM_NR_BANKS];
-    target_phys_addr_t ram_sizes[PPC440EP_SDRAM_NR_BANKS];
-    CPUState *env;
-    qemu_irq *pic;
-    qemu_irq *irqs;
-    qemu_irq *pci_irqs;
-
-    if (cpu_model == NULL) {
-        cpu_model = "440EP";
-    }
-    env = cpu_init(cpu_model);
-    if (!env) {
-        fprintf(stderr, "Unable to initialize CPU!\n");
-        exit(1);
-    }
-
-    ppc_booke_timers_init(env, 400000000, 0);
-    ppc_dcr_init(env, NULL, NULL);
-
-    /* interrupt controller */
-    irqs = g_malloc0(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
-    irqs[PPCUIC_OUTPUT_INT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
-    irqs[PPCUIC_OUTPUT_CINT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
-    pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
-
-    /* SDRAM controller */
-    memset(ram_bases, 0, sizeof(ram_bases));
-    memset(ram_sizes, 0, sizeof(ram_sizes));
-    *ram_size = ppc4xx_sdram_adjust(*ram_size, PPC440EP_SDRAM_NR_BANKS,
-                                    ram_memories,
-                                    ram_bases, ram_sizes,
-                                    ppc440ep_sdram_bank_sizes);
-    /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */
-    ppc4xx_sdram_init(env, pic[14], PPC440EP_SDRAM_NR_BANKS, ram_memories,
-                      ram_bases, ram_sizes, do_init);
-
-    /* PCI */
-    pci_irqs = g_malloc(sizeof(qemu_irq) * 4);
-    pci_irqs[0] = pic[pci_irq_nrs[0]];
-    pci_irqs[1] = pic[pci_irq_nrs[1]];
-    pci_irqs[2] = pic[pci_irq_nrs[2]];
-    pci_irqs[3] = pic[pci_irq_nrs[3]];
-    *pcip = ppc4xx_pci_init(env, pci_irqs,
-                            PPC440EP_PCI_CONFIG,
-                            PPC440EP_PCI_INTACK,
-                            PPC440EP_PCI_SPECIAL,
-                            PPC440EP_PCI_REGS);
-    if (!*pcip)
-        printf("couldn't create PCI controller!\n");
-
-    isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
-
-    if (serial_hds[0] != NULL) {
-        serial_mm_init(address_space_mem, 0xef600300, 0, pic[0],
-                       PPC_SERIAL_MM_BAUDBASE, serial_hds[0],
-                       DEVICE_BIG_ENDIAN);
-    }
-    if (serial_hds[1] != NULL) {
-        serial_mm_init(address_space_mem, 0xef600400, 0, pic[1],
-                       PPC_SERIAL_MM_BAUDBASE, serial_hds[1],
-                       DEVICE_BIG_ENDIAN);
-    }
-
-    return env;
-}
-
 static int bamboo_load_device_tree(target_phys_addr_t addr,
                                      uint32_t ramsize,
                                      target_phys_addr_t initrd_base,
@@ -245,19 +165,76 @@ static void bamboo_init(ram_addr_t ram_size,
 {
     unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 };
     MemoryRegion *address_space_mem = get_system_memory();
+    MemoryRegion *ram_memories
+        = g_malloc(PPC440EP_SDRAM_NR_BANKS * sizeof(*ram_memories));
+    target_phys_addr_t ram_bases[PPC440EP_SDRAM_NR_BANKS];
+    target_phys_addr_t ram_sizes[PPC440EP_SDRAM_NR_BANKS];
+    qemu_irq *pic;
+    qemu_irq *irqs;
     PCIBus *pcibus;
     CPUState *env;
     uint64_t elf_entry;
     uint64_t elf_lowaddr;
     target_phys_addr_t loadaddr = 0;
     target_long initrd_size = 0;
+    DeviceState *dev;
     int success;
     int i;
 
     /* Setup CPU. */
-    env = ppc440ep_init(address_space_mem, &ram_size, &pcibus,
-                        pci_irq_nrs, 1, cpu_model);
+    if (cpu_model == NULL) {
+        cpu_model = "440EP";
+    }
+    env = cpu_init(cpu_model);
+    if (!env) {
+        fprintf(stderr, "Unable to initialize CPU!\n");
+        exit(1);
+    }
+
     qemu_register_reset(main_cpu_reset, env);
+    ppc_booke_timers_init(env, 400000000, 0);
+    ppc_dcr_init(env, NULL, NULL);
+
+    /* interrupt controller */
+    irqs = g_malloc0(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
+    irqs[PPCUIC_OUTPUT_INT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
+    irqs[PPCUIC_OUTPUT_CINT] = ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
+    pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
+
+    /* SDRAM controller */
+    memset(ram_bases, 0, sizeof(ram_bases));
+    memset(ram_sizes, 0, sizeof(ram_sizes));
+    ram_size = ppc4xx_sdram_adjust(ram_size, PPC440EP_SDRAM_NR_BANKS,
+                                   ram_memories,
+                                   ram_bases, ram_sizes,
+                                   ppc440ep_sdram_bank_sizes);
+    /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */
+    ppc4xx_sdram_init(env, pic[14], PPC440EP_SDRAM_NR_BANKS, ram_memories,
+                      ram_bases, ram_sizes, 1);
+
+    /* PCI */
+    dev = sysbus_create_varargs("ppc4xx-pcihost", PPC440EP_PCI_CONFIG,
+                                pic[pci_irq_nrs[0]], pic[pci_irq_nrs[1]],
+                                pic[pci_irq_nrs[2]], pic[pci_irq_nrs[3]],
+                                NULL);
+    pcibus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
+    if (!pcibus) {
+        fprintf(stderr, "couldn't create PCI controller!\n");
+        exit(1);
+    }
+
+    isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
+
+    if (serial_hds[0] != NULL) {
+        serial_mm_init(address_space_mem, 0xef600300, 0, pic[0],
+                       PPC_SERIAL_MM_BAUDBASE, serial_hds[0],
+                       DEVICE_BIG_ENDIAN);
+    }
+    if (serial_hds[1] != NULL) {
+        serial_mm_init(address_space_mem, 0xef600400, 0, pic[1],
+                       PPC_SERIAL_MM_BAUDBASE, serial_hds[1],
+                       DEVICE_BIG_ENDIAN);
+    }
 
     if (pcibus) {
         /* Register network interfaces. */
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 13/26] virtio-pci: Fix endianness of virtio config
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (11 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 12/26] PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 14/26] virtio: change memcpy to guest reads Alexander Graf
                   ` (13 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

The virtio config area in PIO space is a bit special. The initial
header is little endian but the rest (device specific) is guest
native endian.

The PIO accessors for PCI on machines that don't have native IO ports
assume that all PIO is little endian, which works fine for everything
except the above.

A complicated way to fix it would be to split the BAR into two memory
regions with different endianess settings, but this isn't practical
to do, besides, the PIO code doesn't honor region endianness anyway
(I have a patch for that too but it isn't necessary at this stage).

So I decided to go for the quick fix instead which consists of
reverting the swap in virtio-pci in selected places, hoping that when
we eventually do a "v2" of the virtio protocols, we sort that out once
and for all using a fixed endian setting for everything.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
[agraf: keep virtio in libhw and determine endianness through a
        helper function in exec.c]
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
---
 exec.c          |   14 ++++++++++++++
 hw/virtio-pci.c |   28 ++++++++++++++++++++++++++--
 2 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/exec.c b/exec.c
index 7f9f730..5b9eb9a 100644
--- a/exec.c
+++ b/exec.c
@@ -4390,6 +4390,20 @@ tb_page_addr_t get_page_addr_code(CPUState *env1, target_ulong addr)
     return qemu_ram_addr_from_host_nofail(p);
 }
 
+/*
+ * A helper function for the _utterly broken_ virtio device model to find out if
+ * it's running on a big endian machine. Don't do this at home kids!
+ */
+bool virtio_is_big_endian(void);
+bool virtio_is_big_endian(void)
+{
+#if defined(TARGET_WORDS_BIGENDIAN)
+    return true;
+#else
+    return false;
+#endif
+}
+
 #define MMUSUFFIX _cmmu
 #undef GETPC
 #define GETPC() NULL
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index caff0aa..c93889a 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -91,6 +91,9 @@
  */
 #define wmb() do { } while (0)
 
+/* HACK for virtio to determine if it's running a big endian guest */
+bool virtio_is_big_endian(void);
+
 /* virtio device */
 
 static void virtio_pci_notify(void *opaque, uint16_t vector)
@@ -414,20 +417,35 @@ static uint32_t virtio_pci_config_readw(void *opaque, uint32_t addr)
 {
     VirtIOPCIProxy *proxy = opaque;
     uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev);
+    uint16_t val;
     if (addr < config)
         return virtio_ioport_read(proxy, addr);
     addr -= config;
-    return virtio_config_readw(proxy->vdev, addr);
+    val = virtio_config_readw(proxy->vdev, addr);
+    if (virtio_is_big_endian()) {
+        /*
+         * virtio is odd, ioports are LE but config space is target native
+         * endian. However, in qemu, all PIO is LE, so we need to re-swap
+         * on BE targets
+         */
+        val = bswap16(val);
+    }
+    return val;
 }
 
 static uint32_t virtio_pci_config_readl(void *opaque, uint32_t addr)
 {
     VirtIOPCIProxy *proxy = opaque;
     uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev);
+    uint32_t val;
     if (addr < config)
         return virtio_ioport_read(proxy, addr);
     addr -= config;
-    return virtio_config_readl(proxy->vdev, addr);
+    val = virtio_config_readl(proxy->vdev, addr);
+    if (virtio_is_big_endian()) {
+        val = bswap32(val);
+    }
+    return val;
 }
 
 static void virtio_pci_config_writeb(void *opaque, uint32_t addr, uint32_t val)
@@ -451,6 +469,9 @@ static void virtio_pci_config_writew(void *opaque, uint32_t addr, uint32_t val)
         return;
     }
     addr -= config;
+    if (virtio_is_big_endian()) {
+        val = bswap16(val);
+    }
     virtio_config_writew(proxy->vdev, addr, val);
 }
 
@@ -463,6 +484,9 @@ static void virtio_pci_config_writel(void *opaque, uint32_t addr, uint32_t val)
         return;
     }
     addr -= config;
+    if (virtio_is_big_endian()) {
+        val = bswap32(val);
+    }
     virtio_config_writel(proxy->vdev, addr, val);
 }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 14/26] virtio: change memcpy to guest reads
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (12 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 13/26] virtio-pci: Fix endianness of virtio config Alexander Graf
@ 2012-01-21  4:18 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 15/26] load_image_targphys() should enforce the max size Alexander Graf
                   ` (12 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:18 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno

When accessing the device specific virtio config space, we memcpy
the data into a variable in QEMU. At that point we're basically
pulling host endianness into the game which is a really bad idea.

So instead, let's use the target specific load/store helpers for
memory pointers which fetch things in target endianness. The whole
array is already populated in target endianness anyways
(see virtio-blk).

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
---
 hw/virtio.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/virtio.c b/hw/virtio.c
index 81ecc40..74cc038 100644
--- a/hw/virtio.c
+++ b/hw/virtio.c
@@ -539,7 +539,7 @@ uint32_t virtio_config_readb(VirtIODevice *vdev, uint32_t addr)
     if (addr > (vdev->config_len - sizeof(val)))
         return (uint32_t)-1;
 
-    memcpy(&val, vdev->config + addr, sizeof(val));
+    val = ldub_p(vdev->config + addr);
     return val;
 }
 
@@ -552,7 +552,7 @@ uint32_t virtio_config_readw(VirtIODevice *vdev, uint32_t addr)
     if (addr > (vdev->config_len - sizeof(val)))
         return (uint32_t)-1;
 
-    memcpy(&val, vdev->config + addr, sizeof(val));
+    val = lduw_p(vdev->config + addr);
     return val;
 }
 
@@ -565,7 +565,7 @@ uint32_t virtio_config_readl(VirtIODevice *vdev, uint32_t addr)
     if (addr > (vdev->config_len - sizeof(val)))
         return (uint32_t)-1;
 
-    memcpy(&val, vdev->config + addr, sizeof(val));
+    val = ldl_p(vdev->config + addr);
     return val;
 }
 
@@ -576,7 +576,7 @@ void virtio_config_writeb(VirtIODevice *vdev, uint32_t addr, uint32_t data)
     if (addr > (vdev->config_len - sizeof(val)))
         return;
 
-    memcpy(vdev->config + addr, &val, sizeof(val));
+    stb_p(vdev->config + addr, val);
 
     if (vdev->set_config)
         vdev->set_config(vdev, vdev->config);
@@ -589,7 +589,7 @@ void virtio_config_writew(VirtIODevice *vdev, uint32_t addr, uint32_t data)
     if (addr > (vdev->config_len - sizeof(val)))
         return;
 
-    memcpy(vdev->config + addr, &val, sizeof(val));
+    stw_p(vdev->config + addr, val);
 
     if (vdev->set_config)
         vdev->set_config(vdev, vdev->config);
@@ -602,7 +602,7 @@ void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data)
     if (addr > (vdev->config_len - sizeof(val)))
         return;
 
-    memcpy(vdev->config + addr, &val, sizeof(val));
+    stl_p(vdev->config + addr, val);
 
     if (vdev->set_config)
         vdev->set_config(vdev, vdev->config);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 15/26] load_image_targphys() should enforce the max size
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (13 preceding siblings ...)
  2012-01-21  4:18 ` [Qemu-devel] [PATCH 14/26] virtio: change memcpy to guest reads Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 16/26] Fix dirty logging with 32-bit qemu & 64-bit guests Alexander Graf
                   ` (11 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: qemu-devel Developers, Blue Swirl, Aurelien Jarno, David Gibson

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

load_image_targphys() gets passed a max size for the file, but doesn't
enforce it at all. Add a check and return -1 (error) if the file is
too big, without loading it.  Fix the bracing style in the function
while we're at it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/loader.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/hw/loader.c b/hw/loader.c
index 446b628..415cdce 100644
--- a/hw/loader.c
+++ b/hw/loader.c
@@ -108,8 +108,12 @@ int load_image_targphys(const char *filename,
     int size;
 
     size = get_image_size(filename);
-    if (size > 0)
+    if (size > max_sz) {
+        return -1;
+    }
+    if (size > 0) {
         rom_add_file_fixed(filename, addr, -1);
+    }
     return size;
 }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 16/26] Fix dirty logging with 32-bit qemu & 64-bit guests
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (14 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 15/26] load_image_targphys() should enforce the max size Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 17/26] Update gitignore file Alexander Graf
                   ` (10 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: qemu-devel Developers, Blue Swirl, Aurelien Jarno, David Gibson

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

The kvm_get_dirty_pages_log_range() function uses two address
variables to step through the monitored memory region to update the
dirty log.  However, these variables have type unsigned long, which
can overflow if running a 64-bit guest with a 32-bit qemu binary.

This patch changes these to target_phys_addr_t which will have the
correct size.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 kvm-all.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kvm-all.c b/kvm-all.c
index 2cc4562..9e84d35 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -344,7 +344,8 @@ static int kvm_get_dirty_pages_log_range(MemoryRegionSection *section,
                                          unsigned long *bitmap)
 {
     unsigned int i, j;
-    unsigned long page_number, addr, addr1, c;
+    unsigned long page_number, c;
+    target_phys_addr_t addr, addr1;
     unsigned int len = ((section->size / TARGET_PAGE_SIZE) + HOST_LONG_BITS - 1) / HOST_LONG_BITS;
 
     /*
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 17/26] Update gitignore file
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (15 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 16/26] Fix dirty logging with 32-bit qemu & 64-bit guests Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 18/26] Correct types in bmdma_addr_{read, write} Alexander Graf
                   ` (9 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno, David Gibson

From: David Gibson <david@gibson.dropbear.id.au>

This patch adds several auto-generated files to .gitignore which were
previously missing.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 .gitignore |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 406f75f..f5aab2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,10 @@ qemu-ga
 qemu-monitor.texi
 QMP/qmp-commands.txt
 test-coroutine
+test-qmp-input-visitor
+test-qmp-output-visitor
+fsdev/virtfs-proxy-helper.1
+fsdev/virtfs-proxy-helper.pod
 .gdbinit
 *.a
 *.aux
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 18/26] Correct types in bmdma_addr_{read, write}
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (16 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 17/26] Update gitignore file Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 19/26] pseries: Support PCI extended config space in RTAS calls Alexander Graf
                   ` (8 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno, David Gibson

From: David Gibson <david@gibson.dropbear.id.au>

Back when I made patches introducing dma_addr_t and various PCI DMA
wrapper functions, I made a mistake.  The bmdma_addr_{read,write} functions
need to take target_phys_addr_t not dma_addr_t, since they are assigned
to MemoryRegionOps callbacks.

This patch corrects my error.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ide/pci.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index cb3de65..246dd57 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -327,7 +327,7 @@ void bmdma_cmd_writeb(BMDMAState *bm, uint32_t val)
     bm->cmd = val & 0x09;
 }
 
-static uint64_t bmdma_addr_read(void *opaque, dma_addr_t addr,
+static uint64_t bmdma_addr_read(void *opaque, target_phys_addr_t addr,
                                 unsigned width)
 {
     BMDMAState *bm = opaque;
@@ -341,7 +341,7 @@ static uint64_t bmdma_addr_read(void *opaque, dma_addr_t addr,
     return data;
 }
 
-static void bmdma_addr_write(void *opaque, dma_addr_t addr,
+static void bmdma_addr_write(void *opaque, target_phys_addr_t addr,
                              uint64_t data, unsigned width)
 {
     BMDMAState *bm = opaque;
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 19/26] pseries: Support PCI extended config space in RTAS calls
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (17 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 18/26] Correct types in bmdma_addr_{read, write} Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 20/26] pseries: Use correct dispatcher for PCI config space accesses Alexander Graf
                   ` (7 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: qemu-devel Developers, Blue Swirl, Aurelien Jarno, David Gibson

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

On the pseries machine (which expexts a paravirtualized guest), guest
access to PCI config space is via host-provided RTAS functions.  This
patch extends these RTAS functions to permit access to PCI extended
config space, as specified in PAPR.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/spapr_pci.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index 9b6a032..2550e19 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -62,6 +62,11 @@ static PCIDevice *find_dev(sPAPREnvironment *spapr,
     return NULL;
 }
 
+static uint32_t rtas_pci_cfgaddr(uint32_t arg)
+{
+    return ((arg >> 20) & 0xf00) | (arg & 0xff);
+}
+
 static void rtas_ibm_read_pci_config(sPAPREnvironment *spapr,
                                      uint32_t token, uint32_t nargs,
                                      target_ulong args,
@@ -76,7 +81,7 @@ static void rtas_ibm_read_pci_config(sPAPREnvironment *spapr,
         return;
     }
     size = rtas_ld(args, 3);
-    addr = rtas_ld(args, 0) & 0xFF;
+    addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
     val = pci_default_read_config(dev, addr, size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
@@ -95,7 +100,7 @@ static void rtas_read_pci_config(sPAPREnvironment *spapr,
         return;
     }
     size = rtas_ld(args, 1);
-    addr = rtas_ld(args, 0) & 0xFF;
+    addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
     val = pci_default_read_config(dev, addr, size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
@@ -116,7 +121,7 @@ static void rtas_ibm_write_pci_config(sPAPREnvironment *spapr,
     }
     val = rtas_ld(args, 4);
     size = rtas_ld(args, 3);
-    addr = rtas_ld(args, 0) & 0xFF;
+    addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
     pci_default_write_config(dev, addr, val, size);
     rtas_st(rets, 0, 0);
 }
@@ -135,7 +140,7 @@ static void rtas_write_pci_config(sPAPREnvironment *spapr,
     }
     val = rtas_ld(args, 2);
     size = rtas_ld(args, 1);
-    addr = rtas_ld(args, 0) & 0xFF;
+    addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
     pci_default_write_config(dev, addr, val, size);
     rtas_st(rets, 0, 0);
 }
@@ -394,6 +399,7 @@ int spapr_populate_pci_devices(sPAPRPHBState *phb,
     _FDT(fdt_setprop(fdt, bus_off, "reg", &bus_reg, sizeof(bus_reg)));
     _FDT(fdt_setprop(fdt, bus_off, "interrupt-map-mask",
                      &interrupt_map_mask, sizeof(interrupt_map_mask)));
+    _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pci-config-space-type", 0x1));
 
     /* Populate PCI devices and allocate IRQs */
     devices = 0;
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 20/26] pseries: Use correct dispatcher for PCI config space accesses
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (18 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 19/26] pseries: Support PCI extended config space in RTAS calls Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 21/26] pseries: SLOF PCI flag day Alexander Graf
                   ` (6 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno, David Gibson

From: David Gibson <david@gibson.dropbear.id.au>

The pseries machine expects a para-virtualized guest and so supplies RTAS
functions (via a hypercall) for performing PCI config space access.
Currently the implementation of these calls into
pci_default_{read,write}_config().  However this would be incorrect for
any PCI device which overrides the default config read/write functions.
AFAICT there's only one such device today, but we should still get it
right.  In addition the pci_host_config_{read,write}_common() functions
which do correctly do this dispatch, perform bounds checking on the config
space address, lack of which currently leads to an exploitable bug.

This patch corrects the problem.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/spapr_pci.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index 2550e19..f3f9246 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -82,7 +82,7 @@ static void rtas_ibm_read_pci_config(sPAPREnvironment *spapr,
     }
     size = rtas_ld(args, 3);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    val = pci_default_read_config(dev, addr, size);
+    val = pci_host_config_read_common(dev, addr, pci_config_size(dev), size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
 }
@@ -101,7 +101,7 @@ static void rtas_read_pci_config(sPAPREnvironment *spapr,
     }
     size = rtas_ld(args, 1);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    val = pci_default_read_config(dev, addr, size);
+    val = pci_host_config_read_common(dev, addr, pci_config_size(dev), size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
 }
@@ -122,7 +122,7 @@ static void rtas_ibm_write_pci_config(sPAPREnvironment *spapr,
     val = rtas_ld(args, 4);
     size = rtas_ld(args, 3);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    pci_default_write_config(dev, addr, val, size);
+    pci_host_config_write_common(dev, addr, pci_config_size(dev), val, size);
     rtas_st(rets, 0, 0);
 }
 
@@ -141,7 +141,7 @@ static void rtas_write_pci_config(sPAPREnvironment *spapr,
     val = rtas_ld(args, 2);
     size = rtas_ld(args, 1);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    pci_default_write_config(dev, addr, val, size);
+    pci_host_config_write_common(dev, addr, pci_config_size(dev), val, size);
     rtas_st(rets, 0, 0);
 }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 21/26] pseries: SLOF PCI flag day
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (19 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 20/26] pseries: Use correct dispatcher for PCI config space accesses Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff Alexander Graf
                   ` (5 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: qemu-devel Developers, Blue Swirl, Aurelien Jarno, David Gibson

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Currently on the pseries machine the SLOF firmware is used normally,
but we bypass it when -kernel is specified.  Having these two

different boot paths can cause some confusion.

In particular at present we need to "probe" the (emulated) PCI bus and
produce device tree nodes for the PCI devices in qemu, for the -kernel
case.  In the SLOF case, it takes the device tree from qemu adds some
stuff to it then passes it on to the kernel.

It's been decided that a better approach is to always boot through
SLOF, even when using -kernel.  WIth this approach we can leave PCI
probing and device node creation to SLOF in all cases which removes a
bunch of code in qemu, and avoids iterating the PCI devices from the
machine specific init code which we're not supposed to do.

This patch changes qemu to always boot through SLOF, and not to create
PCI nodes.  Simultaneously it updates the included version of SLOF
(submodule and binary image) to one which supports (and requires) the
new approach.

The new SLOF version also includes a number of unrelated enhancements:
support for booting from virtio-pci devices and e1000, greatly
improved FCode support and many bugfixes.  It also makes SLOF ready to
be used even when specifying a kernel on the qemu command line.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/spapr.c       |  135 ++++++++++++++++++++++++++++++++++++------------------
 hw/spapr_pci.c   |  134 +++++------------------------------------------------
 pc-bios/README   |    2 +-
 pc-bios/slof.bin |  Bin 738744 -> 869584 bytes
 roms/SLOF        |    2 +-
 5 files changed, 105 insertions(+), 168 deletions(-)

diff --git a/hw/spapr.c b/hw/spapr.c
index 0e1f80d..b011371 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -50,19 +50,29 @@
 
 #include <libfdt.h>
 
-#define KERNEL_LOAD_ADDR        0x00000000
-#define INITRD_LOAD_ADDR        0x02800000
+/* SLOF memory layout:
+ *
+ * SLOF raw image loaded at 0, copies its romfs right below the flat
+ * device-tree, then position SLOF itself 31M below that
+ *
+ * So we set FW_OVERHEAD to 40MB which should account for all of that
+ * and more
+ *
+ * We load our kernel at 4M, leaving space for SLOF initial image
+ */
 #define FDT_MAX_SIZE            0x10000
 #define RTAS_MAX_SIZE           0x10000
 #define FW_MAX_SIZE             0x400000
 #define FW_FILE_NAME            "slof.bin"
+#define FW_OVERHEAD             0x2800000
+#define KERNEL_LOAD_ADDR        FW_MAX_SIZE
 
-#define MIN_RMA_SLOF		128UL
+#define MIN_RMA_SLOF            128UL
 
 #define TIMEBASE_FREQ           512000000ULL
 
 #define MAX_CPUS                256
-#define XICS_IRQS		1024
+#define XICS_IRQS               1024
 
 #define SPAPR_PCI_BUID          0x800000020000001ULL
 #define SPAPR_PCI_MEM_WIN_ADDR  (0x10000000000ULL + 0xA0000000)
@@ -139,6 +149,7 @@ static void *spapr_create_fdt_skel(const char *cpu_model,
                                    target_phys_addr_t rma_size,
                                    target_phys_addr_t initrd_base,
                                    target_phys_addr_t initrd_size,
+                                   target_phys_addr_t kernel_size,
                                    const char *boot_device,
                                    const char *kernel_cmdline,
                                    long hash_shift)
@@ -176,6 +187,12 @@ static void *spapr_create_fdt_skel(const char *cpu_model,
     fdt = g_malloc0(FDT_MAX_SIZE);
     _FDT((fdt_create(fdt, FDT_MAX_SIZE)));
 
+    if (kernel_size) {
+        _FDT((fdt_add_reservemap_entry(fdt, KERNEL_LOAD_ADDR, kernel_size)));
+    }
+    if (initrd_size) {
+        _FDT((fdt_add_reservemap_entry(fdt, initrd_base, initrd_size)));
+    }
     _FDT((fdt_finish_reservemap(fdt)));
 
     /* Root node */
@@ -197,15 +214,13 @@ static void *spapr_create_fdt_skel(const char *cpu_model,
                        &start_prop, sizeof(start_prop))));
     _FDT((fdt_property(fdt, "linux,initrd-end",
                        &end_prop, sizeof(end_prop))));
-    _FDT((fdt_property_string(fdt, "qemu,boot-device", boot_device)));
+    if (kernel_size) {
+        uint64_t kprop[2] = { cpu_to_be64(KERNEL_LOAD_ADDR),
+                              cpu_to_be64(kernel_size) };
 
-    /*
-     * Because we don't always invoke any firmware, we can't rely on
-     * that to do BAR allocation.  Long term, we should probably do
-     * that ourselves, but for now, this setting (plus advertising the
-     * current BARs as 0) causes sufficiently recent kernels to to the
-     * BAR assignment themselves */
-    _FDT((fdt_property_cell(fdt, "linux,pci-probe-only", 0)));
+        _FDT((fdt_property(fdt, "qemu,boot-kernel", &kprop, sizeof(kprop))));
+    }
+    _FDT((fdt_property_string(fdt, "qemu,boot-device", boot_device)));
 
     _FDT((fdt_end_node(fdt)));
 
@@ -445,6 +460,12 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr,
 
     _FDT((fdt_pack(fdt)));
 
+    if (fdt_totalsize(fdt) > FDT_MAX_SIZE) {
+        hw_error("FDT too big ! 0x%x bytes (max is 0x%x)\n",
+                 fdt_totalsize(fdt), FDT_MAX_SIZE);
+        exit(1);
+    }
+
     cpu_physical_memory_write(fdt_addr, fdt, fdt_totalsize(fdt));
 
     g_free(fdt);
@@ -494,8 +515,9 @@ static void ppc_spapr_init(ram_addr_t ram_size,
     MemoryRegion *sysmem = get_system_memory();
     MemoryRegion *ram = g_new(MemoryRegion, 1);
     target_phys_addr_t rma_alloc_size, rma_size;
-    uint32_t initrd_base;
-    long kernel_size, initrd_size, fw_size;
+    uint32_t initrd_base = 0;
+    long kernel_size = 0, initrd_size = 0;
+    long load_limit, rtas_limit, fw_size;
     long pteg_shift = 17;
     char *filename;
 
@@ -517,11 +539,13 @@ static void ppc_spapr_init(ram_addr_t ram_size,
         rma_size = ram_size;
     }
 
-    /* We place the device tree just below either the top of the RMA,
+    /* We place the device tree and RTAS just below either the top of the RMA,
      * or just below 2GB, whichever is lowere, so that it can be
      * processed with 32-bit real mode code if necessary */
-    spapr->fdt_addr = MIN(rma_size, 0x80000000) - FDT_MAX_SIZE;
-    spapr->rtas_addr = spapr->fdt_addr - RTAS_MAX_SIZE;
+    rtas_limit = MIN(rma_size, 0x80000000);
+    spapr->rtas_addr = rtas_limit - RTAS_MAX_SIZE;
+    spapr->fdt_addr = spapr->rtas_addr - FDT_MAX_SIZE;
+    load_limit = spapr->fdt_addr - FW_OVERHEAD;
 
     /* init CPUs */
     if (cpu_model == NULL) {
@@ -577,13 +601,19 @@ static void ppc_spapr_init(ram_addr_t ram_size,
 
     filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
     spapr->rtas_size = load_image_targphys(filename, spapr->rtas_addr,
-                                           ram_size - spapr->rtas_addr);
+                                           rtas_limit - spapr->rtas_addr);
     if (spapr->rtas_size < 0) {
         hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
         exit(1);
     }
+    if (spapr->rtas_size > RTAS_MAX_SIZE) {
+        hw_error("RTAS too big ! 0x%lx bytes (max is 0x%x)\n",
+                 spapr->rtas_size, RTAS_MAX_SIZE);
+        exit(1);
+    }
     g_free(filename);
 
+
     /* Set up Interrupt Controller */
     spapr->icp = xics_system_init(XICS_IRQS);
     spapr->next_irq = 16;
@@ -622,6 +652,20 @@ static void ppc_spapr_init(ram_addr_t ram_size,
         spapr_vscsi_create(spapr->vio_bus, 0x2000 + i);
     }
 
+    if (rma_size < (MIN_RMA_SLOF << 20)) {
+        fprintf(stderr, "qemu: pSeries SLOF firmware requires >= "
+                "%ldM guest RMA (Real Mode Area memory)\n", MIN_RMA_SLOF);
+        exit(1);
+    }
+
+    fprintf(stderr, "sPAPR memory map:\n");
+    fprintf(stderr, "RTAS                 : 0x%08lx..%08lx\n",
+            (unsigned long)spapr->rtas_addr,
+            (unsigned long)(spapr->rtas_addr + spapr->rtas_size - 1));
+    fprintf(stderr, "FDT                  : 0x%08lx..%08lx\n",
+            (unsigned long)spapr->fdt_addr,
+            (unsigned long)(spapr->fdt_addr + FDT_MAX_SIZE - 1));
+
     if (kernel_filename) {
         uint64_t lowaddr = 0;
 
@@ -630,57 +674,60 @@ static void ppc_spapr_init(ram_addr_t ram_size,
         if (kernel_size < 0) {
             kernel_size = load_image_targphys(kernel_filename,
                                               KERNEL_LOAD_ADDR,
-                                              ram_size - KERNEL_LOAD_ADDR);
+                                              load_limit - KERNEL_LOAD_ADDR);
         }
         if (kernel_size < 0) {
             fprintf(stderr, "qemu: could not load kernel '%s'\n",
                     kernel_filename);
             exit(1);
         }
+        fprintf(stderr, "Kernel               : 0x%08x..%08lx\n",
+                KERNEL_LOAD_ADDR, KERNEL_LOAD_ADDR + kernel_size - 1);
 
         /* load initrd */
         if (initrd_filename) {
-            initrd_base = INITRD_LOAD_ADDR;
+            /* Try to locate the initrd in the gap between the kernel
+             * and the firmware. Add a bit of space just in case
+             */
+            initrd_base = (KERNEL_LOAD_ADDR + kernel_size + 0x1ffff) & ~0xffff;
             initrd_size = load_image_targphys(initrd_filename, initrd_base,
-                                              ram_size - initrd_base);
+                                              load_limit - initrd_base);
             if (initrd_size < 0) {
                 fprintf(stderr, "qemu: could not load initial ram disk '%s'\n",
                         initrd_filename);
                 exit(1);
             }
+            fprintf(stderr, "Ramdisk              : 0x%08lx..%08lx\n",
+                    (long)initrd_base, (long)(initrd_base + initrd_size - 1));
         } else {
             initrd_base = 0;
             initrd_size = 0;
         }
+    }
 
-        spapr->entry_point = KERNEL_LOAD_ADDR;
-    } else {
-        if (rma_size < (MIN_RMA_SLOF << 20)) {
-            fprintf(stderr, "qemu: pSeries SLOF firmware requires >= "
-                    "%ldM guest RMA (Real Mode Area memory)\n", MIN_RMA_SLOF);
-            exit(1);
-        }
-        filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, FW_FILE_NAME);
-        fw_size = load_image_targphys(filename, 0, FW_MAX_SIZE);
-        if (fw_size < 0) {
-            hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
-            exit(1);
-        }
-        g_free(filename);
-        spapr->entry_point = 0x100;
-        initrd_base = 0;
-        initrd_size = 0;
-
-        /* SLOF will startup the secondary CPUs using RTAS,
-           rather than expecting a kexec() style entry */
-        for (env = first_cpu; env != NULL; env = env->next_cpu) {
-            env->halted = 1;
-        }
+    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, FW_FILE_NAME);
+    fw_size = load_image_targphys(filename, 0, FW_MAX_SIZE);
+    if (fw_size < 0) {
+        hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
+        exit(1);
+    }
+    g_free(filename);
+    fprintf(stderr, "Firmware load        : 0x%08x..%08lx\n",
+            0, fw_size);
+    fprintf(stderr, "Firmware runtime     : 0x%08lx..%08lx\n",
+            load_limit, (unsigned long)spapr->fdt_addr);
+
+    spapr->entry_point = 0x100;
+
+    /* SLOF will startup the secondary CPUs using RTAS */
+    for (env = first_cpu; env != NULL; env = env->next_cpu) {
+        env->halted = 1;
     }
 
     /* Prepare the device tree */
     spapr->fdt_skel = spapr_create_fdt_skel(cpu_model, rma_size,
                                             initrd_base, initrd_size,
+                                            kernel_size,
                                             boot_device, kernel_cmdline,
                                             pteg_shift + 7);
     assert(spapr->fdt_skel != NULL);
diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index f3f9246..cf37628 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -324,31 +324,13 @@ void spapr_create_phb(sPAPREnvironment *spapr,
 #define b_fff(x)        b_x((x), 8, 3)  /* function number */
 #define b_rrrrrrrr(x)   b_x((x), 0, 8)  /* register number */
 
-static uint32_t regtype_to_ss(uint8_t type)
-{
-    if (type & PCI_BASE_ADDRESS_MEM_TYPE_64) {
-        return 3;
-    }
-    if (type == PCI_BASE_ADDRESS_SPACE_IO) {
-        return 1;
-    }
-    return 2;
-}
-
 int spapr_populate_pci_devices(sPAPRPHBState *phb,
                                uint32_t xics_phandle,
                                void *fdt)
 {
     PCIBus *bus = phb->host_state.bus;
-    int bus_off, node_off = 0, devid, fn, i, n, devices;
-    DeviceState *qdev;
+    int bus_off, i;
     char nodename[256];
-    struct {
-        uint32_t hi;
-        uint64_t addr;
-        uint64_t size;
-    } __attribute__((packed)) reg[PCI_NUM_REGIONS + 1],
-          assigned_addresses[PCI_NUM_REGIONS];
     uint32_t bus_range[] = { cpu_to_be32(0), cpu_to_be32(0xff) };
     struct {
         uint32_t hi;
@@ -369,7 +351,7 @@ int spapr_populate_pci_devices(sPAPRPHBState *phb,
     };
     uint64_t bus_reg[] = { cpu_to_be64(phb->buid), 0 };
     uint32_t interrupt_map_mask[] = {
-        cpu_to_be32(b_ddddd(-1)|b_fff(-1)), 0x0, 0x0, 0x0};
+        cpu_to_be32(b_ddddd(-1)|b_fff(0)), 0x0, 0x0, 0x0};
     uint32_t interrupt_map[bus->nirq][7];
 
     /* Start populating the FDT */
@@ -397,118 +379,26 @@ int spapr_populate_pci_devices(sPAPRPHBState *phb,
     _FDT(fdt_setprop(fdt, bus_off, "bus-range", &bus_range, sizeof(bus_range)));
     _FDT(fdt_setprop(fdt, bus_off, "ranges", &ranges, sizeof(ranges)));
     _FDT(fdt_setprop(fdt, bus_off, "reg", &bus_reg, sizeof(bus_reg)));
-    _FDT(fdt_setprop(fdt, bus_off, "interrupt-map-mask",
-                     &interrupt_map_mask, sizeof(interrupt_map_mask)));
     _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pci-config-space-type", 0x1));
 
-    /* Populate PCI devices and allocate IRQs */
-    devices = 0;
-    QTAILQ_FOREACH(qdev, &bus->qbus.children, sibling) {
-        PCIDevice *dev = DO_UPCAST(PCIDevice, qdev, qdev);
-        int irq_index = pci_spapr_map_irq(dev, 0);
-        uint32_t *irqmap = interrupt_map[devices];
-        uint8_t *config = dev->config;
-
-        devid = dev->devfn >> 3;
-        fn = dev->devfn & 7;
-
-        sprintf(nodename, "pci@%u,%u", devid, fn);
-
-        /* Allocate interrupt from the map */
-        if (devid > bus->nirq)  {
-            printf("Unexpected behaviour in spapr_populate_pci_devices,"
-                    "wrong devid %u\n", devid);
-            exit(-1);
-        }
-        irqmap[0] = cpu_to_be32(b_ddddd(devid)|b_fff(fn));
+    /* Build the interrupt-map, this must matches what is done
+     * in pci_spapr_map_irq
+     */
+    _FDT(fdt_setprop(fdt, bus_off, "interrupt-map-mask",
+                     &interrupt_map_mask, sizeof(interrupt_map_mask)));
+    for (i = 0; i < 7; i++) {
+        uint32_t *irqmap = interrupt_map[i];
+        irqmap[0] = cpu_to_be32(b_ddddd(i)|b_fff(0));
         irqmap[1] = 0;
         irqmap[2] = 0;
         irqmap[3] = 0;
         irqmap[4] = cpu_to_be32(xics_phandle);
-        irqmap[5] = cpu_to_be32(phb->lsi_table[irq_index].dt_irq);
+        irqmap[5] = cpu_to_be32(phb->lsi_table[i % SPAPR_PCI_NUM_LSI].dt_irq);
         irqmap[6] = cpu_to_be32(0x8);
-
-        /* Add node to FDT */
-        node_off = fdt_add_subnode(fdt, bus_off, nodename);
-        if (node_off < 0) {
-            return node_off;
-        }
-
-        _FDT(fdt_setprop_cell(fdt, node_off, "vendor-id",
-                              pci_get_word(&config[PCI_VENDOR_ID])));
-        _FDT(fdt_setprop_cell(fdt, node_off, "device-id",
-                              pci_get_word(&config[PCI_DEVICE_ID])));
-        _FDT(fdt_setprop_cell(fdt, node_off, "revision-id",
-                              pci_get_byte(&config[PCI_REVISION_ID])));
-        _FDT(fdt_setprop_cell(fdt, node_off, "class-code",
-                              pci_get_long(&config[PCI_CLASS_REVISION]) >> 8));
-        _FDT(fdt_setprop_cell(fdt, node_off, "subsystem-id",
-                              pci_get_word(&config[PCI_SUBSYSTEM_ID])));
-        _FDT(fdt_setprop_cell(fdt, node_off, "subsystem-vendor-id",
-                              pci_get_word(&config[PCI_SUBSYSTEM_VENDOR_ID])));
-
-        /* Config space region comes first */
-        reg[0].hi = cpu_to_be32(
-            b_n(0) |
-            b_p(0) |
-            b_t(0) |
-            b_ss(0/*config*/) |
-            b_bbbbbbbb(0) |
-            b_ddddd(devid) |
-            b_fff(fn));
-        reg[0].addr = 0;
-        reg[0].size = 0;
-
-        n = 0;
-        for (i = 0; i < ARRAY_SIZE(bars); ++i) {
-            if (0 == dev->io_regions[i].size) {
-                continue;
-            }
-
-            reg[n+1].hi = cpu_to_be32(
-                b_n(0) |
-                b_p(0) |
-                b_t(0) |
-                b_ss(regtype_to_ss(dev->io_regions[i].type)) |
-                b_bbbbbbbb(0) |
-                b_ddddd(devid) |
-                b_fff(fn) |
-                b_rrrrrrrr(bars[i]));
-            reg[n+1].addr = 0;
-            reg[n+1].size = cpu_to_be64(dev->io_regions[i].size);
-
-            assigned_addresses[n].hi = cpu_to_be32(
-                b_n(1) |
-                b_p(0) |
-                b_t(0) |
-                b_ss(regtype_to_ss(dev->io_regions[i].type)) |
-                b_bbbbbbbb(0) |
-                b_ddddd(devid) |
-                b_fff(fn) |
-                b_rrrrrrrr(bars[i]));
-
-            /*
-             * Writing zeroes to assigned_addresses causes the guest kernel to
-             * reassign BARs
-             */
-            assigned_addresses[n].addr = cpu_to_be64(dev->io_regions[i].addr);
-            assigned_addresses[n].size = reg[n+1].size;
-
-            ++n;
-        }
-        _FDT(fdt_setprop(fdt, node_off, "reg", reg, sizeof(reg[0])*(n+1)));
-        _FDT(fdt_setprop(fdt, node_off, "assigned-addresses",
-                         assigned_addresses,
-                         sizeof(assigned_addresses[0])*(n)));
-        _FDT(fdt_setprop_cell(fdt, node_off, "interrupts",
-                              pci_get_byte(&config[PCI_INTERRUPT_PIN])));
-
-        ++devices;
     }
-
     /* Write interrupt map */
     _FDT(fdt_setprop(fdt, bus_off, "interrupt-map", &interrupt_map,
-                     devices * sizeof(interrupt_map[0])));
+                     7 * sizeof(interrupt_map[0])));
 
     return 0;
 }
diff --git a/pc-bios/README b/pc-bios/README
index 1cebbbc..5dce355 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -17,7 +17,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/dgibson/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20111013.
+  built from git tag qemu-slof-20120111.1.
 
 - sgabios (the Serial Graphics Adapter option ROM) provides a means for
   legacy x86 software to communicate with an attached serial console as
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index 1e84582cc695ff6e5973e045ef31ca951ca15c79..8554f54b5773f0771eec28f6c3bc0dc17e063a47 100644
GIT binary patch
delta 248798
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%0D0J5
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
V3Fp?&UQkzXbN-kq%P)WP{{ywRa3cT!

delta 171289
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

diff --git a/roms/SLOF b/roms/SLOF
index 32e3430..ab062ff 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 32e3430c018ceb8413cb808477449d1968c42497
+Subproject commit ab062ff3b37c39649f2b0d94ed607adc6f6b3c7d
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (20 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 21/26] pseries: SLOF PCI flag day Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  7:22   ` Andreas Färber
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 23/26] MAINTAINERS: Add PCI host bridge files to CHRP machines Alexander Graf
                   ` (4 subsequent siblings)
  26 siblings, 1 reply; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc
  Cc: Blue Swirl, Andreas Färber, qemu-devel Developers,
	Aurelien Jarno

From: Andreas Färber <andreas.faerber@web.de>

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 MAINTAINERS |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index de2a916..a3bdb41 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -93,6 +93,7 @@ F: target-mips/
 
 PowerPC
 M: Alexander Graf <agraf@suse.de>
+L: qemu-ppc@nongnu.org
 S: Maintained
 F: target-ppc/
 
@@ -290,21 +291,25 @@ PowerPC Machines
 ----------------
 405
 M: Alexander Graf <agraf@suse.de>
+L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc405_boards.c
 
 New World
 M: Alexander Graf <agraf@suse.de>
+L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc_newworld.c
 
 Old World
 M: Alexander Graf <agraf@suse.de>
+L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc_oldworld.c
 
 PReP
 M: Andreas Färber <andreas.faerber@web.de>
+L: qemu-ppc@nongnu.org
 S: Odd Fixes
 F: hw/ppc_prep.c
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 23/26] MAINTAINERS: Add PCI host bridge files to CHRP machines
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (21 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 24/26] PPC: Pseries: Check for PCI boundaries Alexander Graf
                   ` (3 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc
  Cc: Blue Swirl, Andreas Färber, qemu-devel Developers,
	Aurelien Jarno

From: Andreas Färber <andreas.faerber@web.de>

Just like prep_pci.c, these were not associated with any MAINTAINERS
section, including PCI.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 MAINTAINERS |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index a3bdb41..f7fc2ba 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -300,12 +300,14 @@ M: Alexander Graf <agraf@suse.de>
 L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc_newworld.c
+F: hw/unin_pci.c
 
 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
 
 PReP
 M: Andreas Färber <andreas.faerber@web.de>
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 24/26] PPC: Pseries: Check for PCI boundaries
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (22 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 23/26] MAINTAINERS: Add PCI host bridge files to CHRP machines Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 25/26] MAINTAINERS: Add PCI-PCI bridge to New World Mac machine Alexander Graf
                   ` (2 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc; +Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno, David Gibson

We call pci_host_config_{read,write}_common() which perform PCI config
accesses. However they don't do all limit checking the way we expect
it to.

So let's introduce a small wrapper around them, making them behave the
way we would without touching generic code.

This patch is based on a patch by David Gibson which put this logic into
the generic code.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/spapr_pci.c |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index cf37628..2c95faa 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -67,6 +67,25 @@ static uint32_t rtas_pci_cfgaddr(uint32_t arg)
     return ((arg >> 20) & 0xf00) | (arg & 0xff);
 }
 
+static uint32_t rtas_read_pci_config_do(PCIDevice *pci_dev, uint32_t addr,
+                                        uint32_t limit, uint32_t len)
+{
+    if ((addr + len) <= limit) {
+        return pci_host_config_read_common(pci_dev, addr, limit, len);
+    } else {
+        return ~0x0;
+    }
+}
+
+static void rtas_write_pci_config_do(PCIDevice *pci_dev, uint32_t addr,
+                                     uint32_t limit, uint32_t val,
+                                     uint32_t len)
+{
+    if ((addr + len) <= limit) {
+        pci_host_config_write_common(pci_dev, addr, limit, val, len);
+    }
+}
+
 static void rtas_ibm_read_pci_config(sPAPREnvironment *spapr,
                                      uint32_t token, uint32_t nargs,
                                      target_ulong args,
@@ -82,7 +101,7 @@ static void rtas_ibm_read_pci_config(sPAPREnvironment *spapr,
     }
     size = rtas_ld(args, 3);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    val = pci_host_config_read_common(dev, addr, pci_config_size(dev), size);
+    val = rtas_read_pci_config_do(dev, addr, pci_config_size(dev), size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
 }
@@ -101,7 +120,7 @@ static void rtas_read_pci_config(sPAPREnvironment *spapr,
     }
     size = rtas_ld(args, 1);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    val = pci_host_config_read_common(dev, addr, pci_config_size(dev), size);
+    val = rtas_read_pci_config_do(dev, addr, pci_config_size(dev), size);
     rtas_st(rets, 0, 0);
     rtas_st(rets, 1, val);
 }
@@ -122,7 +141,7 @@ static void rtas_ibm_write_pci_config(sPAPREnvironment *spapr,
     val = rtas_ld(args, 4);
     size = rtas_ld(args, 3);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    pci_host_config_write_common(dev, addr, pci_config_size(dev), val, size);
+    rtas_write_pci_config_do(dev, addr, pci_config_size(dev), val, size);
     rtas_st(rets, 0, 0);
 }
 
@@ -141,7 +160,7 @@ static void rtas_write_pci_config(sPAPREnvironment *spapr,
     val = rtas_ld(args, 2);
     size = rtas_ld(args, 1);
     addr = rtas_pci_cfgaddr(rtas_ld(args, 0));
-    pci_host_config_write_common(dev, addr, pci_config_size(dev), val, size);
+    rtas_write_pci_config_do(dev, addr, pci_config_size(dev), val, size);
     rtas_st(rets, 0, 0);
 }
 
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 25/26] MAINTAINERS: Add PCI-PCI bridge to New World Mac machine
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (23 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 24/26] PPC: Pseries: Check for PCI boundaries Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 26/26] grackle_pci: Clean up qdev names Alexander Graf
  2012-01-21 20:02 ` [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Blue Swirl
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc
  Cc: Blue Swirl, qemu-devel Developers, Aurelien Jarno,
	Andreas Färber

From: Andreas Färber <afaerber@suse.de>

Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 MAINTAINERS |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index f7fc2ba..87237a6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -301,6 +301,7 @@ L: qemu-ppc@nongnu.org
 S: Maintained
 F: hw/ppc_newworld.c
 F: hw/unin_pci.c
+F: hw/dec_pci.[hc]
 
 Old World
 M: Alexander Graf <agraf@suse.de>
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH 26/26] grackle_pci: Clean up qdev names
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (24 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 25/26] MAINTAINERS: Add PCI-PCI bridge to New World Mac machine Alexander Graf
@ 2012-01-21  4:19 ` Alexander Graf
  2012-01-21 20:02 ` [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Blue Swirl
  26 siblings, 0 replies; 29+ messages in thread
From: Alexander Graf @ 2012-01-21  4:19 UTC (permalink / raw)
  To: qemu-ppc
  Cc: Anthony Liguori, qemu-devel Developers, Blue Swirl,
	Andreas Färber, Aurelien Jarno

From: Andreas Färber <afaerber@suse.de>

Rename SysBus device from 'grackle' to 'grackle-pcihost' to resolve a
name conflict.

Also mark both devices as no_user.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Cc: Alexander Graf <agraf@suse.de>
Cc: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/grackle_pci.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c
index 1e529fb..be10a6d 100644
--- a/hw/grackle_pci.c
+++ b/hw/grackle_pci.c
@@ -71,7 +71,7 @@ PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic,
     SysBusDevice *s;
     GrackleState *d;
 
-    dev = qdev_create(NULL, "grackle");
+    dev = qdev_create(NULL, "grackle-pcihost");
     qdev_init_nofail(dev);
     s = sysbus_from_qdev(dev);
     d = FROM_SYSBUS(GrackleState, s);
@@ -121,9 +121,10 @@ static int grackle_pci_host_init(PCIDevice *d)
     return 0;
 }
 
-static PCIDeviceInfo grackle_pci_host_info = {
+static PCIDeviceInfo grackle_pci_info = {
     .qdev.name = "grackle",
     .qdev.size = sizeof(PCIDevice),
+    .qdev.no_user = 1,
     .init      = grackle_pci_host_init,
     .vendor_id = PCI_VENDOR_ID_MOTOROLA,
     .device_id = PCI_DEVICE_ID_MOTOROLA_MPC106,
@@ -131,11 +132,17 @@ static PCIDeviceInfo grackle_pci_host_info = {
     .class_id  = PCI_CLASS_BRIDGE_HOST,
 };
 
+static SysBusDeviceInfo grackle_pci_host_info = {
+    .qdev.name = "grackle-pcihost",
+    .qdev.size = sizeof(GrackleState),
+    .qdev.no_user = 1,
+    .init = pci_grackle_init_device,
+};
+
 static void grackle_register_devices(void)
 {
-    sysbus_register_dev("grackle", sizeof(GrackleState),
-                        pci_grackle_init_device);
-    pci_qdev_register(&grackle_pci_host_info);
+    sysbus_register_withprop(&grackle_pci_host_info);
+    pci_qdev_register(&grackle_pci_info);
 }
 
 device_init(grackle_register_devices)
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff Alexander Graf
@ 2012-01-21  7:22   ` Andreas Färber
  0 siblings, 0 replies; 29+ messages in thread
From: Andreas Färber @ 2012-01-21  7:22 UTC (permalink / raw)
  To: Alexander Graf
  Cc: Blue Swirl, Andreas Färber, qemu-ppc, qemu-devel Developers,
	Aurelien Jarno

Am 21.01.2012 05:19, schrieb Alexander Graf:
> From: Andreas Färber <andreas.faerber@web.de>
> 
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
> Cc: Alexander Graf <agraf@suse.de>
> Signed-off-by: Alexander Graf <agraf@suse.de>

Patches 22, 23 and 26 have a "duplicate" Cc: line. You may want to fix
on your branch.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21
  2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
                   ` (25 preceding siblings ...)
  2012-01-21  4:19 ` [Qemu-devel] [PATCH 26/26] grackle_pci: Clean up qdev names Alexander Graf
@ 2012-01-21 20:02 ` Blue Swirl
  26 siblings, 0 replies; 29+ messages in thread
From: Blue Swirl @ 2012-01-21 20:02 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-ppc, qemu-devel Developers, Aurelien Jarno

On Sat, Jan 21, 2012 at 04:18, Alexander Graf <agraf@suse.de> wrote:
> Hi Anthony / Aurelien / Blue,
>
> This is my current patch queue for ppc. Please pull.

Thanks, pulled.

> Alex
>
>
> The following changes since commit 515689235c4c3d9c3f0406ddcdd21ed8da77062b:
>  Anthony Liguori (1):
>        Merge remote-tracking branch 'spice/spice.v47' into staging
>
> are available in the git repository at:
>
>  git://repo.or.cz/qemu/agraf.git for-upstream
>
> Alexander Graf (14):
>      PPC: 440EP: Initialize timer
>      PPC: Bamboo: Register CPU reset
>      PPC: Bamboo: Set initial TLB entry
>      PPC: 440: Ignore invalid PCI IRQs
>      PPC: Bamboo: recompile device tree
>      PPC: 440: Default to 440EP CPU
>      PPC: Enable 440EP CPU target
>      PPC: bamboo: remove old machine descriptions
>      PPC: bamboo: fix whitespace
>      PPC: 4xx: Qdevify the 440 PCI host controller
>      PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file
>      PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI
>      virtio: change memcpy to guest reads
>      PPC: Pseries: Check for PCI boundaries
>
> Andreas Färber (4):
>      MAINTAINERS: Add qemu-ppc to all ppc target stuff
>      MAINTAINERS: Add PCI host bridge files to CHRP machines
>      MAINTAINERS: Add PCI-PCI bridge to New World Mac machine
>      grackle_pci: Clean up qdev names
>
> Benjamin Herrenschmidt (5):
>      virtio-pci: Fix endianness of virtio config
>      load_image_targphys() should enforce the max size
>      Fix dirty logging with 32-bit qemu & 64-bit guests
>      pseries: Support PCI extended config space in RTAS calls
>      pseries: SLOF PCI flag day
>
> David Gibson (3):
>      Update gitignore file
>      Correct types in bmdma_addr_{read,write}
>      pseries: Use correct dispatcher for PCI config space accesses
>
>  .gitignore                  |    4 +
>  MAINTAINERS                 |    8 ++
>  Makefile.target             |    2 +-
>  exec.c                      |   14 ++++
>  hw/grackle_pci.c            |   17 +++-
>  hw/ide/pci.c                |    4 +-
>  hw/loader.c                 |    6 +-
>  hw/ppc440.c                 |  106 --------------------------
>  hw/ppc440.h                 |   21 -----
>  hw/ppc440_bamboo.c          |  154 ++++++++++++++++++++++++++++++---------
>  hw/ppc4xx_pci.c             |  129 +++++++++++++++++---------------
>  hw/spapr.c                  |  135 ++++++++++++++++++++++-----------
>  hw/spapr_pci.c              |  173 +++++++++++--------------------------------
>  hw/virtex_ml507.c           |    1 -
>  hw/virtio-pci.c             |   28 +++++++-
>  hw/virtio.c                 |   12 ++--
>  kvm-all.c                   |    3 +-
>  pc-bios/README              |    2 +-
>  pc-bios/bamboo.dtb          |  Bin 3179 -> 3211 bytes
>  pc-bios/bamboo.dts          |  128 ++++++++++++--------------------
>  pc-bios/slof.bin            |  Bin 738744 -> 869584 bytes
>  roms/SLOF                   |    2 +-
>  target-ppc/translate_init.c |   16 +---
>  23 files changed, 458 insertions(+), 507 deletions(-)
>  delete mode 100644 hw/ppc440.c
>  delete mode 100644 hw/ppc440.h

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2012-01-21 20:03 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-21  4:18 [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 01/26] PPC: 440EP: Initialize timer Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 02/26] PPC: Bamboo: Register CPU reset Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 03/26] PPC: Bamboo: Set initial TLB entry Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 04/26] PPC: 440: Ignore invalid PCI IRQs Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 05/26] PPC: Bamboo: recompile device tree Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 06/26] PPC: 440: Default to 440EP CPU Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 07/26] PPC: Enable 440EP CPU target Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 08/26] PPC: bamboo: remove old machine descriptions Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 09/26] PPC: bamboo: fix whitespace Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 10/26] PPC: 4xx: Qdevify the 440 PCI host controller Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 11/26] PPC: Bamboo: fold ppc440.c and ppc440_bamboo.c into a single file Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 12/26] PPC: Bamboo: Integrate SoC instatiation, use qdev for PCI Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 13/26] virtio-pci: Fix endianness of virtio config Alexander Graf
2012-01-21  4:18 ` [Qemu-devel] [PATCH 14/26] virtio: change memcpy to guest reads Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 15/26] load_image_targphys() should enforce the max size Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 16/26] Fix dirty logging with 32-bit qemu & 64-bit guests Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 17/26] Update gitignore file Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 18/26] Correct types in bmdma_addr_{read, write} Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 19/26] pseries: Support PCI extended config space in RTAS calls Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 20/26] pseries: Use correct dispatcher for PCI config space accesses Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 21/26] pseries: SLOF PCI flag day Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 22/26] MAINTAINERS: Add qemu-ppc to all ppc target stuff Alexander Graf
2012-01-21  7:22   ` Andreas Färber
2012-01-21  4:19 ` [Qemu-devel] [PATCH 23/26] MAINTAINERS: Add PCI host bridge files to CHRP machines Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 24/26] PPC: Pseries: Check for PCI boundaries Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 25/26] MAINTAINERS: Add PCI-PCI bridge to New World Mac machine Alexander Graf
2012-01-21  4:19 ` [Qemu-devel] [PATCH 26/26] grackle_pci: Clean up qdev names Alexander Graf
2012-01-21 20:02 ` [Qemu-devel] [PULL 00/26] ppc patch queue 2012-01-21 Blue Swirl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).