SyterKit
0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
include
drivers
sys-dram.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0+ */
2
3
#ifndef __SYS_DRAM_H__
4
#define __SYS_DRAM_H__
5
6
#include <io.h>
7
#include <stdarg.h>
8
#include <stdbool.h>
9
#include <stddef.h>
10
#include <stdint.h>
11
#include <types.h>
12
13
#include <
reg/reg-dram.h
>
14
15
#ifdef __cplusplus
16
extern
"C"
{
17
#endif
// __cplusplus
18
19
/* Common is 0x40000000 */
20
#ifndef SDRAM_BASE
21
#define SDRAM_BASE (0x40000000)
22
#endif
23
24
enum
sunxi_dram_type
{
25
SUNXI_DRAM_TYPE_DDR2
= 2,
26
SUNXI_DRAM_TYPE_DDR3
= 3,
27
SUNXI_DRAM_TYPE_LPDDR2
= 6,
28
SUNXI_DRAM_TYPE_LPDDR3
= 7,
29
};
30
31
#if defined SUNXI_DRAM_PARAM_V2
32
typedef
struct
{
33
uint32_t
dram_clk;
34
uint32_t
dram_type;
35
uint32_t
dram_dx_odt;
36
uint32_t
dram_dx_dri;
37
uint32_t
dram_ca_dri;
38
uint32_t
dram_para0;
39
uint32_t
dram_para1;
40
uint32_t
dram_para2;
41
uint32_t
dram_mr0;
42
uint32_t
dram_mr1;
43
uint32_t
dram_mr2;
44
uint32_t
dram_mr3;
45
uint32_t
dram_mr4;
46
uint32_t
dram_mr5;
47
uint32_t
dram_mr6;
48
uint32_t
dram_mr11;
49
uint32_t
dram_mr12;
50
uint32_t
dram_mr13;
51
uint32_t
dram_mr14;
52
uint32_t
dram_mr16;
53
uint32_t
dram_mr17;
54
uint32_t
dram_mr22;
55
uint32_t
dram_tpr0;
56
uint32_t
dram_tpr1;
57
uint32_t
dram_tpr2;
58
uint32_t
dram_tpr3;
59
uint32_t
dram_tpr6;
60
uint32_t
dram_tpr10;
61
uint32_t
dram_tpr11;
62
uint32_t
dram_tpr12;
63
uint32_t
dram_tpr13;
64
uint32_t
dram_tpr14;
65
}
dram_para_t
;
66
#else
67
typedef
struct
{
68
// normal configuration
69
uint32_t
dram_clk
;
70
uint32_t
dram_type
;
// dram_type DDR2: 2 DDR3: 3 LPDDR2: 6 LPDDR3: 7 DDR3L: 31
71
uint32_t
dram_zq
;
// do not need
72
uint32_t
dram_odt_en
;
73
74
// control configuration
75
uint32_t
dram_para1
;
76
uint32_t
dram_para2
;
77
78
// timing configuration
79
uint32_t
dram_mr0
;
80
uint32_t
dram_mr1
;
81
uint32_t
dram_mr2
;
82
uint32_t
dram_mr3
;
83
uint32_t
dram_tpr0
;
// DRAMTMG0
84
uint32_t
dram_tpr1
;
// DRAMTMG1
85
uint32_t
dram_tpr2
;
// DRAMTMG2
86
uint32_t
dram_tpr3
;
// DRAMTMG3
87
uint32_t
dram_tpr4
;
// DRAMTMG4
88
uint32_t
dram_tpr5
;
// DRAMTMG5
89
uint32_t
dram_tpr6
;
// DRAMTMG8
90
// reserved for future use
91
uint32_t
dram_tpr7
;
92
uint32_t
dram_tpr8
;
93
uint32_t
dram_tpr9
;
94
uint32_t
dram_tpr10
;
95
uint32_t
dram_tpr11
;
96
uint32_t
dram_tpr12
;
97
uint32_t
dram_tpr13
;
98
}
dram_para_t
;
99
#endif
100
109
uint32_t
sunxi_get_dram_size
();
110
125
uint32_t
sunxi_dram_init
(
void
*para);
126
127
#ifdef __cplusplus
128
}
129
#endif
// __cplusplus
130
131
#endif
// __SYS_DRAM_H__
uint32_t
u32_t uint32_t
Definition
stdint.h:13
reg-dram.h
dram_para_t
Definition
sys-dram.h:67
dram_para_t::dram_zq
uint32_t dram_zq
Definition
sys-dram.h:71
dram_para_t::dram_para2
uint32_t dram_para2
Definition
sys-dram.h:76
dram_para_t::dram_tpr5
uint32_t dram_tpr5
Definition
sys-dram.h:88
dram_para_t::dram_odt_en
uint32_t dram_odt_en
Definition
sys-dram.h:72
dram_para_t::dram_mr1
uint32_t dram_mr1
Definition
sys-dram.h:80
dram_para_t::dram_para1
uint32_t dram_para1
Definition
sys-dram.h:75
dram_para_t::dram_tpr0
uint32_t dram_tpr0
Definition
sys-dram.h:83
dram_para_t::dram_tpr7
uint32_t dram_tpr7
Definition
sys-dram.h:91
dram_para_t::dram_mr3
uint32_t dram_mr3
Definition
sys-dram.h:82
dram_para_t::dram_tpr8
uint32_t dram_tpr8
Definition
sys-dram.h:92
dram_para_t::dram_tpr6
uint32_t dram_tpr6
Definition
sys-dram.h:89
dram_para_t::dram_tpr2
uint32_t dram_tpr2
Definition
sys-dram.h:85
dram_para_t::dram_tpr4
uint32_t dram_tpr4
Definition
sys-dram.h:87
dram_para_t::dram_mr2
uint32_t dram_mr2
Definition
sys-dram.h:81
dram_para_t::dram_clk
uint32_t dram_clk
Definition
sys-dram.h:69
dram_para_t::dram_tpr12
uint32_t dram_tpr12
Definition
sys-dram.h:96
dram_para_t::dram_type
uint32_t dram_type
Definition
sys-dram.h:70
dram_para_t::dram_tpr3
uint32_t dram_tpr3
Definition
sys-dram.h:86
dram_para_t::dram_tpr9
uint32_t dram_tpr9
Definition
sys-dram.h:93
dram_para_t::dram_tpr11
uint32_t dram_tpr11
Definition
sys-dram.h:95
dram_para_t::dram_tpr1
uint32_t dram_tpr1
Definition
sys-dram.h:84
dram_para_t::dram_tpr10
uint32_t dram_tpr10
Definition
sys-dram.h:94
dram_para_t::dram_mr0
uint32_t dram_mr0
Definition
sys-dram.h:79
dram_para_t::dram_tpr13
uint32_t dram_tpr13
Definition
sys-dram.h:97
sunxi_get_dram_size
uint32_t sunxi_get_dram_size()
Get the size of the DRAM (Dynamic Random Access Memory).
Definition
sys-dram.c:42
sunxi_dram_type
sunxi_dram_type
Definition
sys-dram.h:24
SUNXI_DRAM_TYPE_DDR3
@ SUNXI_DRAM_TYPE_DDR3
Definition
sys-dram.h:26
SUNXI_DRAM_TYPE_DDR2
@ SUNXI_DRAM_TYPE_DDR2
Definition
sys-dram.h:25
SUNXI_DRAM_TYPE_LPDDR3
@ SUNXI_DRAM_TYPE_LPDDR3
Definition
sys-dram.h:28
SUNXI_DRAM_TYPE_LPDDR2
@ SUNXI_DRAM_TYPE_LPDDR2
Definition
sys-dram.h:27
sunxi_dram_init
uint32_t sunxi_dram_init(void *para)
Initialize the DRAM.
Definition
sys-dram.c:1338
Generated by
1.9.8