diff options
author | Tom Rini <trini@konsulko.com> | 2025-08-04 08:23:43 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2025-08-04 08:23:43 -0600 |
commit | 851c3f28d00bf0e106487db3c18ab2a6a6bafb5c (patch) | |
tree | 2bb34c95c083ad317438c4222ddfe1a7f1d13d85 /drivers/mtd/nand/raw/octeontx_bch.h | |
parent | 488ae65f393dcb909961ed272ea93899ff5f3603 (diff) | |
parent | 8877bbe67a9be64f2735a45479df196cd22949aa (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.h | 131 |
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__ */ |