1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- To enable this feature just define CONFIG_HWCONFIG in your board
- config file.
- This implements a simple hwconfig infrastructure: an
- interface for software knobs to control hardware.
- This a is very simple implementation, i.e. it is implemented
- via the `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 Das
- U-Boot. But I haven't bothered yet.
- 2. Since we don't implement a hwconfig command, i.e. we're working
- with the environment directly, there is no way to tell that
- toggling a particular option will need a reboot to take
- effect. So, for now it's advised to always reboot the
- target after modifying the hwconfig variable.
- 3. We support hwconfig options with arguments. For example,
- set hwconfig "dr_usb:mode=peripheral,phy_type=ulpi"
- This selects three hwconfig options:
- 1. dr_usb - enable Dual-Role USB controller;
- 2. dr_usb_mode:peripheral - USB in Function mode;
- 3. dr_usb_phy_type:ulpi - USB should work with ULPI PHYs.
- The purpose of this simple implementation is to refine the
- internal API and then we can continue improving the user
- experience by adding more mature interfaces, like a hwconfig
- command with bells and whistles. Or not adding, if we feel
- that the current interface fits people's 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.
|