/*
 * (C) Copyright 2000-2002
 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 *
 * 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
 */

/*
 *  Definitions for Configuring the monitor commands
 */
#ifndef _CMD_CONFIG_H
#define _CMD_CONFIG_H

/*
 * Configurable monitor commands
 */
#define CFG_CMD_BDI		0x00000001	/* bdinfo			*/
#define CFG_CMD_LOADS		0x00000002	/* loads			*/
#define CFG_CMD_LOADB		0x00000004	/* loadb			*/
#define CFG_CMD_IMI		0x00000008	/* iminfo			*/
#define CFG_CMD_CACHE		0x00000010	/* icache, dcache		*/
#define CFG_CMD_FLASH		0x00000020	/* flinfo, erase, protect	*/
#define CFG_CMD_MEMORY		0x00000040	/* md, mm, nm, mw, cp, cmp,	*/
						/* crc, base, loop, mtest	*/
#define CFG_CMD_NET		0x00000080	/* bootp, tftpboot, rarpboot	*/
#define CFG_CMD_ENV		0x00000100	/* saveenv			*/
#define CFG_CMD_KGDB		0x00000200	/* kgdb				*/
#define CFG_CMD_PCMCIA		0x00000400	/* PCMCIA support		*/
#define CFG_CMD_IDE		0x00000800	/* IDE harddisk support		*/
#define CFG_CMD_PCI		0x00001000	/* pciinfo			*/
#define CFG_CMD_IRQ		0x00002000	/* irqinfo			*/
#define CFG_CMD_BOOTD		0x00004000	/* bootd			*/
#define CFG_CMD_CONSOLE		0x00008000	/* coninfo			*/
#define CFG_CMD_EEPROM		0x00010000	/* EEPROM read/write support	*/
#define CFG_CMD_ASKENV		0x00020000	/* ask for env variable		*/
#define CFG_CMD_RUN		0x00040000	/* run command in env variable	*/
#define CFG_CMD_ECHO		0x00080000	/* echo arguments		*/
#define CFG_CMD_I2C		0x00100000	/* I2C serial bus support	*/
#define CFG_CMD_REGINFO		0x00200000	/* Register dump		*/
#define CFG_CMD_IMMAP		0x00400000	/* IMMR dump support		*/
#define CFG_CMD_DATE		0x00800000	/* support for RTC, date/time...*/
#define CFG_CMD_DHCP		0x01000000	/* DHCP Support			*/
#define CFG_CMD_BEDBUG		0x02000000	/* Include BedBug Debugger	*/
#define CFG_CMD_FDC		0x04000000	/* Floppy Disk Support		*/
#define CFG_CMD_SCSI		0x08000000	/* SCSI Support			*/
#define CFG_CMD_AUTOSCRIPT	0x10000000	/* Autoscript Support		*/
#define CFG_CMD_MII		0x20000000	/* MII support			*/
#define CFG_CMD_SETGETDCR	0x40000000	/* DCR support on 4xx		*/
#define CFG_CMD_BSP		0x80000000	/* Board Specific functions	*/

#define CFG_CMD_ELF	0x0000000100000000	/* ELF (VxWorks) load/boot cmd	*/
#define CFG_CMD_MISC	0x0000000200000000	/* Misc functions like sleep etc*/
#define CFG_CMD_USB	0x0000000400000000	/* USB Support			*/
#define CFG_CMD_DOC	0x0000000800000000	/* Disk-On-Chip Support		*/
#define CFG_CMD_JFFS2	0x0000001000000000	/* JFFS2 Support		*/
#define CFG_CMD_DTT	0x0000002000000000	/* Digital Therm and Thermostat */
#define CFG_CMD_SDRAM	0x0000004000000000	/* SDRAM DIMM SPD info printout */
#define CFG_CMD_DIAG	0x0000008000000000	/* Diagnostics			*/
#define CFG_CMD_FPGA	0x0000010000000000	/* FPGA configuration Support	*/
#define CFG_CMD_HWFLOW	0x0000020000000000	/* RTS/CTS hw flow control	*/
#define CFG_CMD_SAVES	0x0000040000000000	/* save S record dump		*/
#define CFG_CMD_SPI	0x0000100000000000	/* SPI utility			*/
#define CFG_CMD_FDOS	0x0000200000000000	/* Floppy DOS support		*/
#define CFG_CMD_VFD	0x0000400000000000	/* VFD support (TRAB)		*/
#define CFG_CMD_NAND	0x0000800000000000	/* NAND support        		*/
#define CFG_CMD_BMP	0x0001000000000000	/* BMP support			*/
#define CFG_CMD_PORTIO	0x0002000000000000	/* Port I/O		        */
#define CFG_CMD_PING	0x0004000000000000	/* ping support			*/
#define CFG_CMD_MMC	0x0008000000000000	/* MMC support			*/
#define CFG_CMD_FAT	0x0010000000000000	/* FAT support			*/

