1*** Keywords *** 2Create Machine 3 Execute Command using sysbus 4 Execute Command mach create 5 Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.RiscV32 @ sysbus { cpuType: \\"rv32imac\\"; timeProvider: empty }" 6 Execute Command machine LoadPlatformDescriptionFromString "mem: Memory.MappedMemory @ sysbus 0x1000 { size: 0x10000000 }" 7 Execute Command sysbus Tag <0x4, 0x4> "tagged_region" 8 9 Execute Command cpu PC 0x1000 10 11 12*** Test Cases *** 13Should Log Unhandled Read From Monitor 14 Create Log Tester 0 15 Execute Command mach create 16 Execute Command sysbus ReadDoubleWord 0x0 17 18 Wait For Log Entry ReadDoubleWord from non existing peripheral at 0x0 19 20Should Log Unhandled Write From Monitor 21 Create Log Tester 0 22 Execute Command mach create 23 Execute Command sysbus WriteDoubleWord 0x0 0x147 24 25 Wait For Log Entry WriteDoubleWord to non existing peripheral at 0x0, value 0x147 26 27Should Log Unhandled Software Read 28 Create Log Tester 1000 29 Create Machine 30 31 # lw x0, 0(x0) 32 Execute Command sysbus WriteDoubleWord 0x1000 0x00002003 33 34 Start Emulation 35 36 Wait For Log Entry [cpu: 0x1000] ReadDoubleWord from non existing peripheral at 0x0 37 38Should Log Unhandled Software Read From Tagged Area 39 Create Log Tester 1000 40 Create Machine 41 42 # lw x0, 4(x0) 43 Execute Command sysbus WriteDoubleWord 0x1000 0x00402003 44 45 Start Emulation 46 47 Wait For Log Entry [cpu: 0x1000] (tag: 'tagged_region') ReadDoubleWord from non existing peripheral at 0x4, returning 0x0 48 49Should Log Unhandled Software Write 50 Create Log Tester 1000 51 Create Machine 52 53 # sw x0, 0(x0) 54 Execute Command sysbus WriteDoubleWord 0x1000 0x00002023 55 56 Start Emulation 57 58 Wait For Log Entry [cpu: 0x1000] WriteDoubleWord to non existing peripheral at 0x0, value 0x0 59 60Should Log Unhandled Write From Software To Tagged Area 61 Create Log Tester 1000 62 Create Machine 63 64 # sw x0, 4(x0) 65 Execute Command sysbus WriteDoubleWord 0x1000 0x00002223 66 67 Start Emulation 68 69 Wait For Log Entry [cpu: 0x1000] (tag: 'tagged_region') WriteDoubleWord to non existing peripheral at 0x4, value 0x0 70 71Should Log From Subobject 72 Create Log Tester 1 73 Create Machine 74 Execute Command include "${CURDIR}/SubobjectTester.cs" 75 Execute Command EnsureTypeIsLoaded "Antmicro.Renode.Peripherals.Dynamic.SubobjectTester" 76 77 Execute Command machine LoadPlatformDescriptionFromString "tester: Dynamic.SubobjectTester @ sysbus 0xf0000000" 78 79 Start Emulation 80 81 Execute Command logLevel -1 sysbus.tester 82 Execute Command sysbus WriteDoubleWord 0xf0000000 0x1 83 Wait For Log Entry Hello from object 84 Wait For Log Entry Hello from sub-object 85 86Should Set Machine Log Level 87 Create Machine 88 89 ${l}= Execute Command logLevel 90 Should Not Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 91 Should Not Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 92 Should Not Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 93 94 Execute Command logLevel 3 machine-0 95 ${l}= Execute Command logLevel 96 97 Should Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 98 Should Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 99 Should Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 100 101Should Set Machine Log Level 2 102 Create Machine 103 Create Machine 104 105 ${l}= Execute Command logLevel 106 107 Should Not Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 108 Should Not Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 109 Should Not Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 110 111 Should Not Contain ${l} machine-1:sysbus : ERROR collapse_spaces=True 112 Should Not Contain ${l} machine-1:sysbus.cpu : ERROR collapse_spaces=True 113 Should Not Contain ${l} machine-1:sysbus.mem : ERROR collapse_spaces=True 114 115 Execute Command mach set 1 116 Execute Command logLevel 3 machine-0 117 ${l}= Execute Command logLevel 118 119 Should Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 120 Should Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 121 Should Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 122 123 Should Not Contain ${l} machine-1:sysbus : ERROR collapse_spaces=True 124 Should Not Contain ${l} machine-1:sysbus.cpu : ERROR collapse_spaces=True 125 Should Not Contain ${l} machine-1:sysbus.mem : ERROR collapse_spaces=True 126 127Should Set Machine Log Level 3 128 Create Machine 129 Create Machine 130 131 ${l}= Execute Command logLevel 132 133 Should Not Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 134 Should Not Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 135 Should Not Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 136 137 Should Not Contain ${l} machine-1:sysbus : ERROR collapse_spaces=True 138 Should Not Contain ${l} machine-1:sysbus.cpu : ERROR collapse_spaces=True 139 Should Not Contain ${l} machine-1:sysbus.mem : ERROR collapse_spaces=True 140 141 Execute Command mach set 1 142 Execute Command logLevel 3 machine-1 143 ${l}= Execute Command logLevel 144 145 Should Not Contain ${l} machine-0:sysbus : ERROR collapse_spaces=True 146 Should Not Contain ${l} machine-0:sysbus.cpu : ERROR collapse_spaces=True 147 Should Not Contain ${l} machine-0:sysbus.mem : ERROR collapse_spaces=True 148 149 Should Contain ${l} machine-1:sysbus : ERROR collapse_spaces=True 150 Should Contain ${l} machine-1:sysbus.cpu : ERROR collapse_spaces=True 151 Should Contain ${l} machine-1:sysbus.mem : ERROR collapse_spaces=True 152