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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox