1841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved. 2841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah * Use of this source code is governed by a BSD-style license that can be 3841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah * found in the LICENSE file. 4841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah */ 5841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 6841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include <string.h> 7841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 8841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include "vboot_common.h" 9841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include "vboot_nvstorage.h" 10841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include "host_common.h" 11841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include "crossystem.h" 12841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah#include "crossystem_arch.h" 13841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 14841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah// TODO: Currently these are stub implementations providing reasonable defaults 15841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah// wherever possible. They will need real implementation as part of of MIPS 16841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah// firmware bringup. 17841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 18841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahint VbReadNvStorage(VbNvContext* vnc) { 19841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return -1; 20841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 21841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 22841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahint VbWriteNvStorage(VbNvContext* vnc) { 23841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return -1; 24841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 25841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 26841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav ShahVbSharedDataHeader *VbSharedDataRead(void) { 27841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return NULL; 28841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 29841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 30841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahint VbGetArchPropertyInt(const char* name) { 31841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah if (!strcasecmp(name,"devsw_cur")) { 32841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 1; 33841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"recoverysw_cur")) { 34841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 0; 35841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"wpsw_cur")) { 36841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 1; 37841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"devsw_boot")) { 38841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 1; 39841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"recoverysw_boot")) { 40841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 0; 41841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"recoverysw_ec_boot")) { 42841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 0; 43841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"wpsw_boot")) { 44841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return 1; 45841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } 46841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return -1; 47841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 48841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 49841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahconst char* VbGetArchPropertyString(const char* name, char* dest, size_t size) { 50841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah if (!strcasecmp(name,"hwid")) { 51841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "UnknownMipsHwid", size); 52841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"fwid")) { 53841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "UnknownMipsFwid", size); 54841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"ro_fwid")) { 55841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "UnknownMipsRoFwid", size); 56841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"mainfw_act")) { 57841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "A", size); 58841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"mainfw_type")) { 59841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "developer", size); 60841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } else if (!strcasecmp(name,"ecfw_act")) { 61841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return StrCopy(dest, "RO", size); 62841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah } 63841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return NULL; 64841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 65841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 66841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahint VbSetArchPropertyInt(const char* name, int value) { 67841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah /* All is handled in arch independent fashion */ 68841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return -1; 69841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 70841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah 71841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shahint VbSetArchPropertyString(const char* name, const char* value) { 72841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah /* All is handled in arch independent fashion */ 73841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah return -1; 74841126fec6a0c17540f7b5dddb232a36fe4a06f1Gaurav Shah} 75