summaryrefslogtreecommitdiff
path: root/imr_toc.h
blob: e17e9876e7a6bea2a6d89c090a6333b1b1a60f51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#ifndef _IMR_TOC_H_
#define _IMR_TOC_H_

/*
 * IMR Table of Contents format
 */
typedef struct {
    uint32_t start_offset;
    uint32_t size;
    uint32_t reserved1;
    uint32_t reserved2;
} imr_toc_entry_t;

typedef struct {
    imr_toc_entry_t entries[8];    /* pick reasonable size to make gcc happy */
} imr_toc_t;

#define MAKE_TOC_VERSION(maj, min)  ((min) << 16 | (maj))
typedef struct {
    uint16_t toc_maj_ver;
    uint16_t toc_min_ver;
} imr_toc_entry_version_t;

/*
 * IMR6 values
 */

#define IMR6_TOC_MAGIC       0x6CD96EDB

#define IMR6_TOC_VERSION_MAJ 0x0001
#define IMR6_TOC_VERSION_MIN 0x0000

/* ToC entry order for IMR6 */
enum imr6_entries {
    IMR_TOC_ENTRY_TOC = 0,
    IMR_TOC_ENTRY_MTX_WB_BUF,
    IMR_TOC_ENTRY_VXE_FW,
    IMR_TOC_ENTRY_VXE_CTX_BUF,
    IMR_TOC_ENTRY_VXE_SEC_PGTBLS,
    IMR_TOC_ENTRY_PC_BUFS,
    IMR_TOC_ENTRY_VXE_SHADOW_PGTBLS,
    IMR_TOC_ENTRY_XEN_EXTRA,
};


/*
 * IMR7 values
 */

#define IMR7_TOC_MAGIC       0x6ED96CDB

#define IMR7_TOC_VERSION_MAJ 0x0001
#define IMR7_TOC_VERSION_MIN 0x0000

/* ToC entry order for IMR7 */
enum imr7_entries {
    /* IMR_TOC_ENTRY_TOC = 0, */
    IMR_TOC_ENTRY_MAILBOXES = 1,     /* contents per imr_ia_chaabi_mailbox_t */
    IMR_TOC_ENTRY_IA_RUNTIME_FW,
    IMR_TOC_ENTRY_XEN
};

/* entry-specific data structures */

#define IMR6_PC_BUFS_START_VADDR  0x11223344

typedef struct {
    uint32_t hdcp_sess_status;
    union {
        struct {
	    uint32_t hdcp_sess_key_00_31;
	    uint32_t hdcp_sess_key_32_63;
	    uint32_t hdcp_sess_key_64_95;
	    uint32_t hdcp_sess_key_96_127;
	};
        uint8_t hdcp_sess_key[16];
    };
    union {
        struct {
	    uint32_t hdcp_iv_00_31;
	    uint32_t hdcp_iv_32_63;
	};
        uint64_t hdcp_iv;
    };
} imr_ia_chaabi_mailbox_t;

#endif