#define CFG_CMD_ALL	0xFFFFFFFFFFFFFFFF	/* ALL commands			*/

/* Commands that are considered "non-standard" for some reason
 * (memory hogs, requires special hardware, not fully tested, etc.)
 */
#define CFG_CMD_NONSTD (CFG_CMD_ASKENV	| \
			CFG_CMD_BEDBUG	| \
			CFG_CMD_BMP	| \
			CFG_CMD_BSP	| \
			CFG_CMD_CACHE	| \
			CFG_CMD_DATE	| \
			CFG_CMD_DHCP	| \
			CFG_CMD_DIAG	| \
			CFG_CMD_DOC	| \
			CFG_CMD_DTT	| \
			CFG_CMD_ECHO	| \
			CFG_CMD_EEPROM	| \
			CFG_CMD_ELF	| \
			CFG_CMD_FDC	| \
			CFG_CMD_FAT	| \
			CFG_CMD_FDOS	| \
			CFG_CMD_HWFLOW	| \
			CFG_CMD_I2C	| \
			CFG_CMD_IDE	| \
			CFG_CMD_IMMAP	| \
			CFG_CMD_IRQ	| \
			CFG_CMD_JFFS2	| \
			CFG_CMD_KGDB	| \
			CFG_CMD_MII	| \
			CFG_CMD_MMC	| \
			CFG_CMD_NAND	| \
			CFG_CMD_PCI	| \
			CFG_CMD_PCMCIA	| \
			CFG_CMD_PING	| \
			CFG_CMD_REGINFO | \
			CFG_CMD_SAVES	| \
			CFG_CMD_SCSI	| \
			CFG_CMD_SDRAM	| \
			CFG_CMD_SPI	| \
			CFG_CMD_USB	| \
			CFG_CMD_VFD	)

/* Default configuration
 */
#define CONFIG_CMD_DFL	(CFG_CMD_ALL & ~CFG_CMD_NONSTD)

#ifndef CONFIG_COMMANDS
#define CONFIG_COMMANDS CONFIG_CMD_DFL
#endif



/*
 * optional BOOTP fields
 */

#define CONFIG_BOOTP_SUBNETMASK		0x00000001
#define CONFIG_BOOTP_GATEWAY		0x00000002
#define CONFIG_BOOTP_HOSTNAME		0x00000004
#define CONFIG_BOOTP_NISDOMAIN		0x00000008
#define CONFIG_BOOTP_BOOTPATH		0x00000010
#define CONFIG_BOOTP_BOOTFILESIZE	0x00000020
#define CONFIG_BOOTP_DNS		0x00000040

#define CONFIG_BOOTP_VENDOREX		0x80000000

#define CONFIG_BOOTP_ALL		(~CONFIG_BOOTP_VENDOREX)


#define CONFIG_BOOTP_DEFAULT		(CONFIG_BOOTP_SUBNETMASK | \
					CONFIG_BOOTP_GATEWAY	 | \
					CONFIG_BOOTP_HOSTNAME	 | \
					CONFIG_BOOTP_BOOTPATH)

#ifndef CONFIG_BOOTP_MASK
#define CONFIG_BOOTP_MASK		CONFIG_BOOTP_DEFAULT
#endif

#endif	/* _CMD_CONFIG_H */
