1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef BCM63XX_NVRAM_H
3#define BCM63XX_NVRAM_H
4
5#include <linux/types.h>
6
7/**
8 * bcm63xx_nvram_init() - initializes nvram
9 * @nvram:	address of the nvram data
10 *
11 * Initialized the local nvram copy from the target address and checks
12 * its checksum.
13 */
14void bcm63xx_nvram_init(void *nvram);
15
16/**
17 * bcm63xx_nvram_get_name() - returns the board name according to nvram
18 *
19 * Returns the board name field from nvram. Note that it might not be
20 * null terminated if it is exactly 16 bytes long.
21 */
22u8 *bcm63xx_nvram_get_name(void);
23
24/**
25 * bcm63xx_nvram_get_mac_address() - register & return a new mac address
26 * @mac:	pointer to array for allocated mac
27 *
28 * Registers and returns a mac address from the allocated macs from nvram.
29 *
30 * Returns 0 on success.
31 */
32int bcm63xx_nvram_get_mac_address(u8 *mac);
33
34int bcm63xx_nvram_get_psi_size(void);
35
36#endif /* BCM63XX_NVRAM_H */
37