diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/ansi.h | 42 | ||||
| -rw-r--r-- | include/configs/nokia_rx51.h | 40 | ||||
| -rw-r--r-- | include/menu.h | 5 | 
3 files changed, 83 insertions, 4 deletions
| diff --git a/include/ansi.h b/include/ansi.h new file mode 100644 index 000000000..0e40b1d4e --- /dev/null +++ b/include/ansi.h @@ -0,0 +1,42 @@ +/* + * (C) Copyright 2012 + * Pali Rohár <pali.rohar@gmail.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * ANSI terminal + */ + +#define ANSI_CURSOR_UP			"\e[%dA" +#define ANSI_CURSOR_DOWN		"\e[%dB" +#define ANSI_CURSOR_FORWARD		"\e[%dC" +#define ANSI_CURSOR_BACK		"\e[%dD" +#define ANSI_CURSOR_NEXTLINE		"\e[%dE" +#define ANSI_CURSOR_PREVIOUSLINE	"\e[%dF" +#define ANSI_CURSOR_COLUMN		"\e[%dG" +#define ANSI_CURSOR_POSITION		"\e[%d;%dH" +#define ANSI_CURSOR_SHOW		"\e[?25h" +#define ANSI_CURSOR_HIDE		"\e[?25l" +#define ANSI_CLEAR_CONSOLE		"\e[2J" +#define ANSI_CLEAR_LINE_TO_END		"\e[0K" +#define ANSI_CLEAR_LINE			"\e[2K" +#define ANSI_COLOR_RESET		"\e[0m" +#define ANSI_COLOR_REVERSE		"\e[7m" diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h index 8506604a7..965330aa3 100644 --- a/include/configs/nokia_rx51.h +++ b/include/configs/nokia_rx51.h @@ -148,6 +148,7 @@  #define CONFIG_CMDLINE_EDITING		/* add command line history */  #define CONFIG_AUTO_COMPLETE		/* add autocompletion support */ +#define CONFIG_CMD_BOOTMENU		/* ANSI terminal Boot Menu */  #define CONFIG_CMD_CLEAR		/* ANSI terminal clear screen command */  #ifdef ONENAND_SUPPORT @@ -287,8 +288,6 @@ int rx51_kp_getc(void);  #endif  /* Environment information */ -#define CONFIG_BOOTDELAY		3 -  #define CONFIG_EXTRA_ENV_SETTINGS \  	"mtdparts=" MTDPARTS_DEFAULT "\0" \  	"usbtty=cdc_acm\0" \ @@ -360,10 +359,40 @@ int rx51_kp_getc(void);  		"fi\0" \  	"emmcboot=setenv mmcnum 1; run trymmcboot\0" \  	"sdboot=setenv mmcnum 0; run trymmcboot\0" \ +	"menucmd=bootmenu\0" \ +	"bootmenu_0=Attached kernel=run attachboot\0" \ +	"bootmenu_1=Internal eMMC=run emmcboot\0" \ +	"bootmenu_2=External SD card=run sdboot\0" \ +	"bootmenu_3=U-Boot boot order=boot\0" \ +	"bootmenu_delay=30\0" \  	""  #define CONFIG_PREBOOT \ -	"if run slide; then true; else run attachboot; fi;" \ +	"setenv mmcnum 1; setenv mmcpart 1;" \ +	"setenv mmcscriptfile bootmenu.scr;" \ +	"if run switchmmc; then " \ +		"setenv mmcdone true;" \ +		"setenv mmctype fat;" \ +		"if run scriptload; then true; else " \ +			"setenv mmctype ext2;" \ +			"if run scriptload; then true; else " \ +				"setenv mmctype ext4;" \ +				"if run scriptload; then true; else " \ +					"setenv mmcdone false;" \ +				"fi;" \ +			"fi;" \ +		"fi;" \ +		"if ${mmcdone}; then " \ +			"run scriptboot;" \ +		"fi;" \ +	"fi;" \ +	"if run slide; then true; else " \ +		"setenv bootmenu_delay 0;" \ +		"setenv bootdelay 0;" \ +	"fi" + +#define CONFIG_POSTBOOTMENU \ +	"echo;" \  	"echo Extra commands:;" \  	"echo run sercon - Use serial port for control.;" \  	"echo run usbcon - Use usbtty for control.;" \ @@ -379,6 +408,11 @@ int rx51_kp_getc(void);  	"run attachboot;" \  	"echo" +#define CONFIG_BOOTDELAY 30 +#define CONFIG_AUTOBOOT_KEYED +#define CONFIG_MENU +#define CONFIG_MENU_SHOW +  /*   * Miscellaneous configurable options   */ diff --git a/include/menu.h b/include/menu.h index 7af5fdb0e..d8200eee8 100644 --- a/include/menu.h +++ b/include/menu.h @@ -21,12 +21,15 @@  struct menu;  struct menu *menu_create(char *title, int timeout, int prompt, -				void (*item_data_print)(void *)); +				void (*item_data_print)(void *), +				char *(*item_choice)(void *), +				void *item_choice_data);  int menu_default_set(struct menu *m, char *item_key);  int menu_get_choice(struct menu *m, void **choice);  int menu_item_add(struct menu *m, char *item_key, void *item_data);  int menu_destroy(struct menu *m);  void menu_display_statusline(struct menu *m); +int menu_default_choice(struct menu *m, void **choice);  #if defined(CONFIG_MENU_SHOW)  int menu_show(int bootdelay); |