Detect and report VM environment in crossystem
[vboot.git] / host / arch / mips / lib / crossystem_arch.c
1 /* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5
6 #include <string.h>
7
8 #include "vboot_common.h"
9 #include "vboot_nvstorage.h"
10 #include "host_common.h"
11 #include "crossystem.h"
12 #include "crossystem_arch.h"
13
14 // TODO: Currently these are stub implementations providing reasonable defaults
15 // wherever possible. They will need real implementation as part of of MIPS
16 // firmware bringup.
17
18 int VbReadNvStorage(VbNvContext* vnc) {
19   return -1;
20 }
21
22 int VbWriteNvStorage(VbNvContext* vnc) {
23   return -1;
24 }
25
26 VbSharedDataHeader *VbSharedDataRead(void) {
27   return NULL;
28 }
29
30 int VbGetArchPropertyInt(const char* name) {
31   if (!strcasecmp(name,"devsw_cur")) {
32     return 1;
33   } else if (!strcasecmp(name,"recoverysw_cur")) {
34     return 0;
35   } else if (!strcasecmp(name,"wpsw_cur")) {
36     return 1;
37   } else if (!strcasecmp(name,"devsw_boot")) {
38     return 1;
39   } else if (!strcasecmp(name,"recoverysw_boot")) {
40     return 0;
41   } else if (!strcasecmp(name,"recoverysw_ec_boot")) {
42     return 0;
43   } else if (!strcasecmp(name,"wpsw_boot")) {
44     return 1;
45   } else if (!strcasecmp(name,"inside_vm")) {
46     return 0;
47   }
48   return -1;
49 }
50
51 const char* VbGetArchPropertyString(const char* name, char* dest, size_t size) {
52   if (!strcasecmp(name,"hwid")) {
53     return StrCopy(dest, "UnknownMipsHwid", size);
54   } else if (!strcasecmp(name,"fwid")) {
55     return StrCopy(dest, "UnknownMipsFwid", size);
56   } else if (!strcasecmp(name,"ro_fwid")) {
57     return StrCopy(dest, "UnknownMipsRoFwid", size);
58   } else if (!strcasecmp(name,"mainfw_act")) {
59     return StrCopy(dest, "A", size);
60   } else if (!strcasecmp(name,"mainfw_type")) {
61     return StrCopy(dest, "developer", size);
62   } else if (!strcasecmp(name,"ecfw_act")) {
63     return StrCopy(dest, "RO", size);
64   }
65   return NULL;
66 }
67
68 int VbSetArchPropertyInt(const char* name, int value) {
69   /* All is handled in arch independent fashion */
70   return -1;
71 }
72
73 int VbSetArchPropertyString(const char* name, const char* value) {
74   /* All is handled in arch independent fashion */
75   return -1;
76 }