u-boot/include
Anton Vorontsov 93f9dcf9e8 Add simple hwconfig infrastructure
This patch implements simple hwconfig infrastructure: an
interface for software knobs to control a hardware.

This is very simple implementation, i.e. it is implemented
via `hwconfig' environment variable. Later we could write
some "hwconfig <enable|disable|list>" commands, ncurses
interface for Award BIOS-like interface, and frame-buffer
interface for AMI GUI[1] BIOS-like interface with mouse
support[2].

Current implementation details/limitations:

1. Doesn't support options dependencies and mutual exclusion.
   We can implement this by integrating apt-get[3] into the
   u-boot. But I didn't bother yet.

2. Since we don't implement hwconfig command, i.e. we're working
   with the environement directly, there is no way to tell that
   toggling a particular option will need a reboot to take
   an effect. So, for now it's advised to always reboot the
   target after modifying hwconfig variable.

3. We support hwconfig options with arguments. For example,

   set hwconfig dr_usb:mode=peripheral,phy_type=ulpi

   That means:
   - dr_usb - enable Dual-Role USB controller;
   - dr_usb:mode=peripheral - USB in Function mode;
   - dr_usb:phy_type=ulpi - USB should work with ULPI PHYs;

The purpose of this simple implementation is to define some
internal API and then we can continue improving user experience
by adding more mature interface, like hwconfig command with
bells and whistles. Or not adding, if we feel that current
interface fits its needs.

[1] http://en.wikipedia.org/wiki/American_Megatrends
[2] Regarding ncurses and GUI with mouse support -- I'm just
    kidding.
[3] The comment regarding apt-get is also a joke, meaning that
    dependency tracking could be non-trivial. For example, for
    enabling HW feature X we may need to disable Y, and turn Z
    into reduced mode (like RMII-only interface for ethernet,
    no MII).

    It's quite trivial to implement simple cases though.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
2009-07-16 22:23:53 +02:00
..
asm-arm Merge branch 'asm-generic' of git://git.denx.de/u-boot-microblaze 2009-07-16 21:53:15 +02:00
asm-avr32 asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-blackfin asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-generic asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-i386 Implement SC520 timers 2009-03-20 22:39:13 +01:00
asm-m68k asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-microblaze asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
asm-mips MIPS: Make all extern-ed functions in bitops.h static 2009-05-16 09:20:05 +09:00
asm-nios remove bi_enet*addr from global data for all arches 2009-03-20 22:39:12 +01:00
asm-nios2 remove bi_enet*addr from global data for all arches 2009-03-20 22:39:12 +01:00
asm-ppc Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx 2009-07-16 22:13:45 +02:00
asm-sh Merge branch 'asm-generic' of git://git.denx.de/u-boot-microblaze 2009-07-16 21:53:15 +02:00
asm-sparc asm-generic: Consolidate errno.h to asm-generic/errno.h 2009-07-09 14:07:11 +02:00
bedbug Big white-space cleanup. 2008-05-21 00:14:08 +02:00
configs mpc83xx: increase MONITOR_LEN to offset growing pains 2009-07-14 14:58:39 -05:00
cramfs Fix endianess problem in cramfs code (cramfs is always host-endian in Linux) 2008-03-03 22:08:08 +01:00
galileo rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
jffs2 jffs2: summary support 2008-12-09 23:39:59 +01:00
linux Coding style cleanup; update CHANGELOG 2009-07-07 22:35:02 +02:00
lzma Add support for LZMA uncompression algorithm. 2008-09-13 01:59:07 +02:00
mtd UBI: Add basic UBI support to U-Boot (Part 7/8) 2008-11-19 20:34:39 +01:00
pcmcia
u-boot rename include/zlib.h to include/u-boot/zlib.h 2009-04-04 15:37:54 +02:00
usb usb: fix CONFIG_SYS_MPC83xx_USB_ADDR not defined error 2009-07-09 21:33:14 +02:00
.gitignore Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
4xx_i2c.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
74xx_7xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
405_dimm.h
405_mal.h ppc4xx: Add basic support for AMCC 460EX/460GT (3/5) 2008-03-15 07:28:04 +01:00
_exports.h
ACEX1K.h Add size #defines for Altera Cyclone-II EP2C8 and EP2C20. 2008-06-03 21:40:09 +02:00
addr_map.h Introduce addr_map library 2008-12-15 22:05:36 +01:00
ahci.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ali512x.h Move ali512x.h 2009-03-20 22:39:13 +01:00
altera.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ambapp.h Coding Style cleanup; update CHANGELOG 2008-04-13 09:59:26 -07:00
api_public.h API: Improve glue mid-layer of the API demo application. 2009-02-18 00:39:44 +01:00
arm925t.h
armcoremodule.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
at45.h at91: rename DATAFLASH_MMC_SELECT to CONFIG_DATAFLASH_MMC_SELECT 2009-04-04 20:42:19 +02:00
at91rm9200_i2c.h
at91rm9200_net.h
ata.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
atmel_lcdc.h Add ATMEL LCD driver 2008-05-10 11:44:55 +02:00
bcd.h rtc: Add Xicor/Intersil X1205 RTC support 2007-10-31 21:20:50 +01:00
bcm5221.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
bmp_layout.h
bzlib.h
circbuf.h
clps7111.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
command.h Make "usage" messages more helpful. 2009-06-12 20:45:48 +02:00
common.h ppc4xx: Make is_pci_host() available for all 440 and 405 CPUs 2009-07-10 08:25:55 +02:00
commproc.h 8xx, mgsuvd: rename board to a more generic name 2009-03-18 20:50:04 +01:00
config_cmd_all.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
config_cmd_default.h Add "source" command; prepare removal of "autoscr" command 2009-04-03 22:01:42 +02:00
console.h console.h: remove unused prototype 'console_realloc' 2009-05-15 22:13:57 +02:00
crc.h
da9030.h
dataflash.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ddr_spd.h fsl-ddr: add the DDR3 SPD infrastructure 2009-03-30 13:33:50 -05:00
devices.h arm: add uart dcc support 2009-02-22 15:49:28 +01:00
div64.h Add a do_div() wrapper macro, lldiv(). 2009-01-24 00:23:09 +01:00
dm9000.h Add config option for disabling DM9000-SROM support. 2009-06-08 22:57:21 -07:00
dm9161.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
dp83848.h
ds4510.h Add support for Maxim's DS4510 I2C device 2009-01-24 01:47:50 +01:00
dtt.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
e500.h 85xx: Add QE clk support 2009-06-12 17:16:59 -05:00
elf.h elf.h: Use stdint.h to provide standard typedefs for WIN32 2009-04-04 01:06:16 +02:00
environment.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
exports.h UBI: Add basic UBI support to U-Boot (Part 6/8) 2008-11-19 20:34:39 +01:00
ext2fs.h
fat.h Remove non-ascii characters from fat code 2008-12-04 20:51:44 +01:00
fdc.h
fdt.h powerpc: Fix bootm to boot up again with a Ramdisk 2008-09-13 02:03:38 +02:00
fdt_support.h 83xx: Replace CONFIG_MPC83XX with CONFIG_MPC83xx 2009-06-12 20:47:17 +02:00
fis.h ata: add the fis struct for SATA 2008-03-26 23:38:54 +01:00
flash.h UBI/cfi-mtd: Fix mtd name for multiple chips 2009-04-04 23:25:40 +02:00
fpga.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
fsl_esdhc.h Add support for the Freescale eSDHC found on 8379 and 8536 SoCs 2009-02-16 18:07:42 -06:00
fsl_nfc.h MX31: Add NAND SPL for i.MX31. 2009-06-21 16:18:12 +02:00
hush.h hush: add showvar command for hush shell. 2008-10-18 21:54:02 +02:00
hwconfig.h Add simple hwconfig infrastructure 2009-07-16 22:23:53 +02:00
i2c.h i2c.h: Provide a default CONFIG_SYS_I2C_SLAVE value 2009-06-12 20:39:45 +02:00
i8042.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ide.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
image.h Add support for building native win32 tools 2009-04-04 01:21:02 +02:00
iomux.h IOMUX: Add console multiplexing support. 2008-12-07 01:23:35 +01:00
ioports.h Stop using immap_t for cpm offset on 85xx 2007-12-11 22:34:19 -06:00
keyboard.h
kgdb.h
lcd.h LCD: support 8bpp BMPs on 16bpp displays 2009-02-24 10:19:00 +01:00
lcdvideo.h
lh7a40x.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lh7a400.h
lh7a404.h
libata.h ata: update the libata.h from ata.h of linux kernel 2008-04-13 23:20:16 -07:00
libfdt.h libfdt: Fix C++ compile-time cast error on gnu 4.2.1 2009-04-01 19:30:27 -04:00
libfdt_env.h Add support for building native win32 tools 2009-04-04 01:21:02 +02:00
linux_logo.h
lmb.h Fix LMB type issues 2008-07-10 00:39:28 +02:00
logbuff.h Avoid initrd and logbuffer area overlaps 2008-06-03 19:34:19 +02:00
lpd7a400_cpld.h
lxt971a.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
lynxkdi.h
malloc.h
mb862xx.h Fix whitespace damage: double space changed to a tab 2009-02-11 23:03:41 +01:00
MCD_dma.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_progCheck.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_tasksInit.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
mg_disk.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
mii_phy.h
miiphy.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mk48t59.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mmc.h mmc: fix response decoding on little endian 2009-06-02 17:18:57 -05:00
mpc5xx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc5xxx.h mpc52xx: Add SPI driver. 2009-06-14 23:01:38 +02:00
mpc5xxx_sdma.h Move MPC5xxx_FEC driver to drivers/net 2008-08-29 13:58:07 -06:00
mpc8xx.h
mpc8xx_irq.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc83xx.h 83xx: Add support for fsl_dma driver 2009-07-02 11:15:57 -05:00
mpc85xx.h 83xx/85xx: further localbus cleanups 2008-06-10 18:22:25 -05:00
mpc86xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc106.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc824x.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
mpc8220.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc8260.h
mpc8260_irq.h
nand.h mtd: nand: use loff_t for offset 2009-07-07 17:58:06 -05:00
net.h net: new utility functions for working with enetaddr's 2009-03-20 22:39:09 +01:00
netdev.h Convert DM9000 driver for CONFIG_NET_MULTI 2009-06-15 00:13:55 -07:00
nios-io.h
nios.h
nios2-epcs.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2-io.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2.h
nomadik.h Added nomadik.h header 2009-02-22 13:39:27 +01:00
ns7520_eth.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
ns9750_bbus.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_eth.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
ns9750_mem.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_ser.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_sys.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns16550.h include/ns16550.h: Unify structure declaration for registers 2009-04-04 01:23:56 +02:00
ns87308.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
onenand_uboot.h Compile warning fix in onenand_uboot.h 2009-02-02 20:42:15 +01:00
part.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
pc_keyb.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
pca953x.h Add support for PCA953x I2C gpio devices 2008-12-19 18:11:49 -06:00
pci.h PCI: Add pci_last_busno() helper 2009-02-23 15:51:10 -06:00
pci_ids.h Add ESD PCI vendor ID 2009-07-11 01:02:20 +02:00
pcmcia.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
post.h FPU POST: fix warnings when building with 2.18 binutils 2009-01-24 01:49:41 +01:00
ppc4xx.h ppc4xx: Move definition for PPC4xx NAND FLASH controller to header 2009-05-23 12:51:39 +02:00
ppc4xx_enet.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ppc405.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ppc440.h ppc4xx: Added ppc4xx-isram.h for internal SRAM and L2 cache DCRs 2008-11-21 10:52:33 +01:00
ppc_asm.tmpl
ppc_defs.h
ps2mult.h Rename common ns16550 constants with UART_ prefix to prevent conflicts 2009-04-03 22:34:07 +02:00
radeon.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
reiserfs.h
rtc.h rtc: remove broken rtc_read and rtc_write declarations 2009-04-01 22:34:37 +02:00
s3c24x0.h
s3c64x0.h ARM: Add arm1176 core with S3C6400 SoC 2008-08-31 00:39:46 +02:00
s3c2400.h
s3c2410.h
s3c6400.h s3c64xx: remove unnecessary definition 2009-04-24 22:54:18 +02:00
s6e63d6.h A driver for the S6E63D6 SPI display controller from Samsung 2009-02-24 10:00:28 +01:00
s_record.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
SA-1100.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
sata.h SATA: do not auto-initialize during boot 2009-01-27 23:42:39 +01:00
scsi.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
sed156x.h
sed13806.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
serial.h 8xxx: Second UART port added for MPC85xx, MPC83xx, MPC86xx processors 2009-07-02 08:34:13 -05:00
sha1.h Add support for calculating hashes with watchdog triggering 2008-04-25 00:01:06 +02:00
sha256.h include/sha256.h: fix file permissions. 2008-07-06 01:21:46 +02:00
sm501.h
smiLynxEM.h
spartan2.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
spartan3.h Fix Spartan-3 definitions. 2008-09-22 22:07:20 +02:00
spd.h
spd_sdram.h
spi.h Move conditional compilation of MPC8XXX SPI driver to Makefile 2008-07-01 21:02:11 +02:00
spi_flash.h SPI Flash subsystem 2008-06-03 20:31:34 +02:00
status_led.h ARM Add blue colour LED to status_led. 2009-06-12 20:39:49 +02:00
stratixII.h Altera Stratix II support 2008-04-13 14:52:48 -07:00
sym53c8xx.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
systemace.h
timestamp.h Update U-Boot's build timestamp on every compile 2008-12-06 23:36:43 +01:00
tsec.h tsec: Add support for BCM5482S PHY 2009-06-15 00:13:54 -07:00
tsi108.h
tws.h drivers/twserial: Add protocol driver for "three wire serial" interface. 2009-03-30 09:38:36 +02:00
ubi_uboot.h UBIFS: Implement read-only UBIFS support in U-Boot 2009-03-20 22:39:15 +01:00
universe.h
usb.h usb : musb : Enabling DM6446 (TI DaVinci) USB module power 2009-01-28 19:57:30 +01:00
usb_cdc_acm.h
usb_defs.h Prepare USB layer for ehci 2009-01-28 19:57:27 +01:00
usbdescriptors.h
usbdevice.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
version.h Makefile: fix "error: version_autogenerated.h: No such file or directory" 2008-05-13 23:15:52 +02:00
vfd_logo.h
video.h
video_ad7176.h
video_ad7177.h
video_ad7179.h
video_easylogo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
video_fb.h
video_font.h
video_logo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
virtex2.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
vsc7385.h Cleanup coding style, update CHANGELOG 2008-03-26 11:48:46 +01:00
vxworks.h vxworks.h: Fix build problem introduced by commits 29a4c24d/e9084b23 2008-12-09 00:24:30 +01:00
w83c553f.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
watchdog.h
xilinx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
xyzModem.h