mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 10:45:22 +00:00
This adds a new host commmand for sending RW updates to PD devices. The host command has a variety of sub-commands for performing the update, including: erase RW, reboot, write new hash, write flash. To program zinger RW, you should send host commands in this order: write new hash to all 0's reboot (zinger boots into RO since RW hash doesn't match) erase RW write flash write new hash to match contents of RW reboot This also adds an ectool command to write a new RW. Just pass it the RW .flat or .bin file. BUG=chrome-os-partner:31361 BRANCH=none TEST=ectool --dev=1 --interface=lpc flashpd 0 0 zinger.RW.flat Change-Id: Ia81615001b83ad7ee69b1af2bf1d7059177cde04 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/213239 Reviewed-by: Randall Spangler <rspangler@chromium.org>
37 lines
806 B
C
37 lines
806 B
C
/* Copyright (c) 2014 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.
|
|
*/
|
|
|
|
/* SHA-1 functions */
|
|
|
|
#ifndef _SHA1_H
|
|
#define _SHA1_H
|
|
|
|
#include "common.h"
|
|
#ifdef HOST_TOOLS_BUILD
|
|
#include <string.h>
|
|
#define DIV_ROUND_UP(x, y) (((x) + ((y) - 1)) / (y))
|
|
#else
|
|
#include "util.h"
|
|
#endif
|
|
|
|
#define SHA1_DIGEST_SIZE 20
|
|
#define SHA1_BLOCK_SIZE 64
|
|
|
|
/* SHA-1 context */
|
|
struct sha1_ctx {
|
|
uint32_t count;
|
|
uint32_t state[5];
|
|
union {
|
|
uint8_t b[SHA1_BLOCK_SIZE];
|
|
uint32_t w[DIV_ROUND_UP(SHA1_BLOCK_SIZE, sizeof(uint32_t))];
|
|
} buf;
|
|
};
|
|
|
|
void sha1_init(struct sha1_ctx *ctx);
|
|
void sha1_update(struct sha1_ctx *ctx, const uint8_t *data, uint32_t len);
|
|
uint8_t *sha1_final(struct sha1_ctx *ctx);
|
|
|
|
#endif /* _SHA1_H */
|