From patchwork Mon Jun 4 08:08:23 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peter A. G. Crosthwaite" X-Patchwork-Id: 162675 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 83E9CB7077 for ; Mon, 4 Jun 2012 18:18:46 +1000 (EST) Received: from localhost ([::1]:45791 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SbSM4-0004hN-Ou for incoming@patchwork.ozlabs.org; Mon, 04 Jun 2012 04:09:36 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48439) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SbSLW-0003Fe-MB for qemu-devel@nongnu.org; Mon, 04 Jun 2012 04:09:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SbSLU-0002lb-JB for qemu-devel@nongnu.org; Mon, 04 Jun 2012 04:09:02 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:58258) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SbSLU-0002i3-DC for qemu-devel@nongnu.org; Mon, 04 Jun 2012 04:09:00 -0400 Received: by mail-pb0-f45.google.com with SMTP id ro12so6151366pbb.4 for ; Mon, 04 Jun 2012 01:08:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :in-reply-to:references:x-gm-message-state; bh=WaOGQU0xD4vMoup7x1i6zL1XyRaqc9U+1azibPipOjo=; b=YN394P6Tjd/T5sXpY2DYhzGQWUJ3VoBwLXTM+eTqjrR01chaHFmW6e2BMsyrpanejQ jDb8FOTty5IFsH3XFTcavHldPWZjpd2Fl0PXf6bcQCOiUGaBj8OCmEmvjGIwXdtbI/yQ 5mWjuxE0Kn3xEfpaiAu1uLJ4UnMZgLHqGATyGqMIYF0DC/oI6PaxyWdYs6iW89eNx6RU Z6Sh+Cy/dqqeIJNs8xO46OBTFjfaD92d7eBWpQekeNpaBaeh3FUqWTwg4fvdXzaAQjxY FNYlayCyycbeC6vC7bJCeiqZ0fTfQuWfuK1QsmYAugi7cChH8mvb7o0gTN9CnMT9ZxDA axVQ== Received: by 10.68.228.200 with SMTP id sk8mr36898092pbc.94.1338797339439; Mon, 04 Jun 2012 01:08:59 -0700 (PDT) Received: from localhost ([124.148.20.9]) by mx.google.com with ESMTPS id qz6sm8183122pbc.64.2012.06.04.01.08.55 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 04 Jun 2012 01:08:58 -0700 (PDT) From: "Peter A. G. Crosthwaite" To: qemu-devel@nongnu.org, paul@codesourcery.com, edgar.iglesias@gmail.com, peter.maydell@linaro.org, stefanha@gmail.com Date: Mon, 4 Jun 2012 18:08:23 +1000 Message-Id: <84bd86099ed90a7706cef55d740a0e3da1592d3a.1338796049.git.peter.crosthwaite@petalogix.com> X-Mailer: git-send-email 1.7.3.2 In-Reply-To: References: In-Reply-To: References: X-Gm-Message-State: ALoCoQkcgGe93T/RJyag7oGu+Gn8gLURkDM88M7PJSlQanWc7mYN+iyRjBfBng7JsM3Tf+H7CLai X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.160.45 Cc: peter.crosthwaite@petalogix.com, john.williams@petalogix.com Subject: [Qemu-devel] [PATCH V4 4/5] petalogix-ml605: added spi controller with m25p80 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Added spi controller to the reference design, with a single cs line and a m25p80 style spi-flash connected Signed-off-by: Peter A. G. Crosthwaite --- changed from v3: set spi flashes as being fl06k changed from v2: changed spi -> ssi added two spi flashes to machine model instead of one default-configs/microblaze-softmmu.mak | 1 + default-configs/microblazeel-softmmu.mak | 1 + hw/petalogix_ml605_mmu.c | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 0 deletions(-) diff --git a/default-configs/microblaze-softmmu.mak b/default-configs/microblaze-softmmu.mak index 613edab..e9f2a29 100644 --- a/default-configs/microblaze-softmmu.mak +++ b/default-configs/microblaze-softmmu.mak @@ -3,3 +3,4 @@ CONFIG_PTIMER=y CONFIG_PFLASH_CFI01=y CONFIG_SERIAL=y +CONFIG_SSI=y diff --git a/default-configs/microblazeel-softmmu.mak b/default-configs/microblazeel-softmmu.mak index 4b40fb2..00c1a87 100644 --- a/default-configs/microblazeel-softmmu.mak +++ b/default-configs/microblazeel-softmmu.mak @@ -3,3 +3,4 @@ CONFIG_PTIMER=y CONFIG_PFLASH_CFI01=y CONFIG_SERIAL=y +CONFIG_SSI=y diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c index 31a4348..01af0da 100644 --- a/hw/petalogix_ml605_mmu.c +++ b/hw/petalogix_ml605_mmu.c @@ -36,6 +36,7 @@ #include "blockdev.h" #include "pc.h" #include "exec-memory.h" +#include "ssi.h" #include "microblaze_boot.h" #include "microblaze_pic_cpu.h" @@ -54,6 +55,8 @@ #define AXIENET_BASEADDR 0x82780000 #define AXIDMA_BASEADDR 0x84600000 +#define NUM_SPI_FLASHES 2 + static void machine_cpu_reset(CPUMBState *env) { env->pvr.regs[10] = 0x0e000000; /* virtex 6 */ @@ -75,6 +78,7 @@ petalogix_ml605_init(ram_addr_t ram_size, { MemoryRegion *address_space_mem = get_system_memory(); DeviceState *dev; + SysBusDevice *busdev; CPUMBState *env; DriveInfo *dinfo; int i; @@ -131,6 +135,25 @@ petalogix_ml605_init(ram_addr_t ram_size, irq[1], irq[0], 100 * 1000000); } + { + void *spi; + + dev = qdev_create(NULL, "xilinx,spi"); + qdev_prop_set_uint8(dev, "num-cs", NUM_SPI_FLASHES); + qdev_init_nofail(dev); + busdev = sysbus_from_qdev(dev); + sysbus_mmio_map(busdev, 0, 0x40a00000); + sysbus_connect_irq(busdev, 0, irq[4]); + + spi = qdev_get_child_bus(dev, "spi"); + + for (i = 0; i < NUM_SPI_FLASHES; i++) { + dev = ssi_create_slave_no_init(spi, "m25p80", i); + qdev_prop_set_string(dev, "partname", (char *)"s25fl064k"); + qdev_init_nofail(dev); + } + } + microblaze_load_kernel(env, ddr_base, ram_size, BINARY_DEVICE_TREE_FILE, machine_cpu_reset);