mirror of
https://github.com/DrHo1y/orangepi-build.git
synced 2026-03-26 10:36:42 +07:00
75 lines
2.4 KiB
C
75 lines
2.4 KiB
C
/*
|
|
* OTP support.
|
|
*
|
|
* $Copyright Open Broadcom Corporation$
|
|
*
|
|
* $Id: bcmotp.h 325751 2012-04-04 19:08:48Z nvalji $
|
|
*/
|
|
|
|
#ifndef _bcmotp_h_
|
|
#define _bcmotp_h_
|
|
|
|
/* OTP regions */
|
|
#define OTP_HW_RGN 1
|
|
#define OTP_SW_RGN 2
|
|
#define OTP_CI_RGN 4
|
|
#define OTP_FUSE_RGN 8
|
|
#define OTP_ALL_RGN 0xf /* From h/w region to end of OTP including checksum */
|
|
|
|
/* OTP Size */
|
|
#define OTP_SZ_MAX (6144/8) /* maximum bytes in one CIS */
|
|
|
|
/* Fixed size subregions sizes in words */
|
|
#define OTPGU_CI_SZ 2
|
|
|
|
/* OTP usage */
|
|
#define OTP4325_FM_DISABLED_OFFSET 188
|
|
|
|
#if defined(BCMNVRAMW) || defined(OTP_REWRITE)
|
|
/* Global RDE index for chips not having an OTP PMU resource. */
|
|
#define OTP_GLOBAL_RDE_IDX 0xFF
|
|
#endif
|
|
|
|
/* Exported functions */
|
|
extern int otp_status(void *oh);
|
|
extern int otp_size(void *oh);
|
|
extern uint16 otp_read_bit(void *oh, uint offset);
|
|
extern void* otp_init(si_t *sih);
|
|
#if !defined(BCMDONGLEHOST)
|
|
extern int otp_read_region(si_t *sih, int region, uint16 *data, uint *wlen);
|
|
extern int otp_read_word(si_t *sih, uint wn, uint16 *data);
|
|
extern int otp_nvread(void *oh, char *data, uint *len);
|
|
#ifdef BCMNVRAMW
|
|
extern int otp_write_region(si_t *sih, int region, uint16 *data, uint wlen);
|
|
extern int otp_write_word(si_t *sih, uint wn, uint16 data);
|
|
extern int otp_cis_append_region(si_t *sih, int region, char *vars, int count);
|
|
extern int otp_lock(si_t *sih);
|
|
extern int otp_nvwrite(void *oh, uint16 *data, uint wlen);
|
|
#endif /* BCMNVRAMW */
|
|
#endif /* !defined(BCMDONGLEHOST) */
|
|
|
|
extern int otp_dump(void *oh, int arg, char *buf, uint size);
|
|
extern int otp_dumpstats(void *oh, int arg, char *buf, uint size);
|
|
|
|
#if !defined(BCMDONGLEHOST) && defined(BCMNVRAMW)
|
|
#define otp_write_rde(oh, rde, bit, val) ipxotp_write_rde(oh, rde, bit, val)
|
|
extern int otp_write_bits(void *oh, uint offset, int bits, uint8* data);
|
|
|
|
#ifdef OTP_DEBUG
|
|
extern int otp_verify1x(void *oh, uint off, uint fuse);
|
|
extern int otp_read1x(void *oh, uint off, uint fuse);
|
|
extern int otp_repair_bit(void *oh, uint off, uint val);
|
|
extern int otp_write_ones(void *oh, uint off, uint bits);
|
|
extern int otp_write_ones_old(void *oh, uint off, uint bits);
|
|
#endif
|
|
|
|
#endif /* !defined(BCMDONGLEHOST) && defined(BCMNVRAMW) */
|
|
|
|
|
|
#if !defined(BCMDONGLEHOST) && (defined(BCMNVRAMW) || defined(OTP_REWRITE))
|
|
extern int ipxotp_write_rde(void *oh, int rde, uint bit, uint val);
|
|
extern int otp_rewrite_all(void *oh);
|
|
#endif /* !BCMDONGLEHOST) && (BCMNVRAMW || OTP_REWRITE) */
|
|
|
|
#endif /* _bcmotp_h_ */
|