From 552a054d45f516990e6470338c18ce9f792c59b3 Mon Sep 17 00:00:00 2001 From: Sergey Matyukevich Date: Wed, 16 Nov 2022 00:52:35 +0100 Subject: [PATCH] configs/snps_arc700_nsim_defconfig: add ARC700 target for nSIM Add ARC700 image configuration for nSIM instruction set simulator. This is a nice starting point for ARC700 in nSIM. Signed-off-by: Sergey Matyukevich Signed-off-by: Alexey Brodkin Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 4 +++ board/synopsys/nsim/readme.txt | 43 ++++++++++++++++++++++++++++++ configs/snps_arc700_nsim_defconfig | 18 +++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 board/synopsys/nsim/readme.txt create mode 100644 configs/snps_arc700_nsim_defconfig diff --git a/DEVELOPERS b/DEVELOPERS index 0ae5f89d88..9915143a04 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2665,6 +2665,10 @@ F: package/rtl8189fs/ F: package/wpa_supplicant/ F: package/xr819-xradio/ +N: Sergey Matyukevich +F: board/synopsys/nsim/ +F: configs/snps_arc700_nsim_defconfig + N: Sergio Prado F: board/toradex/apalis-imx6/ F: configs/toradex_apalis_imx6_defconfig diff --git a/board/synopsys/nsim/readme.txt b/board/synopsys/nsim/readme.txt new file mode 100644 index 0000000000..cc89cf87ac --- /dev/null +++ b/board/synopsys/nsim/readme.txt @@ -0,0 +1,43 @@ +How to build it +=============== + +Configure build for the selected nSIM target. For instance, for +ARC700 nSIM target use the following defauilt configuration: +$ make snps_arc700_nsim_defconfig + +Optionally modify the configuration: +$ make menuconfig + +Build: +$ make + +How to use it +============= + +Resulting image can be booted using ARC nSIM instruction set simulator. +Free version of nSIM is available for download: +- https://www.synopsys.com/cgi-bin/dwarcnsim/req1.cgi +It provides nsimdrv binary for Linux that can be used stand-alone +or with GDB. + +To run ARC700 image use the following command: +$ nsimdrv \ + -prop=nsim_mem-dev=uart0,kind=dwuart,base=0xf0000000,irq=24 \ + -prop=icache=32768,64,2,0 \ + -prop=dcache=32768,64,4,0 \ + -prop=nsim_isa_enable_timer_0=1 \ + -prop=nsim_isa_enable_timer_1=1 \ + -prop=nsim_isa_host_timer=1 \ + -prop=nsim_mmu=3 \ + -prop=nsim_isa_family=a700 \ + -prop=nsim_isa_atomic_option=1 \ + -prop=nsim_isa_dpfp=none \ + -prop=nsim_isa_shift_option=2 \ + -prop=nsim_isa_swap_option=1 \ + -prop=nsim_isa_bitscan_option=1 \ + -prop=nsim_isa_sat=1 \ + -prop=nsim_isa_mpy32=1 \ + -prop=isa_counters=1 \ + -prop=nsim_isa_pct_counters=8 \ + -prop=nsim_isa_pct_size=48 \ + output/images/vmlinux diff --git a/configs/snps_arc700_nsim_defconfig b/configs/snps_arc700_nsim_defconfig new file mode 100644 index 0000000000..3964924bed --- /dev/null +++ b/configs/snps_arc700_nsim_defconfig @@ -0,0 +1,18 @@ +# Architecture +BR2_arcle=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="arc700" + +# Linux headers same as kernel, a 6.0 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_0=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.0.8" +BR2_LINUX_KERNEL_DEFCONFIG="nsim_700" +BR2_LINUX_KERNEL_VMLINUX=y + +# Rootfs +BR2_TARGET_ROOTFS_INITRAMFS=y