coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
memory.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <assert.h>
4 #include <baseboard/variants.h>
5 
6 #define SAMSUNG_C_DIE_2G 10
7 #define SAMSUNG_C_DIE_4G 11
8 /* DQ byte map */
9 static const u8 dq_map[][12] = {
10  { 0x0F, 0xF0, 0x00, 0xF0, 0x0F, 0xF0,
11  0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x00 },
12  { 0x33, 0xCC, 0x00, 0xCC, 0x33, 0xCC,
13  0x33, 0x00, 0xFF, 0x00, 0xFF, 0x00 }
14 };
15 
16 /* DQS CPU<>DRAM map */
17 static const u8 dqs_map[][8] = {
18  { 0, 1, 3, 2, 4, 5, 6, 7 },
19  { 3, 2, 6, 7, 0, 1, 4, 5 },
20 };
21 
22 /* Rcomp resistor */
23 static const u16 rcomp_resistor[] = { 200, 81, 162 };
24 
25 /* Rcomp target */
26 static const u16 rcomp_target[] = { 100, 40, 40, 23, 40 };
27 static const u16 rcomp_target_samsung_c_die[] = { 100, 40, 35, 18, 40 };
28 
30 {
31  int spd_index;
32 
33  p->type = MEMORY_LPDDR3;
34  p->dq_map = dq_map;
35  p->dq_map_size = sizeof(dq_map);
36  p->dqs_map = dqs_map;
37  p->dqs_map_size = sizeof(dqs_map);
41  assert(spd_index >= 0);
44  else
46  p->rcomp_target_size = sizeof(rcomp_target);
47 }
#define assert(statement)
Definition: assert.h:74
@ MEMORY_LPDDR3
Definition: variants.h:26
const struct mb_cfg *__weak variant_memory_params(void)
Definition: memory.c:67
int __weak variant_memory_sku(void)
Definition: memory.c:74
static const int spd_index[32]
Definition: memory.c:10
static const u16 rcomp_target_samsung_c_die[]
Definition: memory.c:27
static const u16 rcomp_target[]
Definition: memory.c:26
static const u8 dqs_map[][8]
Definition: memory.c:17
#define SAMSUNG_C_DIE_4G
Definition: memory.c:7
static const u16 rcomp_resistor[]
Definition: memory.c:23
static const u8 dq_map[][12]
Definition: memory.c:9
#define SAMSUNG_C_DIE_2G
Definition: memory.c:6
uint16_t u16
Definition: stdint.h:48
uint8_t u8
Definition: stdint.h:45
size_t dq_map_size
Definition: variants.h:34
enum memory_type type
Definition: variants.h:32
const void * rcomp_target
Definition: variants.h:39
size_t dqs_map_size
Definition: variants.h:36
const void * rcomp_resistor
Definition: variants.h:37
size_t rcomp_resistor_size
Definition: variants.h:38
const void * dq_map
Definition: variants.h:33
size_t rcomp_target_size
Definition: variants.h:40
const void * dqs_map
Definition: variants.h:35