Files
OpenCellular/firmware/stub/vboot_api_stub.c
Gabe Black ac8805e7e9 Get rid of some crufty macros.
These were macros that were never used, or that were only set to one thing and
could be substituted up front.

I left in code guarded by the HAVE_ENDIAN_H and HAVE_LITTLE_ENDIAN macros even
though those are never defined because they guard a reportedly significantly
faster implementation of some functionality, at least according to a comment
in the source. It would be a good idea to enable that code path and see if it
really does make a big difference before removing it entirely.

BUG=None
TEST=Built for Link, Daisy, and the host with FEATURES=test. Built depthcharge
for Link and booted in normal mode.
BRANCH=None

Change-Id: I934a4dd0da169ac018ba07350d56924ab88b1acc
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/45687
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
2013-03-19 16:55:44 -07:00

141 lines
2.5 KiB
C

/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Stub implementations of firmware-provided API functions.
*/
#define _STUB_IMPLEMENTATION_
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include "vboot_api.h"
void VbExSleepMs(uint32_t msec)
{
}
VbError_t VbExBeep(uint32_t msec, uint32_t frequency)
{
return VBERROR_SUCCESS;
}
VbError_t VbExDisplayInit(uint32_t *width, uint32_t *height)
{
return VBERROR_SUCCESS;
}
VbError_t VbExDisplayBacklight(uint8_t enable)
{
return VBERROR_SUCCESS;
}
VbError_t VbExDisplayScreen(uint32_t screen_type)
{
return VBERROR_SUCCESS;
}
VbError_t VbExDisplayImage(uint32_t x, uint32_t y,
void *buffer, uint32_t buffersize)
{
return VBERROR_SUCCESS;
}
VbError_t VbExDisplayDebugInfo(const char *info_str)
{
return VBERROR_SUCCESS;
}
uint32_t VbExKeyboardRead(void)
{
return 0;
}
uint32_t VbExIsShutdownRequested(void)
{
return 0;
}
VbError_t VbExDecompress(void *inbuf, uint32_t in_size,
uint32_t compression_type,
void *outbuf, uint32_t *out_size)
{
return VBERROR_SUCCESS;
}
int VbExTrustEC(void)
{
return 1;
}
VbError_t VbExEcRunningRW(int *in_rw)
{
*in_rw = 0;
return VBERROR_SUCCESS;
}
VbError_t VbExEcJumpToRW(void)
{
return VBERROR_SUCCESS;
}
VbError_t VbExEcRebootToRO(void)
{
/* Nothing to reboot, so all we can do is return failure. */
return VBERROR_UNKNOWN;
}
VbError_t VbExEcStayInRO(void)
{
return VBERROR_SUCCESS;
}
#define SHA256_HASH_SIZE 32
VbError_t VbExEcHashRW(const uint8_t **hash, int *hash_size)
{
static const uint8_t fake_hash[32] = {1, 2, 3, 4};
*hash = fake_hash;
*hash_size = sizeof(fake_hash);
return VBERROR_SUCCESS;
}
VbError_t VbExEcGetExpectedRW(enum VbSelectFirmware_t select,
const uint8_t **image, int *image_size)
{
static uint8_t fake_image[64] = {5, 6, 7, 8};
*image = fake_image;
*image_size = sizeof(fake_image);
return VBERROR_SUCCESS;
}
VbError_t VbExEcGetExpectedRWHash(enum VbSelectFirmware_t select,
const uint8_t **hash, int *hash_size)
{
static const uint8_t fake_hash[32] = {1, 2, 3, 4};
*hash = fake_hash;
*hash_size = sizeof(fake_hash);
return VBERROR_SUCCESS;
}
VbError_t VbExEcUpdateRW(const uint8_t *image, int image_size)
{
return VBERROR_SUCCESS;
}
VbError_t VbExEcProtectRW(void)
{
return VBERROR_SUCCESS;
}
int VbExLegacy(void)
{
return 1;
}