Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp3263495imj; Mon, 18 Feb 2019 23:54:37 -0800 (PST) X-Google-Smtp-Source: AHgI3IZlbVtpgsbmVxwiioyMgp98GX/P05U1yzmrVgKeSqRyXnbtMZUI6ol1AuH/oHZtXQAgs3bw X-Received: by 2002:a62:3a01:: with SMTP id h1mr27503270pfa.169.1550562877449; Mon, 18 Feb 2019 23:54:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550562877; cv=none; d=google.com; s=arc-20160816; b=kNuZr705HtrsrPr4CGJs7jqS3UEPFHm5/9QAfWLkyPMEaeYdos3oC9TLDs7kovfXld Ij2ADAKY+4Ptg+CaiOA51YAX0430h8hc5o3ln8vRch4IhAkj5DskQ1fqpXWDEZtVIO7T yMxidMhNj9DnOxE7RUKPHnYo7KVtX2sSs9TL60XJ50crVSWtN2I/7BOOcTG/A+sKR072 7UWNmq7DHfYgfusKLrFDSG3nwJfdbBae82e8x1O35Kbu8/b+cjwokS3YjXsUXwJtSrJP 08vyZT4ngWgYkjZmaycRD9hwntcehO0yIw0hE7np4U/wm9juU55B0ipymiCFhb/4BVH2 zimg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=4ksloADNn4y4YxoX0zLuizUK0K/xl2FkKls2KExU4o4=; b=pC0rq4FWyKeE3hSagwfDppj27qT6myZJW1UYW1SBkTH/44PPbVtBs6X0o9Mdjp25q/ tL24yCbnu95XnjKaX4U4n+zka7lf9LAwjx4xJwgGWWiooWkKzTpVjko++9QCY8J4iGMu GVFXDabcDSqgCOdNzndCK79vggGCvsmPZYO793h564xe0phADQ0NsRKmo5dozHOtVHLL 7/PMr18OIcsHxumpR6QdnHwH4/OrVA8yTWdMxpitCTlu/4+3ZOpMLu0LqoB98xoBoiZu 48AzBrrtlQ5BvxH/28rmBhkKeRycDavBFh6WtgppMyMwaSwZ5+xtfvcy4sUJTA9ZvxST jYJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b2si10527240pgq.275.2019.02.18.23.54.22; Mon, 18 Feb 2019 23:54:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727410AbfBSHwa (ORCPT + 99 others); Tue, 19 Feb 2019 02:52:30 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:42618 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725768AbfBSHwa (ORCPT ); Tue, 19 Feb 2019 02:52:30 -0500 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id C76BD26DA90; Tue, 19 Feb 2019 07:52:27 +0000 (GMT) Date: Tue, 19 Feb 2019 08:52:24 +0100 From: Boris Brezillon To: Vignesh R Cc: David Woodhouse , Brian Norris , Marek Vasut , Richard Weinberger , Rob Herring , Greg Kroah-Hartman , Arnd Bergmann , , , , , , , Mason Yang , Sergei Shtylyov Subject: Re: [RFC PATCH 0/5] MTD: Add Initial Hyperbus support Message-ID: <20190219085212.355921e5@kernel.org> In-Reply-To: <20190219063607.29949-1-vigneshr@ti.com> References: <20190219063607.29949-1-vigneshr@ti.com> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org +Sergei and Mason who recently worked on an HyperFlash controller. On Tue, 19 Feb 2019 12:06:02 +0530 Vignesh R wrote: > Cypress HyperBus is Low Signal Count, High Performance Double Data Rate Bus > interface between a host system master and one or more slave interfaces. > HyperBus is used to connect microprocessor, microcontroller, or ASIC > devices with random access NOR flash memory(called HyperFlash) or > self refresh DRAM(called HyperRAM). > > Its a 8-bit data bus (DQ[7:0]) with Read-Write Data Strobe (RWDS) > signal and either Single-ended clock(3.0V parts) or Differential clock > (1.8V parts). It uses ChipSelect lines to select b/w multiple slaves. > At bus level, it follows a separate protocol described in HyperBus > specification[1]. > > HyperFlash follows CFI AMD/Fujitsu Extended Command Set (0x0002) similar > to that of existing parallel NORs. Since Hyperbus is x8 DDR bus, > its equivalent to x16 parallel NOR flash wrt bits per clk. But Hyperbus > operates at >166MHz frequencies. > HyperRAM provides direct random read/write access to flash memory > array. > Framework is modelled along the lines of spi-nor framework. HyperBus > memory controller(HBMC) drivers call hb_register_device() to register a > single HyperFlash device. HyperFlash core parses MMIO access > information from DT, sets up the map_info struct, probes CFI flash and > registers it with MTD framework. > > This is an early RFC, to know if its okay to use maps framework and existing > CFI compliant flash support code to support Hyperflash > Also would like input on different types of HBMC master IPs out there > and their programming sequences. > Would appreciate any testing/review. > > Tested on modified TI AM654 EVM with Cypress Hyperflash S26KS512 by > creating a UBIFS partition and writing and reading files to it. > Stress tested by writing/reading 16MB flash repeatedly at different > offsets using dd commmand. > > HyperBus specification can be found at[1] > HyperFlash datasheet can be found at[2] > TI's HBMC controller details at[3] > > [1] https://www.cypress.com/file/213356/download > [2] https://www.cypress.com/file/213346/download > [3] http://www.ti.com/lit/ug/spruid7b/spruid7b.pdf > Table 12-5741. HyperFlash Access Sequence > > Vignesh R (5): > mtd: cfi_cmdset_0002: Add support for polling status register > dt-bindings: mtd: Add binding documentation for Hyperbus memory > devices > mtd: Add support for Hyperbus memory devices > dt-bindings: mtd: Add bindings for TI's AM654 Hyperbus memory > controller > mtd: hyperbus: Add driver for TI's Hyperbus memory controller > > .../bindings/mtd/cypress,hyperbus.txt | 6 + > .../devicetree/bindings/mtd/ti,am654-hbmc.txt | 27 +++ > MAINTAINERS | 8 + > drivers/mtd/Kconfig | 2 + > drivers/mtd/Makefile | 1 + > drivers/mtd/chips/cfi_cmdset_0002.c | 50 ++++++ > drivers/mtd/hyperbus/Kconfig | 23 +++ > drivers/mtd/hyperbus/Makefile | 4 + > drivers/mtd/hyperbus/core.c | 167 ++++++++++++++++++ > drivers/mtd/hyperbus/hbmc_am654.c | 105 +++++++++++ > include/linux/mtd/cfi.h | 5 + > include/linux/mtd/hyperbus.h | 73 ++++++++ > 12 files changed, 471 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mtd/cypress,hyperbus.txt > create mode 100644 Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt > create mode 100644 drivers/mtd/hyperbus/Kconfig > create mode 100644 drivers/mtd/hyperbus/Makefile > create mode 100644 drivers/mtd/hyperbus/core.c > create mode 100644 drivers/mtd/hyperbus/hbmc_am654.c > create mode 100644 include/linux/mtd/hyperbus.h >