VIRTUTECH CONFIDENTIAL Previous - Up - Next
generic-flash-memory
- Provided by
-
new-flash-memory
- Class Hierarchy
-
conf-object → log-object → conf-object → log-object → generic-flash-memory
- Interfaces Implemented
-
log_object, event_poster, translate
- Description
-
The generic-flash-memory class simulates different types of flash-memory depending on which attributes are set.
Refer to [simics]/home/scripts/flash_memory.py for a complete description of the features implemented and the flash chips that are pre-configured.
Attributes
- Attributes inherited from class conf-object
-
attributes, classname, component, iface, name, object_id, queue
- Attributes inherited from class log-object
-
access_count, log_buffer, log_buffer_last, log_buffer_size, log_group_mask, log_groups, log_level, log_type_mask
- Attributes inherited from class conf-object
-
attributes, classname, component, iface, name, object_id, queue
- Attributes inherited from class log-object
-
access_count, log_buffer, log_buffer_last, log_buffer_size, log_group_mask, log_groups, log_level, log_type_mask
- Attribute List
-
- accept_inquiries
- Optional attribute; read/write access; type: Integer.
If 1, the flash device will handled inquiries as normal accesses. If 0, it will ignore them. Default is 0.
- accept_smaller_reads
- Optional attribute; read/write access; type: Integer.
If 1, the flash device will accept smaller reads than the bus width. If 0, it will complain when receiving smaller reads. Default is 0.
- accept_smaller_writes
- Optional attribute; read/write access; type: Integer.
If 1, the flash device will accept smaller writes than the bus width. If 0, it will complain when receiving smaller writes. Default is 0.
- amd_ignore_cmd_address
- Optional attribute; read/write access; type: Integer.
If 1, the address will be ignored when parsing AMD commands. Default is 0.
- big_endian
- Optional attribute; read/write access; type: Integer.
If 1, the flash device will behave as a big endian device. If 0, it will behave as a little endian device. Default is 0.
- bus_width
- Required attribute; read/write access; type: Integer.
Total width (in bits) of the data path connected to the flash device.
- busy_signal_targets
- Optional attribute; read/write access; type: [n|o|[os]*].
(dst_object, dst_signal)* The destination device and signal name to connect the busy signal of the chips to. The destinations should implement the signal interface. Without a timing model, the device will never raise the busy signal.
- cfi_query
- Optional attribute; read/write access; type: n|d|[i+].
CFI query structure (if the device is CFI compatible). Default is none (device is not CFI compatible).
- chip_mode
- Optional attribute; read/write access; type: [s*].
Current state for all chips.
- chip_write_buffer
- Optional attribute; read/write access; type: [d|n*].
Current write buffer for all chips.
- chip_write_buffer_current_count
- Optional attribute; read/write access; type: [i*].
Current write buffer count for all chips.
- chip_write_buffer_start_address
- Optional attribute; read/write access; type: [i*].
Current write buffer start address for all chips.
- command_set
- Optional attribute; read/write access; type: Integer.
If no CFI structure is provided, this attribute should be set to indicate the command-set to use. Default is 0 (invalid command-set).
- device_id
- Optional attribute; read/write access; type: i|[i+].
Device ID/code as used in Intel identifier codes and AMD autoselect mode. Default is 0.
- hardware_lock_status
- Optional attribute; read/write access; type: [[i*]*].
Hardware lock status for all units (for Intel advanced lock system).
- ignore_timing
- Optional attribute; read/write access; type: Integer.
Obsolete attribute since timing is not modeled. Kept for backward compatibility only.
- intel_configuration
- Optional attribute; read/write access; type: Integer.
If 1, the flash device supports intel configuration operations. f 0, intel configuration operations are ignored. Default is 0.
- intel_lock
- Optional attribute; read/write access; type: Integer.
If 2, the flash device supports advanced lock/unlock/lock down operations. If 1, the flash device supports simple lock/unlock all operations. If 0, lock operations are ignored. Default is 0.
- intel_protection_program
- Optional attribute; read/write access; type: Integer.
If 1, the flash device supports intel protection program operations. If 0, intel protection program operations are ignored. Default is 0.
- intel_write_buffer
- Optional attribute; read/write access; type: Integer.
If 1, the flash device supports intel write buffer operations. If 0, intel write buffer operations are ignored. Default is 0.
- interleave
- Required attribute; read/write access; type: Integer.
Interleave (number of parallel flash memory chips).
- lock_status
- Optional attribute; read/write access; type: [[i*]*].
Lock status for all units.
- manufacturer_id
- Optional attribute; read/write access; type: Integer.
Manufacturer ID/code as used in Intel identifier codes and AMD autoselect mode. Default is 0.
- max_chip_width
- Optional attribute; read/write access; type: Integer.
Maximum data width (for example, specified as 16 for a x8/x16 capable device).
- reset
- Pseudo attribute; write-only access; type: Integer.
Set to 1 in order to reset the device.
- storage_ram
- Required attribute; read/write access; type: Object.
RAM object providing the backing store area.
- strict_cmd_set
- Optional attribute; read/write access; type: Integer.
If set to 1, warnings that the command-set is misused become errors. Default is 0.
- timing_model
- Optional attribute; read/write access; type: D; string indexed; indexed type: Float.
Associates a flash state/operation with a time. The flash will remain in this state the given time allowing a more strict time model to be simulated. Sometimes flash drivers requires that an operation takes some time to for the software to work correctly.
- unit_erase_time
- Optional attribute; read/write access; type: Float.
Obsolete attribute since timing is not modeled. Kept for backward compatibility only.
- unit_size
- Required attribute; read/write access; type: [i+].
A list of block/sector sizes.
- unit_status
- Optional attribute; read/write access; type: [[i*]*].
Status for all units.
- write_buffer_size
- Optional attribute; read/write access; type: Integer.
Write buffer size *in bytes* for write buffer commands. Default is 32 (standard value for Intel Strataflash).
Command List
- Commands defined by interface log_object
-
log, log-group, log-level, log-size, log-type
- Commands
-
info | print information about the device |
status | print status of the device |
Command Descriptions
-
<generic-flash-memory>.info
- Synopsis
-
<generic-flash-memory>.info
- Description
-
Print detailed information about the configuration of the device.
-
<generic-flash-memory>.status
- Synopsis
-
<generic-flash-memory>.status
- Description
-
Print detailed information about the current status of the device.
VIRTUTECH CONFIDENTIAL Previous - Up - Next