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