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