mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-25 12:33:41 +00:00
158 lines
3.5 KiB
C
158 lines
3.5 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
/*
|
||
|
* Copyright (C) 2018-2022 Marvell International Ltd.
|
||
|
*
|
||
|
* Configuration and status register (CSR) type definitions for
|
||
|
* Octeon lbk.
|
||
|
*/
|
||
|
|
||
|
#ifndef __CVMX_LBK_DEFS_H__
|
||
|
#define __CVMX_LBK_DEFS_H__
|
||
|
|
||
|
#define CVMX_LBK_BIST_RESULT (0x0001180012000020ull)
|
||
|
#define CVMX_LBK_CHX_PKIND(offset) (0x0001180012000200ull + ((offset) & 63) * 8)
|
||
|
#define CVMX_LBK_CLK_GATE_CTL (0x0001180012000008ull)
|
||
|
#define CVMX_LBK_DAT_ERR_INFO (0x0001180012000050ull)
|
||
|
#define CVMX_LBK_ECC_CFG (0x0001180012000060ull)
|
||
|
#define CVMX_LBK_INT (0x0001180012000040ull)
|
||
|
#define CVMX_LBK_SFT_RST (0x0001180012000000ull)
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_bist_result
|
||
|
*
|
||
|
* This register provides access to the internal BIST results. Each bit is the
|
||
|
* BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
|
||
|
*/
|
||
|
union cvmx_lbk_bist_result {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_bist_result_s {
|
||
|
u64 reserved_1_63 : 63;
|
||
|
u64 dat : 1;
|
||
|
} s;
|
||
|
struct cvmx_lbk_bist_result_s cn73xx;
|
||
|
struct cvmx_lbk_bist_result_s cn78xx;
|
||
|
struct cvmx_lbk_bist_result_s cn78xxp1;
|
||
|
struct cvmx_lbk_bist_result_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_bist_result cvmx_lbk_bist_result_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_ch#_pkind
|
||
|
*/
|
||
|
union cvmx_lbk_chx_pkind {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_chx_pkind_s {
|
||
|
u64 reserved_6_63 : 58;
|
||
|
u64 pkind : 6;
|
||
|
} s;
|
||
|
struct cvmx_lbk_chx_pkind_s cn73xx;
|
||
|
struct cvmx_lbk_chx_pkind_s cn78xx;
|
||
|
struct cvmx_lbk_chx_pkind_s cn78xxp1;
|
||
|
struct cvmx_lbk_chx_pkind_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_chx_pkind cvmx_lbk_chx_pkind_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_clk_gate_ctl
|
||
|
*
|
||
|
* This register is for diagnostic use only.
|
||
|
*
|
||
|
*/
|
||
|
union cvmx_lbk_clk_gate_ctl {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_clk_gate_ctl_s {
|
||
|
u64 reserved_1_63 : 63;
|
||
|
u64 dis : 1;
|
||
|
} s;
|
||
|
struct cvmx_lbk_clk_gate_ctl_s cn73xx;
|
||
|
struct cvmx_lbk_clk_gate_ctl_s cn78xx;
|
||
|
struct cvmx_lbk_clk_gate_ctl_s cn78xxp1;
|
||
|
struct cvmx_lbk_clk_gate_ctl_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_clk_gate_ctl cvmx_lbk_clk_gate_ctl_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_dat_err_info
|
||
|
*/
|
||
|
union cvmx_lbk_dat_err_info {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_dat_err_info_s {
|
||
|
u64 reserved_58_63 : 6;
|
||
|
u64 dbe_ecc_out : 9;
|
||
|
u64 dbe_synd : 9;
|
||
|
u64 dbe_addr : 8;
|
||
|
u64 reserved_26_31 : 6;
|
||
|
u64 sbe_ecc_out : 9;
|
||
|
u64 sbe_synd : 9;
|
||
|
u64 sbe_addr : 8;
|
||
|
} s;
|
||
|
struct cvmx_lbk_dat_err_info_s cn73xx;
|
||
|
struct cvmx_lbk_dat_err_info_s cn78xx;
|
||
|
struct cvmx_lbk_dat_err_info_s cn78xxp1;
|
||
|
struct cvmx_lbk_dat_err_info_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_dat_err_info cvmx_lbk_dat_err_info_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_ecc_cfg
|
||
|
*/
|
||
|
union cvmx_lbk_ecc_cfg {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_ecc_cfg_s {
|
||
|
u64 reserved_3_63 : 61;
|
||
|
u64 dat_flip : 2;
|
||
|
u64 dat_cdis : 1;
|
||
|
} s;
|
||
|
struct cvmx_lbk_ecc_cfg_s cn73xx;
|
||
|
struct cvmx_lbk_ecc_cfg_s cn78xx;
|
||
|
struct cvmx_lbk_ecc_cfg_s cn78xxp1;
|
||
|
struct cvmx_lbk_ecc_cfg_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_ecc_cfg cvmx_lbk_ecc_cfg_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_int
|
||
|
*/
|
||
|
union cvmx_lbk_int {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_int_s {
|
||
|
u64 reserved_6_63 : 58;
|
||
|
u64 chan_oflow : 1;
|
||
|
u64 chan_uflow : 1;
|
||
|
u64 dat_oflow : 1;
|
||
|
u64 dat_uflow : 1;
|
||
|
u64 dat_dbe : 1;
|
||
|
u64 dat_sbe : 1;
|
||
|
} s;
|
||
|
struct cvmx_lbk_int_s cn73xx;
|
||
|
struct cvmx_lbk_int_s cn78xx;
|
||
|
struct cvmx_lbk_int_s cn78xxp1;
|
||
|
struct cvmx_lbk_int_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_int cvmx_lbk_int_t;
|
||
|
|
||
|
/**
|
||
|
* cvmx_lbk_sft_rst
|
||
|
*/
|
||
|
union cvmx_lbk_sft_rst {
|
||
|
u64 u64;
|
||
|
struct cvmx_lbk_sft_rst_s {
|
||
|
u64 reserved_1_63 : 63;
|
||
|
u64 reset : 1;
|
||
|
} s;
|
||
|
struct cvmx_lbk_sft_rst_s cn73xx;
|
||
|
struct cvmx_lbk_sft_rst_s cn78xx;
|
||
|
struct cvmx_lbk_sft_rst_s cn78xxp1;
|
||
|
struct cvmx_lbk_sft_rst_s cnf75xx;
|
||
|
};
|
||
|
|
||
|
typedef union cvmx_lbk_sft_rst cvmx_lbk_sft_rst_t;
|
||
|
|
||
|
#endif
|