mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 02:35:28 +00:00
Version 1 of EC_CMD_FLASH_WRITE will use as big a write as possible given
the available command parameter space. Falls back to 64 byte writes on old
platforms.
BUG=chrome-os-partner:20571
BRANCH=none
TEST=Copy burn_my_ec onto a link and run it. Write size should be 64 bytes
for the first half of the update (since the old EC doesn't support ver.1
of the write command) and 240 bytes for the second half of the update.
Change-Id: I5900de3a5700d7c82a2e0c3cf9921b7ced1c0343
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/60511
60 lines
1.6 KiB
C
60 lines
1.6 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.
|
|
*/
|
|
|
|
#ifndef __CROS_EC_MISC_UTIL_H
|
|
#define __CROS_EC_MISC_UTIL_H
|
|
|
|
/* Don't use a macro where an inline will do... */
|
|
static inline int MIN(int a, int b) { return a < b ? a : b; }
|
|
|
|
/**
|
|
* Write a buffer to the file.
|
|
*
|
|
* @param filename Target filename
|
|
* @param buf Buffer to write
|
|
* @param size Size of buffer in bytes
|
|
* @return non-zero if error
|
|
*/
|
|
int write_file(const char *filename, const char *buf, int size);
|
|
|
|
/**
|
|
* Read a file into a newly-allocated buffer.
|
|
*
|
|
* @param filename Source filename
|
|
* @param size Size of data in bytes will be stored here on success.
|
|
* @return A newly allocated buffer with the data, which must be freed with
|
|
* free() by the caller, or NULL if error.
|
|
*/
|
|
char *read_file(const char *filename, int *size);
|
|
|
|
/**
|
|
* Check if a string contains only printable characters.
|
|
*
|
|
* @param buf Null-terminated string to check
|
|
* @return non-zero if buf contains only printable characters; zero if not.
|
|
*/
|
|
int is_string_printable(const char *buf);
|
|
|
|
/**
|
|
* Get the versions of the command supported by the EC.
|
|
*
|
|
* @param cmd Command
|
|
* @param pmask Destination for version mask; will be set to 0 on
|
|
* error.
|
|
* @return 0 if success, <0 if error
|
|
*/
|
|
int ec_get_cmd_versions(int cmd, uint32_t *pmask);
|
|
|
|
/**
|
|
* Return non-zero if the EC supports the command and version
|
|
*
|
|
* @param cmd Command to check
|
|
* @param ver Version to check
|
|
* @return non-zero if command version supported; 0 if not.
|
|
*/
|
|
int ec_cmd_version_supported(int cmd, int ver);
|
|
|
|
#endif
|