From patchwork Wed Sep 13 02:00:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 813120 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rlKvjnS/"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xsPs613BGz9sPs for ; Wed, 13 Sep 2017 11:56:10 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id C900BC22143; Wed, 13 Sep 2017 01:56:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8205DC21E71; Wed, 13 Sep 2017 01:56:03 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id CEBE7C21E71; Wed, 13 Sep 2017 01:56:02 +0000 (UTC) Received: from mail-io0-f195.google.com (mail-io0-f195.google.com [209.85.223.195]) by lists.denx.de (Postfix) with ESMTPS id 7FCF6C21C57 for ; Wed, 13 Sep 2017 01:56:01 +0000 (UTC) Received: by mail-io0-f195.google.com with SMTP id g32so8222287ioj.1 for ; Tue, 12 Sep 2017 18:56:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=HBER6l0qCexV5odyi1fxgKl4m9m+C/VIheyfScb5B9U=; b=rlKvjnS/OSg7gFqdXo3DYzdnv+stg3qcF16K45OVQ1ZUcs0DKmF6wm9vqOkyLVhLD7 gjqZX/dPpZB6BL5orZnL4pcjKvMk9tXc+E4KAHD6PNlaSLYy9gSIWSXRDSfEWY1shpIj 0bLc8kHyEtXhnd8BH0hGFTCR+asz9yXtyQ3mVB3PsQQaubl2KI3V8bcCyWjS7c98Ek0U eSwnVpzMdeUvMdIGhPtyZ7O2qeQo5bjEW4gSwj9HLw/9EQHLouVSL2GfSw152UCJINXH tDo2gLG7tGBpHzMazbjY6KhJIXr8isO+TbZkv5S+q3Qynemr/E3OLgZqVP6H167NMXTu NMHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=HBER6l0qCexV5odyi1fxgKl4m9m+C/VIheyfScb5B9U=; b=nAM2BPRk7eBKDtISvuuR/vmOTOpJOpDDVL2fCooxvKn+Vs8SS8E5RUQDxRqtUrZM+I odrv6/Pu3MZyxTfZ/7EFfSFIsRu28LMoTBJh7k6dhwhnq2Uhiizobo1aZi+YfQtu0DBM Mbgjld7P8VX4QJeLXOUWH7KsT7z01jVJiHS/V0geIt7yu4cuZvJreJ8ak7W/HCOgqOoq u+SLqobZLxV3Gw0TbxiFJGOBsogBPmoUdfkQvY+VyddN2cF5fZzKS8CcQFC33cjt7aom LljolEi7c9kGqB/sU9Cpxj2fw5LDWJUOMNaQXib43rZxka+AYhw6bDfHaxxwRzQa8UzB bDNw== X-Gm-Message-State: AHPjjUixWbwVTnfExMWyq3+nYlqONDNxXuIYETLBm4oL+5myfnKS5WM0 VdeYhAYXXMLy4w== X-Google-Smtp-Source: AOwi7QDMs07gHdz5ryU1MWexPUR2hDbQCXgFCGsO2Hsxh8I9TzwIQMp5aSuvfeKMJ000t0lPIPT3XQ== X-Received: by 10.107.84.3 with SMTP id i3mr6072466iob.52.1505267760016; Tue, 12 Sep 2017 18:56:00 -0700 (PDT) Received: from ala-d2121-lx1.wrs.com (unknown-156-139.windriver.com. [147.11.156.139]) by smtp.gmail.com with ESMTPSA id v5sm3575372iob.5.2017.09.12.18.55.58 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 12 Sep 2017 18:55:59 -0700 (PDT) From: Bin Meng To: Tom Rini , U-Boot Mailing List Date: Tue, 12 Sep 2017 19:00:23 -0700 Message-Id: <1505268023-23047-1-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.9.5 Subject: [U-Boot] [PATCH v2] blk: Remove various places that do flush cache after read X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" All these places seem to inherit the codes from the MMC driver where a FIXME was put in the comment. However the correct operation after read should be cache invalidate, not flush. The underlying drivers should be responsible for the cache operation. Remove these codes completely. Signed-off-by: Bin Meng Reviewed-by: Stefan Roese Reviewed-by: York Sun Reviewed-by: Joe Hershberger Reviewed-by: Simon Glass Tested-by: York Sun --- Changes in v2: - rebase on top of u-boot/master arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 15 --------------- board/toradex/common/tdx-cfg-block.c | 2 -- cmd/mmc.c | 2 -- drivers/block/blk-uclass.c | 3 --- drivers/block/blk_legacy.c | 3 --- drivers/net/fm/fm.c | 2 -- drivers/net/phy/cortina.c | 2 -- drivers/qe/qe.c | 2 -- 8 files changed, 31 deletions(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c index 24ddb5d..bbf8bba 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c @@ -107,9 +107,6 @@ int ppa_init(void) return -EIO; } - /* flush cache after read */ - flush_cache((ulong)fitp, cnt * 512); - ret = fdt_check_header(fitp); if (ret) { free(fitp); @@ -134,9 +131,6 @@ int ppa_init(void) } debug("Read PPA header to 0x%p\n", ppa_hdr_ddr); - /* flush cache after read */ - flush_cache((ulong)ppa_hdr_ddr, cnt * 512); - ppa_esbc_hdr = (uintptr_t)ppa_hdr_ddr; #endif @@ -164,9 +158,6 @@ int ppa_init(void) return -EIO; } - /* flush cache after read */ - flush_cache((ulong)ppa_fit_addr, cnt * 512); - #elif defined(CONFIG_SYS_LS_PPA_FW_IN_NAND) struct fdt_header fit; @@ -208,9 +199,6 @@ int ppa_init(void) } debug("Read PPA header to 0x%p\n", ppa_hdr_ddr); - /* flush cache after read */ - flush_cache((ulong)ppa_hdr_ddr, fw_length); - ppa_esbc_hdr = (uintptr_t)ppa_hdr_ddr; #endif @@ -232,9 +220,6 @@ int ppa_init(void) CONFIG_SYS_LS_PPA_FW_ADDR); return -EIO; } - - /* flush cache after read */ - flush_cache((ulong)ppa_fit_addr, fw_length); #else #error "No CONFIG_SYS_LS_PPA_FW_IN_xxx defined" #endif diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 328c4c0..f850a3c 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -129,8 +129,6 @@ static int tdx_cfg_block_mmc_storage(u8 *config_block, int write) ret = -EIO; goto out; } - /* Flush cache after read */ - flush_cache((ulong)(unsigned char *)config_block, 512); } else { /* Just writing one 512 byte block */ if (blk_dwrite(mmc_get_blk_desc(mmc), blk_start, 1, diff --git a/cmd/mmc.c b/cmd/mmc.c index 00697fc..5def4ea 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -293,8 +293,6 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, curr_device, blk, cnt); n = blk_dread(mmc_get_blk_desc(mmc), blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); /* FIXME */ printf("%d blocks read: %s\n", n, (n == cnt) ? "OK" : "ERROR"); return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index aee2a50..537cf5f 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -294,9 +294,6 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start, if (IS_ERR_VALUE(n)) return n; - /* flush cache after read */ - flush_cache((ulong)buffer, blkcnt * desc->blksz); - return n; } diff --git a/drivers/block/blk_legacy.c b/drivers/block/blk_legacy.c index 981872e..16d3bfe 100644 --- a/drivers/block/blk_legacy.c +++ b/drivers/block/blk_legacy.c @@ -232,9 +232,6 @@ ulong blk_read_devnum(enum if_type if_type, int devnum, lbaint_t start, if (IS_ERR_VALUE(n)) return n; - /* flush cache after read */ - flush_cache((ulong)buffer, blkcnt * desc->blksz); - return n; } diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c index 451dfde..261f1b9 100644 --- a/drivers/net/fm/fm.c +++ b/drivers/net/fm/fm.c @@ -405,8 +405,6 @@ int fm_init_common(int index, struct ccsr_fman *reg) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #elif defined(CONFIG_SYS_QE_FMAN_FW_IN_REMOTE) void *addr = (void *)CONFIG_SYS_FMAN_FW_ADDR; diff --git a/drivers/net/phy/cortina.c b/drivers/net/phy/cortina.c index e0e9ed9..637d89a 100644 --- a/drivers/net/phy/cortina.c +++ b/drivers/net/phy/cortina.c @@ -177,8 +177,6 @@ void cs4340_upload_firmware(struct phy_device *phydev) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #endif diff --git a/drivers/qe/qe.c b/drivers/qe/qe.c index 8151068..5366a1e 100644 --- a/drivers/qe/qe.c +++ b/drivers/qe/qe.c @@ -221,8 +221,6 @@ void u_qe_init(void) mmc_init(mmc); (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, addr); - /* flush cache after read */ - flush_cache((ulong)addr, cnt * 512); } #endif if (!u_qe_upload_firmware(addr))