From: dinesh.maniyam@intel.com
To: u-boot@lists.denx.de
Cc: Marek <marex@denx.de>, Simon <simon.k.r.goldschmidt@gmail.com>,
Tom Rini <trini@konsulko.com>,
Dario Binacchi <dario.binacchi@amarulasolutions.com>,
Michael Trimarchi <michael@amarulasolutions.com>,
Johan Jonker <jbx6244@gmail.com>,
Michal Simek <michal.simek@amd.com>,
Arseniy Krasnov <avkrasnov@salutedevices.com>,
Alexander Dahl <ada@thorsis.com>,
William Zhang <william.zhang@broadcom.com>,
Igor Prusov <ivprusov@salutedevices.com>,
Tien Fong <tien.fong.chee@intel.com>,
Kok Kiang <kok.kiang.hea@intel.com>,
Dinesh <dinesh.maniyam@intel.com>,
Boon Khai <boon.khai.ng@intel.com>,
Alif <alif.zakuan.yuslaimi@intel.com>,
Teik Heng <teik.heng.chong@intel.com>,
Hazim <muhammad.hazim.izzat.zamri@intel.com>,
Tingting Meng <tingting.meng@intel.com>,
Jit Loon Lim <jit.loon.lim@intel.com>,
Sieu Mun Tang <sieu.mun.tang@intel.com>
Subject: [PATCH 05/19] drivers: mtd: nand: cadence: Add support for read status command
Date: Thu, 19 Sep 2024 11:54:58 +0800 [thread overview]
Message-ID: <20240919035512.13854-6-dinesh.maniyam@intel.com> (raw)
In-Reply-To: <20240919035512.13854-1-dinesh.maniyam@intel.com>
From: Dinesh Maniyam <dinesh.maniyam@intel.com>
This patch will add support for read status command
in Cadence NAND driver. This status bit is important to check
whether the flash is write-protected.
Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
---
drivers/mtd/nand/raw/cadence_nand.c | 46 ++++++++++++++++++++++++++++-
include/cadence-nand.h | 2 ++
2 files changed, 47 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/cadence_nand.c b/drivers/mtd/nand/raw/cadence_nand.c
index f9f28c392b..670f5ca184 100644
--- a/drivers/mtd/nand/raw/cadence_nand.c
+++ b/drivers/mtd/nand/raw/cadence_nand.c
@@ -343,6 +343,7 @@ static int cadence_nand_generic_cmd_send(struct cadence_nand_info *cadence,
/* Issue command. */
writel_relaxed(reg, cadence->reg + CMD_REG0);
+ cadence->buf_index = 0;
return 0;
}
@@ -1902,9 +1903,42 @@ static void cadence_nand_select_chip(struct mtd_info *mtd, int chipnr)
}
}
+static int cadence_nand_status(struct mtd_info *mtd, unsigned int command)
+{
+ struct cadence_nand_info *cadence = mtd_to_cadence(mtd);
+ int ret = 0;
+
+ ret = cadence_nand_cmd_opcode(cadence, command);
+ if (ret)
+ return ret;
+
+ ret = cadence_nand_cmd_data(cadence, 1, GCMD_DIR_READ);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static void cadence_nand_cmdfunc(struct mtd_info *mtd, unsigned int command,
int offset_in_page, int page)
{
+ struct cadence_nand_info *cadence = mtd_to_cadence(mtd);
+ int ret = 0;
+
+ cadence->cmd = command;
+ switch (command) {
+ case NAND_CMD_STATUS:
+ ret = cadence_nand_status(mtd, command);
+ break;
+ /*
+ * ecc will override other command for read, write and erase
+ */
+ default:
+ break;
+ }
+
+ if (ret != 0)
+ printf("ERROR:%s:command:0x%x\n", __func__, cadence->cmd);
}
static int cadence_nand_dev_ready(struct mtd_info *mtd)
@@ -1921,7 +1955,17 @@ static int cadence_nand_dev_ready(struct mtd_info *mtd)
static u8 cadence_nand_read_byte(struct mtd_info *mtd)
{
- return 0;
+ struct cadence_nand_info *cadence = mtd_to_cadence(mtd);
+ u32 size = 1;
+ u8 val;
+
+ if (cadence->buf_index == 0)
+ cadence_nand_read_buf(mtd, &cadence->buf[0], size);
+
+ val = *(&cadence->buf[0] + cadence->buf_index);
+ cadence->buf_index++;
+
+ return val;
}
static void cadence_nand_write_byte(struct mtd_info *mtd, u8 byte)
diff --git a/include/cadence-nand.h b/include/cadence-nand.h
index 101f60ce0e..5b9d6e0382 100644
--- a/include/cadence-nand.h
+++ b/include/cadence-nand.h
@@ -453,6 +453,8 @@ struct cadence_nand_info {
u8 *buf;
u32 buf_size;
u8 *stat;
+ u8 cmd;
+ u32 buf_index;
u8 curr_corr_str_idx;
--
2.26.2
next prev parent reply other threads:[~2024-09-19 3:56 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-19 3:54 [PATCH 00/19] Add Cadence NAND Driver support dinesh.maniyam
2024-09-19 3:54 ` [PATCH 01/19] dt: nand: add cadence nand dt-bindings dinesh.maniyam
2024-09-19 3:54 ` [PATCH 02/19] arm: dts: agilex5: Enabled cdns-nand dts setting dinesh.maniyam
2024-09-19 3:54 ` [PATCH 03/19] include: asm: Add support to read/write 64-bit dinesh.maniyam
2024-09-19 3:54 ` [PATCH 04/19] drivers: mtd: nand: Add driver for Cadence Nand dinesh.maniyam
2024-09-19 3:54 ` dinesh.maniyam [this message]
2024-09-19 3:54 ` [PATCH 06/19] drivers: mtd: nand: cadence: Add support for readid command dinesh.maniyam
2024-09-19 3:55 ` [PATCH 07/19] drivers: mtd: nand: cadence: Add support for NAND_CMD_PARAM dinesh.maniyam
2024-09-19 3:55 ` [PATCH 08/19] drivers: mtd: nand: cadence: Support NAND_CMD_RESET dinesh.maniyam
2024-09-19 3:55 ` [PATCH 09/19] drivers: mtd: nand: cadence: Support cmd SET_FEATURES & GET_FEATURES dinesh.maniyam
2024-09-19 3:55 ` [PATCH 10/19] drivers: mtd: nand: cadence: Flush dma descriptor dinesh.maniyam
2024-09-19 3:55 ` [PATCH 11/19] drivers: mtd: nand: cadence: Poll for desc complete status dinesh.maniyam
2024-09-19 3:55 ` [PATCH 12/19] drivers: mtd: nand: cadence: Use bounce buffer dinesh.maniyam
2024-09-19 3:55 ` [PATCH 13/19] drivers: nand: Enabled Kconfig and Makefile for cdns-nand dinesh.maniyam
2024-09-19 3:55 ` [PATCH 14/19] configs: nand2_defconfig: Enable configs for nand boot dinesh.maniyam
2024-10-05 15:16 ` Michael Nazzareno Trimarchi
2024-10-05 15:20 ` Tom Rini
2024-10-07 2:23 ` Maniyam, Dinesh
2024-10-07 17:01 ` Michael Nazzareno Trimarchi
2024-10-08 9:43 ` Maniyam, Dinesh
2024-09-19 3:55 ` [PATCH 15/19] drivers: mtd: nand: base: Add support for Hardware ECC for check bad block dinesh.maniyam
2024-09-19 3:55 ` [PATCH 16/19] drivers: mtd: nand: spl: Add support for nand SPL load image dinesh.maniyam
2024-10-05 15:22 ` Michael Nazzareno Trimarchi
2024-10-07 2:27 ` Maniyam, Dinesh
2024-09-19 3:55 ` [PATCH 17/19] drivers: mtd: nand: Enabled Kconfig and Makefile for Cadence-SPL dinesh.maniyam
2024-09-19 3:55 ` [PATCH 18/19] drivers: mtd: nand: Kconfig: Remove SYS_NAND_BLOCK_SIZE dependency dinesh.maniyam
2024-09-19 3:55 ` [PATCH 19/19] drivers: mtd: nand: Kconfig: Enabled self-init for cdns-nand SPL dinesh.maniyam
2024-09-19 6:05 ` [PATCH 00/19] Add Cadence NAND Driver support Alexander Dahl
2024-10-07 2:16 ` Maniyam, Dinesh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240919035512.13854-6-dinesh.maniyam@intel.com \
--to=dinesh.maniyam@intel.com \
--cc=ada@thorsis.com \
--cc=alif.zakuan.yuslaimi@intel.com \
--cc=avkrasnov@salutedevices.com \
--cc=boon.khai.ng@intel.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=ivprusov@salutedevices.com \
--cc=jbx6244@gmail.com \
--cc=jit.loon.lim@intel.com \
--cc=kok.kiang.hea@intel.com \
--cc=marex@denx.de \
--cc=michael@amarulasolutions.com \
--cc=michal.simek@amd.com \
--cc=muhammad.hazim.izzat.zamri@intel.com \
--cc=sieu.mun.tang@intel.com \
--cc=simon.k.r.goldschmidt@gmail.com \
--cc=teik.heng.chong@intel.com \
--cc=tien.fong.chee@intel.com \
--cc=tingting.meng@intel.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=william.zhang@broadcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.