Home | History | Annotate | Download | only in dm
      1 /* SPDX-License-Identifier: GPL-2.0+ */
      2 /*
      3  * Copyright (c) 2017 Google, Inc
      4  * Written by Simon Glass <sjg (at) chromium.org>
      5  */
      6 
      7 #ifndef _DM_OF_EXTRA_H
      8 #define _DM_OF_EXTRA_H
      9 
     10 #include <dm/ofnode.h>
     11 
     12 enum fmap_compress_t {
     13 	FMAP_COMPRESS_NONE,
     14 	FMAP_COMPRESS_LZO,
     15 };
     16 
     17 enum fmap_hash_t {
     18 	FMAP_HASH_NONE,
     19 	FMAP_HASH_SHA1,
     20 	FMAP_HASH_SHA256,
     21 };
     22 
     23 /* A flash map entry, containing an offset and length */
     24 struct fmap_entry {
     25 	uint32_t offset;
     26 	uint32_t length;
     27 	uint32_t used;			/* Number of bytes used in region */
     28 	enum fmap_compress_t compress_algo;	/* Compression type */
     29 	enum fmap_hash_t hash_algo;		/* Hash algorithm */
     30 	const uint8_t *hash;			/* Hash value */
     31 	int hash_size;				/* Hash size */
     32 };
     33 
     34 /**
     35  * Read a flash entry from the fdt
     36  *
     37  * @param node	Reference to node to read
     38  * @param name		Name of node being read
     39  * @param entry		Place to put offset and size of this node
     40  * @return 0 if ok, -ve on error
     41  */
     42 int of_read_fmap_entry(ofnode node, const char *name,
     43 		       struct fmap_entry *entry);
     44 
     45 #endif
     46