Implement NVRAM support required for PMU bring-up on
SoCs:
- Added new bhnd_nvram_parser API, with support for the TLV format used on WGT634U devices, the standard BCM NVRAM format used on most modern devices, and the "board text file" format used on some hardware to supply external NVRAM data at runtime (e.g. via an EFI variable).
- Extended to the bhnd_bus_if and bhnd_nvram_if APIs to support both string-based and primitive data type variable access.
- Extended the existing SPROM implementation to support the new string-based NVRAM APIs.
- Added a generic bhnd_nvram driver, implementing the bhnd_nvram_if atop the bhnd_nvram_parser API.
- Add a read-only CFE-based bhnd_nvram driver as a stop-gap solution on MIPS SoCs. This reads NVRAM data from the CFE-advertised NVRAM device, but does not support writing, and operates independently of flash/GEOM handling of the flash device.
This initial patchset also does not include support for:
- Querying variables under device-specific paths, (required for WiFi bring-up on SoCs).
- Extracting a specific device's NVRAM variables (required for WiFi bring-up of some fullmac devices).
- Write support (pending changes are tracked, but no support exists for committing the changes to the backing flash device.