If the trigger_address is set to a negative number, trigger_address + fault_lifespan must be larger or equal to 0. Otherwise ARCHIE will remove the fault configuration with a warning. In addition, the fault_lifespan is automatically reduced if the trigger address is calculated to be before the start point.
However, with this fault.json I don't see any warning although "trigger_address" is negative and "trigger_address" + "fault_lifespan" < 0:
{
"max_instruction_count" : 1000,
"start" : {
"address" : 0xffff0000,
"counter" : 0
},
"end" : {
"address" : 0xffff06b0,
"counter" : 0
},
"faults" :[
[
{
"fault_address" : [0xffff47C8, 0xffff4888, 4],
"fault_type" : "instruction",
"fault_model" : "overwrite",
"fault_lifespan" : [0],
// fault_mask = bytes to insert: ARMv7 NOP
"fault_mask" : [0xE320F000],
"trigger_address" : [-1],
"trigger_counter" : [0],
"num_bytes" : [4]
}
]
],
}
Also, it seems both "fault_lifespan" and "fault_livespan" are used throughout the code/documentation and examples. This is rather confusing.