mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-05-06 20:25:44 +00:00
ENGR00117755 MX28: DCP
Driver for DCP operations: AES, SHA1, and SHA256 Signed-off-by: Anish Trivedi <anish@freescale.com>
This commit is contained in:
committed by
Matt Sealey
parent
b8590903a5
commit
2fb4ddfc56
@@ -1478,9 +1478,8 @@ CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_AEAD=m
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=m
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
@@ -1489,12 +1488,12 @@ CONFIG_CRYPTO_PCOMP=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
CONFIG_CRYPTO_NULL=m
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
CONFIG_CRYPTO_AUTHENC=m
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
# CONFIG_CRYPTO_CRYPTODEV is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
CONFIG_CRYPTO_TEST=m
|
||||
CONFIG_CRYPTO_CRYPTODEV=y
|
||||
|
||||
#
|
||||
# Authenticated Encryption with Associated Data
|
||||
@@ -1506,10 +1505,10 @@ CONFIG_CRYPTO_AUTHENC=m
|
||||
#
|
||||
# Block modes
|
||||
#
|
||||
CONFIG_CRYPTO_CBC=m
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
# CONFIG_CRYPTO_CTR is not set
|
||||
# CONFIG_CRYPTO_CTS is not set
|
||||
# CONFIG_CRYPTO_ECB is not set
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
# CONFIG_CRYPTO_LRW is not set
|
||||
# CONFIG_CRYPTO_PCBC is not set
|
||||
# CONFIG_CRYPTO_XTS is not set
|
||||
@@ -1523,53 +1522,53 @@ CONFIG_CRYPTO_HMAC=y
|
||||
#
|
||||
# Digest
|
||||
#
|
||||
CONFIG_CRYPTO_CRC32C=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MD5=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
# CONFIG_CRYPTO_CRC32C is not set
|
||||
# CONFIG_CRYPTO_MD4 is not set
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
# CONFIG_CRYPTO_MICHAEL_MIC is not set
|
||||
# CONFIG_CRYPTO_RMD128 is not set
|
||||
# CONFIG_CRYPTO_RMD160 is not set
|
||||
# CONFIG_CRYPTO_RMD256 is not set
|
||||
# CONFIG_CRYPTO_RMD320 is not set
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA1=m
|
||||
CONFIG_CRYPTO_SHA256=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
# CONFIG_CRYPTO_SHA512 is not set
|
||||
# CONFIG_CRYPTO_TGR192 is not set
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
# CONFIG_CRYPTO_WP512 is not set
|
||||
|
||||
#
|
||||
# Ciphers
|
||||
#
|
||||
CONFIG_CRYPTO_AES=m
|
||||
CONFIG_CRYPTO_AES=y
|
||||
# CONFIG_CRYPTO_ANUBIS is not set
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
# CONFIG_CRYPTO_ARC4 is not set
|
||||
# CONFIG_CRYPTO_BLOWFISH is not set
|
||||
# CONFIG_CRYPTO_CAMELLIA is not set
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_DES=m
|
||||
# CONFIG_CRYPTO_CAST5 is not set
|
||||
# CONFIG_CRYPTO_CAST6 is not set
|
||||
CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_FCRYPT is not set
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
# CONFIG_CRYPTO_KHAZAD is not set
|
||||
# CONFIG_CRYPTO_SALSA20 is not set
|
||||
# CONFIG_CRYPTO_SEED is not set
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_TWOFISH_COMMON=m
|
||||
# CONFIG_CRYPTO_SERPENT is not set
|
||||
# CONFIG_CRYPTO_TEA is not set
|
||||
# CONFIG_CRYPTO_TWOFISH is not set
|
||||
|
||||
#
|
||||
# Compression
|
||||
#
|
||||
CONFIG_CRYPTO_DEFLATE=m
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
|
||||
#
|
||||
# Random Number Generation
|
||||
#
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_BINARY_PRINTF=y
|
||||
CONFIG_CRYPTO_DEV_DCP=y
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
|
||||
@@ -855,6 +855,43 @@ static inline void mx28_init_flexcan(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CRYPTO_DEV_DCP)
|
||||
|
||||
static struct resource dcp_resources[] = {
|
||||
|
||||
{
|
||||
.flags = IORESOURCE_MEM,
|
||||
.start = DCP_PHYS_ADDR,
|
||||
.end = DCP_PHYS_ADDR + 0x2000 - 1,
|
||||
}, {
|
||||
.flags = IORESOURCE_IRQ,
|
||||
.start = IRQ_DCP_VMI,
|
||||
.end = IRQ_DCP_VMI,
|
||||
}, {
|
||||
.flags = IORESOURCE_IRQ,
|
||||
.start = IRQ_DCP,
|
||||
.end = IRQ_DCP,
|
||||
},
|
||||
};
|
||||
|
||||
static void __init mx28_init_dcp(void)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
|
||||
pdev = mxs_get_device("dcp", 0);
|
||||
if (pdev == NULL || IS_ERR(pdev))
|
||||
return;
|
||||
pdev->resource = dcp_resources;
|
||||
pdev->num_resources = ARRAY_SIZE(dcp_resources);
|
||||
mxs_add_device(pdev, 3);
|
||||
}
|
||||
#else
|
||||
static void __init mx28_init_dcp(void)
|
||||
{
|
||||
;
|
||||
}
|
||||
#endif
|
||||
|
||||
int __init mx28_device_init(void)
|
||||
{
|
||||
mx28_init_dma();
|
||||
@@ -870,6 +907,7 @@ int __init mx28_device_init(void)
|
||||
mx28_init_kbd();
|
||||
mx28_init_ts();
|
||||
mx28_init_lcdif();
|
||||
mx28_init_dcp();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -338,6 +338,18 @@ static struct platform_device mxs_flexcan[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CRYPTO_DEV_DCP)
|
||||
static struct platform_device mxs_dcp = {
|
||||
.name = "dcp",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.release = mxs_nop_release,
|
||||
.dma_mask = &common_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct mxs_dev_lookup dev_lookup[] = {
|
||||
#if defined(CONFIG_SERIAL_MXS_DUART) || \
|
||||
defined(CONFIG_SERIAL_MXS_DUART_MODULE)
|
||||
@@ -460,6 +472,14 @@ static struct mxs_dev_lookup dev_lookup[] = {
|
||||
.pdev = mxs_flexcan,
|
||||
},
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CRYPTO_DEV_DCP)
|
||||
{
|
||||
.name = "dcp",
|
||||
.size = 1,
|
||||
.pdev = &mxs_dcp,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
struct platform_device *mxs_get_device(char *name, int id)
|
||||
|
||||
@@ -215,8 +215,20 @@ config CRYPTO_DEV_STMP3XXX_DCP
|
||||
select CRYPTO_ALGAPI
|
||||
select CRYPTO_BLKCIPHER
|
||||
help
|
||||
Say 'Y' here to use the STMP3XXX DCP AES
|
||||
engine for the CryptoAPI AES algorithm.
|
||||
Say 'Y' here to use the STMP3XXX DCP AES and SHA1
|
||||
engine for the CryptoAPI algorithms.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called geode-aes.
|
||||
|
||||
config CRYPTO_DEV_DCP
|
||||
tristate "Support for the DCP engine"
|
||||
depends on ARCH_MX28
|
||||
select CRYPTO_ALGAPI
|
||||
select CRYPTO_BLKCIPHER
|
||||
help
|
||||
Say 'Y' here to use the MX28 DCP AES, SHA1, and SHA256
|
||||
engine for the CryptoAPI algorithms.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called geode-aes.
|
||||
|
||||
@@ -6,3 +6,4 @@ obj-$(CONFIG_CRYPTO_DEV_TALITOS) += talitos.o
|
||||
obj-$(CONFIG_CRYPTO_DEV_IXP4XX) += ixp4xx_crypto.o
|
||||
obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/
|
||||
obj-$(CONFIG_CRYPTO_DEV_STMP3XXX_DCP) += stmp3xxx_dcp.o
|
||||
obj-$(CONFIG_CRYPTO_DEV_DCP) += dcp.o
|
||||
1547
drivers/crypto/dcp.c
Normal file
1547
drivers/crypto/dcp.c
Normal file
File diff suppressed because it is too large
Load Diff
712
drivers/crypto/dcp.h
Normal file
712
drivers/crypto/dcp.h
Normal file
@@ -0,0 +1,712 @@
|
||||
/*
|
||||
* Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
#ifndef DCP_H_
|
||||
#define DCP_H_
|
||||
|
||||
#define CIPHER_CHAN 1
|
||||
#define CIPHER_MASK (1 << CIPHER_CHAN)
|
||||
|
||||
#define HASH_CHAN 0
|
||||
#define HASH_MASK (1 << HASH_CHAN)
|
||||
|
||||
#define ALL_MASK (CIPHER_MASK | HASH_MASK)
|
||||
|
||||
/* Defines the initialization value for the dcp control register */
|
||||
#define DCP_CTRL_INIT \
|
||||
(BM_DCP_CTRL_GATHER_RESIDUAL_WRITES | \
|
||||
BM_DCP_CTRL_ENABLE_CONTEXT_CACHING | \
|
||||
BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH0 | \
|
||||
BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH1 | \
|
||||
BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH2 | \
|
||||
BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH3)
|
||||
|
||||
/* Defines the initialization value for the dcp channel control register */
|
||||
#define DCP_CHANNELCTRL_INIT \
|
||||
BF(ALL_MASK, DCP_CHANNELCTRL_ENABLE_CHANNEL)
|
||||
|
||||
/* DCP work packet 1 value for encryption */
|
||||
#define DCP_PKT1_ENCRYPT \
|
||||
(BM_DCP_PACKET1_DECR_SEMAPHORE | \
|
||||
BM_DCP_PACKET1_ENABLE_CIPHER | \
|
||||
BM_DCP_PACKET1_CIPHER_ENCRYPT | \
|
||||
BM_DCP_PACKET1_CIPHER_INIT)
|
||||
|
||||
/* DCP work packet 1 value for decryption */
|
||||
#define DCP_PKT1_DECRYPT \
|
||||
(BM_DCP_PACKET1_DECR_SEMAPHORE | \
|
||||
BM_DCP_PACKET1_ENABLE_CIPHER | \
|
||||
BM_DCP_PACKET1_CIPHER_INIT)
|
||||
|
||||
/* DCP (decryption) work packet definition */
|
||||
struct dcp_hw_packet {
|
||||
uint32_t pNext; /* next dcp work packet address */
|
||||
uint32_t pkt1; /* dcp work packet 1 (control 0) */
|
||||
uint32_t pkt2; /* dcp work packet 2 (control 1) */
|
||||
uint32_t pSrc; /* source buffer address */
|
||||
uint32_t pDst; /* destination buffer address */
|
||||
uint32_t size; /* buffer size in bytes */
|
||||
uint32_t pPayload; /* payload buffer address */
|
||||
uint32_t stat; /* dcp status (written by dcp) */
|
||||
};
|
||||
|
||||
#define DCP_NUM_CHANNELS 4
|
||||
|
||||
/* DCP Register definitions */
|
||||
|
||||
#ifndef BF
|
||||
#define BF(value, field) (((value) << BP_##field) & BM_##field)
|
||||
#endif
|
||||
|
||||
#define REGS_DCP_SIZE 0x00002000
|
||||
|
||||
#define HW_DCP_CTRL (0x00000000)
|
||||
#define HW_DCP_CTRL_SET (0x00000004)
|
||||
#define HW_DCP_CTRL_CLR (0x00000008)
|
||||
#define HW_DCP_CTRL_TOG (0x0000000c)
|
||||
|
||||
#define BM_DCP_CTRL_SFTRST 0x80000000
|
||||
#define BM_DCP_CTRL_CLKGATE 0x40000000
|
||||
#define BM_DCP_CTRL_PRESENT_CRYPTO 0x20000000
|
||||
#define BV_DCP_CTRL_PRESENT_CRYPTO__Present 0x1
|
||||
#define BV_DCP_CTRL_PRESENT_CRYPTO__Absent 0x0
|
||||
#define BM_DCP_CTRL_PRESENT_CSC 0x10000000
|
||||
#define BV_DCP_CTRL_PRESENT_CSC__Present 0x1
|
||||
#define BV_DCP_CTRL_PRESENT_CSC__Absent 0x0
|
||||
#define BP_DCP_CTRL_RSVD1 24
|
||||
#define BM_DCP_CTRL_RSVD1 0x0F000000
|
||||
#define BF_DCP_CTRL_RSVD1(v) \
|
||||
(((v) << 24) & BM_DCP_CTRL_RSVD1)
|
||||
#define BM_DCP_CTRL_GATHER_RESIDUAL_WRITES 0x00800000
|
||||
#define BM_DCP_CTRL_ENABLE_CONTEXT_CACHING 0x00400000
|
||||
#define BM_DCP_CTRL_ENABLE_CONTEXT_SWITCHING 0x00200000
|
||||
#define BP_DCP_CTRL_RSVD0 9
|
||||
#define BM_DCP_CTRL_RSVD0 0x001FFE00
|
||||
#define BF_DCP_CTRL_RSVD0(v) \
|
||||
(((v) << 9) & BM_DCP_CTRL_RSVD0)
|
||||
#define BM_DCP_CTRL_CSC_INTERRUPT_ENABLE 0x00000100
|
||||
#define BP_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE 0
|
||||
#define BM_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE 0x000000FF
|
||||
#define BF_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE(v) \
|
||||
(((v) << 0) & BM_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE)
|
||||
#define BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH0 0x01
|
||||
#define BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH1 0x02
|
||||
#define BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH2 0x04
|
||||
#define BV_DCP_CTRL_CHANNEL_INTERRUPT_ENABLE__CH3 0x08
|
||||
|
||||
#define HW_DCP_STAT (0x00000010)
|
||||
#define HW_DCP_STAT_SET (0x00000014)
|
||||
#define HW_DCP_STAT_CLR (0x00000018)
|
||||
#define HW_DCP_STAT_TOG (0x0000001c)
|
||||
|
||||
#define BP_DCP_STAT_RSVD2 29
|
||||
#define BM_DCP_STAT_RSVD2 0xE0000000
|
||||
#define BF_DCP_STAT_RSVD2(v) \
|
||||
(((v) << 29) & BM_DCP_STAT_RSVD2)
|
||||
#define BM_DCP_STAT_OTP_KEY_READY 0x10000000
|
||||
#define BP_DCP_STAT_CUR_CHANNEL 24
|
||||
#define BM_DCP_STAT_CUR_CHANNEL 0x0F000000
|
||||
#define BF_DCP_STAT_CUR_CHANNEL(v) \
|
||||
(((v) << 24) & BM_DCP_STAT_CUR_CHANNEL)
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__None 0x0
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__CH0 0x1
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__CH1 0x2
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__CH2 0x3
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__CH3 0x4
|
||||
#define BV_DCP_STAT_CUR_CHANNEL__CSC 0x8
|
||||
#define BP_DCP_STAT_READY_CHANNELS 16
|
||||
#define BM_DCP_STAT_READY_CHANNELS 0x00FF0000
|
||||
#define BF_DCP_STAT_READY_CHANNELS(v) \
|
||||
(((v) << 16) & BM_DCP_STAT_READY_CHANNELS)
|
||||
#define BV_DCP_STAT_READY_CHANNELS__CH0 0x01
|
||||
#define BV_DCP_STAT_READY_CHANNELS__CH1 0x02
|
||||
#define BV_DCP_STAT_READY_CHANNELS__CH2 0x04
|
||||
#define BV_DCP_STAT_READY_CHANNELS__CH3 0x08
|
||||
#define BP_DCP_STAT_RSVD1 9
|
||||
#define BM_DCP_STAT_RSVD1 0x0000FE00
|
||||
#define BF_DCP_STAT_RSVD1(v) \
|
||||
(((v) << 9) & BM_DCP_STAT_RSVD1)
|
||||
#define BM_DCP_STAT_CSCIRQ 0x00000100
|
||||
#define BP_DCP_STAT_RSVD0 4
|
||||
#define BM_DCP_STAT_RSVD0 0x000000F0
|
||||
#define BF_DCP_STAT_RSVD0(v) \
|
||||
(((v) << 4) & BM_DCP_STAT_RSVD0)
|
||||
#define BP_DCP_STAT_IRQ 0
|
||||
#define BM_DCP_STAT_IRQ 0x0000000F
|
||||
#define BF_DCP_STAT_IRQ(v) \
|
||||
(((v) << 0) & BM_DCP_STAT_IRQ)
|
||||
|
||||
#define HW_DCP_CHANNELCTRL (0x00000020)
|
||||
#define HW_DCP_CHANNELCTRL_SET (0x00000024)
|
||||
#define HW_DCP_CHANNELCTRL_CLR (0x00000028)
|
||||
#define HW_DCP_CHANNELCTRL_TOG (0x0000002c)
|
||||
|
||||
#define BP_DCP_CHANNELCTRL_RSVD 19
|
||||
#define BM_DCP_CHANNELCTRL_RSVD 0xFFF80000
|
||||
#define BF_DCP_CHANNELCTRL_RSVD(v) \
|
||||
(((v) << 19) & BM_DCP_CHANNELCTRL_RSVD)
|
||||
#define BP_DCP_CHANNELCTRL_CSC_PRIORITY 17
|
||||
#define BM_DCP_CHANNELCTRL_CSC_PRIORITY 0x00060000
|
||||
#define BF_DCP_CHANNELCTRL_CSC_PRIORITY(v) \
|
||||
(((v) << 17) & BM_DCP_CHANNELCTRL_CSC_PRIORITY)
|
||||
#define BV_DCP_CHANNELCTRL_CSC_PRIORITY__HIGH 0x3
|
||||
#define BV_DCP_CHANNELCTRL_CSC_PRIORITY__MED 0x2
|
||||
#define BV_DCP_CHANNELCTRL_CSC_PRIORITY__LOW 0x1
|
||||
#define BV_DCP_CHANNELCTRL_CSC_PRIORITY__BACKGROUND 0x0
|
||||
#define BM_DCP_CHANNELCTRL_CH0_IRQ_MERGED 0x00010000
|
||||
#define BP_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL 8
|
||||
#define BM_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL 0x0000FF00
|
||||
#define BF_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL(v) \
|
||||
(((v) << 8) & BM_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL)
|
||||
#define BV_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL__CH0 0x01
|
||||
#define BV_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL__CH1 0x02
|
||||
#define BV_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL__CH2 0x04
|
||||
#define BV_DCP_CHANNELCTRL_HIGH_PRIORITY_CHANNEL__CH3 0x08
|
||||
#define BP_DCP_CHANNELCTRL_ENABLE_CHANNEL 0
|
||||
#define BM_DCP_CHANNELCTRL_ENABLE_CHANNEL 0x000000FF
|
||||
#define BF_DCP_CHANNELCTRL_ENABLE_CHANNEL(v) \
|
||||
(((v) << 0) & BM_DCP_CHANNELCTRL_ENABLE_CHANNEL)
|
||||
#define BV_DCP_CHANNELCTRL_ENABLE_CHANNEL__CH0 0x01
|
||||
#define BV_DCP_CHANNELCTRL_ENABLE_CHANNEL__CH1 0x02
|
||||
#define BV_DCP_CHANNELCTRL_ENABLE_CHANNEL__CH2 0x04
|
||||
#define BV_DCP_CHANNELCTRL_ENABLE_CHANNEL__CH3 0x08
|
||||
|
||||
#define HW_DCP_CAPABILITY0 (0x00000030)
|
||||
|
||||
#define BM_DCP_CAPABILITY0_DISABLE_DECRYPT 0x80000000
|
||||
#define BM_DCP_CAPABILITY0_ENABLE_TZONE 0x40000000
|
||||
#define BP_DCP_CAPABILITY0_RSVD 12
|
||||
#define BM_DCP_CAPABILITY0_RSVD 0x3FFFF000
|
||||
#define BF_DCP_CAPABILITY0_RSVD(v) \
|
||||
(((v) << 12) & BM_DCP_CAPABILITY0_RSVD)
|
||||
#define BP_DCP_CAPABILITY0_NUM_CHANNELS 8
|
||||
#define BM_DCP_CAPABILITY0_NUM_CHANNELS 0x00000F00
|
||||
#define BF_DCP_CAPABILITY0_NUM_CHANNELS(v) \
|
||||
(((v) << 8) & BM_DCP_CAPABILITY0_NUM_CHANNELS)
|
||||
#define BP_DCP_CAPABILITY0_NUM_KEYS 0
|
||||
#define BM_DCP_CAPABILITY0_NUM_KEYS 0x000000FF
|
||||
#define BF_DCP_CAPABILITY0_NUM_KEYS(v) \
|
||||
(((v) << 0) & BM_DCP_CAPABILITY0_NUM_KEYS)
|
||||
|
||||
#define HW_DCP_CAPABILITY1 (0x00000040)
|
||||
|
||||
#define BP_DCP_CAPABILITY1_HASH_ALGORITHMS 16
|
||||
#define BM_DCP_CAPABILITY1_HASH_ALGORITHMS 0xFFFF0000
|
||||
#define BF_DCP_CAPABILITY1_HASH_ALGORITHMS(v) \
|
||||
(((v) << 16) & BM_DCP_CAPABILITY1_HASH_ALGORITHMS)
|
||||
#define BV_DCP_CAPABILITY1_HASH_ALGORITHMS__SHA1 0x0001
|
||||
#define BV_DCP_CAPABILITY1_HASH_ALGORITHMS__CRC32 0x0002
|
||||
#define BV_DCP_CAPABILITY1_HASH_ALGORITHMS__SHA256 0x0004
|
||||
#define BP_DCP_CAPABILITY1_CIPHER_ALGORITHMS 0
|
||||
#define BM_DCP_CAPABILITY1_CIPHER_ALGORITHMS 0x0000FFFF
|
||||
#define BF_DCP_CAPABILITY1_CIPHER_ALGORITHMS(v) \
|
||||
(((v) << 0) & BM_DCP_CAPABILITY1_CIPHER_ALGORITHMS)
|
||||
#define BV_DCP_CAPABILITY1_CIPHER_ALGORITHMS__AES128 0x0001
|
||||
|
||||
#define HW_DCP_CONTEXT (0x00000050)
|
||||
|
||||
#define BP_DCP_CONTEXT_ADDR 0
|
||||
#define BM_DCP_CONTEXT_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CONTEXT_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_KEY (0x00000060)
|
||||
|
||||
#define BP_DCP_KEY_RSVD 8
|
||||
#define BM_DCP_KEY_RSVD 0xFFFFFF00
|
||||
#define BF_DCP_KEY_RSVD(v) \
|
||||
(((v) << 8) & BM_DCP_KEY_RSVD)
|
||||
#define BP_DCP_KEY_RSVD_INDEX 6
|
||||
#define BM_DCP_KEY_RSVD_INDEX 0x000000C0
|
||||
#define BF_DCP_KEY_RSVD_INDEX(v) \
|
||||
(((v) << 6) & BM_DCP_KEY_RSVD_INDEX)
|
||||
#define BP_DCP_KEY_INDEX 4
|
||||
#define BM_DCP_KEY_INDEX 0x00000030
|
||||
#define BF_DCP_KEY_INDEX(v) \
|
||||
(((v) << 4) & BM_DCP_KEY_INDEX)
|
||||
#define BP_DCP_KEY_RSVD_SUBWORD 2
|
||||
#define BM_DCP_KEY_RSVD_SUBWORD 0x0000000C
|
||||
#define BF_DCP_KEY_RSVD_SUBWORD(v) \
|
||||
(((v) << 2) & BM_DCP_KEY_RSVD_SUBWORD)
|
||||
#define BP_DCP_KEY_SUBWORD 0
|
||||
#define BM_DCP_KEY_SUBWORD 0x00000003
|
||||
#define BF_DCP_KEY_SUBWORD(v) \
|
||||
(((v) << 0) & BM_DCP_KEY_SUBWORD)
|
||||
|
||||
#define HW_DCP_KEYDATA (0x00000070)
|
||||
|
||||
#define BP_DCP_KEYDATA_DATA 0
|
||||
#define BM_DCP_KEYDATA_DATA 0xFFFFFFFF
|
||||
#define BF_DCP_KEYDATA_DATA(v) (v)
|
||||
|
||||
#define HW_DCP_PACKET0 (0x00000080)
|
||||
|
||||
#define BP_DCP_PACKET0_ADDR 0
|
||||
#define BM_DCP_PACKET0_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_PACKET0_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_PACKET1 (0x00000090)
|
||||
|
||||
#define BP_DCP_PACKET1_TAG 24
|
||||
#define BM_DCP_PACKET1_TAG 0xFF000000
|
||||
#define BF_DCP_PACKET1_TAG(v) \
|
||||
(((v) << 24) & BM_DCP_PACKET1_TAG)
|
||||
#define BM_DCP_PACKET1_OUTPUT_WORDSWAP 0x00800000
|
||||
#define BM_DCP_PACKET1_OUTPUT_BYTESWAP 0x00400000
|
||||
#define BM_DCP_PACKET1_INPUT_WORDSWAP 0x00200000
|
||||
#define BM_DCP_PACKET1_INPUT_BYTESWAP 0x00100000
|
||||
#define BM_DCP_PACKET1_KEY_WORDSWAP 0x00080000
|
||||
#define BM_DCP_PACKET1_KEY_BYTESWAP 0x00040000
|
||||
#define BM_DCP_PACKET1_TEST_SEMA_IRQ 0x00020000
|
||||
#define BM_DCP_PACKET1_CONSTANT_FILL 0x00010000
|
||||
#define BM_DCP_PACKET1_HASH_OUTPUT 0x00008000
|
||||
#define BV_DCP_PACKET1_HASH_OUTPUT__INPUT 0x00
|
||||
#define BV_DCP_PACKET1_HASH_OUTPUT__OUTPUT 0x01
|
||||
#define BM_DCP_PACKET1_CHECK_HASH 0x00004000
|
||||
#define BM_DCP_PACKET1_HASH_TERM 0x00002000
|
||||
#define BM_DCP_PACKET1_HASH_INIT 0x00001000
|
||||
#define BM_DCP_PACKET1_PAYLOAD_KEY 0x00000800
|
||||
#define BM_DCP_PACKET1_OTP_KEY 0x00000400
|
||||
#define BM_DCP_PACKET1_CIPHER_INIT 0x00000200
|
||||
#define BM_DCP_PACKET1_CIPHER_ENCRYPT 0x00000100
|
||||
#define BV_DCP_PACKET1_CIPHER_ENCRYPT__ENCRYPT 0x01
|
||||
#define BV_DCP_PACKET1_CIPHER_ENCRYPT__DECRYPT 0x00
|
||||
#define BM_DCP_PACKET1_ENABLE_BLIT 0x00000080
|
||||
#define BM_DCP_PACKET1_ENABLE_HASH 0x00000040
|
||||
#define BM_DCP_PACKET1_ENABLE_CIPHER 0x00000020
|
||||
#define BM_DCP_PACKET1_ENABLE_MEMCOPY 0x00000010
|
||||
#define BM_DCP_PACKET1_CHAIN_CONTIGUOUS 0x00000008
|
||||
#define BM_DCP_PACKET1_CHAIN 0x00000004
|
||||
#define BM_DCP_PACKET1_DECR_SEMAPHORE 0x00000002
|
||||
#define BM_DCP_PACKET1_INTERRUPT 0x00000001
|
||||
|
||||
#define HW_DCP_PACKET2 (0x000000a0)
|
||||
|
||||
#define BP_DCP_PACKET2_CIPHER_CFG 24
|
||||
#define BM_DCP_PACKET2_CIPHER_CFG 0xFF000000
|
||||
#define BF_DCP_PACKET2_CIPHER_CFG(v) \
|
||||
(((v) << 24) & BM_DCP_PACKET2_CIPHER_CFG)
|
||||
#define BP_DCP_PACKET2_RSVD 20
|
||||
#define BM_DCP_PACKET2_RSVD 0x00F00000
|
||||
#define BF_DCP_PACKET2_RSVD(v) \
|
||||
(((v) << 20) & BM_DCP_PACKET2_RSVD)
|
||||
#define BP_DCP_PACKET2_HASH_SELECT 16
|
||||
#define BM_DCP_PACKET2_HASH_SELECT 0x000F0000
|
||||
#define BF_DCP_PACKET2_HASH_SELECT(v) \
|
||||
(((v) << 16) & BM_DCP_PACKET2_HASH_SELECT)
|
||||
#define BV_DCP_PACKET2_HASH_SELECT__SHA1 0x00
|
||||
#define BV_DCP_PACKET2_HASH_SELECT__CRC32 0x01
|
||||
#define BV_DCP_PACKET2_HASH_SELECT__SHA256 0x02
|
||||
#define BP_DCP_PACKET2_KEY_SELECT 8
|
||||
#define BM_DCP_PACKET2_KEY_SELECT 0x0000FF00
|
||||
#define BF_DCP_PACKET2_KEY_SELECT(v) \
|
||||
(((v) << 8) & BM_DCP_PACKET2_KEY_SELECT)
|
||||
#define BP_DCP_PACKET2_CIPHER_MODE 4
|
||||
#define BM_DCP_PACKET2_CIPHER_MODE 0x000000F0
|
||||
#define BF_DCP_PACKET2_CIPHER_MODE(v) \
|
||||
(((v) << 4) & BM_DCP_PACKET2_CIPHER_MODE)
|
||||
#define BV_DCP_PACKET2_CIPHER_MODE__ECB 0x00
|
||||
#define BV_DCP_PACKET2_CIPHER_MODE__CBC 0x01
|
||||
#define BP_DCP_PACKET2_CIPHER_SELECT 0
|
||||
#define BM_DCP_PACKET2_CIPHER_SELECT 0x0000000F
|
||||
#define BF_DCP_PACKET2_CIPHER_SELECT(v) \
|
||||
(((v) << 0) & BM_DCP_PACKET2_CIPHER_SELECT)
|
||||
#define BV_DCP_PACKET2_CIPHER_SELECT__AES128 0x00
|
||||
|
||||
#define HW_DCP_PACKET3 (0x000000b0)
|
||||
|
||||
#define BP_DCP_PACKET3_ADDR 0
|
||||
#define BM_DCP_PACKET3_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_PACKET3_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_PACKET4 (0x000000c0)
|
||||
|
||||
#define BP_DCP_PACKET4_ADDR 0
|
||||
#define BM_DCP_PACKET4_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_PACKET4_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_PACKET5 (0x000000d0)
|
||||
|
||||
#define BP_DCP_PACKET5_COUNT 0
|
||||
#define BM_DCP_PACKET5_COUNT 0xFFFFFFFF
|
||||
#define BF_DCP_PACKET5_COUNT(v) (v)
|
||||
|
||||
#define HW_DCP_PACKET6 (0x000000e0)
|
||||
|
||||
#define BP_DCP_PACKET6_ADDR 0
|
||||
#define BM_DCP_PACKET6_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_PACKET6_ADDR(v) (v)
|
||||
|
||||
/*
|
||||
* multi-register-define name HW_DCP_CHnCMDPTR
|
||||
* base 0x00000100
|
||||
* count 4
|
||||
* offset 0x40
|
||||
*/
|
||||
#define HW_DCP_CHnCMDPTR(n) (0x00000100 + (n) * 0x40)
|
||||
|
||||
#define BP_DCP_CHnCMDPTR_ADDR 0
|
||||
#define BM_DCP_CHnCMDPTR_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CHnCMDPTR_ADDR(v) (v)
|
||||
|
||||
/*
|
||||
* multi-register-define name HW_DCP_CHnSEMA
|
||||
* base 0x00000110
|
||||
* count 4
|
||||
* offset 0x40
|
||||
*/
|
||||
#define HW_DCP_CHnSEMA(n) (0x00000110 + (n) * 0x40)
|
||||
|
||||
#define BP_DCP_CHnSEMA_RSVD2 24
|
||||
#define BM_DCP_CHnSEMA_RSVD2 0xFF000000
|
||||
#define BF_DCP_CHnSEMA_RSVD2(v) \
|
||||
(((v) << 24) & BM_DCP_CHnSEMA_RSVD2)
|
||||
#define BP_DCP_CHnSEMA_VALUE 16
|
||||
#define BM_DCP_CHnSEMA_VALUE 0x00FF0000
|
||||
#define BF_DCP_CHnSEMA_VALUE(v) \
|
||||
(((v) << 16) & BM_DCP_CHnSEMA_VALUE)
|
||||
#define BP_DCP_CHnSEMA_RSVD1 8
|
||||
#define BM_DCP_CHnSEMA_RSVD1 0x0000FF00
|
||||
#define BF_DCP_CHnSEMA_RSVD1(v) \
|
||||
(((v) << 8) & BM_DCP_CHnSEMA_RSVD1)
|
||||
#define BP_DCP_CHnSEMA_INCREMENT 0
|
||||
#define BM_DCP_CHnSEMA_INCREMENT 0x000000FF
|
||||
#define BF_DCP_CHnSEMA_INCREMENT(v) \
|
||||
(((v) << 0) & BM_DCP_CHnSEMA_INCREMENT)
|
||||
|
||||
/*
|
||||
* multi-register-define name HW_DCP_CHnSTAT
|
||||
* base 0x00000120
|
||||
* count 4
|
||||
* offset 0x40
|
||||
*/
|
||||
#define HW_DCP_CHnSTAT(n) (0x00000120 + (n) * 0x40)
|
||||
#define HW_DCP_CHnSTAT_SET(n) (0x00000124 + (n) * 0x40)
|
||||
#define HW_DCP_CHnSTAT_CLR(n) (0x00000128 + (n) * 0x40)
|
||||
#define HW_DCP_CHnSTAT_TOG(n) (0x0000012c + (n) * 0x40)
|
||||
|
||||
#define BP_DCP_CHnSTAT_TAG 24
|
||||
#define BM_DCP_CHnSTAT_TAG 0xFF000000
|
||||
#define BF_DCP_CHnSTAT_TAG(v) \
|
||||
(((v) << 24) & BM_DCP_CHnSTAT_TAG)
|
||||
#define BP_DCP_CHnSTAT_ERROR_CODE 16
|
||||
#define BM_DCP_CHnSTAT_ERROR_CODE 0x00FF0000
|
||||
#define BF_DCP_CHnSTAT_ERROR_CODE(v) \
|
||||
(((v) << 16) & BM_DCP_CHnSTAT_ERROR_CODE)
|
||||
#define BV_DCP_CHnSTAT_ERROR_CODE__NEXT_CHAIN_IS_0 0x01
|
||||
#define BV_DCP_CHnSTAT_ERROR_CODE__NO_CHAIN 0x02
|
||||
#define BV_DCP_CHnSTAT_ERROR_CODE__CONTEXT_ERROR 0x03
|
||||
#define BV_DCP_CHnSTAT_ERROR_CODE__PAYLOAD_ERROR 0x04
|
||||
#define BV_DCP_CHnSTAT_ERROR_CODE__INVALID_MODE 0x05
|
||||
#define BP_DCP_CHnSTAT_RSVD0 7
|
||||
#define BM_DCP_CHnSTAT_RSVD0 0x0000FF80
|
||||
#define BF_DCP_CHnSTAT_RSVD0(v) \
|
||||
(((v) << 7) & BM_DCP_CHnSTAT_RSVD0)
|
||||
#define BM_DCP_CHnSTAT_ERROR_PAGEFAULT 0x00000040
|
||||
#define BM_DCP_CHnSTAT_ERROR_DST 0x00000020
|
||||
#define BM_DCP_CHnSTAT_ERROR_SRC 0x00000010
|
||||
#define BM_DCP_CHnSTAT_ERROR_PACKET 0x00000008
|
||||
#define BM_DCP_CHnSTAT_ERROR_SETUP 0x00000004
|
||||
#define BM_DCP_CHnSTAT_HASH_MISMATCH 0x00000002
|
||||
#define BM_DCP_CHnSTAT_RSVD_COMPLETE 0x00000001
|
||||
|
||||
/*
|
||||
* multi-register-define name HW_DCP_CHnOPTS
|
||||
* base 0x00000130
|
||||
* count 4
|
||||
* offset 0x40
|
||||
*/
|
||||
#define HW_DCP_CHnOPTS(n) (0x00000130 + (n) * 0x40)
|
||||
#define HW_DCP_CHnOPTS_SET(n) (0x00000134 + (n) * 0x40)
|
||||
#define HW_DCP_CHnOPTS_CLR(n) (0x00000138 + (n) * 0x40)
|
||||
#define HW_DCP_CHnOPTS_TOG(n) (0x0000013c + (n) * 0x40)
|
||||
|
||||
#define BP_DCP_CHnOPTS_RSVD 16
|
||||
#define BM_DCP_CHnOPTS_RSVD 0xFFFF0000
|
||||
#define BF_DCP_CHnOPTS_RSVD(v) \
|
||||
(((v) << 16) & BM_DCP_CHnOPTS_RSVD)
|
||||
#define BP_DCP_CHnOPTS_RECOVERY_TIMER 0
|
||||
#define BM_DCP_CHnOPTS_RECOVERY_TIMER 0x0000FFFF
|
||||
#define BF_DCP_CHnOPTS_RECOVERY_TIMER(v) \
|
||||
(((v) << 0) & BM_DCP_CHnOPTS_RECOVERY_TIMER)
|
||||
|
||||
#define HW_DCP_CSCCTRL0 (0x00000300)
|
||||
#define HW_DCP_CSCCTRL0_SET (0x00000304)
|
||||
#define HW_DCP_CSCCTRL0_CLR (0x00000308)
|
||||
#define HW_DCP_CSCCTRL0_TOG (0x0000030c)
|
||||
|
||||
#define BP_DCP_CSCCTRL0_RSVD1 16
|
||||
#define BM_DCP_CSCCTRL0_RSVD1 0xFFFF0000
|
||||
#define BF_DCP_CSCCTRL0_RSVD1(v) \
|
||||
(((v) << 16) & BM_DCP_CSCCTRL0_RSVD1)
|
||||
#define BM_DCP_CSCCTRL0_CLIP 0x00008000
|
||||
#define BM_DCP_CSCCTRL0_UPSAMPLE 0x00004000
|
||||
#define BM_DCP_CSCCTRL0_SCALE 0x00002000
|
||||
#define BM_DCP_CSCCTRL0_ROTATE 0x00001000
|
||||
#define BM_DCP_CSCCTRL0_SUBSAMPLE 0x00000800
|
||||
#define BM_DCP_CSCCTRL0_DELTA 0x00000400
|
||||
#define BP_DCP_CSCCTRL0_RGB_FORMAT 8
|
||||
#define BM_DCP_CSCCTRL0_RGB_FORMAT 0x00000300
|
||||
#define BF_DCP_CSCCTRL0_RGB_FORMAT(v) \
|
||||
(((v) << 8) & BM_DCP_CSCCTRL0_RGB_FORMAT)
|
||||
#define BV_DCP_CSCCTRL0_RGB_FORMAT__RGB16_565 0x0
|
||||
#define BV_DCP_CSCCTRL0_RGB_FORMAT__YCbCrI 0x1
|
||||
#define BV_DCP_CSCCTRL0_RGB_FORMAT__RGB24 0x2
|
||||
#define BV_DCP_CSCCTRL0_RGB_FORMAT__YUV422I 0x3
|
||||
#define BP_DCP_CSCCTRL0_YUV_FORMAT 4
|
||||
#define BM_DCP_CSCCTRL0_YUV_FORMAT 0x000000F0
|
||||
#define BF_DCP_CSCCTRL0_YUV_FORMAT(v) \
|
||||
(((v) << 4) & BM_DCP_CSCCTRL0_YUV_FORMAT)
|
||||
#define BV_DCP_CSCCTRL0_YUV_FORMAT__YUV420 0x0
|
||||
#define BV_DCP_CSCCTRL0_YUV_FORMAT__YUV422 0x2
|
||||
#define BP_DCP_CSCCTRL0_RSVD0 1
|
||||
#define BM_DCP_CSCCTRL0_RSVD0 0x0000000E
|
||||
#define BF_DCP_CSCCTRL0_RSVD0(v) \
|
||||
(((v) << 1) & BM_DCP_CSCCTRL0_RSVD0)
|
||||
#define BM_DCP_CSCCTRL0_ENABLE 0x00000001
|
||||
|
||||
#define HW_DCP_CSCSTAT (0x00000310)
|
||||
#define HW_DCP_CSCSTAT_SET (0x00000314)
|
||||
#define HW_DCP_CSCSTAT_CLR (0x00000318)
|
||||
#define HW_DCP_CSCSTAT_TOG (0x0000031c)
|
||||
|
||||
#define BP_DCP_CSCSTAT_RSVD3 24
|
||||
#define BM_DCP_CSCSTAT_RSVD3 0xFF000000
|
||||
#define BF_DCP_CSCSTAT_RSVD3(v) \
|
||||
(((v) << 24) & BM_DCP_CSCSTAT_RSVD3)
|
||||
#define BP_DCP_CSCSTAT_ERROR_CODE 16
|
||||
#define BM_DCP_CSCSTAT_ERROR_CODE 0x00FF0000
|
||||
#define BF_DCP_CSCSTAT_ERROR_CODE(v) \
|
||||
(((v) << 16) & BM_DCP_CSCSTAT_ERROR_CODE)
|
||||
#define BV_DCP_CSCSTAT_ERROR_CODE__LUMA0_FETCH_ERROR_Y0 0x01
|
||||
#define BV_DCP_CSCSTAT_ERROR_CODE__LUMA1_FETCH_ERROR_Y1 0x02
|
||||
#define BV_DCP_CSCSTAT_ERROR_CODE__CHROMA_FETCH_ERROR_U 0x03
|
||||
#define BV_DCP_CSCSTAT_ERROR_CODE__CHROMA_FETCH_ERROR_V 0x04
|
||||
#define BP_DCP_CSCSTAT_RSVD2 7
|
||||
#define BM_DCP_CSCSTAT_RSVD2 0x0000FF80
|
||||
#define BF_DCP_CSCSTAT_RSVD2(v) \
|
||||
(((v) << 7) & BM_DCP_CSCSTAT_RSVD2)
|
||||
#define BM_DCP_CSCSTAT_ERROR_PAGEFAULT 0x00000040
|
||||
#define BM_DCP_CSCSTAT_ERROR_DST 0x00000020
|
||||
#define BM_DCP_CSCSTAT_ERROR_SRC 0x00000010
|
||||
#define BM_DCP_CSCSTAT_RSVD1 0x00000008
|
||||
#define BM_DCP_CSCSTAT_ERROR_SETUP 0x00000004
|
||||
#define BM_DCP_CSCSTAT_RSVD0 0x00000002
|
||||
#define BM_DCP_CSCSTAT_COMPLETE 0x00000001
|
||||
|
||||
#define HW_DCP_CSCOUTBUFPARAM (0x00000320)
|
||||
|
||||
#define BP_DCP_CSCOUTBUFPARAM_RSVD1 24
|
||||
#define BM_DCP_CSCOUTBUFPARAM_RSVD1 0xFF000000
|
||||
#define BF_DCP_CSCOUTBUFPARAM_RSVD1(v) \
|
||||
(((v) << 24) & BM_DCP_CSCOUTBUFPARAM_RSVD1)
|
||||
#define BP_DCP_CSCOUTBUFPARAM_FIELD_SIZE 12
|
||||
#define BM_DCP_CSCOUTBUFPARAM_FIELD_SIZE 0x00FFF000
|
||||
#define BF_DCP_CSCOUTBUFPARAM_FIELD_SIZE(v) \
|
||||
(((v) << 12) & BM_DCP_CSCOUTBUFPARAM_FIELD_SIZE)
|
||||
#define BP_DCP_CSCOUTBUFPARAM_LINE_SIZE 0
|
||||
#define BM_DCP_CSCOUTBUFPARAM_LINE_SIZE 0x00000FFF
|
||||
#define BF_DCP_CSCOUTBUFPARAM_LINE_SIZE(v) \
|
||||
(((v) << 0) & BM_DCP_CSCOUTBUFPARAM_LINE_SIZE)
|
||||
|
||||
#define HW_DCP_CSCINBUFPARAM (0x00000330)
|
||||
|
||||
#define BP_DCP_CSCINBUFPARAM_RSVD1 12
|
||||
#define BM_DCP_CSCINBUFPARAM_RSVD1 0xFFFFF000
|
||||
#define BF_DCP_CSCINBUFPARAM_RSVD1(v) \
|
||||
(((v) << 12) & BM_DCP_CSCINBUFPARAM_RSVD1)
|
||||
#define BP_DCP_CSCINBUFPARAM_LINE_SIZE 0
|
||||
#define BM_DCP_CSCINBUFPARAM_LINE_SIZE 0x00000FFF
|
||||
#define BF_DCP_CSCINBUFPARAM_LINE_SIZE(v) \
|
||||
(((v) << 0) & BM_DCP_CSCINBUFPARAM_LINE_SIZE)
|
||||
|
||||
#define HW_DCP_CSCRGB (0x00000340)
|
||||
|
||||
#define BP_DCP_CSCRGB_ADDR 0
|
||||
#define BM_DCP_CSCRGB_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CSCRGB_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_CSCLUMA (0x00000350)
|
||||
|
||||
#define BP_DCP_CSCLUMA_ADDR 0
|
||||
#define BM_DCP_CSCLUMA_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CSCLUMA_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_CSCCHROMAU (0x00000360)
|
||||
|
||||
#define BP_DCP_CSCCHROMAU_ADDR 0
|
||||
#define BM_DCP_CSCCHROMAU_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CSCCHROMAU_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_CSCCHROMAV (0x00000370)
|
||||
|
||||
#define BP_DCP_CSCCHROMAV_ADDR 0
|
||||
#define BM_DCP_CSCCHROMAV_ADDR 0xFFFFFFFF
|
||||
#define BF_DCP_CSCCHROMAV_ADDR(v) (v)
|
||||
|
||||
#define HW_DCP_CSCCOEFF0 (0x00000380)
|
||||
|
||||
#define BP_DCP_CSCCOEFF0_RSVD1 26
|
||||
#define BM_DCP_CSCCOEFF0_RSVD1 0xFC000000
|
||||
#define BF_DCP_CSCCOEFF0_RSVD1(v) \
|
||||
(((v) << 26) & BM_DCP_CSCCOEFF0_RSVD1)
|
||||
#define BP_DCP_CSCCOEFF0_C0 16
|
||||
#define BM_DCP_CSCCOEFF0_C0 0x03FF0000
|
||||
#define BF_DCP_CSCCOEFF0_C0(v) \
|
||||
(((v) << 16) & BM_DCP_CSCCOEFF0_C0)
|
||||
#define BP_DCP_CSCCOEFF0_UV_OFFSET 8
|
||||
#define BM_DCP_CSCCOEFF0_UV_OFFSET 0x0000FF00
|
||||
#define BF_DCP_CSCCOEFF0_UV_OFFSET(v) \
|
||||
(((v) << 8) & BM_DCP_CSCCOEFF0_UV_OFFSET)
|
||||
#define BP_DCP_CSCCOEFF0_Y_OFFSET 0
|
||||
#define BM_DCP_CSCCOEFF0_Y_OFFSET 0x000000FF
|
||||
#define BF_DCP_CSCCOEFF0_Y_OFFSET(v) \
|
||||
(((v) << 0) & BM_DCP_CSCCOEFF0_Y_OFFSET)
|
||||
|
||||
#define HW_DCP_CSCCOEFF1 (0x00000390)
|
||||
|
||||
#define BP_DCP_CSCCOEFF1_RSVD1 26
|
||||
#define BM_DCP_CSCCOEFF1_RSVD1 0xFC000000
|
||||
#define BF_DCP_CSCCOEFF1_RSVD1(v) \
|
||||
(((v) << 26) & BM_DCP_CSCCOEFF1_RSVD1)
|
||||
#define BP_DCP_CSCCOEFF1_C1 16
|
||||
#define BM_DCP_CSCCOEFF1_C1 0x03FF0000
|
||||
#define BF_DCP_CSCCOEFF1_C1(v) \
|
||||
(((v) << 16) & BM_DCP_CSCCOEFF1_C1)
|
||||
#define BP_DCP_CSCCOEFF1_RSVD0 10
|
||||
#define BM_DCP_CSCCOEFF1_RSVD0 0x0000FC00
|
||||
#define BF_DCP_CSCCOEFF1_RSVD0(v) \
|
||||
(((v) << 10) & BM_DCP_CSCCOEFF1_RSVD0)
|
||||
#define BP_DCP_CSCCOEFF1_C4 0
|
||||
#define BM_DCP_CSCCOEFF1_C4 0x000003FF
|
||||
#define BF_DCP_CSCCOEFF1_C4(v) \
|
||||
(((v) << 0) & BM_DCP_CSCCOEFF1_C4)
|
||||
|
||||
#define HW_DCP_CSCCOEFF2 (0x000003a0)
|
||||
|
||||
#define BP_DCP_CSCCOEFF2_RSVD1 26
|
||||
#define BM_DCP_CSCCOEFF2_RSVD1 0xFC000000
|
||||
#define BF_DCP_CSCCOEFF2_RSVD1(v) \
|
||||
(((v) << 26) & BM_DCP_CSCCOEFF2_RSVD1)
|
||||
#define BP_DCP_CSCCOEFF2_C2 16
|
||||
#define BM_DCP_CSCCOEFF2_C2 0x03FF0000
|
||||
#define BF_DCP_CSCCOEFF2_C2(v) \
|
||||
(((v) << 16) & BM_DCP_CSCCOEFF2_C2)
|
||||
#define BP_DCP_CSCCOEFF2_RSVD0 10
|
||||
#define BM_DCP_CSCCOEFF2_RSVD0 0x0000FC00
|
||||
#define BF_DCP_CSCCOEFF2_RSVD0(v) \
|
||||
(((v) << 10) & BM_DCP_CSCCOEFF2_RSVD0)
|
||||
#define BP_DCP_CSCCOEFF2_C3 0
|
||||
#define BM_DCP_CSCCOEFF2_C3 0x000003FF
|
||||
#define BF_DCP_CSCCOEFF2_C3(v) \
|
||||
(((v) << 0) & BM_DCP_CSCCOEFF2_C3)
|
||||
|
||||
#define HW_DCP_CSCCLIP (0x000003d0)
|
||||
|
||||
#define BP_DCP_CSCCLIP_RSVD1 24
|
||||
#define BM_DCP_CSCCLIP_RSVD1 0xFF000000
|
||||
#define BF_DCP_CSCCLIP_RSVD1(v) \
|
||||
(((v) << 24) & BM_DCP_CSCCLIP_RSVD1)
|
||||
#define BP_DCP_CSCCLIP_HEIGHT 12
|
||||
#define BM_DCP_CSCCLIP_HEIGHT 0x00FFF000
|
||||
#define BF_DCP_CSCCLIP_HEIGHT(v) \
|
||||
(((v) << 12) & BM_DCP_CSCCLIP_HEIGHT)
|
||||
#define BP_DCP_CSCCLIP_WIDTH 0
|
||||
#define BM_DCP_CSCCLIP_WIDTH 0x00000FFF
|
||||
#define BF_DCP_CSCCLIP_WIDTH(v) \
|
||||
(((v) << 0) & BM_DCP_CSCCLIP_WIDTH)
|
||||
|
||||
#define HW_DCP_CSCXSCALE (0x000003e0)
|
||||
|
||||
#define BP_DCP_CSCXSCALE_RSVD1 26
|
||||
#define BM_DCP_CSCXSCALE_RSVD1 0xFC000000
|
||||
#define BF_DCP_CSCXSCALE_RSVD1(v) \
|
||||
(((v) << 26) & BM_DCP_CSCXSCALE_RSVD1)
|
||||
#define BP_DCP_CSCXSCALE_INT 24
|
||||
#define BM_DCP_CSCXSCALE_INT 0x03000000
|
||||
#define BF_DCP_CSCXSCALE_INT(v) \
|
||||
(((v) << 24) & BM_DCP_CSCXSCALE_INT)
|
||||
#define BP_DCP_CSCXSCALE_FRAC 12
|
||||
#define BM_DCP_CSCXSCALE_FRAC 0x00FFF000
|
||||
#define BF_DCP_CSCXSCALE_FRAC(v) \
|
||||
(((v) << 12) & BM_DCP_CSCXSCALE_FRAC)
|
||||
#define BP_DCP_CSCXSCALE_WIDTH 0
|
||||
#define BM_DCP_CSCXSCALE_WIDTH 0x00000FFF
|
||||
#define BF_DCP_CSCXSCALE_WIDTH(v) \
|
||||
(((v) << 0) & BM_DCP_CSCXSCALE_WIDTH)
|
||||
|
||||
#define HW_DCP_CSCYSCALE (0x000003f0)
|
||||
|
||||
#define BP_DCP_CSCYSCALE_RSVD1 26
|
||||
#define BM_DCP_CSCYSCALE_RSVD1 0xFC000000
|
||||
#define BF_DCP_CSCYSCALE_RSVD1(v) \
|
||||
(((v) << 26) & BM_DCP_CSCYSCALE_RSVD1)
|
||||
#define BP_DCP_CSCYSCALE_INT 24
|
||||
#define BM_DCP_CSCYSCALE_INT 0x03000000
|
||||
#define BF_DCP_CSCYSCALE_INT(v) \
|
||||
(((v) << 24) & BM_DCP_CSCYSCALE_INT)
|
||||
#define BP_DCP_CSCYSCALE_FRAC 12
|
||||
#define BM_DCP_CSCYSCALE_FRAC 0x00FFF000
|
||||
#define BF_DCP_CSCYSCALE_FRAC(v) \
|
||||
(((v) << 12) & BM_DCP_CSCYSCALE_FRAC)
|
||||
#define BP_DCP_CSCYSCALE_HEIGHT 0
|
||||
#define BM_DCP_CSCYSCALE_HEIGHT 0x00000FFF
|
||||
#define BF_DCP_CSCYSCALE_HEIGHT(v) \
|
||||
(((v) << 0) & BM_DCP_CSCYSCALE_HEIGHT)
|
||||
|
||||
#define HW_DCP_DBGSELECT (0x00000400)
|
||||
|
||||
#define BP_DCP_DBGSELECT_RSVD 8
|
||||
#define BM_DCP_DBGSELECT_RSVD 0xFFFFFF00
|
||||
#define BF_DCP_DBGSELECT_RSVD(v) \
|
||||
(((v) << 8) & BM_DCP_DBGSELECT_RSVD)
|
||||
#define BP_DCP_DBGSELECT_INDEX 0
|
||||
#define BM_DCP_DBGSELECT_INDEX 0x000000FF
|
||||
#define BF_DCP_DBGSELECT_INDEX(v) \
|
||||
(((v) << 0) & BM_DCP_DBGSELECT_INDEX)
|
||||
#define BV_DCP_DBGSELECT_INDEX__CONTROL 0x01
|
||||
#define BV_DCP_DBGSELECT_INDEX__OTPKEY0 0x10
|
||||
#define BV_DCP_DBGSELECT_INDEX__OTPKEY1 0x11
|
||||
#define BV_DCP_DBGSELECT_INDEX__OTPKEY2 0x12
|
||||
#define BV_DCP_DBGSELECT_INDEX__OTPKEY3 0x13
|
||||
|
||||
#define HW_DCP_DBGDATA (0x00000410)
|
||||
|
||||
#define BP_DCP_DBGDATA_DATA 0
|
||||
#define BM_DCP_DBGDATA_DATA 0xFFFFFFFF
|
||||
#define BF_DCP_DBGDATA_DATA(v) (v)
|
||||
|
||||
#define HW_DCP_PAGETABLE (0x00000420)
|
||||
|
||||
#define BP_DCP_PAGETABLE_BASE 2
|
||||
#define BM_DCP_PAGETABLE_BASE 0xFFFFFFFC
|
||||
#define BF_DCP_PAGETABLE_BASE(v) \
|
||||
(((v) << 2) & BM_DCP_PAGETABLE_BASE)
|
||||
#define BM_DCP_PAGETABLE_FLUSH 0x00000002
|
||||
#define BM_DCP_PAGETABLE_ENABLE 0x00000001
|
||||
|
||||
#define HW_DCP_VERSION (0x00000430)
|
||||
|
||||
#define BP_DCP_VERSION_MAJOR 24
|
||||
#define BM_DCP_VERSION_MAJOR 0xFF000000
|
||||
#define BF_DCP_VERSION_MAJOR(v) \
|
||||
(((v) << 24) & BM_DCP_VERSION_MAJOR)
|
||||
#define BP_DCP_VERSION_MINOR 16
|
||||
#define BM_DCP_VERSION_MINOR 0x00FF0000
|
||||
#define BF_DCP_VERSION_MINOR(v) \
|
||||
(((v) << 16) & BM_DCP_VERSION_MINOR)
|
||||
#define BP_DCP_VERSION_STEP 0
|
||||
#define BM_DCP_VERSION_STEP 0x0000FFFF
|
||||
#define BF_DCP_VERSION_STEP(v) \
|
||||
(((v) << 0) & BM_DCP_VERSION_STEP)
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user