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 <baseboard/variants.h>
4 #include <gpio.h>
5 #include <variant/gpio.h>
6 
7 /* DQ byte map */
8 static const u8 dq_map[][12] = {
9  { 0x0F, 0xF0, 0x00, 0xF0, 0x0F, 0xF0,
10  0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x00 },
11  { 0xCC, 0x33, 0x00, 0x33, 0xCC, 0x33,
12  0xCC, 0x00, 0xFF, 0x00, 0xFF, 0x00 }
13 };
14 
15 /* DQS CPU<>DRAM map */
16 static const u8 dqs_map[][8] = {
17  { 2, 3, 1, 0, 4, 7, 6, 5 },
18  { 5, 6, 0, 3, 4, 7, 2, 1 },
19 };
20 
21 /* Rcomp resistor */
22 static const u16 rcomp_resistor[] = { 200, 81, 162 };
23 
24 /* Rcomp target */
25 static const u16 rcomp_target[] = { 100, 40, 40, 23, 40 };
26 
28 {
29  p->type = MEMORY_LPDDR3;
30  p->dq_map = dq_map;
31  p->dq_map_size = sizeof(dq_map);
32  p->dqs_map = dqs_map;
33  p->dqs_map_size = sizeof(dqs_map);
37  p->rcomp_target_size = sizeof(rcomp_target);
38 }
39 
41 {
42  gpio_t spd_gpios[] = {
47  };
48 
49  return gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));
50 }
#define ARRAY_SIZE(a)
Definition: helpers.h:12
@ MEMORY_LPDDR3
Definition: variants.h:26
uint32_t gpio_base2_value(const gpio_t gpio[], int num_gpio)
Definition: gpio.c:30
const struct mb_cfg *__weak variant_memory_params(void)
Definition: memory.c:67
int __weak variant_memory_sku(void)
Definition: memory.c:74
#define GPIO_MEM_CONFIG_3
Definition: gpio.h:27
#define GPIO_MEM_CONFIG_0
Definition: gpio.h:24
#define GPIO_MEM_CONFIG_2
Definition: gpio.h:26
#define GPIO_MEM_CONFIG_1
Definition: gpio.h:25
static const u16 rcomp_target[]
Definition: memory.c:25
static const u8 dqs_map[][8]
Definition: memory.c:16
static const u16 rcomp_resistor[]
Definition: memory.c:22
static const u8 dq_map[][12]
Definition: memory.c:8
const struct smm_save_state_ops *legacy_ops __weak
Definition: save_state.c:8
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