1using sysbus 2$name?="fsl-lx2160a-rdb" 3mach create $name 4$bin?=@https://dl.antmicro.com/projects/renode/lx2160ardb_tfa--fsl-lx2160a-rdb-uboot.elf-s_6536168-1086a07768d4a4e6b1a7f80bd2d9c0e6444c0a2b 5machine LoadPlatformDescription @platforms/boards/fsl_lx2160ardb.repl 6showAnalyzer uart0 7 8macro reset 9""" 10 cpu0 StubPSCICalls true 11 sysbus LoadELF $bin 12""" 13 14# This handler stubs the `smc` SIP call 0xff12 (SIP_SVC_MEM_BANK) 15# atf implementation can be found here: 16# https://github.com/Xilinx/arm-trusted-firmware/blob/e4a37b000fb9a708112da1e06da0e8fad939dc86/plat/nxp/common/sip_svc/sip_svc.c#L115 17# Basically it returns available dram regions size 18cpu0 AddCustomPSCIStub 0xc200ff12 """ 19from Antmicro.Renode.Peripherals.CPU import RegisterValue 20 21x1 = self.GetRegisterUlong(1) 22if x1 == 0xFFFFFFFFFFFFFFFF: 23 self.SetRegisterUlong(1, 0x80002000) 24 self.SetRegisterUlong(0, 0x0) 25elif x1 == 0: 26 self.SetRegisterUlong(1, 0x80000000) 27 self.SetRegisterUlong(2, 0x80000000) 28 self.SetRegisterUlong(0, 0) 29elif x1 == 1: 30 self.SetRegisterUlong(1, 0x1080000) 31 self.SetRegisterUlong(2, 0x1000) 32 self.SetRegisterUlong(0, 0) 33elif x1 == 2: 34 self.SetRegisterUlong(1, 0x1090000) 35 self.SetRegisterUlong(2, 0x1000) 36 self.SetRegisterUlong(0, 0) 37else: 38 self.SetRegisterUlong(0, 0xFFFFFFFFFFFFFFFF) 39""" 40 41runMacro $reset 42