
Teledyne LeCroy PETrainer Scripting Language
78
15.2 Creating Errors in Structures
There are several ways of inserting various errors in the NVMe and AHCI/ATA structures
- Using “Field” construct to set non-zero values to reserved fields.
The “Field” directive (described in 3.1) can be used to set non zero values in reserved fields within first 8
DWORDs of any structure:
Structure=NVMe
{
Location=Mem64
Offset = 0
NVMeStructType=AdminCommand
OpcodeAdmin = ADMIN_IDENTIFY
PRP1_Low = 0x3F25B190
PRP1_High = 0x8
PRP2_Low = 0x3F25C000
PRP2_High = 0x8
CNS = Controller
Field[63:71] = 0xA5 ; setting non-zero value of a reserved byte in Command DW 2
}
- Assigning undefined values to structure fields.
A numeric value can be assigned to any of the defined structure fields that is undefined or invalid:
Structure=AHCI
{
Location=Mem64
Offset = 0x1000
AhciStructType=FIS
FISType = 0x15 ; undefined FIS type instead of RegisterH2D
Features = 0x02
ATACommand = SET_FEATURES
C = Yes
Device = 0xA0
}
- Using AddressSpace=Write to supply raw byte image of the structure with any contents desired.\
As before Structure command was implemented, AddressSpace=Write can be used to place the byte
stream of the desired structure in the Host Memory Region. This way any byte image of a structure can
be programmed, creating any type of error desired.
Commenti su questo manuale