xref: /rk3399_ARM-atf/include/drivers/partition/partition.h (revision 93c78ed231a6ea30f1c30ecbbb0f245fa9d75075)
1201b66b7SHaojian Zhuang /*
2*93c78ed2SAntonio Nino Diaz  * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
3201b66b7SHaojian Zhuang  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
5201b66b7SHaojian Zhuang  */
6201b66b7SHaojian Zhuang 
7201b66b7SHaojian Zhuang #ifndef __PARTITION_H__
8201b66b7SHaojian Zhuang #define __PARTITION_H__
9201b66b7SHaojian Zhuang 
10201b66b7SHaojian Zhuang #include <cassert.h>
11*93c78ed2SAntonio Nino Diaz #include <stdint.h>
12201b66b7SHaojian Zhuang 
13201b66b7SHaojian Zhuang #if !PLAT_PARTITION_MAX_ENTRIES
14201b66b7SHaojian Zhuang # define PLAT_PARTITION_MAX_ENTRIES	128
15201b66b7SHaojian Zhuang #endif	/* PLAT_PARTITION_MAX_ENTRIES */
16201b66b7SHaojian Zhuang 
17201b66b7SHaojian Zhuang CASSERT(PLAT_PARTITION_MAX_ENTRIES <= 128, assert_plat_partition_max_entries);
18201b66b7SHaojian Zhuang 
19201b66b7SHaojian Zhuang #define PARTITION_BLOCK_SIZE		512
20201b66b7SHaojian Zhuang 
21201b66b7SHaojian Zhuang #define EFI_NAMELEN			36
22201b66b7SHaojian Zhuang 
23201b66b7SHaojian Zhuang typedef struct partition_entry {
24201b66b7SHaojian Zhuang 	uint64_t		start;
25201b66b7SHaojian Zhuang 	uint64_t		length;
26201b66b7SHaojian Zhuang 	char			name[EFI_NAMELEN];
27201b66b7SHaojian Zhuang } partition_entry_t;
28201b66b7SHaojian Zhuang 
29201b66b7SHaojian Zhuang typedef struct partition_entry_list {
30201b66b7SHaojian Zhuang 	partition_entry_t	list[PLAT_PARTITION_MAX_ENTRIES];
31201b66b7SHaojian Zhuang 	int			entry_count;
32201b66b7SHaojian Zhuang } partition_entry_list_t;
33201b66b7SHaojian Zhuang 
34201b66b7SHaojian Zhuang int load_partition_table(unsigned int image_id);
35201b66b7SHaojian Zhuang const partition_entry_t *get_partition_entry(const char *name);
36201b66b7SHaojian Zhuang const partition_entry_list_t *get_partition_entry_list(void);
37201b66b7SHaojian Zhuang void partition_init(unsigned int image_id);
38201b66b7SHaojian Zhuang 
39201b66b7SHaojian Zhuang #endif	/* __PARTITION_H__ */
40