Files
simulation_core/tests/platforms/BeagleV-StarLight.robot

119 lines
5.2 KiB
Plaintext
Raw Normal View History

*** Variables ***
${SCRIPT} @scripts/single-node/beaglev_starlight.resc
${MACHINE0} machine0
${MACHINE1} machine1
${MAC_ADDR0} 66:34:B0:6C:DE:A0
${MAC_ADDR1} 66:34:B0:6C:DE:A1
${IP_ADDR0} 192.168.0.5
${IP_ADDR1} 192.168.0.6
${UART} sysbus.uart3
*** Keywords ***
Create Machine
[Arguments] ${machine} ${external_pmp}=false
Execute Command $name="${machine}"
Execute Command include @${SCRIPT}
IF '${external_pmp}' == 'true'
Execute Command machine LoadPlatformDescriptionFromString "pmp1: Miscellaneous.RiscVExternalPMP @ U74_1"
Execute Command machine LoadPlatformDescriptionFromString "pmp2: Miscellaneous.RiscVExternalPMP @ U74_2"
END
# We enable serial execution to ensure a deterministic result as this test uses 2 machines, each with 2 CPUs
Execute Command emulation SetGlobalSerialExecution True
${tester} = Create Terminal Tester ${UART} 40 ${machine} defaultPauseEmulation=True
RETURN ${tester}
Connect Machines To Switch
Execute Command emulation CreateSwitch "switch"
Execute Command connector Connect sysbus.ethernet switch machine=${MACHINE0}
Execute Command connector Connect sysbus.ethernet switch machine=${MACHINE1}
Verify U-Boot
[Arguments] ${tester}
Wait For Line On Uart OpenSBI v0.9 testerId=${tester}
Wait For Line On Uart Platform Name\\s+: StarFive testerId=${tester} treatAsRegex=true
Wait For Line On Uart U-Boot 2021.01 testerId=${tester}
Wait For Prompt On Uart dwmac.10020000 testerId=${tester}
Login And Configure Ethernet
[Arguments] ${tester} ${mac_addr} ${ip_addr}
Wait For Prompt On Uart buildroot login: testerId=${tester}
Write Line To Uart root testerId=${tester}
Wait For Prompt On Uart Password: testerId=${tester}
Write Line To Uart starfive testerId=${tester} waitForEcho=false
Wait For Prompt On Uart \# testerId=${tester}
Write Line To Uart ifconfig eth0 down testerId=${tester}
Wait For Prompt On Uart \# testerId=${tester}
Write Line To Uart ifconfig eth0 hw ether ${mac_addr} testerId=${tester}
# MTU size must be decreased due to limiations of the driver
Wait For Prompt On Uart \# testerId=${tester}
Write Line To Uart ifconfig eth0 mtu 440 up ${ip_addr} testerId=${tester} waitForEcho=false
Test Ping
[Arguments] ${packet_size}=56
${tester} = Create Terminal Tester ${UART} machine=${MACHINE0} defaultPauseEmulation=True
Write Line To Uart ping -As ${packet_size} -c 10 ${IP_ADDR0} testerId=${tester} waitForEcho=false
Wait For Line On Uart 10 packets transmitted, 10 packets received, 0% packet loss testerId=${tester}
*** Test Cases ***
Should Boot U-Boot
${tester0} = Create Machine ${MACHINE0}
${tester1} = Create Machine ${MACHINE1}
Verify U-Boot ${tester0}
Verify U-Boot ${tester1}
Provides booted-uboot
Should Provide Two Linux Machines With Ethernet Connection
Requires booted-uboot
Connect Machines To Switch
${tester0} = Create Terminal Tester ${UART} machine=${MACHINE0} defaultPauseEmulation=True
${tester1} = Create Terminal Tester ${UART} machine=${MACHINE1} defaultPauseEmulation=True
Login And Configure Ethernet ${tester0} ${MAC_ADDR0} ${IP_ADDR0}
Login And Configure Ethernet ${tester1} ${MAC_ADDR1} ${IP_ADDR1}
Provides booted-linux
Should Ping
Requires booted-linux
Test Ping
Should Ping Large Payload
Requires booted-linux
Test Ping packet_size=3200
Should Boot U-Boot With External PMP
${tester0} = Create Machine ${MACHINE0} external_pmp=true
${tester1} = Create Machine ${MACHINE1} external_pmp=true
Verify U-Boot ${tester0}
Verify U-Boot ${tester1}
Provides booted-uboot-ext-pmp
Should Provide Two Linux Machines With Ethernet Connection With External PMP
Requires booted-uboot-ext-pmp
Connect Machines To Switch
${tester0} = Create Terminal Tester ${UART} machine=${MACHINE0} defaultPauseEmulation=True
${tester1} = Create Terminal Tester ${UART} machine=${MACHINE1} defaultPauseEmulation=True
Login And Configure Ethernet ${tester0} ${MAC_ADDR0} ${IP_ADDR0}
Login And Configure Ethernet ${tester1} ${MAC_ADDR1} ${IP_ADDR1}
Provides booted-linux-ext-pmp
Should Ping With External PMP
Requires booted-linux-ext-pmp
Test Ping