42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
using sysbus
|
|
$name?="fsl-lx2160a-rdb"
|
|
mach create $name
|
|
$bin?=@https://dl.antmicro.com/projects/renode/lx2160ardb_tfa--fsl-lx2160a-rdb-uboot.elf-s_6536168-1086a07768d4a4e6b1a7f80bd2d9c0e6444c0a2b
|
|
machine LoadPlatformDescription @platforms/boards/fsl_lx2160ardb.repl
|
|
showAnalyzer uart0
|
|
|
|
macro reset
|
|
"""
|
|
cpu0 PSCIEmulationMethod SMC
|
|
sysbus LoadELF $bin
|
|
"""
|
|
|
|
# This handler stubs the `smc` SIP call 0xff12 (SIP_SVC_MEM_BANK)
|
|
# atf implementation can be found here:
|
|
# https://github.com/Xilinx/arm-trusted-firmware/blob/e4a37b000fb9a708112da1e06da0e8fad939dc86/plat/nxp/common/sip_svc/sip_svc.c#L115
|
|
# Basically it returns available dram regions size
|
|
cpu0 AddCustomPSCIHandler 0xc200ff12 """
|
|
from Antmicro.Renode.Peripherals.CPU import RegisterValue
|
|
|
|
x1 = self.GetRegisterUlong(1)
|
|
if x1 == 0xFFFFFFFFFFFFFFFF:
|
|
self.SetRegisterUlong(1, 0x80002000)
|
|
self.SetRegisterUlong(0, 0x0)
|
|
elif x1 == 0:
|
|
self.SetRegisterUlong(1, 0x80000000)
|
|
self.SetRegisterUlong(2, 0x80000000)
|
|
self.SetRegisterUlong(0, 0)
|
|
elif x1 == 1:
|
|
self.SetRegisterUlong(1, 0x1080000)
|
|
self.SetRegisterUlong(2, 0x1000)
|
|
self.SetRegisterUlong(0, 0)
|
|
elif x1 == 2:
|
|
self.SetRegisterUlong(1, 0x1090000)
|
|
self.SetRegisterUlong(2, 0x1000)
|
|
self.SetRegisterUlong(0, 0)
|
|
else:
|
|
self.SetRegisterUlong(0, 0xFFFFFFFFFFFFFFFF)
|
|
"""
|
|
|
|
runMacro $reset
|