From patchwork Wed Jul 18 19:03:39 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 402jagan@gmail.com X-Patchwork-Id: 171812 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 DAA422C00B7 for ; Thu, 19 Jul 2012 05:08:53 +1000 (EST) Received: from localhost ([::1]:48417 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrZcB-00012T-Kp for incoming@patchwork.ozlabs.org; Wed, 18 Jul 2012 15:08:51 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39018) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <402jagan@gmail.com>) id 1SrZc2-00012O-VD for qemu-devel@nongnu.org; Wed, 18 Jul 2012 15:08:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <402jagan@gmail.com>) id 1SrZc2-0006Bu-1u for qemu-devel@nongnu.org; Wed, 18 Jul 2012 15:08:42 -0400 Received: from mail-gg0-f173.google.com ([209.85.161.173]:42879) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <402jagan@gmail.com>) id 1SrZc1-0006Bm-Tn for qemu-devel@nongnu.org; Wed, 18 Jul 2012 15:08:41 -0400 Received: by ggnp1 with SMTP id p1so2041051ggn.4 for ; Wed, 18 Jul 2012 12:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=jGirHPyEeQ4KDDXhgzR/FW7GojO0gBkHA26AzU2i7lM=; b=IbXam1Uj5t72yy3xuzzj+uXa6k4S9zoVCwFOS/FG9xI30x0rfayDsa6GdnVXXPbTYy ClFPqNHpNNAR1jBLAhhtWB3GvXpsSFQVonpCLCmKWhEG0CMMe7TPe0mi7YKKC/ybnjMg ZZ395eJyX4apxWbukGnV3GC5K8vjPRmAjcYvGoRwj5Ix65su3aG13QQU77FBf0plSPpL 71aolVsLVTHV1yFJC6J+4+wb9LQiBm2o2y1lIzFwDEL66K9epTHffFmLMgWy31XRJ0uA 3NCApIKp20LJWYGKbgep7OGb8DtMRwi8ABtHMYny4lunVd00LJcx1se3EycdZwpZvjJx oe1g== Received: by 10.66.75.228 with SMTP id f4mr2015815paw.52.1342638521093; Wed, 18 Jul 2012 12:08:41 -0700 (PDT) Received: from localhost.localdomain ([106.77.121.72]) by mx.google.com with ESMTPS id wf7sm121201pbc.34.2012.07.18.12.08.34 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 18 Jul 2012 12:08:40 -0700 (PDT) From: 402jagan@gmail.com To: qemu-devel@nongnu.org Date: Thu, 19 Jul 2012 00:33:39 +0530 Message-Id: <1342638220-3600-2-git-send-email-402jagan@gmail.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1342638220-3600-1-git-send-email-402jagan@gmail.com> References: <1342638220-3600-1-git-send-email-402jagan@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.161.173 Cc: Jagan <402jagan@gmail.com>, peter.maydell@linaro.org Subject: [Qemu-devel] [PATCH 1/2] vexpress: Add NOR0 Flash support 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 From: Jagan <402jagan@gmail.com> This patch adds support for NOR0 flash (Bank #1) on vexpress-a9 platform. It is 64MB CFI01 compliant flash. Tested on stable u-boot version through Linux. Signed-off-by: Jagan <402jagan@gmail.com> --- hw/vexpress.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/hw/vexpress.c b/hw/vexpress.c index 8072c5a..2e889a8 100644 --- a/hw/vexpress.c +++ b/hw/vexpress.c @@ -29,6 +29,11 @@ #include "sysemu.h" #include "boards.h" #include "exec-memory.h" +#include "blockdev.h" +#include "flash.h" + +#define VEXPRESS_FLASH_SIZE (64 * 1024 * 1024) +#define VEXPRESS_FLASH_SECT_SIZE (256 * 1024) #define VEXPRESS_BOARD_ID 0x8e0 @@ -355,6 +360,7 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard, MemoryRegion *vram = g_new(MemoryRegion, 1); MemoryRegion *sram = g_new(MemoryRegion, 1); const target_phys_addr_t *map = daughterboard->motherboard_map; + DriveInfo *dinfo; daughterboard->init(daughterboard, ram_size, cpu_model, pic, &proc_id); @@ -405,7 +411,16 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard, sysbus_create_simple("pl111", map[VE_CLCD], pic[14]); - /* VE_NORFLASH0: not modelled */ + /* VE_NORFLASH0: */ + dinfo = drive_get(IF_PFLASH, 0, 0); + if (!pflash_cfi01_register(map[VE_NORFLASH0], NULL, "vexpress.flash0", + VEXPRESS_FLASH_SIZE, dinfo ? dinfo->bdrv : NULL, + VEXPRESS_FLASH_SECT_SIZE, + VEXPRESS_FLASH_SIZE / VEXPRESS_FLASH_SECT_SIZE, + 4, 0x0089, 0x0018, 0x0000, 0x0, 0)) { + fprintf(stderr, "qemu: Error registering flash0 memory.\n"); + } + /* VE_NORFLASH0ALIAS: not modelled */ /* VE_NORFLASH1: not modelled */