NAME | SYNOPSIS | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/flash/intel28F016SA/intel28F016SA.h - driver structures and constants drv/src/flash/intel28F016SA/intel28F016SA.c - driver code drv/src/flash/intel28F016SA/intel28F016SAProp.h - driver specific properties
DRV
The intel28F016SA driver implements the flash driver interface for intel28F016SA family chips, including the intel28F160 chip.
The driver uses the common bus driver interface provided by a parent bus driver. Thus, the driver is generic and may be applied to any bus providing the same type of interface.
The driver does not provide the drv_probe() entry. The intel28F016SA driver does not therefore enumerate the bus, detect an intel28F016SA device or create an associated device node. When the intel28F016SA driver is used, associated device nodes should be created either statically by a boot program, or dynamically by a separate bus enumerator driver. This type of enumerator driver could be developed for this particular bus architecture.
The driver does not provide the drv_bind() routine. In other words, the driver does not support dynamic driver-to-device binding. When the intel28F016SA driver is used, the driver should be explicitly bound to the device using the PROP_DRIVER property. It is assumed that the device-to-driver binding is done either by a device node creator or by a separate binder driver. This type of driver-to-device binder could be developed for this particular bus architecture.
The driver provides the drv_unload() entry and supports driver component unloading. This allows the driver component to be unloaded if it is no longer being used (if it was dynamically loaded at run time).
The driver does not support hot-plug bus events.
The table below summarizes characteristics of the intel28F016SA flash driver.
driver name: | "sun:bus-intel28F016SA-flash" |
hardware: | intel28F016SA compatible flash chip |
exported interfaces: | "flash" (FLASH_CLASS) |
exported interface versions: | 0 (FLASH_VERSION_INITIAL) |
imported parent interface: | "bus" (BUS_CLASS) |
minimum parent interface version: | 0 (BUS_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver unloading: | supported |
system (emergency) shut-down: | not supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | not supported |
The table below lists device node properties used by the intel28F016SA driver. Note that the column "m/o" specifies whether a given property is mandatory or optional. For optional properties, the "default value" column may show a default value which is used by the driver when a given property is not specified.
Name |
Alias |
Type |
m/o |
Default value |
---|---|---|---|---|
"mem-rgn" | BUS_PROP_MEM_RGN | <bus class specific> | m | |
"size" | FLASH_PROP_SIZE | FlashPropSize | m | |
"region-write" | FLASH_PROP_RGN_WRITE | FlashPropAccess | o | |
"region-exec" | FLASH_PROP_RGN_EXEC | FlashPropAccess | o | |
"region-cache" | FLASH_PROP_RGN_CACHE | FlashPropAccess | o |
The BUS_PROP_MEM_RGN property specifies the base address of the media and is used by the driver as a parameter for the bus->mem_map() call. The property value is bus class specific.
The FLASH_PROP_SIZE property specifies the byte size of the media.
The upper layer should use optional properties FLASH_PROP_RGN_WRITE, FLASH_PROP_RGN_EXEC and FLASH_PROP_RGN_CACHE to map locked flash regions. The presence of each property gives information to the driver client about whether the locked region is writable, executable in place and cacheable.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
bus(9DDI), isa(9DDI)
NAME | SYNOPSIS | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO