mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-17 17:01:52 +00:00
DM: Cleanup vmcfg
Removed the entire vmcfg feature, these changes are made: 1.Deleted devicemodel/vmcfg/ 2.Deleted devicemodel/include/vmcfg.h 3.Cleanup vmcfg in devicemodel/Makefile Tracked-On: #3192 Acked-by: Anthony Xu <anthony.xu@intel.com> Signed-off-by: Tao Yuhong <yuhong.tao@intel.com>
This commit is contained in:
parent
7315515c7c
commit
50f50872e0
@ -150,10 +150,6 @@ SRCS += core/timer.c
|
||||
# arch
|
||||
SRCS += arch/x86/pm.c
|
||||
|
||||
# vmcfg
|
||||
SRCS += vmcfg/vmcfg.c
|
||||
SRCS += vmcfg/apl-mrb/vm1/vm1.c
|
||||
|
||||
# log
|
||||
SRCS += log/log.c
|
||||
SRCS += log/kmsg_logger.c
|
||||
@ -161,10 +157,9 @@ SRCS += log/kmsg_logger.c
|
||||
OBJS := $(patsubst %.c,$(DM_OBJDIR)/%.o,$(SRCS))
|
||||
|
||||
VERSION_H := $(DM_OBJDIR)/include/version.h
|
||||
VMCFG_CONFIG_H := $(DM_OBJDIR)/include/vmcfg_config.h
|
||||
|
||||
HEADERS := $(shell find $(BASEDIR) -name '*.h')
|
||||
HEADERS += $(VERSION_H) $(VMCFG_CONFIG_H)
|
||||
HEADERS += $(VERSION_H)
|
||||
|
||||
DISTCLEAN_OBJS := $(shell find $(BASEDIR) -name '*.o')
|
||||
|
||||
@ -179,9 +174,6 @@ BIOS_BIN := $(wildcard bios/*)
|
||||
all: $(DM_OBJDIR)/$(PROGRAM)
|
||||
@echo -n ""
|
||||
|
||||
$(VMCFG_CONFIG_H):
|
||||
$(MAKE) -C $(BASEDIR)/vmcfg $@ BASEDIR=$(BASEDIR) DM_OBJDIR=$(DM_OBJDIR)
|
||||
|
||||
$(DM_OBJDIR)/$(PROGRAM): $(OBJS)
|
||||
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS)
|
||||
|
||||
@ -224,7 +216,7 @@ $(DM_OBJDIR)/%.o: %.c $(HEADERS)
|
||||
[ ! -e $@ ] && mkdir -p $(dir $@); \
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
install: $(DM_OBJDIR)/$(PROGRAM) install-samples-nuc install-samples-mrb install-bios install-vmcfg install-samples-up2
|
||||
install: $(DM_OBJDIR)/$(PROGRAM) install-samples-nuc install-samples-mrb install-bios install-samples-up2
|
||||
install -D --mode=0755 $(DM_OBJDIR)/$(PROGRAM) $(DESTDIR)/usr/bin/$(PROGRAM)
|
||||
|
||||
install-samples-up2: $(SAMPLES_UP2)
|
||||
@ -241,6 +233,3 @@ install-samples-mrb: $(SAMPLES_MRB)
|
||||
install-bios: $(BIOS_BIN)
|
||||
install -d $(DESTDIR)/usr/share/acrn/bios
|
||||
install -D --mode=0664 -t $(DESTDIR)/usr/share/acrn/bios $^
|
||||
|
||||
install-vmcfg:
|
||||
$(MAKE) -C $(BASEDIR)/vmcfg install DESTDIR=$(DESTDIR) BASEDIR=$(BASEDIR)
|
||||
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (C)2018 Intel Corporation
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef VMCFG_H
|
||||
#define VMCFG_H
|
||||
|
||||
#include <getopt.h>
|
||||
|
||||
struct vmcfg_arg {
|
||||
char **argv;
|
||||
int argc;
|
||||
int (*setup)(void);
|
||||
int (*clean)(void);
|
||||
};
|
||||
|
||||
extern struct vmcfg_arg **args_buildin;
|
||||
extern int num_args_buildin;
|
||||
|
||||
extern struct vmcfg_arg mrb_vm1_args;
|
||||
|
||||
void vmcfg_list(void);
|
||||
void vmcfg_dump(int index, struct option *long_options, char *optstr);
|
||||
#endif
|
@ -1,7 +0,0 @@
|
||||
mainmenu "VM Configuration"
|
||||
|
||||
config VM_CFG
|
||||
bool "Enable build-in VM configuration"
|
||||
default n
|
||||
|
||||
source "apl-mrb/vm1/Kconfig"
|
@ -1,9 +0,0 @@
|
||||
BASEDIR ?= ..
|
||||
|
||||
include $(BASEDIR)/vmcfg/scripts/kconfig/kconfig.mk
|
||||
|
||||
all:
|
||||
|
||||
install:
|
||||
install -d $(DESTDIR)/usr/share/acrn/samples/apl-mrb
|
||||
install -t $(DESTDIR)/usr/share/acrn/samples/apl-mrb $(BASEDIR)/vmcfg/apl-mrb/mrb-env-setup.sh
|
@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -b "/dev/mmcblk1p3" ]; then
|
||||
echo "no /dev/mmcblk1p3 data partition, exit"
|
||||
exit
|
||||
fi
|
||||
|
||||
mkdir -p /data
|
||||
mount /dev/mmcblk1p3 /data
|
||||
|
||||
if [ ! -f "/data/android/android.img" ]; then
|
||||
echo "no /data/android/android.img, exit"
|
||||
exit
|
||||
fi
|
||||
|
||||
# create a unique tap device for each VM
|
||||
tap=tap_AaaG
|
||||
tap_exist=$(ip a | grep "$tap" | awk '{print $1}')
|
||||
if [ "$tap_exist"x != "x" ]; then
|
||||
echo "tap device existed, reuse $tap"
|
||||
else
|
||||
ip tuntap add dev $tap mode tap
|
||||
fi
|
||||
|
||||
# if acrn-br0 exists, add VM's unique tap device under it
|
||||
br_exist=$(ip a | grep acrn-br0 | awk '{print $1}')
|
||||
if [ "$br_exist"x != "x" -a "$tap_exist"x = "x" ]; then
|
||||
echo "acrn-br0 bridge aleady exists, adding new tap device to it..."
|
||||
ip link set "$tap" master acrn-br0
|
||||
ip link set dev "$tap" down
|
||||
ip link set dev "$tap" up
|
||||
fi
|
||||
|
||||
modprobe pci_stub
|
||||
|
||||
# offline SOS CPUs except BSP before launch UOS
|
||||
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
|
||||
online=`cat $i/online`
|
||||
idx=`echo $i | tr -cd "[1-99]"`
|
||||
echo cpu$idx online=$online
|
||||
if [ "$online" = "1" ]; then
|
||||
echo 0 > $i/online
|
||||
echo $idx > /sys/class/vhm/acrn_vhm/offline_cpu
|
||||
fi
|
||||
done
|
@ -1,380 +0,0 @@
|
||||
config DEFCONFIG_LIST
|
||||
string
|
||||
option defconfig_list
|
||||
default "apl-mrb/vm1/configs/default.config"
|
||||
|
||||
menuconfig MRB_VM1
|
||||
bool "Build-in VM1 configuration for MRB"
|
||||
default n
|
||||
depends on VM_CFG
|
||||
|
||||
config MRB_VM1_NAME
|
||||
string "Name of VM1"
|
||||
default "mrb-vm1-aaag"
|
||||
depends on MRB_VM1
|
||||
|
||||
menuconfig MRB_VM1_UUID
|
||||
bool "UUID of VM1"
|
||||
default n
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_UUID_VAL
|
||||
string "UUID Value"
|
||||
default "2d26d588-485d-11e8-8e17-d368e4b04324"
|
||||
depends on MRB_VM1_UUID
|
||||
|
||||
config MRB_VM1_ACPI
|
||||
bool "create ACPI tables"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_MEM
|
||||
int "memory size in MB"
|
||||
default 1750
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_CPU
|
||||
int "# cpus (default 1)"
|
||||
default 3
|
||||
depends on MRB_VM1
|
||||
|
||||
menuconfig MRB_VM1_VSBL
|
||||
bool "VSBL file"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_VSBL_IMAGE
|
||||
string "vsbl path"
|
||||
default "/usr/share/acrn/bios/VSBL.bin"
|
||||
depends on MRB_VM1_VSBL
|
||||
|
||||
menuconfig MRB_VM1_GVT
|
||||
bool "GVT Support"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_GVT_DEV
|
||||
string "GVT device"
|
||||
default "2,pci-gvt"
|
||||
depends on MRB_VM1_GVT
|
||||
|
||||
config MRB_VM1_GVT_ARG
|
||||
string "GVT args"
|
||||
default "64 448 8"
|
||||
depends on MRB_VM1_GVT
|
||||
|
||||
menuconfig MRB_VM1_HOSTBRIDGE
|
||||
bool "pci hostbridge"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_HOSTBRIDGE_OPT
|
||||
string "optional args"
|
||||
default "0:0,hostbridge"
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
menuconfig MRB_VM1_NPK
|
||||
bool "NPK device"
|
||||
default n
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_NPK_OPT
|
||||
string "optional args"
|
||||
default "-s 0:0:2,npk,8/24"
|
||||
depends on MRB_VM1_NPK
|
||||
|
||||
menuconfig MRB_VM1_USB_XHCI
|
||||
bool "USB xHCI"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_USB_XHCI_OPT
|
||||
string "optional args"
|
||||
default "7,xhci,1-1:1-2:1-3:2-1:2-2:2-3:cap=apl"
|
||||
depends on MRB_VM1_USB_XHCI
|
||||
|
||||
menuconfig MRB_VM1_VIRTIO_RPMB
|
||||
bool "virtio-_rpmb"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_VIRTIO_RPMB_OPT
|
||||
string "optional args"
|
||||
default "13,virtio-rpmb"
|
||||
depends on MRB_VM1_VIRTIO_RPMB
|
||||
|
||||
menuconfig MRB_VM1_VIRTIO_HYPER_DMABUF
|
||||
bool "virtio-hypey_dmabuf"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_VIRTIO_HYPER_DMABUF_OPT
|
||||
string "optional args"
|
||||
default "10,virtio-hyper_dmabuf"
|
||||
depends on MRB_VM1_VIRTIO_HYPER_DMABUF
|
||||
|
||||
menuconfig MRB_VM1_WDT_I6300ESB
|
||||
bool "wdt-i6300esb"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_WDT_I6300ESB_OPT
|
||||
string "optional args"
|
||||
default "11,wdt-i6300esb"
|
||||
depends on MRB_VM1_WDT_I6300ESB
|
||||
|
||||
menuconfig MRB_VM1_VIRTIO_BLK
|
||||
bool "virtio block device"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_VIRTIO_BLK_OPT
|
||||
string "optional args"
|
||||
default "3,virtio-blk,b,/data/android/android.img"
|
||||
depends on MRB_VM1_VIRTIO_BLK
|
||||
|
||||
menuconfig MRB_VM1_VIRTIO_NET
|
||||
bool "virtio net device"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_VIRTIO_NET_OPT
|
||||
string "optional args"
|
||||
default "9,virtio-net,tap_AaaG"
|
||||
depends on MRB_VM1_VIRTIO_NET
|
||||
|
||||
menuconfig MRB_VM1_VIRTIO_IPU
|
||||
bool "virtio IPU"
|
||||
default n
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
config MRB_VM1_VIRTIO_IPU_OPT
|
||||
string "optional args"
|
||||
default "21,virtio-ipu"
|
||||
depends on MRB_VM1_VIRTIO_IPU
|
||||
|
||||
menuconfig MRB_VM1_PTDEV
|
||||
bool "passthrough device"
|
||||
default y
|
||||
depends on MRB_VM1_HOSTBRIDGE
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_USB
|
||||
bool "USB passthrough"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_USB_OPT_1
|
||||
string "optional args"
|
||||
default "8,passthru,0/15/1"
|
||||
depends on MRB_VM1_PTDEV_USB
|
||||
|
||||
config MRB_VM1_PTDEV_USB_ID_1
|
||||
string "Device ID"
|
||||
default "8086 5aaa"
|
||||
depends on MRB_VM1_PTDEV_USB
|
||||
|
||||
config MRB_VM1_PTDEV_USB_DEVINFO_1
|
||||
string "Device info"
|
||||
default "0000:00:15.1"
|
||||
depends on MRB_VM1_PTDEV_USB
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_AUDIO
|
||||
bool "audio device"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_OPT
|
||||
string "optional args"
|
||||
default "14,passthru,0/e/0,keep_gsi"
|
||||
depends on MRB_VM1_PTDEV_AUDIO
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_ID
|
||||
string "Device ID"
|
||||
default "8086 5a98"
|
||||
depends on MRB_VM1_PTDEV_AUDIO
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:0e.0"
|
||||
depends on MRB_VM1_PTDEV_AUDIO
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
bool "audio codec"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_CODEC_OPT
|
||||
string "optional args"
|
||||
default "23,passthru,0/17/0"
|
||||
depends on MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_CODEC_ID
|
||||
string "Device ID"
|
||||
default "8086 5ab4"
|
||||
depends on MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
|
||||
config MRB_VM1_PTDEV_AUDIO_CODEC_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:17.0"
|
||||
depends on MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_CSME
|
||||
bool "Converged Security Manageability Engine"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_CSME_OPT
|
||||
string "optional args"
|
||||
default "15,passthru,0/f/0"
|
||||
depends on MRB_VM1_PTDEV_CSME
|
||||
|
||||
config MRB_VM1_PTDEV_CSME_ID
|
||||
string "Device ID"
|
||||
default "8086 5a9a"
|
||||
depends on MRB_VM1_PTDEV_CSME
|
||||
|
||||
config MRB_VM1_PTDEV_CSME_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:0f.0"
|
||||
depends on MRB_VM1_PTDEV_CSME
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_IPU
|
||||
bool "IPU passthrough"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_OPT
|
||||
string "IPU passthrough optional args"
|
||||
default "12,passthru,0/3/0"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_ID
|
||||
string "Device ID"
|
||||
default "8086 5a88"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:03.0"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_I2C
|
||||
string "Related I2C optional args"
|
||||
default "22,passthru,0/16/0"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_I2C_ID
|
||||
string "Device ID"
|
||||
default "8086 5aac"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
config MRB_VM1_PTDEV_IPU_I2C_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:16.0"
|
||||
depends on MRB_VM1_PTDEV_IPU
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_SD
|
||||
bool "SD card passthrough"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_SD_OPT
|
||||
string "optional args"
|
||||
default "27,passthru,0/1b/0"
|
||||
depends on MRB_VM1_PTDEV_SD
|
||||
|
||||
config MRB_VM1_PTDEV_SD_ID
|
||||
string "Device ID"
|
||||
default "8086 5aca"
|
||||
depends on MRB_VM1_PTDEV_SD
|
||||
|
||||
config MRB_VM1_PTDEV_SD_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:1b.0"
|
||||
depends on MRB_VM1_PTDEV_SD
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_WIFI
|
||||
bool "wifi passthrough"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_WIFI_OPT
|
||||
string "optional args"
|
||||
default "18,passthru,3/0/0,keep_gsi"
|
||||
depends on MRB_VM1_PTDEV_WIFI
|
||||
|
||||
config MRB_VM1_PTDEV_WIFI_ID
|
||||
string "Device ID"
|
||||
default "11ab 2b38"
|
||||
depends on MRB_VM1_PTDEV_WIFI
|
||||
|
||||
config MRB_VM1_PTDEV_WIFI_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:03:00.0"
|
||||
depends on MRB_VM1_PTDEV_WIFI
|
||||
|
||||
menuconfig MRB_VM1_PTDEV_BLUETOOTH
|
||||
bool "Bluetooth passthrough"
|
||||
default y
|
||||
depends on MRB_VM1_PTDEV
|
||||
|
||||
config MRB_VM1_PTDEV_BLUETOOTH_OPT
|
||||
string "optional args"
|
||||
default "24,passthru,0/18/0"
|
||||
depends on MRB_VM1_PTDEV_BLUETOOTH
|
||||
|
||||
config MRB_VM1_PTDEV_BLUETOOTH_ID
|
||||
string "Device ID"
|
||||
default "8086 5abc"
|
||||
depends on MRB_VM1_PTDEV_BLUETOOTH
|
||||
|
||||
config MRB_VM1_PTDEV_BLUETOOTH_DEVINFO
|
||||
string "Device info"
|
||||
default "0000:00:18.0"
|
||||
depends on MRB_VM1_PTDEV_BLUETOOTH
|
||||
|
||||
menuconfig MRB_VM1_IOC
|
||||
bool "ioc"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
select MRB_VM1_LPC_COM2
|
||||
|
||||
config MRB_VM1_IOC_UART
|
||||
string "Virtual Uart Path"
|
||||
default "/run/acrn/ioc_"
|
||||
depends on MRB_VM1_IOC
|
||||
|
||||
config MRB_VM1_IOC_REASON
|
||||
string "Wakeup Reason"
|
||||
default "0x20"
|
||||
depends on MRB_VM1_IOC
|
||||
|
||||
menuconfig MRB_VM1_LPC
|
||||
bool "lpc"
|
||||
default y
|
||||
depends on MRB_VM1
|
||||
|
||||
config MRB_VM1_LPC_OPT
|
||||
string "lpc optional args"
|
||||
default "1:0,lpc"
|
||||
depends on MRB_VM1_LPC
|
||||
|
||||
config MRB_VM1_LPC_COM1
|
||||
bool "lpc com1"
|
||||
default y
|
||||
depends on MRB_VM1_LPC
|
||||
|
||||
config MRB_VM1_LPC_COM1_OPT
|
||||
string "optional args"
|
||||
default "com1,stdio"
|
||||
depends on MRB_VM1_LPC_COM1
|
||||
|
||||
config MRB_VM1_LPC_COM2
|
||||
bool "lpc com2"
|
||||
default y
|
||||
depends on MRB_VM1_LPC
|
||||
|
||||
config MRB_VM1_LPC_COM2_OPT
|
||||
string "optional args"
|
||||
default "com2,/run/acrn/ioc_"
|
||||
depends on MRB_VM1_LPC_COM2
|
@ -1,2 +0,0 @@
|
||||
# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
|
||||
# CONFIG_VM_CFG is not set
|
@ -1,294 +0,0 @@
|
||||
/*
|
||||
* Copyright (C)2018 Intel Corporation
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <vmcfg_config.h>
|
||||
#include <vmcfg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define TOSTR(X) #X
|
||||
#define STR(X) TOSTR(X)
|
||||
|
||||
#ifdef CONFIG_MRB_VM1
|
||||
static char cmdline_fmt[] = "maxcpus=" STR(CONFIG_MRB_VM1_CPU) " "
|
||||
"nohpet tsc=reliable intel_iommu=off "
|
||||
"androidboot.serialno=%s%s "
|
||||
"i915.enable_rc6=1 "
|
||||
"i915.enable_fbc=1 "
|
||||
"i915.enable_guc_loading=0 "
|
||||
"i915.avail_planes_per_pipe=0x070F00 "
|
||||
"i915.enable_hangcheck=0 "
|
||||
"use_nuclear_flip=1 "
|
||||
"i915.enable_guc_submission=0 "
|
||||
"i915.enable_guc=0 ";
|
||||
|
||||
static char kernel_cmdline[sizeof(cmdline_fmt) + 256];
|
||||
|
||||
static char *mrb_vm1_options[] = {
|
||||
NULL, /*Reserved for program name*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_UUID
|
||||
"-U", CONFIG_MRB_VM1_UUID_VAL,
|
||||
#endif /*CONFIG_MRB_VM1_UUID*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_ACPI
|
||||
"-A",
|
||||
#endif /*CONFIG_MRB_VM1_ACPI*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_MEM
|
||||
"-m", STR(CONFIG_MRB_VM1_MEM) "M",
|
||||
#endif /*CONFIG_MRB_VM1_MEN*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_CPU
|
||||
"-c", STR(CONFIG_MRB_VM1_CPU),
|
||||
#endif /*CONFIG_MRB_VM1_CPU*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_GVT
|
||||
"-s", CONFIG_MRB_VM1_GVT_DEV,
|
||||
"-G", CONFIG_MRB_VM1_GVT_ARG,
|
||||
#endif /*CONFIG_MRB_VM1_GVT*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_HOSTBRIDGE
|
||||
"-s", CONFIG_MRB_VM1_HOSTBRIDGE_OPT,
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_USB_XHCI
|
||||
"-s", CONFIG_MRB_VM1_USB_XHCI_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_USB_XHCI*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_USB
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_USB_OPT_1,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_USB*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_VIRTIO_RPMB
|
||||
"-s", CONFIG_MRB_VM1_VIRTIO_RPMB_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_VIRTIO_RPMB*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_VIRTIO_HYPER_DMABUF
|
||||
"-s", CONFIG_MRB_VM1_VIRTIO_HYPER_DMABUF_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_VIRTIO_HYPER_DMABUF*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_WDT_I6300ESB
|
||||
"-s", CONFIG_MRB_VM1_WDT_I6300ESB_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_WDT_I6300ESB*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_VIRTIO_BLK
|
||||
"-s", CONFIG_MRB_VM1_VIRTIO_BLK_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_VIRTIO_BLK*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_VIRTIO_NET
|
||||
"-s", CONFIG_MRB_VM1_VIRTIO_NET_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_VIRTIO_NET*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_AUDIO
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_AUDIO_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_AUDIO*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_CSME
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_CSME_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_CSME */
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_IPU
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_IPU_OPT, /*ipu device*/
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_IPU_I2C, /*ipu related i2c*/
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_IPU*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_SD
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_SD_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_SD*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_WIFI
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_WIFI_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_WIFI*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_BLUETOOTH
|
||||
"-s", CONFIG_MRB_VM1_PTDEV_BLUETOOTH_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_BLUETOOTH*/
|
||||
|
||||
#endif /*CONFIG_MRB_VM1_HOSTBRIDGE */
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_LPC
|
||||
"-s", CONFIG_MRB_VM1_LPC_OPT,
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_IOC
|
||||
"-i", CONFIG_MRB_VM1_IOC_UART CONFIG_MRB_VM1_NAME ","
|
||||
CONFIG_MRB_VM1_IOC_REASON,
|
||||
#endif /*CONFIG_MRB_VM1_IOC */
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_LPC_COM1
|
||||
"-l", CONFIG_MRB_VM1_LPC_COM1_OPT,
|
||||
#endif /*CONFIG_MRB_VM1_LPC_COM1 */
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_LPC_COM2
|
||||
"-l", CONFIG_MRB_VM1_LPC_COM2_OPT CONFIG_MRB_VM1_NAME,
|
||||
#endif /*CONFIG_MRB_VM1_LPC_COM2 */
|
||||
|
||||
#endif /*CONFIG_MRB_VM1_LPC */
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_VSBL_IMAGE
|
||||
"--vsbl", CONFIG_MRB_VM1_VSBL_IMAGE,
|
||||
#endif /*CONFIG_MRB_VM1_VSBL_IMAGE */
|
||||
|
||||
"--enable_trusty",
|
||||
|
||||
/*command line */
|
||||
"-B",
|
||||
|
||||
kernel_cmdline,
|
||||
|
||||
/* VM name */
|
||||
CONFIG_MRB_VM1_NAME,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV
|
||||
#define PCI_UNBIND_PATH(X) \
|
||||
"/sys/bus/pci/devices/" X "/driver/unbind"
|
||||
|
||||
static int pci_dev_unbind(char *path, char *bdf)
|
||||
{
|
||||
int fd = -1;
|
||||
int ret = -1;
|
||||
|
||||
fd = open(path, O_WRONLY);
|
||||
if (fd < 0) {
|
||||
perror(path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = write(fd, bdf, strnlen(bdf, 64));
|
||||
if (ret != strnlen(bdf, 64)) {
|
||||
perror(bdf);
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int pci_dev_newid(char *id)
|
||||
{
|
||||
int fd = -1;
|
||||
int ret = -1;
|
||||
|
||||
fd = open("/sys/bus/pci/drivers/pci-stub/new_id", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
perror("/sys/bus/pci/drivers/pci-stub/new_id");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = write(fd, id, strnlen(id, 64));
|
||||
if (ret != strnlen(id, 64)) {
|
||||
perror(id);
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define PTDEV_SETUP(ID, DEVINFO) \
|
||||
do { \
|
||||
pci_dev_newid(ID); \
|
||||
pci_dev_unbind(PCI_UNBIND_PATH(DEVINFO), DEVINFO); \
|
||||
} while(0)
|
||||
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV*/
|
||||
|
||||
static void check_str(char *str, int len)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
if (str[i] < 0x20 || str[i] > 0x7e)
|
||||
str[i] = 0;
|
||||
}
|
||||
|
||||
static int mrb_vm1_setup(void)
|
||||
{
|
||||
char mmc_name[64] = {};
|
||||
char mmc_serial[64] = {};
|
||||
int ret = 0;
|
||||
int fd = -1;
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_USB
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_USB_ID_1,
|
||||
CONFIG_MRB_VM1_PTDEV_USB_DEVINFO_1);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_USB*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_AUDIO
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_AUDIO_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_AUDIO_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_AUDIO*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_AUDIO*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_CSME
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_CSME_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_CSME_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_CSME*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_IPU
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_IPU_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_IPU_DEVINFO);
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_IPU_I2C_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_IPU_I2C_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_IPU*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_SD
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_SD_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_SD_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_SD*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_WIFI
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_WIFI_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_WIFI_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_WIFI*/
|
||||
|
||||
#ifdef CONFIG_MRB_VM1_PTDEV_BLUETOOTH
|
||||
PTDEV_SETUP(CONFIG_MRB_VM1_PTDEV_BLUETOOTH_ID,
|
||||
CONFIG_MRB_VM1_PTDEV_BLUETOOTH_DEVINFO);
|
||||
#endif /*CONFIG_MRB_VM1_PTDEV_BLUETOOTH*/
|
||||
|
||||
memset(kernel_cmdline, 0, sizeof(kernel_cmdline));
|
||||
|
||||
fd = open("/sys/block/mmcblk1/device/name", O_RDONLY);
|
||||
if (fd >= 0) {
|
||||
ret = read(fd, mmc_name, sizeof(mmc_name));
|
||||
if (ret >= sizeof(mmc_name))
|
||||
mmc_name[sizeof(mmc_name) - 1] = 0;
|
||||
check_str(mmc_name, sizeof(mmc_name));
|
||||
close(fd);
|
||||
}
|
||||
|
||||
fd = open("/sys/block/mmcblk1/device/serial", O_RDONLY);
|
||||
if (fd >= 0) {
|
||||
ret = read(fd, mmc_serial, sizeof(mmc_serial));
|
||||
if (ret >= sizeof(mmc_serial))
|
||||
mmc_name[sizeof(mmc_serial) - 1] = 0;
|
||||
check_str(mmc_serial, sizeof(mmc_serial));
|
||||
close(fd);
|
||||
}
|
||||
|
||||
snprintf(kernel_cmdline, sizeof(kernel_cmdline) - 1, cmdline_fmt,
|
||||
mmc_name, mmc_serial);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct vmcfg_arg mrb_vm1_args = {
|
||||
.argv = mrb_vm1_options,
|
||||
.argc = sizeof(mrb_vm1_options) / sizeof(char *),
|
||||
.setup = mrb_vm1_setup,
|
||||
};
|
||||
#endif /*CONFIG_MRB_VM1 */
|
@ -1,74 +0,0 @@
|
||||
/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */
|
||||
#ifndef __HV_KCONFIG__
|
||||
#define __HV_KCONFIG__
|
||||
#define CONFIG_VM_CFG 1
|
||||
#define CONFIG_MRB_VM1 1
|
||||
#define CONFIG_MRB_VM1_NAME "mrb-vm1-aaag"
|
||||
#define CONFIG_MRB_VM1_ACPI 1
|
||||
#define CONFIG_MRB_VM1_MEM 1750
|
||||
#define CONFIG_MRB_VM1_CPU 3
|
||||
#define CONFIG_MRB_VM1_VSBL 1
|
||||
#define CONFIG_MRB_VM1_VSBL_IMAGE "/usr/share/acrn/bios/VSBL.bin"
|
||||
#define CONFIG_MRB_VM1_GVT 1
|
||||
#define CONFIG_MRB_VM1_GVT_DEV "2,pci-gvt"
|
||||
#define CONFIG_MRB_VM1_GVT_ARG "64 448 8"
|
||||
#define CONFIG_MRB_VM1_HOSTBRIDGE 1
|
||||
#define CONFIG_MRB_VM1_HOSTBRIDGE_OPT "0:0,hostbridge"
|
||||
#define CONFIG_MRB_VM1_USB_XHCI 1
|
||||
#define CONFIG_MRB_VM1_USB_XHCI_OPT "7,xhci,1-1:1-2:1-3:2-1:2-2:2-3:cap=apl"
|
||||
#define CONFIG_MRB_VM1_VIRTIO_RPMB 1
|
||||
#define CONFIG_MRB_VM1_VIRTIO_RPMB_OPT "13,virtio-rpmb"
|
||||
#define CONFIG_MRB_VM1_VIRTIO_HYPER_DMABUF 1
|
||||
#define CONFIG_MRB_VM1_VIRTIO_HYPER_DMABUF_OPT "10,virtio-hyper_dmabuf"
|
||||
#define CONFIG_MRB_VM1_WDT_I6300ESB 1
|
||||
#define CONFIG_MRB_VM1_WDT_I6300ESB_OPT "11,wdt-i6300esb"
|
||||
#define CONFIG_MRB_VM1_VIRTIO_BLK 1
|
||||
#define CONFIG_MRB_VM1_VIRTIO_BLK_OPT "3,virtio-blk,b,/data/android/android.img"
|
||||
#define CONFIG_MRB_VM1_VIRTIO_NET 1
|
||||
#define CONFIG_MRB_VM1_VIRTIO_NET_OPT "9,virtio-net,tap_AaaG"
|
||||
#define CONFIG_MRB_VM1_PTDEV 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_USB 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_USB_OPT_1 "8,passthru,0/15/1"
|
||||
#define CONFIG_MRB_VM1_PTDEV_USB_ID_1 "8086 5aaa"
|
||||
#define CONFIG_MRB_VM1_PTDEV_USB_DEVINFO_1 "0000:00:15.1"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_OPT "14,passthru,0/e/0,keep_gsi"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_ID "8086 5a98"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_DEVINFO "0000:00:0e.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_OPT "23,passthru,0/17/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_ID "8086 5ab4"
|
||||
#define CONFIG_MRB_VM1_PTDEV_AUDIO_CODEC_DEVINFO "0000:00:17.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_CSME 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_CSME_OPT "15,passthru,0/f/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_CSME_ID "8086 5a9a"
|
||||
#define CONFIG_MRB_VM1_PTDEV_CSME_DEVINFO "0000:00:0f.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_OPT "12,passthru,0/3/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_ID "8086 5a88"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_DEVINFO "0000:00:03.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_I2C "22,passthru,0/16/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_I2C_ID "8086 5aac"
|
||||
#define CONFIG_MRB_VM1_PTDEV_IPU_I2C_DEVINFO "0000:00:16.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_SD 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_SD_OPT "27,passthru,0/1b/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_SD_ID "8086 5aca"
|
||||
#define CONFIG_MRB_VM1_PTDEV_SD_DEVINFO "0000:00:1b.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_WIFI 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_WIFI_OPT "18,passthru,3/0/0,keep_gsi"
|
||||
#define CONFIG_MRB_VM1_PTDEV_WIFI_ID "11ab 2b38"
|
||||
#define CONFIG_MRB_VM1_PTDEV_WIFI_DEVINFO "0000:03:00.0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_BLUETOOTH 1
|
||||
#define CONFIG_MRB_VM1_PTDEV_BLUETOOTH_OPT "24,passthru,0/18/0"
|
||||
#define CONFIG_MRB_VM1_PTDEV_BLUETOOTH_ID "8086 5abc"
|
||||
#define CONFIG_MRB_VM1_PTDEV_BLUETOOTH_DEVINFO "0000:00:18.0"
|
||||
#define CONFIG_MRB_VM1_IOC 1
|
||||
#define CONFIG_MRB_VM1_IOC_UART "/run/acrn/ioc_"
|
||||
#define CONFIG_MRB_VM1_IOC_REASON "0x20"
|
||||
#define CONFIG_MRB_VM1_LPC 1
|
||||
#define CONFIG_MRB_VM1_LPC_OPT "1:0,lpc"
|
||||
#define CONFIG_MRB_VM1_LPC_COM1 1
|
||||
#define CONFIG_MRB_VM1_LPC_COM1_OPT "com1,stdio"
|
||||
#define CONFIG_MRB_VM1_LPC_COM2 1
|
||||
#define CONFIG_MRB_VM1_LPC_COM2_OPT "com2,/run/acrn/ioc_"
|
||||
#endif
|
@ -1,22 +0,0 @@
|
||||
$(eval $(call check_dep_exec,menuconfig,MENUCONFIG_DEPS))
|
||||
|
||||
export KCONFIG_CONFIG := $(DM_OBJDIR)/vmcfg/.config
|
||||
|
||||
.PHONY: oldconfig
|
||||
oldconfig:
|
||||
mkdir -p $(dir $(KCONFIG_CONFIG))
|
||||
@python3 $(BASEDIR)/../scripts/kconfig/silentoldconfig.py Kconfig $(KCONFIG_CONFIG)
|
||||
|
||||
%_defconfig:
|
||||
mkdir -p $(dir $(KCONFIG_CONFIG))
|
||||
@python3 $(BASEDIR)/../scripts/kconfig/defconfig.py Kconfig $(BASEDIR)/vmcfg/config/$@ $(KCONFIG_CONFIG)
|
||||
|
||||
$(KCONFIG_CONFIG): oldconfig
|
||||
|
||||
$(DM_OBJDIR)/include/vmcfg_config.h: $(KCONFIG_CONFIG)
|
||||
echo @mkdir -p $(dir $@)
|
||||
@mkdir -p $(dir $@)
|
||||
@python3 $(BASEDIR)/../scripts/kconfig/generate_header.py Kconfig $< $@
|
||||
|
||||
menuconfig: $(MENUCONFIG_DEPS) $(HV_OBJDIR)/$(HV_CONFIG) $(KCONFIG_CONFIG)
|
||||
@python3 $(shell which menuconfig) Kconfig $(KCONFIG_CONFIG)
|
@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright (C)2018 Intel Corporation
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <vmcfg_config.h>
|
||||
#include <vmcfg.h>
|
||||
#include <stdio.h>
|
||||
#include <getopt.h>
|
||||
|
||||
void vmcfg_list(void)
|
||||
{
|
||||
int i;
|
||||
char *name;
|
||||
|
||||
for (i = 0; i < num_args_buildin; i++) {
|
||||
name = args_buildin[i]->argv[args_buildin[i]->argc - 1];
|
||||
printf("%d: %s\n", i + 1, name);
|
||||
}
|
||||
}
|
||||
|
||||
void vmcfg_dump(int index, struct option *long_options, char *optstr)
|
||||
{
|
||||
char **argv;
|
||||
int argc;
|
||||
int c, option_idx = 0;
|
||||
int i = 1;
|
||||
|
||||
if ((index <= 0) || (index > num_args_buildin)) {
|
||||
fprintf(stderr, "%s(%d) index should be 1~%d\n", __FUNCTION__,
|
||||
index, num_args_buildin);
|
||||
return;
|
||||
}
|
||||
|
||||
if (args_buildin[index - 1]->setup)
|
||||
args_buildin[index - 1]->setup();
|
||||
|
||||
argv = args_buildin[index - 1]->argv;
|
||||
argc = args_buildin[index - 1]->argc;
|
||||
|
||||
printf("%s build-in args:\n", argv[argc - 1]);
|
||||
|
||||
optind = 0;
|
||||
|
||||
while ((c = getopt_long(argc, argv, optstr, long_options,
|
||||
&option_idx)) != -1) {
|
||||
if (optarg)
|
||||
printf("%s %s\n", argv[i], optarg);
|
||||
else
|
||||
printf("%s\n", argv[i]);
|
||||
i = optind;
|
||||
}
|
||||
}
|
||||
|
||||
static struct vmcfg_arg *vmcfg_buildin_args[] = {
|
||||
#ifdef CONFIG_MRB_VM1
|
||||
&mrb_vm1_args,
|
||||
#endif /*CONFIG_MRB_VM1*/
|
||||
};
|
||||
|
||||
struct vmcfg_arg **args_buildin = vmcfg_buildin_args;
|
||||
int num_args_buildin = sizeof(vmcfg_buildin_args) / sizeof(struct vmcfg_arg *);
|
Loading…
Reference in New Issue
Block a user