xref: /rk3399_rockchip-uboot/tools/env/fw_env.h (revision c3a23e8b5f7c13d9de389d25d756a7da64bc5144)
16aff3115Swdenk /*
2bc11756dSGrant Erickson  * (C) Copyright 2002-2008
36aff3115Swdenk  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
46aff3115Swdenk  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
66aff3115Swdenk  */
76aff3115Swdenk 
8371ee137SAndreas Fenkart #include <aes.h>
9371ee137SAndreas Fenkart #include <stdint.h>
10371ee137SAndreas Fenkart 
11e3c52f2bSTom Rini /* Pull in the current config to define the default environment */
120b367380SPeter Robinson #include <linux/kconfig.h>
130b367380SPeter Robinson 
14e3c52f2bSTom Rini #ifndef __ASSEMBLY__
15e3c52f2bSTom Rini #define __ASSEMBLY__ /* get only #defines from config.h */
16e3c52f2bSTom Rini #include <config.h>
17e3c52f2bSTom Rini #undef	__ASSEMBLY__
18e3c52f2bSTom Rini #else
19e3c52f2bSTom Rini #include <config.h>
20e3c52f2bSTom Rini #endif
21e3c52f2bSTom Rini 
22d0fb80c3Swdenk /*
239cbfee6dSFrans Meulenbroeks  * To build the utility with the static configuration
249cbfee6dSFrans Meulenbroeks  * comment out the next line.
25566e5cf4SWolfgang Denk  * See included "fw_env.config" sample file
26d0fb80c3Swdenk  * for notes on configuration.
27d0fb80c3Swdenk  */
28d791b1dcSwdenk #define CONFIG_FILE     "/etc/fw_env.config"
29d0fb80c3Swdenk 
30497f2053SJoe Hershberger #ifndef CONFIG_FILE
316aff3115Swdenk #define HAVE_REDUND /* For systems with 2 env sectors */
326aff3115Swdenk #define DEVICE1_NAME      "/dev/mtd1"
336aff3115Swdenk #define DEVICE2_NAME      "/dev/mtd2"
34d0fb80c3Swdenk #define DEVICE1_OFFSET    0x0000
356aff3115Swdenk #define ENV1_SIZE         0x4000
365d5cc384SFrans Meulenbroeks #define DEVICE1_ESIZE     0x4000
375d5cc384SFrans Meulenbroeks #define DEVICE1_ENVSECTORS     2
38d0fb80c3Swdenk #define DEVICE2_OFFSET    0x0000
396aff3115Swdenk #define ENV2_SIZE         0x4000
405d5cc384SFrans Meulenbroeks #define DEVICE2_ESIZE     0x4000
415d5cc384SFrans Meulenbroeks #define DEVICE2_ENVSECTORS     2
42497f2053SJoe Hershberger #endif
436aff3115Swdenk 
44e3c52f2bSTom Rini #ifndef CONFIG_BAUDRATE
45e3c52f2bSTom Rini #define CONFIG_BAUDRATE		115200
46e3c52f2bSTom Rini #endif
47e3c52f2bSTom Rini 
48e3c52f2bSTom Rini #ifndef CONFIG_BOOTDELAY
49e3c52f2bSTom Rini #define CONFIG_BOOTDELAY	5	/* autoboot after 5 seconds	*/
50e3c52f2bSTom Rini #endif
51e3c52f2bSTom Rini 
52e3c52f2bSTom Rini #ifndef CONFIG_BOOTCOMMAND
53e3c52f2bSTom Rini #define CONFIG_BOOTCOMMAND							\
54e3c52f2bSTom Rini 	"bootp; "								\
55e3c52f2bSTom Rini 	"setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} "	\
56e3c52f2bSTom Rini 	"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; "	\
57e3c52f2bSTom Rini 	"bootm"
58e3c52f2bSTom Rini #endif
59e3c52f2bSTom Rini 
60371ee137SAndreas Fenkart struct common_args {
61371ee137SAndreas Fenkart #ifdef CONFIG_FILE
62371ee137SAndreas Fenkart 	char *config_file;
63371ee137SAndreas Fenkart #endif
64371ee137SAndreas Fenkart 	uint8_t aes_key[AES_KEY_LENGTH];
65371ee137SAndreas Fenkart 	int aes_flag; /* Is AES encryption used? */
66371ee137SAndreas Fenkart };
67371ee137SAndreas Fenkart extern struct common_args common_args;
68371ee137SAndreas Fenkart 
6907ce9440SAndreas Fenkart struct printenv_args {
70371ee137SAndreas Fenkart 	int name_suppress;
7107ce9440SAndreas Fenkart };
7207ce9440SAndreas Fenkart extern struct printenv_args printenv_args;
7307ce9440SAndreas Fenkart 
7407ce9440SAndreas Fenkart struct setenv_args {
7507ce9440SAndreas Fenkart 	char *script_file;
7607ce9440SAndreas Fenkart };
7707ce9440SAndreas Fenkart extern struct setenv_args setenv_args;
7807ce9440SAndreas Fenkart 
79371ee137SAndreas Fenkart int parse_aes_key(char *key, uint8_t *bin_key);
80371ee137SAndreas Fenkart 
81*c3a23e8bSAndreas Fenkart int   fw_printenv(int argc, char *argv[]);
82*c3a23e8bSAndreas Fenkart char *fw_getenv(char *name);
83*c3a23e8bSAndreas Fenkart int fw_setenv(int argc, char *argv[]);
84*c3a23e8bSAndreas Fenkart int fw_parse_script(char *fname);
85*c3a23e8bSAndreas Fenkart int fw_env_open(void);
86*c3a23e8bSAndreas Fenkart int fw_env_write(char *name, char *value);
87*c3a23e8bSAndreas Fenkart int fw_env_close(void);
886aff3115Swdenk 
89*c3a23e8bSAndreas Fenkart unsigned long crc32(unsigned long, const unsigned char *, unsigned);
90