xref: /arm-trusted-firmware/include/drivers/partition/mbr.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef MBR_H
8*91f16700Schasinglulu #define MBR_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #define MBR_OFFSET			0
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #define MBR_PRIMARY_ENTRY_OFFSET	0x1be
13*91f16700Schasinglulu #define MBR_PRIMARY_ENTRY_SIZE		0x10
14*91f16700Schasinglulu #define MBR_PRIMARY_ENTRY_NUMBER	4
15*91f16700Schasinglulu #define MBR_CHS_ADDRESS_LEN		3
16*91f16700Schasinglulu 
17*91f16700Schasinglulu #define MBR_SIGNATURE_FIRST		0x55
18*91f16700Schasinglulu #define MBR_SIGNATURE_SECOND		0xAA
19*91f16700Schasinglulu 
20*91f16700Schasinglulu typedef struct mbr_entry {
21*91f16700Schasinglulu 	unsigned char		status;
22*91f16700Schasinglulu 	unsigned char		first_sector[MBR_CHS_ADDRESS_LEN];
23*91f16700Schasinglulu 	unsigned char		type;
24*91f16700Schasinglulu 	unsigned char		last_sector[MBR_CHS_ADDRESS_LEN];
25*91f16700Schasinglulu 	unsigned int		first_lba;
26*91f16700Schasinglulu 	unsigned int		sector_nums;
27*91f16700Schasinglulu } mbr_entry_t;
28*91f16700Schasinglulu 
29*91f16700Schasinglulu #endif /* MBR_H */
30