NAME | SYNOPSIS | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/flash/amd29xxx/amd29xxx.h - driver structures and constants drv/src/flash/amd29xxx/amd29xxx.c - driver code drv/src/flash/amd29xxx/amd29xxxProp.h - driver specific properties
DRV
Implements flash driver interface for amd290 family chips.
The amd29xxx flash driver implements the 'flash' device driver interface. The driver works on the amd29xxx family including amd29010, amd29040, amd29080, amd29016, amd29032 8-bit wide uniform sector and other compatible chips. Driver presumes 4x8-bit board mounting and uses 32 bit data access.
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. So, the amd29xxx driver does not enumerate the bus, detect an amd29xxx device or create an associated device node. When the amd29xxx driver is used, associated device nodes should be created either statically by a boot program or dynamically by a separate bus enumerator driver. Such an 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 amd29xxx 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. Such a 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 and if it has been dynamically loaded at run time.
The driver does not support hot-plug bus events.
The Table below summarizes characteristics of the amd29xxx flash driver.
driver name: | "sun:bus-amd29xxx-flash" |
hardware: | amd29xxx compatible flash chip |
exported interface: | "flash" (FLASH_CLASS) |
exported interface version: | 0 (FLASH_VERSION_INITIAL) |
imported parent interface: | "bus" (BUS_CLASS) |
minimal 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 |
There is only one mandatory property used by the amd29xxx driver.
Name | Alias | Type |
---|---|---|
"mem-rgn" | BUS_PROP_MEM_RGN | <bus class specific> |
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 upper layer should use optional properties specified in the Table below 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.
Name | Alias | Type |
---|---|---|
"region-write" | FLASH_PROP_RGN_WRITE | <flash class specific> |
"region-exec" | FLASH_PROP_RGN_EXEC | <flash class specific> |
"region-cache | FLASH_PROP_RGN_CACHE | <flash class specific> |
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | EXTENDED DESCRIPTION | ATTRIBUTES | SEE ALSO