forked from seL4/camkes-vm-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
vm_virtio_net: add zcu102 support (seL4#57)
Signed-off-by: Chris Guikema <[email protected]>
- Loading branch information
1 parent
150c202
commit 8c9108a
Showing
5 changed files
with
262 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
apps/Arm/vm_virtio_net/overlay_files/init_scripts/zynqmp/arping_test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/sh | ||
### BEGIN INIT INFO | ||
# Provides: arping_test | ||
# Required-Start: $networking | ||
# Required-Stop: | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 1 | ||
# Short-Description: Configure virtio-net device | ||
### END INIT INFO | ||
|
||
# | ||
# Copyright 2019, Data61, CSIRO (ABN 41 687 119 230) | ||
# Copyright 2024, DornerWorks | ||
# | ||
# SPDX-License-Identifier: BSD-2-Clause | ||
# | ||
|
||
echo "Testing arping on virtual interface:" > /dev/console | ||
|
||
# Petalinux 2022.1 doesn't seem to like the /etc/network/interfaces file | ||
eth0_ip="192.168.1.1" | ||
ifconfig eth0 $eth0_ip | ||
|
||
arping 192.168.1.2 -c 5 -w 2 | ||
# Success code for arping: 0 (arping returns non-zero value if packet count and timeout is not met) | ||
if [ $? -eq 0 ] | ||
then | ||
echo "arping test was successful" > /dev/console | ||
else | ||
echo "arping test failed" > /dev/console | ||
fi |
31 changes: 31 additions & 0 deletions
31
apps/Arm/vm_virtio_net/overlay_files/init_scripts/zynqmp/ping_test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/sh | ||
### BEGIN INIT INFO | ||
# Provides: ping_test | ||
# Required-Start: $networking | ||
# Required-Stop: | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 1 | ||
# Short-Description: Configure virtio-net device | ||
### END INIT INFO | ||
|
||
# | ||
# Copyright 2019, Data61, CSIRO (ABN 41 687 119 230) | ||
# Copyright 2024, DornerWorks | ||
# | ||
# SPDX-License-Identifier: BSD-2-Clause | ||
# | ||
|
||
echo "Testing ping on virtual interface:" > /dev/console | ||
|
||
# Petalinux 2022.1 doesn't seem to like the /etc/network/interfaces file | ||
eth0_ip="192.168.1.1" | ||
ifconfig eth0 $eth0_ip | ||
|
||
ping 192.168.1.2 -v -c 5 -W 2 | ||
# Success code for Ping: 0 (Ping returns non-zero value if packet count and timeout is not met) | ||
if [ $? -eq 0 ] | ||
then | ||
echo "Ping test was successful" > /dev/console | ||
else | ||
echo "Ping test failed" > /dev/console | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
/* | ||
* Copyright 2023, DornerWorks | ||
* | ||
* SPDX-License-Identifier: BSD-2-Clause | ||
*/ | ||
|
||
#include <plat/smc.h> | ||
#include <configurations/vm.h> | ||
|
||
#define VM_INITRD_MAX_SIZE 0x1900000 //25 MB | ||
#define VM_RAM_BASE 0x10000000 | ||
#define VM_RAM_SIZE 0x10000000 | ||
#define VM_ENTRY_ADDR 0x10080000 | ||
#define VM_RAM_OFFSET 0 | ||
#define VM_DTB_ADDR 0x12000000 | ||
#define VM_INITRD_ADDR 0x13000000 | ||
|
||
assembly { | ||
composition {} | ||
configuration { | ||
|
||
vm0.vm_address_config = { | ||
"ram_base" : VAR_STRINGIZE(VM_RAM_BASE), | ||
"ram_paddr_base" : VAR_STRINGIZE(VM_RAM_BASE), | ||
"ram_size" : VAR_STRINGIZE(VM_RAM_SIZE), | ||
"dtb_addr" : VAR_STRINGIZE(VM_DTB_ADDR), | ||
"initrd_addr" : VAR_STRINGIZE(VM_INITRD_ADDR), | ||
"kernel_entry_addr" : VAR_STRINGIZE(VM_ENTRY_ADDR), | ||
}; | ||
vm0.num_vcpus = 4; | ||
|
||
/* Extra untyped pool to allow for 256MB of RAM */ | ||
vm0.simple_untyped28_pool = 1; | ||
|
||
vm0.vm_image_config = { | ||
"kernel_name" : "linux", | ||
"initrd_name" : "linux-initrd", | ||
"dtb_base_name" : "linux-dtb", | ||
"kernel_bootcmdline" : "console=ttyPS0,115200 root=/dev/ram rw earlycon clk_ignore_unused net.ifnames=0", | ||
"kernel_stdout" : "serial0:115200n8", | ||
"generate_dtb" : true, | ||
"provide_dtb" : false, | ||
"map_one_to_one" : false, | ||
"provide_initrd": true, | ||
"clean_cache" : false, | ||
}; | ||
|
||
vm0.dtb = dtb([{"path": "/amba/serial@ff000000"} ]); | ||
|
||
vm0.untyped_mmios = ["0xf9060000:12"]; // Interrupt Controller Virtual CPU interface (Virtual Machine view) | ||
|
||
vm0.plat_keep_devices = [ | ||
"/pss_ref_clk", | ||
"/gt_crx_ref_clk", | ||
"/pss_alt_ref_clk", | ||
"/aux_ref_clk", | ||
"/video_clk", | ||
"/pmu", | ||
"/psci", | ||
"/timer", | ||
"/aliases", | ||
"/axi/interrupt-controller@f9010000", | ||
"/axi/serial@ff000000", | ||
]; | ||
|
||
vm0.plat_keep_devices_and_subtree = [ | ||
"/firmware", | ||
]; | ||
|
||
vm0.allow_smc = true; | ||
vm0.allowed_smc_functions = [ | ||
SMC_PM_GET_API_VERSION, | ||
SMC_PM_REQUEST_NODE, | ||
SMC_PM_RELEASE_NODE, | ||
SMC_PM_SET_REQUIREMENT, | ||
SMC_PM_INIT_FINALIZE, | ||
SMC_PM_FPGA_GET_STATUS, | ||
SMC_PM_RESET_ASSERT, | ||
SMC_PM_RESET_GET_STATUS, | ||
SMC_PM_MMIO_WRITE, | ||
SMC_PM_MMIO_READ, | ||
SMC_PM_GET_CHIPID, | ||
SMC_PM_PINCTRL_REQUEST, | ||
SMC_PM_PINCTRL_RELEASE, | ||
SMC_PM_PINCTRL_SET_FUNCTION, | ||
SMC_PM_PINCTRL_CONFIG_PARAM_GET, | ||
SMC_PM_PINCTRL_CONFIG_PARAM_SET, | ||
SMC_PM_IOCTL, | ||
SMC_PM_QUERY_DATA, | ||
SMC_PM_CLOCK_ENABLE, | ||
SMC_PM_CLOCK_DISABLE, | ||
SMC_PM_CLOCK_GETSTATE, | ||
SMC_PM_CLOCK_SETDIVIDER, | ||
SMC_PM_CLOCK_GETDIVIDER, | ||
SMC_PM_CLOCK_GETPARENT, | ||
SMC_PM_GET_TRUSTZONE_VERSION, | ||
SMC_PM_ADD_SUBSYSTEM, | ||
SMC_PM_FEATURE_CHECK, | ||
SMC_IPI_MAILBOX_OPEN, | ||
SMC_IPI_MAILBOX_RELEASE, | ||
SMC_IPI_MAILBOX_ENABLE_IRQ | ||
]; | ||
} | ||
} |