summaryrefslogtreecommitdiff
path: root/drivers/mtd/nand/raw/octeontx_bch.h
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2025-08-04 08:23:43 -0600
committerTom Rini <trini@konsulko.com>2025-08-04 08:23:43 -0600
commit851c3f28d00bf0e106487db3c18ab2a6a6bafb5c (patch)
tree2bb34c95c083ad317438c4222ddfe1a7f1d13d85 /drivers/mtd/nand/raw/octeontx_bch.h
parent488ae65f393dcb909961ed272ea93899ff5f3603 (diff)
parent8877bbe67a9be64f2735a45479df196cd22949aa (diff)
Merge branch 'u-boot-nand-03082025' of https://source.denx.de/u-boot/custodians/u-boot-nand-flashHEADmaster
CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/27258 This series address issues found by Andrew Goodbody and mostly drop driver that are not used by any board
Diffstat (limited to 'drivers/mtd/nand/raw/octeontx_bch.h')
-rw-r--r--drivers/mtd/nand/raw/octeontx_bch.h131
1 files changed, 0 insertions, 131 deletions
diff --git a/drivers/mtd/nand/raw/octeontx_bch.h b/drivers/mtd/nand/raw/octeontx_bch.h
deleted file mode 100644
index 95a9b7126fb..00000000000
--- a/drivers/mtd/nand/raw/octeontx_bch.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0
- *
- * Copyright (C) 2018 Marvell International Ltd.
- */
-
-#ifndef __OCTEONTX_BCH_H__
-#define __OCTEONTX_BCH_H__
-
-#include "octeontx_bch_regs.h"
-
-/* flags to indicate the features supported */
-#define BCH_FLAG_SRIOV_ENABLED BIT(1)
-
-/*
- * BCH Registers map for 81xx
- */
-
-/* PF registers */
-#define BCH_CTL 0x0ull
-#define BCH_ERR_CFG 0x10ull
-#define BCH_BIST_RESULT 0x80ull
-#define BCH_ERR_INT 0x88ull
-#define BCH_ERR_INT_W1S 0x90ull
-#define BCH_ERR_INT_ENA_W1C 0xA0ull
-#define BCH_ERR_INT_ENA_W1S 0xA8ull
-
-/* VF registers */
-#define BCH_VQX_CTL(z) 0x0ull
-#define BCH_VQX_CMD_BUF(z) 0x8ull
-#define BCH_VQX_CMD_PTR(z) 0x20ull
-#define BCH_VQX_DOORBELL(z) 0x800ull
-
-#define BCHPF_DRIVER_NAME "octeontx-bchpf"
-#define BCHVF_DRIVER_NAME "octeontx-bchvf"
-
-struct bch_device {
- struct list_head list;
- u8 max_vfs;
- u8 vfs_enabled;
- u8 vfs_in_use;
- u32 flags;
- void __iomem *reg_base;
- struct udevice *dev;
-};
-
-struct bch_vf {
- u16 flags;
- u8 vfid;
- u8 node;
- u8 priority;
- struct udevice *dev;
- void __iomem *reg_base;
-};
-
-struct buf_ptr {
- u8 *vptr;
- dma_addr_t dma_addr;
- u16 size;
-};
-
-void *octeontx_bch_getv(void);
-void octeontx_bch_putv(void *token);
-void *octeontx_bch_getp(void);
-void octeontx_bch_putp(void *token);
-int octeontx_bch_wait(struct bch_vf *vf, union bch_resp *resp,
- dma_addr_t handle);
-/**
- * Given a data block calculate the ecc data and fill in the response
- *
- * @param[in] block 8-byte aligned pointer to data block to calculate ECC
- * @param block_size Size of block in bytes, must be a multiple of two.
- * @param bch_level Number of errors that must be corrected. The number of
- * parity bytes is equal to ((15 * bch_level) + 7) / 8.
- * Must be 4, 8, 16, 24, 32, 40, 48, 56, 60 or 64.
- * @param[out] ecc 8-byte aligned pointer to where ecc data should go
- * @param[in] resp pointer to where responses will be written.
- *
- * Return: Zero on success, negative on failure.
- */
-int octeontx_bch_encode(struct bch_vf *vf, dma_addr_t block, u16 block_size,
- u8 bch_level, dma_addr_t ecc, dma_addr_t resp);
-
-/**
- * Given a data block and ecc data correct the data block
- *
- * @param[in] block_ecc_in 8-byte aligned pointer to data block with ECC
- * data concatenated to the end to correct
- * @param block_size Size of block in bytes, must be a multiple of
- * two.
- * @param bch_level Number of errors that must be corrected. The
- * number of parity bytes is equal to
- * ((15 * bch_level) + 7) / 8.
- * Must be 4, 8, 16, 24, 32, 40, 48, 56, 60 or 64.
- * @param[out] block_out 8-byte aligned pointer to corrected data buffer.
- * This should not be the same as block_ecc_in.
- * @param[in] resp pointer to where responses will be written.
- *
- * Return: Zero on success, negative on failure.
- */
-
-int octeontx_bch_decode(struct bch_vf *vf, dma_addr_t block_ecc_in,
- u16 block_size, u8 bch_level,
- dma_addr_t block_out, dma_addr_t resp);
-
-/**
- * Ring the BCH doorbell telling it that new commands are
- * available.
- *
- * @param num_commands Number of new commands
- * @param vf virtual function handle
- */
-static inline void octeontx_bch_write_doorbell(u64 num_commands,
- struct bch_vf *vf)
-{
- u64 num_words = num_commands * sizeof(union bch_cmd) / sizeof(uint64_t);
-
- writeq(num_words, vf->reg_base + BCH_VQX_DOORBELL(0));
-}
-
-/**
- * Since it's possible (and even likely) that the NAND device will be probed
- * before the BCH device has been probed, we may need to defer the probing.
- *
- * In this case, the initial probe returns success but the actual probing
- * is deferred until the BCH VF has been probed.
- *
- * Return: 0 for success, otherwise error
- */
-int octeontx_pci_nand_deferred_probe(void);
-
-#endif /* __OCTEONTX_BCH_H__ */