1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <console/console.h> 4 #include <ec/google/chromeec/ec.h> 5 #include <memory_info.h> 6 mainboard_get_dram_part_num(void)7const char *mainboard_get_dram_part_num(void) 8 { 9 static char part_num_store[DIMM_INFO_PART_NUMBER_SIZE]; 10 static enum { 11 PART_NUM_NOT_READ, 12 PART_NUM_AVAILABLE, 13 PART_NUM_NOT_IN_CBI, 14 } part_num_state = PART_NUM_NOT_READ; 15 16 if (part_num_state == PART_NUM_NOT_READ) { 17 if (google_chromeec_cbi_get_dram_part_num(part_num_store, 18 sizeof(part_num_store)) < 0) { 19 printk(BIOS_DEBUG, 20 "Couldn't obtain DRAM part number from CBI\n"); 21 part_num_state = PART_NUM_NOT_IN_CBI; 22 } else { 23 part_num_state = PART_NUM_AVAILABLE; 24 } 25 } 26 27 if (part_num_state == PART_NUM_NOT_IN_CBI) 28 return NULL; 29 30 return part_num_store; 31 } 32