Home | History | Annotate | Download | only in stub
      1 /* Copyright (c) 2013 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  * Stub implementations of firmware-provided API functions.
      6  */
      7 
      8 #include <stdint.h>
      9 
     10 #define _STUB_IMPLEMENTATION_
     11 
     12 #include <stdarg.h>
     13 #include <stdio.h>
     14 #include <stdlib.h>
     15 #include <string.h>
     16 #include <sys/time.h>
     17 
     18 #include "vboot_api.h"
     19 
     20 static enum VbEcBootMode_t vboot_mode;
     21 
     22 void VbExSleepMs(uint32_t msec)
     23 {
     24 }
     25 
     26 VbError_t VbExBeep(uint32_t msec, uint32_t frequency)
     27 {
     28 	return VBERROR_SUCCESS;
     29 }
     30 
     31 VbError_t VbExDisplayInit(uint32_t *width, uint32_t *height)
     32 {
     33 	return VBERROR_SUCCESS;
     34 }
     35 
     36 VbError_t VbExDisplayBacklight(uint8_t enable)
     37 {
     38 	return VBERROR_SUCCESS;
     39 }
     40 
     41 VbError_t VbExDisplaySetDimension(uint32_t width, uint32_t height)
     42 {
     43 	return VBERROR_SUCCESS;
     44 }
     45 
     46 VbError_t VbExDisplayScreen(uint32_t screen_type)
     47 {
     48 	return VBERROR_SUCCESS;
     49 }
     50 
     51 VbError_t VbExDisplayImage(uint32_t x, uint32_t y,
     52                            void *buffer, uint32_t buffersize)
     53 {
     54 	return VBERROR_SUCCESS;
     55 }
     56 
     57 VbError_t VbExDisplayDebugInfo(const char *info_str)
     58 {
     59 	return VBERROR_SUCCESS;
     60 }
     61 
     62 uint32_t VbExKeyboardRead(void)
     63 {
     64 	return 0;
     65 }
     66 
     67 uint32_t VbExKeyboardReadWithFlags(uint32_t *flags_ptr)
     68 {
     69 	return 0;
     70 }
     71 
     72 uint32_t VbExGetSwitches(uint32_t mask)
     73 {
     74 	return 0;
     75 }
     76 
     77 uint32_t VbExIsShutdownRequested(void)
     78 {
     79 	return 0;
     80 }
     81 
     82 VbError_t VbExDecompress(void *inbuf, uint32_t in_size,
     83                          uint32_t compression_type,
     84                          void *outbuf, uint32_t *out_size)
     85 {
     86 	return VBERROR_SUCCESS;
     87 }
     88 
     89 int VbExTrustEC(int devidx)
     90 {
     91 	return 1;
     92 }
     93 
     94 VbError_t VbExEcRunningRW(int devidx, int *in_rw)
     95 {
     96 	*in_rw = 0;
     97 	return VBERROR_SUCCESS;
     98 }
     99 
    100 VbError_t VbExEcJumpToRW(int devidx)
    101 {
    102 	return VBERROR_SUCCESS;
    103 }
    104 
    105 VbError_t VbExEcRebootToRO(int devidx)
    106 {
    107 	/* Nothing to reboot, so all we can do is return failure. */
    108 	return VBERROR_UNKNOWN;
    109 }
    110 
    111 VbError_t VbExEcDisableJump(int devidx)
    112 {
    113 	return VBERROR_SUCCESS;
    114 }
    115 
    116 #define SHA256_HASH_SIZE 32
    117 
    118 VbError_t VbExEcHashRW(int devidx, const uint8_t **hash, int *hash_size)
    119 {
    120 	static const uint8_t fake_hash[32] = {1, 2, 3, 4};
    121 
    122 	*hash = fake_hash;
    123 	*hash_size = sizeof(fake_hash);
    124 	return VBERROR_SUCCESS;
    125 }
    126 
    127 VbError_t VbExEcGetExpectedRW(int devidx, enum VbSelectFirmware_t select,
    128                               const uint8_t **image, int *image_size)
    129 {
    130 	static uint8_t fake_image[64] = {5, 6, 7, 8};
    131 	*image = fake_image;
    132 	*image_size = sizeof(fake_image);
    133 	return VBERROR_SUCCESS;
    134 }
    135 
    136 VbError_t VbExEcGetExpectedRWHash(int devidx, enum VbSelectFirmware_t select,
    137 				  const uint8_t **hash, int *hash_size)
    138 {
    139 	static const uint8_t fake_hash[32] = {1, 2, 3, 4};
    140 
    141 	*hash = fake_hash;
    142 	*hash_size = sizeof(fake_hash);
    143 	return VBERROR_SUCCESS;
    144 }
    145 
    146 VbError_t VbExEcUpdateRW(int devidx, const uint8_t *image, int image_size)
    147 {
    148 	return VBERROR_SUCCESS;
    149 }
    150 
    151 VbError_t VbExEcProtectRW(int devidx)
    152 {
    153 	return VBERROR_SUCCESS;
    154 }
    155 
    156 VbError_t VbExEcEnteringMode(int devidx, enum VbEcBootMode_t mode)
    157 {
    158 	vboot_mode = mode;
    159 	return VBERROR_SUCCESS;
    160 }
    161 
    162 enum VbEcBootMode_t VbGetMode(void)
    163 {
    164 	return vboot_mode;
    165 }
    166 
    167 int VbExLegacy(void)
    168 {
    169 	return 1;
    170 }
    171