1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <string.h> 4 #include "soc/dramc_param.h" 5 get_dramc_param_from_blob(void * blob)6struct dramc_param *get_dramc_param_from_blob(void *blob) 7 { 8 return (struct dramc_param *)blob; 9 } 10 validate_dramc_param(const void * blob)11int validate_dramc_param(const void *blob) 12 { 13 const struct dramc_param *param = blob; 14 const struct dramc_param_header *hdr = ¶m->header; 15 16 if (hdr->magic != DRAMC_PARAM_HEADER_MAGIC) 17 return DRAMC_ERR_INVALID_MAGIC; 18 19 if (hdr->version != DRAMC_PARAM_HEADER_VERSION) 20 return DRAMC_ERR_INVALID_VERSION; 21 22 if (hdr->size != sizeof(*param)) 23 return DRAMC_ERR_INVALID_SIZE; 24 25 return DRAMC_SUCCESS; 26 } 27 is_valid_dramc_param(const void * blob)28int is_valid_dramc_param(const void *blob) 29 { 30 return validate_dramc_param(blob) == DRAMC_SUCCESS; 31 } 32 initialize_dramc_param(void * blob,u16 config)33int initialize_dramc_param(void *blob, u16 config) 34 { 35 struct dramc_param *param = blob; 36 struct dramc_param_header *hdr = ¶m->header; 37 38 memset(blob, 0, sizeof(*param)); 39 hdr->magic = DRAMC_PARAM_HEADER_MAGIC; 40 hdr->size = sizeof(*param); 41 hdr->version = DRAMC_PARAM_HEADER_VERSION; 42 hdr->config = config; 43 return 0; 44 } 45