This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Help configuring PMU's

Hi,

I'm trying to enable PMU's on arm versatile juno r2 development board.

I've already read this manuals from arm:
ARM ® Cortex ® -A72 MPCore Processor
ARM® Cortex ® -A53 MPCore Processor
Juno r2 ARM® Development Platform SoC
ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile

Searching online I found this guides:
http://zhiyisun.github.io/2016/03/02/How-to-Use-Performance-Monitor-Unit-(PMU)-of-64-bit-ARMv8-A-in-Linux.html
http://valtrix.in/programming/programming-armv8-performance-counters
http://syndication2605.rssing.com/chan-30054360/latest.php#item4
https://github.com/thoughtpolice/enable_arm_pmu/blob/master/ko/enable_arm_pmu.c
http://ilinuxkernel.com/?p=1755

The code i'm trying to compile (from the github link) on my host machine is:

/*
 * Enable user-mode ARM performance counter access.
 */
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/smp.h>

/** -- Configuration stuff ------------------------------------------------- */

#define DRVR_NAME "enable_arm_pmu"

#if !defined(__arm__)
#error Module can only be compiled on ARM machines.
#endif

/** -- Initialization & boilerplate ---------------------------------------- */

#define PERF_DEF_OPTS (1 | 16)
#define PERF_OPT_RESET_CYCLES (2 | 4)
#define PERF_OPT_DIV64 (8)

static void
enable_cpu_counters(void* data)
{
        printk(KERN_INFO "[" DRVR_NAME "] enabling user-mode PMU access on CPU #%d",
                smp_processor_id());

        /* Enable user-mode access to counters. */
        asm volatile("mcr p15, 0, %0, c9, c14, 0" :: "r"(1));
        /* Program PMU and enable all counters */
        asm volatile("mcr p15, 0, %0, c9, c12, 0" :: "r"(PERF_DEF_OPTS));
        asm volatile("mcr p15, 0, %0, c9, c12, 1" :: "r"(0x8000000f));
}

static void
disable_cpu_counters(void* data)
{
        printk(KERN_INFO "[" DRVR_NAME "] disabling user-mode PMU access on CPU #%d",
                smp_processor_id());

        /* Program PMU and disable all counters */
        asm volatile("mcr p15, 0, %0, c9, c12, 0" :: "r"(0));
        asm volatile("mcr p15, 0, %0, c9, c12, 2" :: "r"(0x8000000f));
        /* Disable user-mode access to counters. */
        asm volatile("mcr p15, 0, %0, c9, c14, 0" :: "r"(0));
}

static int __init
init(void)
{
        on_each_cpu(enable_cpu_counters, NULL, 1);
        printk(KERN_INFO "[" DRVR_NAME "] initialized");
        return 0;
}

static void __exit
fini(void)
{
        on_each_cpu(disable_cpu_counters, NULL, 1);
        printk(KERN_INFO "[" DRVR_NAME "] unloaded");
}

MODULE_AUTHOR("Austin Seipp <aseipp@pobox.com>");
MODULE_LICENSE("Dual MIT/GPL");
MODULE_DESCRIPTION("Enables user-mode access to ARMv7 PMU counters");
MODULE_VERSION("0:0.1-dev");
module_init(init);
module_exit(fini);


I have a Makefile:
PWD := $(shell pwd)

obj-m += enable_arm_pmu.o

all:
	make ARCH=arm CROSS_COMPILE=$(CROSS) -C $(KERNEL) SUBDIRS=$(PWD) modules
clean:
	make -C $(KERNEL) SUBDIRS=$(PWD) clean


I'm compiling with:
make KERNEL=/lib/modules/4.13.0-45-generic/build CROSS=aarch64-linux-gnu-


I'm getting this output logs:
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -C /lib/modules/4.13.0-45-generic/build SUBDIRS=/home/lfpm1993/Desktop modules
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-45-generic'
  CC [M]  /home/lfpm1993/Desktop/teste.o
aarch64-linux-gnu-gcc: error: unrecognized argument in option ‘-mabi=apcs-gnu’
aarch64-linux-gnu-gcc: note: valid arguments to ‘-mabi=’ are: ilp32 lp64
aarch64-linux-gnu-gcc: error: unrecognized command line option ‘-mapcs’
aarch64-linux-gnu-gcc: error: unrecognized command line option ‘-mno-sched-prolog’
aarch64-linux-gnu-gcc: error: unrecognized command line option ‘-msoft-float’
scripts/Makefile.build:323: recipe for target '/home/lfpm1993/Desktop/teste.o' failed
make[2]: *** [/home/lfpm1993/Desktop/teste.o] Error 1
Makefile:1550: recipe for target '_module_/home/lfpm1993/Desktop' failed
make[1]: *** [_module_/home/lfpm1993/Desktop] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-45-generic'
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 2


Any ideas what I've done wrong?

Thanks,
Luís

Parents
  • Thanks for the reply @Jason Andrews,

    I'm still confused. I will try to explain what I did hopefuly I'm not too far away from the solution. From what I understood, I can either 1) Load a module directly to the kernel or 2) Recompile the kernel.

    Approach 1)
    1) Downloaded the kernel sources (ack-4.9-armlt-18.04) from:
    https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    git clone --single-branch -b ack-4.9-armlt-18.04 https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    (This should take care of this problem, "The immediate problem is you have some gcc options which are not valid for your compiler. Your gcc may be too new or too old for the environment.")

    2) Used code made for armv8/aarch64 (Just to test), because you said " It also looks like the github work was done with aarch32 CPUs so you need to make some adjustments to the compiler flags. It may take some digging since the flags are probably picked up from the source tree you are compiling against, not in the Makefile of his module."


    /*                                                                             
     * Enable user-mode ARM performance counter access.                            
     */                                                                           
    #include <linux/kernel.h>                                                      
    #include <linux/module.h>                                                      
    #include <linux/smp.h>                                                         
                                                                                    
     
    #define PERF_DEF_OPTS       (1 | 16)                                                                       
    #define PERF_OPT_RESET_CYCLES   (2 | 4)                                                                  
    #define PERF_OPT_DIV64      (8)                                                                          
    #define ARMV8_PMCR_MASK         0x3f                                                                    
    #define ARMV8_PMCR_E            (1 << 0) /* Enable all counters */                                      
    #define ARMV8_PMCR_P            (1 << 1) /* Reset all counters */                                       
    #define ARMV8_PMCR_C            (1 << 2) /* Cycle counter reset */                                      
    #define ARMV8_PMCR_D            (1 << 3) /* CCNT counts every 64th cpu cycle */                         
    #define ARMV8_PMCR_X            (1 << 4) /* Export to ETM */                                            
    #define ARMV8_PMCR_DP           (1 << 5) /* Disable CCNT if non-invasive debug*/                        
    #define ARMV8_PMCR_LC           (1 << 6) /* Cycle Counter 64bit overflow*/
    #define ARMV8_PMCR_N_SHIFT      11       /* Number of counters supported */                             
    #define ARMV8_PMCR_N_MASK       0x1f                                                                    
                                                                                                             
    #define ARMV8_PMUSERENR_EN_EL0  (1 << 0) /* EL0 access enable */                                        
    #define ARMV8_PMUSERENR_CR      (1 << 2) /* Cycle counter read enable */                                
    #define ARMV8_PMUSERENR_ER      (1 << 3) /* Event counter read enable */                                
                                                                                                             
    static inline u32 armv8pmu_pmcr_read(void)                                                              
    {                                                                                                       
            u64 val=0;                                                                                      
            asm volatile("mrs %0, pmcr_el0" : "=r" (val));                                                  
            return (u32)val;                                                                                
    }                                                                                                       
    static inline void armv8pmu_pmcr_write(u32 val)                                                         
    {                                                                                                       
            val &= ARMV8_PMCR_MASK;                                                                         
            isb();                                                                                          
            asm volatile("msr pmcr_el0, %0" : : "r" ((u64)val));                                            
    }       
     
    static inline  long long armv8_read_CNTPCT_EL0(void)
    {
       long long val;
       asm volatile("mrs %0, CNTVCT_EL0" : "=r" (val));
     
       return val;
    }
     
                                                                                                             
    static void                                                                                            
    enable_cpu_counters(void* data)                                                                         
    {                                                                                                       
        /*u32 val=0;*/                                                         
        asm volatile("msr pmuserenr_el0, %0" : : "r"(0xf));
        armv8pmu_pmcr_write(ARMV8_PMCR_LC|ARMV8_PMCR_E);                                                      
            asm volatile("msr PMCNTENSET_EL0, %0" :: "r" ((u32)(1<<31)));
        armv8pmu_pmcr_write(armv8pmu_pmcr_read() | ARMV8_PMCR_E|ARMV8_PMCR_LC);   
            printk("\nCPU:%d ", smp_processor_id());
    }                                                                                                       
                                                                                                             
    static void                                                                                            
    disable_cpu_counters(void* data)                                                                        
    {                                                                                                       
        /*u32 val=0;*/                                                                                             
        printk(KERN_INFO "\ndisabling user-mode PMU access on CPU #%d",                       
        smp_processor_id());                                                                                   
                                                                                                             
        /* Program PMU and disable all counters */                                                            
            armv8pmu_pmcr_write(armv8pmu_pmcr_read() |~ARMV8_PMCR_E);                                              
        asm volatile("msr pmuserenr_el0, %0" : : "r"((u64)0));                                                 
                                                                                                             
    }                                                                                                       
                                                                                                             
    static int __init                                                                                       
    init(void)                                                                                              
    {                                                                       
        u64 cval;
            u32 val;
     
            isb();
            asm volatile("mrs %0, PMCCNTR_EL0" : "=r"(cval));
            printk("\nCPU Cycle count:%llu \n", cval);
            asm volatile("mrs %0, PMCNTENSET_EL0" : "=r"(val));
            printk("PMCNTENSET_EL0:%u ", val);
            asm volatile("mrs %0, PMCR_EL0" : "=r"(val));
            printk("\nPMCR_EL0 Register:%u ", val);
     
            on_each_cpu(enable_cpu_counters, NULL, 1);                                                             
            printk(KERN_INFO "Enable Access PMU Initialized");                                                       
        return 0;                                                                                              
    }                                                                                                       
                                                                                                             
    static void __exit                                                                                      
    fini(void)                                                                                              
    {                                                                                                       
        on_each_cpu(disable_cpu_counters, NULL, 1);                                                            
        printk(KERN_INFO "Access PMU Disabled");                                                          
    }                                                                                                       
                                                                                                             
    module_init(init);                                                                                      
    module_exit(fini);
      

    3) Changed the Makefile and the compiling command:


    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    
    PWD := $(shell pwd)
    
    obj-m += enable_arm_pmu.o
    
    all:
    	make ARCH=$(ARCH) CPU=$(CPU) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNEL) SUBDIRS=$(PWD) modules
    clean:
    	make -C $(KERNEL) SUBDIRS=$(PWD) clean


    make KERNEL=/home/lfpm1993/Desktop/kernel-release/

    Logs from the terminal:


    make ARCH=arm64 CPU= CROSS_COMPILE=aarch64-linux-gnu- -C /home/lfpm1993/Desktop/kernel-release/ SUBDIRS=/home/lfpm1993/Desktop/build modules
    make[1]: Entering directory '/home/lfpm1993/Desktop/kernel-release'
    
      WARNING: Symbol version dump ./Module.symvers
               is missing; modules will have no dependencies and modversions.
    
      Building modules, stage 2.
      MODPOST 1 modules
    make[1]: Leaving directory '/home/lfpm1993/Desktop/kernel-release'

    4) Connected to the board throug adb:
    sudo adb connect 146.193.56.204

    5) Pushed the files and started a serial communication with Putty:
    adb push /home/lfpm1993/Desktop/build/enable_arm_pmu.ko /data/data/modules/

    6) Changed directories and tried to add the module:
    cd /data/data/modules/
    insmod enable_arm_pmu.ko

    Logs from the board:

    juno:/data/data/modules # insmod enable_arm_pmu.ko
    [ 145.220439] type=1400 audit(1530629564.649:76): avc: denied { write } for pid=306 comm="Binder:306_4" name="timerslack_ns" dev="proc" ino=13840 scontext=u:r:system_server:s0 tcontext=u:r:platform_app:s0:c512,c768 tclass=file permissive=1
    insmod: [ 145.241340] type=1400 audit(1530629670.053:77): avc: denied { module_load } for pid=1077 comm="insmod" path="/data/data/modules/enable_arm_pmu.ko" dev="sda4" ino=7596 scontext=u:r:su:s0 tcontext=u:object_r:system_data_file:s0 tclass=system permissive=1
    failed to load enable_arm_pmu.ko: Exec format error




    Approach 2)
    1) Downloaded the kernel sources (ack-4.9-armlt-18.04) from:
    https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    git clone --single-branch -b ack-4.9-armlt-18.04 https://git.linaro.org/landing-teams/working/arm/kernel-release.git

    2
    Compiled for Android recomended settings (infocenter.arm.com/.../index.jsp
    ARCH=arm64 /home/lfpm1993/Desktop/kernel-release/scripts/kconfig/merge_config.sh /home/lfpm1993/Desktop/kernel-release/arch/arm64/configs/defconfig /home/lfpm1993/Desktop/kernel-release/kernel/configs/android-base.config /home/lfpm1993/Desktop/kernel-release/kernel/configs/android-recommended.config

    3) Checked from the link you gave me if all the options were enabled (https://developer.arm.com/products/system-design/cycle-models/knowledge-articles/using-the-arm-performance-monitor-unit-linux-driver, I also disable 'module signature verification'):
    make menuconfig
    (kernel performance events and counters; Profilling support)

    4) Followed by building the Image file:
    make Image.gz

    5) Tried to recompile the kernel doing this:

    (https://community.arm.com/dev-platforms/w/docs/265/boot-an-arm64-kernel-on-the-juno-r1-platform):
    Basically says "Copy the 'Image' generated in step 2 to \SOFTWARE", and that's what I did. After rebooting, it enters a loop or blocks the execution.

    (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4134.html), but I guess it is a little outdated, couldn't follow to the end.


    Question: Assuming I have all the PMU's and profilling tools enable in the kernelspace, do I still need to turn them on, in the userspace? If so, what is the best approach? 

    Sorry for all the trouble and thanks again,
    Luís


    EDIT #1: It is possible to check kernel configuration parameters:
    adb pull /proc/config.gz /home/lfpm1993/Desktop


    #
    # Automatically generated file; DO NOT EDIT.
    # Linux/arm64 4.9.51 Kernel Configuration
    #
    CONFIG_ARM64=y
    CONFIG_64BIT=y
    CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
    CONFIG_MMU=y
    CONFIG_DEBUG_RODATA=y
    CONFIG_ARM64_PAGE_SHIFT=12
    CONFIG_ARM64_CONT_SHIFT=4
    CONFIG_ARCH_MMAP_RND_BITS_MIN=18
    CONFIG_ARCH_MMAP_RND_BITS_MAX=24
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
    CONFIG_STACKTRACE_SUPPORT=y
    CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
    CONFIG_LOCKDEP_SUPPORT=y
    CONFIG_TRACE_IRQFLAGS_SUPPORT=y
    CONFIG_RWSEM_XCHGADD_ALGORITHM=y
    CONFIG_GENERIC_BUG=y
    CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
    CONFIG_GENERIC_HWEIGHT=y
    CONFIG_GENERIC_CSUM=y
    CONFIG_GENERIC_CALIBRATE_DELAY=y
    CONFIG_ZONE_DMA=y
    CONFIG_HAVE_GENERIC_RCU_GUP=y
    CONFIG_ARCH_DMA_ADDR_T_64BIT=y
    CONFIG_NEED_DMA_MAP_STATE=y
    CONFIG_NEED_SG_DMA_LENGTH=y
    CONFIG_SMP=y
    CONFIG_SWIOTLB=y
    CONFIG_IOMMU_HELPER=y
    CONFIG_KERNEL_MODE_NEON=y
    CONFIG_FIX_EARLYCON_MEM=y
    CONFIG_PGTABLE_LEVELS=3
    CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
    CONFIG_IRQ_WORK=y
    CONFIG_BUILDTIME_EXTABLE_SORT=y
    
    #
    # General setup
    #
    CONFIG_INIT_ENV_ARG_LIMIT=32
    CONFIG_CROSS_COMPILE=""
    # CONFIG_COMPILE_TEST is not set
    CONFIG_LOCALVERSION=""
    CONFIG_LOCALVERSION_AUTO=y
    CONFIG_DEFAULT_HOSTNAME="(none)"
    CONFIG_SWAP=y
    # CONFIG_SYSVIPC is not set
    CONFIG_POSIX_MQUEUE=y
    CONFIG_POSIX_MQUEUE_SYSCTL=y
    CONFIG_CROSS_MEMORY_ATTACH=y
    CONFIG_FHANDLE=y
    # CONFIG_USELIB is not set
    CONFIG_AUDIT=y
    CONFIG_HAVE_ARCH_AUDITSYSCALL=y
    CONFIG_AUDITSYSCALL=y
    CONFIG_AUDIT_WATCH=y
    CONFIG_AUDIT_TREE=y
    
    #
    # IRQ subsystem
    #
    CONFIG_GENERIC_IRQ_PROBE=y
    CONFIG_GENERIC_IRQ_SHOW=y
    CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
    CONFIG_GENERIC_IRQ_MIGRATION=y
    CONFIG_HARDIRQS_SW_RESEND=y
    CONFIG_IRQ_DOMAIN=y
    CONFIG_IRQ_DOMAIN_HIERARCHY=y
    CONFIG_GENERIC_MSI_IRQ=y
    CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
    CONFIG_HANDLE_DOMAIN_IRQ=y
    # CONFIG_IRQ_DOMAIN_DEBUG is not set
    CONFIG_IRQ_FORCED_THREADING=y
    CONFIG_SPARSE_IRQ=y
    CONFIG_ARCH_CLOCKSOURCE_DATA=y
    CONFIG_GENERIC_TIME_VSYSCALL=y
    CONFIG_GENERIC_CLOCKEVENTS=y
    CONFIG_ARCH_HAS_TICK_BROADCAST=y
    CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
    
    #
    # Timers subsystem
    #
    CONFIG_TICK_ONESHOT=y
    CONFIG_NO_HZ_COMMON=y
    # CONFIG_HZ_PERIODIC is not set
    CONFIG_NO_HZ_IDLE=y
    # CONFIG_NO_HZ_FULL is not set
    CONFIG_NO_HZ=y
    CONFIG_HIGH_RES_TIMERS=y
    
    #
    # CPU/Task time and stats accounting
    #
    CONFIG_TICK_CPU_ACCOUNTING=y
    # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
    # CONFIG_IRQ_TIME_ACCOUNTING is not set
    # CONFIG_SCHED_WALT is not set
    CONFIG_BSD_PROCESS_ACCT=y
    # CONFIG_BSD_PROCESS_ACCT_V3 is not set
    CONFIG_TASKSTATS=y
    CONFIG_TASK_DELAY_ACCT=y
    CONFIG_TASK_XACCT=y
    CONFIG_TASK_IO_ACCOUNTING=y
    
    #
    # RCU Subsystem
    #
    CONFIG_PREEMPT_RCU=y
    # CONFIG_RCU_EXPERT is not set
    CONFIG_SRCU=y
    # CONFIG_TASKS_RCU is not set
    CONFIG_RCU_STALL_COMMON=y
    # CONFIG_TREE_RCU_TRACE is not set
    # CONFIG_RCU_EXPEDITE_BOOT is not set
    CONFIG_BUILD_BIN2C=y
    CONFIG_IKCONFIG=y
    CONFIG_IKCONFIG_PROC=y
    CONFIG_LOG_BUF_SHIFT=18
    CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
    CONFIG_GENERIC_SCHED_CLOCK=y
    CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
    CONFIG_CGROUPS=y
    CONFIG_CGROUP_DEBUG=y
    CONFIG_CGROUP_FREEZER=y
    # CONFIG_CGROUP_PIDS is not set
    # CONFIG_CGROUP_DEVICE is not set
    CONFIG_CPUSETS=y
    CONFIG_PROC_PID_CPUSET=y
    CONFIG_CGROUP_CPUACCT=y
    CONFIG_CGROUP_SCHEDTUNE=y
    # CONFIG_MEMCG is not set
    # CONFIG_BLK_CGROUP is not set
    CONFIG_CGROUP_SCHED=y
    CONFIG_FAIR_GROUP_SCHED=y
    # CONFIG_CFS_BANDWIDTH is not set
    CONFIG_RT_GROUP_SCHED=y
    # CONFIG_CGROUP_HUGETLB is not set
    # CONFIG_CGROUP_PERF is not set
    # CONFIG_SOCK_CGROUP_DATA is not set
    # CONFIG_CHECKPOINT_RESTORE is not set
    # CONFIG_NAMESPACES is not set
    # CONFIG_SCHED_AUTOGROUP is not set
    CONFIG_SCHED_TUNE=y
    # CONFIG_DEFAULT_USE_ENERGY_AWARE is not set
    # CONFIG_SYSFS_DEPRECATED is not set
    # CONFIG_RELAY is not set
    CONFIG_BLK_DEV_INITRD=y
    CONFIG_INITRAMFS_SOURCE=""
    CONFIG_RD_GZIP=y
    CONFIG_RD_BZIP2=y
    CONFIG_RD_LZMA=y
    CONFIG_RD_XZ=y
    CONFIG_RD_LZO=y
    CONFIG_RD_LZ4=y
    CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
    # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
    CONFIG_SYSCTL=y
    CONFIG_ANON_INODES=y
    CONFIG_HAVE_UID16=y
    CONFIG_SYSCTL_EXCEPTION_TRACE=y
    CONFIG_BPF=y
    CONFIG_EXPERT=y
    CONFIG_UID16=y
    CONFIG_MULTIUSER=y
    # CONFIG_SGETMASK_SYSCALL is not set
    CONFIG_SYSFS_SYSCALL=y
    # CONFIG_SYSCTL_SYSCALL is not set
    CONFIG_KALLSYMS=y
    CONFIG_KALLSYMS_ALL=y
    # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
    CONFIG_KALLSYMS_BASE_RELATIVE=y
    CONFIG_PRINTK=y
    CONFIG_BUG=y
    CONFIG_ELF_CORE=y
    CONFIG_BASE_FULL=y
    CONFIG_FUTEX=y
    CONFIG_EPOLL=y
    CONFIG_SIGNALFD=y
    CONFIG_TIMERFD=y
    CONFIG_EVENTFD=y
    # CONFIG_BPF_SYSCALL is not set
    CONFIG_SHMEM=y
    # CONFIG_AIO is not set
    CONFIG_ADVISE_SYSCALLS=y
    # CONFIG_USERFAULTFD is not set
    CONFIG_PCI_QUIRKS=y
    CONFIG_MEMBARRIER=y
    CONFIG_EMBEDDED=y
    CONFIG_HAVE_PERF_EVENTS=y
    
    #
    # Kernel Performance Events And Counters
    #
    CONFIG_PERF_EVENTS=y
    # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
    CONFIG_VM_EVENT_COUNTERS=y
    CONFIG_COMPAT_BRK=y
    CONFIG_SLAB=y
    # CONFIG_SLUB is not set
    # CONFIG_SLOB is not set
    # CONFIG_SLAB_FREELIST_RANDOM is not set
    # CONFIG_SYSTEM_DATA_VERIFICATION is not set
    CONFIG_PROFILING=y
    CONFIG_TRACEPOINTS=y
    # CONFIG_KPROBES is not set
    # CONFIG_JUMP_LABEL is not set
    # CONFIG_UPROBES is not set
    # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
    CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
    CONFIG_HAVE_KPROBES=y
    CONFIG_HAVE_KRETPROBES=y
    CONFIG_HAVE_ARCH_TRACEHOOK=y
    CONFIG_HAVE_DMA_CONTIGUOUS=y
    CONFIG_GENERIC_SMP_IDLE_THREAD=y
    CONFIG_GENERIC_IDLE_POLL_SETUP=y
    CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
    CONFIG_HAVE_CLK=y
    CONFIG_HAVE_DMA_API_DEBUG=y
    CONFIG_HAVE_HW_BREAKPOINT=y
    CONFIG_HAVE_PERF_REGS=y
    CONFIG_HAVE_PERF_USER_STACK_DUMP=y
    CONFIG_HAVE_ARCH_JUMP_LABEL=y
    CONFIG_HAVE_RCU_TABLE_FREE=y
    CONFIG_HAVE_CMPXCHG_LOCAL=y
    CONFIG_HAVE_CMPXCHG_DOUBLE=y
    CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
    CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
    CONFIG_SECCOMP_FILTER=y
    CONFIG_HAVE_GCC_PLUGINS=y
    # CONFIG_GCC_PLUGINS is not set
    CONFIG_HAVE_CC_STACKPROTECTOR=y
    CONFIG_CC_STACKPROTECTOR=y
    # CONFIG_CC_STACKPROTECTOR_NONE is not set
    # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
    CONFIG_CC_STACKPROTECTOR_STRONG=y
    CONFIG_HAVE_CONTEXT_TRACKING=y
    CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
    CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
    CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
    CONFIG_HAVE_ARCH_HUGE_VMAP=y
    CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
    CONFIG_MODULES_USE_ELF_RELA=y
    CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
    CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
    CONFIG_ARCH_MMAP_RND_BITS=18
    CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
    # CONFIG_HAVE_ARCH_HASH is not set
    # CONFIG_ISA_BUS_API is not set
    CONFIG_CLONE_BACKWARDS=y
    CONFIG_OLD_SIGSUSPEND3=y
    CONFIG_COMPAT_OLD_SIGACTION=y
    # CONFIG_CPU_NO_EFFICIENT_FFS is not set
    # CONFIG_HAVE_ARCH_VMAP_STACK is not set
    
    #
    # GCOV-based kernel profiling
    #
    # CONFIG_GCOV_KERNEL is not set
    CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
    CONFIG_HAVE_GENERIC_DMA_COHERENT=y
    CONFIG_SLABINFO=y
    CONFIG_RT_MUTEXES=y
    CONFIG_BASE_SMALL=0
    CONFIG_MODULES=y
    # CONFIG_MODULE_FORCE_LOAD is not set
    CONFIG_MODULE_UNLOAD=y
    # CONFIG_MODULE_FORCE_UNLOAD is not set
    CONFIG_MODVERSIONS=y
    # CONFIG_MODULE_SRCVERSION_ALL is not set
    # CONFIG_MODULE_SIG is not set
    # CONFIG_MODULE_COMPRESS is not set
    # CONFIG_TRIM_UNUSED_KSYMS is not set
    CONFIG_MODULES_TREE_LOOKUP=y
    CONFIG_BLOCK=y
    CONFIG_BLK_DEV_BSG=y
    # CONFIG_BLK_DEV_BSGLIB is not set
    # CONFIG_BLK_DEV_INTEGRITY is not set
    # CONFIG_BLK_CMDLINE_PARSER is not set
    
    #
    # Partition Types
    #
    # CONFIG_PARTITION_ADVANCED is not set
    CONFIG_MSDOS_PARTITION=y
    CONFIG_EFI_PARTITION=y
    CONFIG_BLOCK_COMPAT=y
    CONFIG_BLK_MQ_PCI=y
    
    #
    # IO Schedulers
    #
    CONFIG_IOSCHED_NOOP=y
    CONFIG_IOSCHED_DEADLINE=y
    CONFIG_IOSCHED_CFQ=y
    # CONFIG_DEFAULT_DEADLINE is not set
    CONFIG_DEFAULT_CFQ=y
    # CONFIG_DEFAULT_NOOP is not set
    CONFIG_DEFAULT_IOSCHED="cfq"
    CONFIG_UNINLINE_SPIN_UNLOCK=y
    CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
    CONFIG_MUTEX_SPIN_ON_OWNER=y
    CONFIG_RWSEM_SPIN_ON_OWNER=y
    CONFIG_LOCK_SPIN_ON_OWNER=y
    CONFIG_FREEZER=y
    
    #
    # Platform selection
    #
    # CONFIG_ARCH_SUNXI is not set
    # CONFIG_ARCH_ALPINE is not set
    # CONFIG_ARCH_BCM2835 is not set
    # CONFIG_ARCH_BCM_IPROC is not set
    # CONFIG_ARCH_BERLIN is not set
    # CONFIG_ARCH_BRCMSTB is not set
    # CONFIG_ARCH_EXYNOS is not set
    # CONFIG_ARCH_LAYERSCAPE is not set
    # CONFIG_ARCH_LG1K is not set
    # CONFIG_ARCH_HISI is not set
    # CONFIG_ARCH_MEDIATEK is not set
    # CONFIG_ARCH_MESON is not set
    # CONFIG_ARCH_MVEBU is not set
    # CONFIG_ARCH_QCOM is not set
    # CONFIG_ARCH_ROCKCHIP is not set
    # CONFIG_ARCH_SEATTLE is not set
    # CONFIG_ARCH_RENESAS is not set
    # CONFIG_ARCH_STRATIX10 is not set
    # CONFIG_ARCH_TEGRA is not set
    # CONFIG_ARCH_SPRD is not set
    # CONFIG_ARCH_THUNDER is not set
    # CONFIG_ARCH_UNIPHIER is not set
    CONFIG_ARCH_VEXPRESS=y
    # CONFIG_ARCH_VULCAN is not set
    # CONFIG_ARCH_XGENE is not set
    # CONFIG_ARCH_ZX is not set
    # CONFIG_ARCH_ZYNQMP is not set
    
    #
    # Bus support
    #
    CONFIG_PCI=y
    CONFIG_PCI_DOMAINS=y
    CONFIG_PCI_DOMAINS_GENERIC=y
    CONFIG_PCI_SYSCALL=y
    CONFIG_PCIEPORTBUS=y
    CONFIG_HOTPLUG_PCI_PCIE=y
    CONFIG_PCIEAER=y
    CONFIG_PCIE_ECRC=y
    # CONFIG_PCIEAER_INJECT is not set
    CONFIG_PCIEASPM=y
    # CONFIG_PCIEASPM_DEBUG is not set
    CONFIG_PCIEASPM_DEFAULT=y
    # CONFIG_PCIEASPM_POWERSAVE is not set
    # CONFIG_PCIEASPM_PERFORMANCE is not set
    CONFIG_PCIE_PME=y
    # CONFIG_PCIE_DPC is not set
    # CONFIG_PCIE_PTM is not set
    CONFIG_PCI_BUS_ADDR_T_64BIT=y
    CONFIG_PCI_MSI=y
    CONFIG_PCI_MSI_IRQ_DOMAIN=y
    # CONFIG_PCI_DEBUG is not set
    CONFIG_PCI_REALLOC_ENABLE_AUTO=y
    # CONFIG_PCI_STUB is not set
    CONFIG_PCI_ATS=y
    CONFIG_PCI_ECAM=y
    # CONFIG_PCI_IOV is not set
    CONFIG_PCI_PRI=y
    CONFIG_PCI_PASID=y
    CONFIG_PCI_LABEL=y
    CONFIG_HOTPLUG_PCI=y
    # CONFIG_HOTPLUG_PCI_CPCI is not set
    # CONFIG_HOTPLUG_PCI_SHPC is not set
    
    #
    # PCI host controller drivers
    #
    # CONFIG_PCIE_DW_PLAT is not set
    CONFIG_PCI_HOST_COMMON=y
    CONFIG_PCI_HOST_GENERIC=y
    # CONFIG_PCI_HISI is not set
    # CONFIG_PCI_HOST_THUNDER_PEM is not set
    # CONFIG_PCI_HOST_THUNDER_ECAM is not set
    
    #
    # Kernel Features
    #
    
    #
    # ARM errata workarounds via the alternatives framework
    #
    CONFIG_ARM64_ERRATUM_826319=y
    CONFIG_ARM64_ERRATUM_827319=y
    CONFIG_ARM64_ERRATUM_824069=y
    CONFIG_ARM64_ERRATUM_819472=y
    CONFIG_ARM64_ERRATUM_832075=y
    CONFIG_ARM64_ERRATUM_845719=y
    CONFIG_ARM64_ERRATUM_843419=y
    CONFIG_CAVIUM_ERRATUM_22375=y
    CONFIG_CAVIUM_ERRATUM_23154=y
    CONFIG_CAVIUM_ERRATUM_27456=y
    CONFIG_QCOM_QDF2400_ERRATUM_0065=y
    CONFIG_ARM64_4K_PAGES=y
    # CONFIG_ARM64_16K_PAGES is not set
    # CONFIG_ARM64_64K_PAGES is not set
    CONFIG_ARM64_VA_BITS_39=y
    # CONFIG_ARM64_VA_BITS_48 is not set
    CONFIG_ARM64_VA_BITS=39
    # CONFIG_CPU_BIG_ENDIAN is not set
    CONFIG_SCHED_MC=y
    CONFIG_SCHED_SMT=y
    CONFIG_NR_CPUS=8
    CONFIG_HOTPLUG_CPU=y
    # CONFIG_NUMA is not set
    # CONFIG_PREEMPT_NONE is not set
    # CONFIG_PREEMPT_VOLUNTARY is not set
    CONFIG_PREEMPT=y
    CONFIG_PREEMPT_COUNT=y
    # CONFIG_HZ_100 is not set
    CONFIG_HZ_250=y
    # CONFIG_HZ_300 is not set
    # CONFIG_HZ_1000 is not set
    CONFIG_HZ=250
    CONFIG_SCHED_HRTICK=y
    CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
    CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
    CONFIG_ARCH_SPARSEMEM_ENABLE=y
    CONFIG_ARCH_SPARSEMEM_DEFAULT=y
    CONFIG_ARCH_SELECT_MEMORY_MODEL=y
    CONFIG_HAVE_ARCH_PFN_VALID=y
    CONFIG_HW_PERF_EVENTS=y
    CONFIG_SYS_SUPPORTS_HUGETLBFS=y
    CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
    CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
    CONFIG_SELECT_MEMORY_MODEL=y
    CONFIG_SPARSEMEM_MANUAL=y
    CONFIG_SPARSEMEM=y
    CONFIG_HAVE_MEMORY_PRESENT=y
    CONFIG_SPARSEMEM_EXTREME=y
    CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
    CONFIG_SPARSEMEM_VMEMMAP=y
    CONFIG_HAVE_MEMBLOCK=y
    CONFIG_NO_BOOTMEM=y
    CONFIG_MEMORY_ISOLATION=y
    # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
    CONFIG_SPLIT_PTLOCK_CPUS=4
    CONFIG_COMPACTION=y
    CONFIG_MIGRATION=y
    CONFIG_PHYS_ADDR_T_64BIT=y
    CONFIG_BOUNCE=y
    CONFIG_KSM=y
    CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
    CONFIG_TRANSPARENT_HUGEPAGE=y
    # CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
    CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
    CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
    # CONFIG_CLEANCACHE is not set
    # CONFIG_FRONTSWAP is not set
    CONFIG_CMA=y
    # CONFIG_CMA_DEBUG is not set
    # CONFIG_CMA_DEBUGFS is not set
    CONFIG_CMA_AREAS=7
    # CONFIG_ZPOOL is not set
    # CONFIG_ZBUD is not set
    # CONFIG_ZSMALLOC is not set
    CONFIG_GENERIC_EARLY_IOREMAP=y
    # CONFIG_IDLE_PAGE_TRACKING is not set
    CONFIG_SECCOMP=y
    # CONFIG_PARAVIRT is not set
    # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
    # CONFIG_KEXEC is not set
    # CONFIG_XEN is not set
    CONFIG_FORCE_MAX_ZONEORDER=11
    CONFIG_ARMV8_DEPRECATED=y
    CONFIG_SWP_EMULATION=y
    CONFIG_CP15_BARRIER_EMULATION=y
    CONFIG_SETEND_EMULATION=y
    CONFIG_ARM64_SW_TTBR0_PAN=y
    
    #
    # ARMv8.1 architectural features
    #
    CONFIG_ARM64_HW_AFDBM=y
    CONFIG_ARM64_PAN=y
    # CONFIG_ARM64_LSE_ATOMICS is not set
    CONFIG_ARM64_VHE=y
    
    #
    # ARMv8.2 architectural features
    #
    CONFIG_ARM64_UAO=y
    CONFIG_ARM64_MODULE_CMODEL_LARGE=y
    CONFIG_ARM64_MODULE_PLTS=y
    CONFIG_RELOCATABLE=y
    CONFIG_RANDOMIZE_BASE=y
    
    #
    # Boot options
    #
    CONFIG_CMDLINE="console=ttyAMA0"
    CONFIG_CMDLINE_FROM_BOOTLOADER=y
    # CONFIG_CMDLINE_EXTEND is not set
    # CONFIG_CMDLINE_FORCE is not set
    CONFIG_EFI_STUB=y
    CONFIG_EFI=y
    CONFIG_DMI=y
    # CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE is not set
    
    #
    # Userspace binary formats
    #
    CONFIG_BINFMT_ELF=y
    CONFIG_COMPAT_BINFMT_ELF=y
    CONFIG_ELFCORE=y
    # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
    CONFIG_BINFMT_SCRIPT=y
    # CONFIG_HAVE_AOUT is not set
    CONFIG_BINFMT_MISC=y
    CONFIG_COREDUMP=y
    CONFIG_COMPAT=y
    
    #
    # Power management options
    #
    CONFIG_SUSPEND=y
    CONFIG_SUSPEND_FREEZER=y
    # CONFIG_SUSPEND_SKIP_SYNC is not set
    # CONFIG_HIBERNATION is not set
    CONFIG_PM_SLEEP=y
    CONFIG_PM_SLEEP_SMP=y
    CONFIG_PM_AUTOSLEEP=y
    CONFIG_PM_WAKELOCKS=y
    CONFIG_PM_WAKELOCKS_LIMIT=0
    # CONFIG_PM_WAKELOCKS_GC is not set
    CONFIG_PM=y
    CONFIG_PM_DEBUG=y
    # CONFIG_PM_ADVANCED_DEBUG is not set
    # CONFIG_PM_TEST_SUSPEND is not set
    CONFIG_PM_SLEEP_DEBUG=y
    # CONFIG_DPM_WATCHDOG is not set
    CONFIG_PM_OPP=y
    CONFIG_PM_CLK=y
    CONFIG_PM_GENERIC_DOMAINS=y
    # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
    CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
    CONFIG_PM_GENERIC_DOMAINS_OF=y
    CONFIG_CPU_PM=y
    CONFIG_ARCH_HIBERNATION_POSSIBLE=y
    CONFIG_ARCH_SUSPEND_POSSIBLE=y
    
    #
    # CPU Power Management
    #
    
    #
    # CPU Idle
    #
    CONFIG_CPU_IDLE=y
    # CONFIG_CPU_IDLE_GOV_LADDER is not set
    CONFIG_CPU_IDLE_GOV_MENU=y
    CONFIG_DT_IDLE_STATES=y
    
    #
    # ARM CPU Idle Drivers
    #
    CONFIG_ARM_CPUIDLE=y
    # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
    
    #
    # CPU Frequency scaling
    #
    CONFIG_CPU_FREQ=y
    CONFIG_CPU_FREQ_GOV_ATTR_SET=y
    CONFIG_CPU_FREQ_GOV_COMMON=y
    # CONFIG_CPU_FREQ_STAT is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHED is not set
    CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
    # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
    CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
    # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
    CONFIG_CPU_FREQ_GOV_USERSPACE=y
    CONFIG_CPU_FREQ_GOV_ONDEMAND=y
    # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
    CONFIG_CPU_FREQ_GOV_SCHED=y
    CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
    # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
    
    #
    # CPU frequency scaling drivers
    #
    # CONFIG_CPUFREQ_DT is not set
    CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
    CONFIG_ARM_DT_BL_CPUFREQ=y
    # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
    CONFIG_ARM_SCMI_CPUFREQ=y
    CONFIG_ARM_SCPI_CPUFREQ=y
    CONFIG_NET=y
    CONFIG_NET_INGRESS=y
    
    #
    # Networking options
    #
    CONFIG_PACKET=y
    # CONFIG_PACKET_DIAG is not set
    CONFIG_UNIX=y
    # CONFIG_UNIX_DIAG is not set
    CONFIG_XFRM=y
    CONFIG_XFRM_ALGO=y
    CONFIG_XFRM_USER=y
    # CONFIG_XFRM_SUB_POLICY is not set
    CONFIG_XFRM_MIGRATE=y
    # CONFIG_XFRM_STATISTICS is not set
    CONFIG_XFRM_IPCOMP=y
    CONFIG_NET_KEY=y
    CONFIG_NET_KEY_MIGRATE=y
    CONFIG_INET=y
    CONFIG_IP_MULTICAST=y
    CONFIG_IP_ADVANCED_ROUTER=y
    # CONFIG_IP_FIB_TRIE_STATS is not set
    CONFIG_IP_MULTIPLE_TABLES=y
    # CONFIG_IP_ROUTE_MULTIPATH is not set
    # CONFIG_IP_ROUTE_VERBOSE is not set
    CONFIG_IP_PNP=y
    CONFIG_IP_PNP_DHCP=y
    CONFIG_IP_PNP_BOOTP=y
    CONFIG_IP_PNP_RARP=y
    # CONFIG_NET_IPIP is not set
    # CONFIG_NET_IPGRE_DEMUX is not set
    CONFIG_NET_IP_TUNNEL=y
    # CONFIG_IP_MROUTE is not set
    # CONFIG_SYN_COOKIES is not set
    # CONFIG_NET_IPVTI is not set
    # CONFIG_NET_UDP_TUNNEL is not set
    # CONFIG_NET_FOU is not set
    # CONFIG_NET_FOU_IP_TUNNELS is not set
    # CONFIG_INET_AH is not set
    CONFIG_INET_ESP=y
    # CONFIG_INET_IPCOMP is not set
    # CONFIG_INET_XFRM_TUNNEL is not set
    CONFIG_INET_TUNNEL=y
    CONFIG_INET_XFRM_MODE_TRANSPORT=y
    CONFIG_INET_XFRM_MODE_TUNNEL=y
    CONFIG_INET_XFRM_MODE_BEET=y
    CONFIG_INET_DIAG=y
    CONFIG_INET_TCP_DIAG=y
    # CONFIG_INET_UDP_DIAG is not set
    CONFIG_INET_DIAG_DESTROY=y
    # CONFIG_TCP_CONG_ADVANCED is not set
    CONFIG_TCP_CONG_CUBIC=y
    CONFIG_DEFAULT_TCP_CONG="cubic"
    # CONFIG_TCP_MD5SIG is not set
    CONFIG_IPV6=y
    CONFIG_IPV6_ROUTER_PREF=y
    CONFIG_IPV6_ROUTE_INFO=y
    CONFIG_IPV6_OPTIMISTIC_DAD=y
    CONFIG_INET6_AH=y
    CONFIG_INET6_ESP=y
    CONFIG_INET6_IPCOMP=y
    CONFIG_IPV6_MIP6=y
    # CONFIG_IPV6_ILA is not set
    CONFIG_INET6_XFRM_TUNNEL=y
    CONFIG_INET6_TUNNEL=y
    CONFIG_INET6_XFRM_MODE_TRANSPORT=y
    CONFIG_INET6_XFRM_MODE_TUNNEL=y
    CONFIG_INET6_XFRM_MODE_BEET=y
    # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
    # CONFIG_IPV6_VTI is not set
    CONFIG_IPV6_SIT=y
    # CONFIG_IPV6_SIT_6RD is not set
    CONFIG_IPV6_NDISC_NODETYPE=y
    # CONFIG_IPV6_TUNNEL is not set
    # CONFIG_IPV6_FOU is not set
    # CONFIG_IPV6_FOU_TUNNEL is not set
    CONFIG_IPV6_MULTIPLE_TABLES=y
    # CONFIG_IPV6_SUBTREES is not set
    # CONFIG_IPV6_MROUTE is not set
    CONFIG_NETLABEL=y
    CONFIG_ANDROID_PARANOID_NETWORK=y
    CONFIG_NETWORK_SECMARK=y
    # CONFIG_NET_PTP_CLASSIFY is not set
    # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
    CONFIG_NETFILTER=y
    # CONFIG_NETFILTER_DEBUG is not set
    CONFIG_NETFILTER_ADVANCED=y
    
    #
    # Core Netfilter Configuration
    #
    CONFIG_NETFILTER_INGRESS=y
    CONFIG_NETFILTER_NETLINK=y
    # CONFIG_NETFILTER_NETLINK_ACCT is not set
    CONFIG_NETFILTER_NETLINK_QUEUE=y
    CONFIG_NETFILTER_NETLINK_LOG=y
    CONFIG_NF_CONNTRACK=y
    CONFIG_NF_CONNTRACK_MARK=y
    CONFIG_NF_CONNTRACK_SECMARK=y
    CONFIG_NF_CONNTRACK_PROCFS=y
    CONFIG_NF_CONNTRACK_EVENTS=y
    # CONFIG_NF_CONNTRACK_TIMEOUT is not set
    # CONFIG_NF_CONNTRACK_TIMESTAMP is not set
    CONFIG_NF_CT_PROTO_DCCP=y
    CONFIG_NF_CT_PROTO_GRE=y
    CONFIG_NF_CT_PROTO_SCTP=y
    CONFIG_NF_CT_PROTO_UDPLITE=y
    CONFIG_NF_CONNTRACK_AMANDA=y
    CONFIG_NF_CONNTRACK_FTP=y
    CONFIG_NF_CONNTRACK_H323=y
    CONFIG_NF_CONNTRACK_IRC=y
    CONFIG_NF_CONNTRACK_BROADCAST=y
    CONFIG_NF_CONNTRACK_NETBIOS_NS=y
    # CONFIG_NF_CONNTRACK_SNMP is not set
    CONFIG_NF_CONNTRACK_PPTP=y
    CONFIG_NF_CONNTRACK_SANE=y
    # CONFIG_NF_CONNTRACK_SIP is not set
    CONFIG_NF_CONNTRACK_TFTP=y
    CONFIG_NF_CT_NETLINK=y
    # CONFIG_NF_CT_NETLINK_TIMEOUT is not set
    # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
    CONFIG_NF_NAT=y
    CONFIG_NF_NAT_NEEDED=y
    CONFIG_NF_NAT_PROTO_DCCP=y
    CONFIG_NF_NAT_PROTO_UDPLITE=y
    CONFIG_NF_NAT_PROTO_SCTP=y
    CONFIG_NF_NAT_AMANDA=y
    CONFIG_NF_NAT_FTP=y
    CONFIG_NF_NAT_IRC=y
    # CONFIG_NF_NAT_SIP is not set
    CONFIG_NF_NAT_TFTP=y
    CONFIG_NF_NAT_REDIRECT=y
    # CONFIG_NF_TABLES is not set
    CONFIG_NETFILTER_XTABLES=y
    
    #
    # Xtables combined modules
    #
    CONFIG_NETFILTER_XT_MARK=y
    CONFIG_NETFILTER_XT_CONNMARK=y
    
    #
    # Xtables targets
    #
    # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
    # CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
    CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
    CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
    CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
    # CONFIG_NETFILTER_XT_TARGET_CT is not set
    # CONFIG_NETFILTER_XT_TARGET_DSCP is not set
    # CONFIG_NETFILTER_XT_TARGET_HL is not set
    # CONFIG_NETFILTER_XT_TARGET_HMARK is not set
    CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
    # CONFIG_NETFILTER_XT_TARGET_LED is not set
    # CONFIG_NETFILTER_XT_TARGET_LOG is not set
    CONFIG_NETFILTER_XT_TARGET_MARK=y
    CONFIG_NETFILTER_XT_NAT=y
    CONFIG_NETFILTER_XT_TARGET_NETMAP=y
    CONFIG_NETFILTER_XT_TARGET_NFLOG=y
    CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
    # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
    # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
    CONFIG_NETFILTER_XT_TARGET_REDIRECT=y
    # CONFIG_NETFILTER_XT_TARGET_TEE is not set
    CONFIG_NETFILTER_XT_TARGET_TPROXY=y
    CONFIG_NETFILTER_XT_TARGET_TRACE=y
    CONFIG_NETFILTER_XT_TARGET_SECMARK=y
    CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
    # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
    
    #
    # Xtables matches
    #
    # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
    # CONFIG_NETFILTER_XT_MATCH_BPF is not set
    # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
    # CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
    CONFIG_NETFILTER_XT_MATCH_COMMENT=y
    # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
    # CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
    CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
    CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
    CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
    # CONFIG_NETFILTER_XT_MATCH_CPU is not set
    # CONFIG_NETFILTER_XT_MATCH_DCCP is not set
    # CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
    # CONFIG_NETFILTER_XT_MATCH_DSCP is not set
    CONFIG_NETFILTER_XT_MATCH_ECN=y
    # CONFIG_NETFILTER_XT_MATCH_ESP is not set
    CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
    CONFIG_NETFILTER_XT_MATCH_HELPER=y
    CONFIG_NETFILTER_XT_MATCH_HL=y
    # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
    CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
    # CONFIG_NETFILTER_XT_MATCH_L2TP is not set
    CONFIG_NETFILTER_XT_MATCH_LENGTH=y
    CONFIG_NETFILTER_XT_MATCH_LIMIT=y
    CONFIG_NETFILTER_XT_MATCH_MAC=y
    CONFIG_NETFILTER_XT_MATCH_MARK=y
    # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
    # CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
    # CONFIG_NETFILTER_XT_MATCH_OSF is not set
    # CONFIG_NETFILTER_XT_MATCH_OWNER is not set
    CONFIG_NETFILTER_XT_MATCH_POLICY=y
    CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
    CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
    # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
    # CONFIG_NETFILTER_XT_MATCH_REALM is not set
    # CONFIG_NETFILTER_XT_MATCH_RECENT is not set
    # CONFIG_NETFILTER_XT_MATCH_SCTP is not set
    CONFIG_NETFILTER_XT_MATCH_SOCKET=y
    CONFIG_NETFILTER_XT_MATCH_STATE=y
    CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
    CONFIG_NETFILTER_XT_MATCH_STRING=y
    # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
    CONFIG_NETFILTER_XT_MATCH_TIME=y
    CONFIG_NETFILTER_XT_MATCH_U32=y
    # CONFIG_IP_SET is not set
    # CONFIG_IP_VS is not set
    
    #
    # IP: Netfilter Configuration
    #
    CONFIG_NF_DEFRAG_IPV4=y
    CONFIG_NF_CONNTRACK_IPV4=y
    # CONFIG_NF_DUP_IPV4 is not set
    # CONFIG_NF_LOG_ARP is not set
    # CONFIG_NF_LOG_IPV4 is not set
    CONFIG_NF_REJECT_IPV4=y
    CONFIG_NF_NAT_IPV4=y
    CONFIG_NF_NAT_MASQUERADE_IPV4=y
    CONFIG_NF_NAT_PROTO_GRE=y
    CONFIG_NF_NAT_PPTP=y
    CONFIG_NF_NAT_H323=y
    CONFIG_IP_NF_IPTABLES=y
    CONFIG_IP_NF_MATCH_AH=y
    CONFIG_IP_NF_MATCH_ECN=y
    # CONFIG_IP_NF_MATCH_RPFILTER is not set
    CONFIG_IP_NF_MATCH_TTL=y
    CONFIG_IP_NF_FILTER=y
    CONFIG_IP_NF_TARGET_REJECT=y
    # CONFIG_IP_NF_TARGET_SYNPROXY is not set
    CONFIG_IP_NF_NAT=y
    CONFIG_IP_NF_TARGET_MASQUERADE=y
    CONFIG_IP_NF_TARGET_NETMAP=y
    CONFIG_IP_NF_TARGET_REDIRECT=y
    CONFIG_IP_NF_MANGLE=y
    # CONFIG_IP_NF_TARGET_CLUSTERIP is not set
    # CONFIG_IP_NF_TARGET_ECN is not set
    # CONFIG_IP_NF_TARGET_TTL is not set
    CONFIG_IP_NF_RAW=y
    CONFIG_IP_NF_SECURITY=y
    CONFIG_IP_NF_ARPTABLES=y
    CONFIG_IP_NF_ARPFILTER=y
    CONFIG_IP_NF_ARP_MANGLE=y
    
    #
    # IPv6: Netfilter Configuration
    #
    CONFIG_NF_DEFRAG_IPV6=y
    CONFIG_NF_CONNTRACK_IPV6=y
    # CONFIG_NF_DUP_IPV6 is not set
    CONFIG_NF_REJECT_IPV6=y
    # CONFIG_NF_LOG_IPV6 is not set
    # CONFIG_NF_NAT_IPV6 is not set
    CONFIG_IP6_NF_IPTABLES=y
    # CONFIG_IP6_NF_MATCH_AH is not set
    # CONFIG_IP6_NF_MATCH_EUI64 is not set
    # CONFIG_IP6_NF_MATCH_FRAG is not set
    # CONFIG_IP6_NF_MATCH_OPTS is not set
    # CONFIG_IP6_NF_MATCH_HL is not set
    # CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
    # CONFIG_IP6_NF_MATCH_MH is not set
    CONFIG_IP6_NF_MATCH_RPFILTER=y
    # CONFIG_IP6_NF_MATCH_RT is not set
    # CONFIG_IP6_NF_TARGET_HL is not set
    CONFIG_IP6_NF_FILTER=y
    CONFIG_IP6_NF_TARGET_REJECT=y
    # CONFIG_IP6_NF_TARGET_SYNPROXY is not set
    CONFIG_IP6_NF_MANGLE=y
    CONFIG_IP6_NF_RAW=y
    # CONFIG_IP6_NF_SECURITY is not set
    # CONFIG_IP6_NF_NAT is not set
    # CONFIG_IP_DCCP is not set
    # CONFIG_IP_SCTP is not set
    # CONFIG_RDS is not set
    # CONFIG_TIPC is not set
    # CONFIG_ATM is not set
    # CONFIG_L2TP is not set
    # CONFIG_BRIDGE is not set
    CONFIG_HAVE_NET_DSA=y
    # CONFIG_VLAN_8021Q is not set
    # CONFIG_DECNET is not set
    # CONFIG_LLC2 is not set
    # CONFIG_IPX is not set
    # CONFIG_ATALK is not set
    # CONFIG_X25 is not set
    # CONFIG_LAPB is not set
    # CONFIG_PHONET is not set
    # CONFIG_6LOWPAN is not set
    # CONFIG_IEEE802154 is not set
    CONFIG_NET_SCHED=y
    
    #
    # Queueing/Scheduling
    #
    # CONFIG_NET_SCH_CBQ is not set
    CONFIG_NET_SCH_HTB=y
    # CONFIG_NET_SCH_HFSC is not set
    # CONFIG_NET_SCH_PRIO is not set
    # CONFIG_NET_SCH_MULTIQ is not set
    # CONFIG_NET_SCH_RED is not set
    # CONFIG_NET_SCH_SFB is not set
    # CONFIG_NET_SCH_SFQ is not set
    # CONFIG_NET_SCH_TEQL is not set
    # CONFIG_NET_SCH_TBF is not set
    # CONFIG_NET_SCH_GRED is not set
    # CONFIG_NET_SCH_DSMARK is not set
    # CONFIG_NET_SCH_NETEM is not set
    # CONFIG_NET_SCH_DRR is not set
    # CONFIG_NET_SCH_MQPRIO is not set
    # CONFIG_NET_SCH_CHOKE is not set
    # CONFIG_NET_SCH_QFQ is not set
    # CONFIG_NET_SCH_CODEL is not set
    # CONFIG_NET_SCH_FQ_CODEL is not set
    # CONFIG_NET_SCH_FQ is not set
    # CONFIG_NET_SCH_HHF is not set
    # CONFIG_NET_SCH_PIE is not set
    # CONFIG_NET_SCH_INGRESS is not set
    # CONFIG_NET_SCH_PLUG is not set
    
    #
    # Classification
    #
    CONFIG_NET_CLS=y
    # CONFIG_NET_CLS_BASIC is not set
    # CONFIG_NET_CLS_TCINDEX is not set
    # CONFIG_NET_CLS_ROUTE4 is not set
    # CONFIG_NET_CLS_FW is not set
    CONFIG_NET_CLS_U32=y
    # CONFIG_CLS_U32_PERF is not set
    # CONFIG_CLS_U32_MARK is not set
    # CONFIG_NET_CLS_RSVP is not set
    # CONFIG_NET_CLS_RSVP6 is not set
    # CONFIG_NET_CLS_FLOW is not set
    # CONFIG_NET_CLS_CGROUP is not set
    # CONFIG_NET_CLS_BPF is not set
    # CONFIG_NET_CLS_FLOWER is not set
    # CONFIG_NET_CLS_MATCHALL is not set
    CONFIG_NET_EMATCH=y
    CONFIG_NET_EMATCH_STACK=32
    # CONFIG_NET_EMATCH_CMP is not set
    # CONFIG_NET_EMATCH_NBYTE is not set
    CONFIG_NET_EMATCH_U32=y
    # CONFIG_NET_EMATCH_META is not set
    # CONFIG_NET_EMATCH_TEXT is not set
    CONFIG_NET_CLS_ACT=y
    # CONFIG_NET_ACT_POLICE is not set
    # CONFIG_NET_ACT_GACT is not set
    # CONFIG_NET_ACT_MIRRED is not set
    # CONFIG_NET_ACT_IPT is not set
    # CONFIG_NET_ACT_NAT is not set
    # CONFIG_NET_ACT_PEDIT is not set
    # CONFIG_NET_ACT_SIMP is not set
    # CONFIG_NET_ACT_SKBEDIT is not set
    # CONFIG_NET_ACT_CSUM is not set
    # CONFIG_NET_ACT_VLAN is not set
    # CONFIG_NET_ACT_BPF is not set
    # CONFIG_NET_ACT_CONNMARK is not set
    # CONFIG_NET_ACT_SKBMOD is not set
    # CONFIG_NET_ACT_IFE is not set
    # CONFIG_NET_ACT_TUNNEL_KEY is not set
    # CONFIG_NET_CLS_IND is not set
    CONFIG_NET_SCH_FIFO=y
    # CONFIG_DCB is not set
    CONFIG_DNS_RESOLVER=y
    # CONFIG_BATMAN_ADV is not set
    # CONFIG_OPENVSWITCH is not set
    # CONFIG_VSOCKETS is not set
    # CONFIG_NETLINK_DIAG is not set
    # CONFIG_MPLS is not set
    # CONFIG_HSR is not set
    # CONFIG_NET_SWITCHDEV is not set
    # CONFIG_NET_L3_MASTER_DEV is not set
    # CONFIG_NET_NCSI is not set
    CONFIG_RPS=y
    CONFIG_RFS_ACCEL=y
    CONFIG_XPS=y
    # CONFIG_CGROUP_NET_PRIO is not set
    # CONFIG_CGROUP_NET_CLASSID is not set
    CONFIG_NET_RX_BUSY_POLL=y
    CONFIG_BQL=y
    # CONFIG_BPF_JIT is not set
    CONFIG_NET_FLOW_LIMIT=y
    
    #
    # Network testing
    #
    # CONFIG_NET_PKTGEN is not set
    # CONFIG_NET_DROP_MONITOR is not set
    # CONFIG_HAMRADIO is not set
    # CONFIG_CAN is not set
    # CONFIG_IRDA is not set
    # CONFIG_BT is not set
    # CONFIG_AF_RXRPC is not set
    # CONFIG_AF_KCM is not set
    # CONFIG_STREAM_PARSER is not set
    CONFIG_FIB_RULES=y
    CONFIG_WIRELESS=y
    # CONFIG_CFG80211 is not set
    # CONFIG_LIB80211 is not set
    
    #
    # CFG80211 needs to be enabled for MAC80211
    #
    CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
    # CONFIG_WIMAX is not set
    # CONFIG_RFKILL is not set
    # CONFIG_RFKILL_REGULATOR is not set
    # CONFIG_NET_9P is not set
    # CONFIG_CAIF is not set
    # CONFIG_CEPH_LIB is not set
    # CONFIG_NFC is not set
    # CONFIG_LWTUNNEL is not set
    CONFIG_DST_CACHE=y
    # CONFIG_NET_DEVLINK is not set
    CONFIG_MAY_USE_DEVLINK=y
    CONFIG_HAVE_EBPF_JIT=y
    
    #
    # Device Drivers
    #
    CONFIG_ARM_AMBA=y
    
    #
    # Generic Driver Options
    #
    CONFIG_UEVENT_HELPER=y
    CONFIG_UEVENT_HELPER_PATH=""
    # CONFIG_DEVTMPFS is not set
    CONFIG_STANDALONE=y
    CONFIG_PREVENT_FIRMWARE_BUILD=y
    CONFIG_FW_LOADER=y
    CONFIG_FIRMWARE_IN_KERNEL=y
    CONFIG_EXTRA_FIRMWARE=""
    # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
    CONFIG_ALLOW_DEV_COREDUMP=y
    # CONFIG_DEBUG_DRIVER is not set
    # CONFIG_DEBUG_DEVRES is not set
    # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
    # CONFIG_SYS_HYPERVISOR is not set
    # CONFIG_GENERIC_CPU_DEVICES is not set
    CONFIG_GENERIC_CPU_AUTOPROBE=y
    CONFIG_REGMAP=y
    CONFIG_REGMAP_I2C=y
    CONFIG_REGMAP_MMIO=y
    CONFIG_DMA_SHARED_BUFFER=y
    # CONFIG_FENCE_TRACE is not set
    CONFIG_DMA_CMA=y
    
    #
    # Default contiguous memory area size:
    #
    CONFIG_CMA_SIZE_MBYTES=96
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
    # CONFIG_CMA_SIZE_SEL_MIN is not set
    # CONFIG_CMA_SIZE_SEL_MAX is not set
    CONFIG_CMA_ALIGNMENT=8
    
    #
    # Bus devices
    #
    # CONFIG_ARM_CCI400_PMU is not set
    # CONFIG_ARM_CCI5xx_PMU is not set
    # CONFIG_ARM_CCN is not set
    CONFIG_VEXPRESS_CONFIG=y
    CONFIG_CONNECTOR=y
    CONFIG_PROC_EVENTS=y
    CONFIG_MTD=y
    # CONFIG_MTD_TESTS is not set
    # CONFIG_MTD_REDBOOT_PARTS is not set
    CONFIG_MTD_CMDLINE_PARTS=y
    # CONFIG_MTD_AFS_PARTS is not set
    CONFIG_MTD_OF_PARTS=y
    # CONFIG_MTD_AR7_PARTS is not set
    
    #
    # User Modules And Translation Layers
    #
    CONFIG_MTD_BLKDEVS=y
    CONFIG_MTD_BLOCK=y
    # CONFIG_FTL is not set
    # CONFIG_NFTL is not set
    # CONFIG_INFTL is not set
    # CONFIG_RFD_FTL is not set
    # CONFIG_SSFDC is not set
    # CONFIG_SM_FTL is not set
    CONFIG_MTD_OOPS=y
    # CONFIG_MTD_SWAP is not set
    # CONFIG_MTD_PARTITIONED_MASTER is not set
    
    #
    # RAM/ROM/Flash chip drivers
    #
    CONFIG_MTD_CFI=y
    # CONFIG_MTD_JEDECPROBE is not set
    CONFIG_MTD_GEN_PROBE=y
    # CONFIG_MTD_CFI_ADV_OPTIONS is not set
    CONFIG_MTD_MAP_BANK_WIDTH_1=y
    CONFIG_MTD_MAP_BANK_WIDTH_2=y
    CONFIG_MTD_MAP_BANK_WIDTH_4=y
    # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
    # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
    # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
    CONFIG_MTD_CFI_I1=y
    CONFIG_MTD_CFI_I2=y
    # CONFIG_MTD_CFI_I4 is not set
    # CONFIG_MTD_CFI_I8 is not set
    CONFIG_MTD_CFI_INTELEXT=y
    # CONFIG_MTD_CFI_AMDSTD is not set
    # CONFIG_MTD_CFI_STAA is not set
    CONFIG_MTD_CFI_UTIL=y
    # CONFIG_MTD_RAM is not set
    # CONFIG_MTD_ROM is not set
    # CONFIG_MTD_ABSENT is not set
    
    #
    # Mapping drivers for chip access
    #
    # CONFIG_MTD_COMPLEX_MAPPINGS is not set
    # CONFIG_MTD_PHYSMAP is not set
    # CONFIG_MTD_PHYSMAP_OF is not set
    # CONFIG_MTD_INTEL_VR_NOR is not set
    # CONFIG_MTD_PLATRAM is not set
    
    #
    # Self-contained MTD device drivers
    #
    # CONFIG_MTD_PMC551 is not set
    # CONFIG_MTD_SLRAM is not set
    # CONFIG_MTD_PHRAM is not set
    # CONFIG_MTD_MTDRAM is not set
    # CONFIG_MTD_BLOCK2MTD is not set
    
    #
    # Disk-On-Chip Device Drivers
    #
    # CONFIG_MTD_DOCG3 is not set
    CONFIG_MTD_NAND_IDS=y
    CONFIG_MTD_NAND_ECC=y
    # CONFIG_MTD_NAND_ECC_SMC is not set
    CONFIG_MTD_NAND=y
    # CONFIG_MTD_NAND_ECC_BCH is not set
    # CONFIG_MTD_SM_COMMON is not set
    # CONFIG_MTD_NAND_DENALI_PCI is not set
    # CONFIG_MTD_NAND_DENALI_DT is not set
    # CONFIG_MTD_NAND_GPIO is not set
    # CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
    # CONFIG_MTD_NAND_RICOH is not set
    # CONFIG_MTD_NAND_DISKONCHIP is not set
    # CONFIG_MTD_NAND_DOCG4 is not set
    # CONFIG_MTD_NAND_CAFE is not set
    # CONFIG_MTD_NAND_NANDSIM is not set
    # CONFIG_MTD_NAND_BRCMNAND is not set
    # CONFIG_MTD_NAND_PLATFORM is not set
    # CONFIG_MTD_NAND_HISI504 is not set
    # CONFIG_MTD_NAND_MTK is not set
    # CONFIG_MTD_ONENAND is not set
    

    NOTE: The code was really big, I had to trim it.

    It seems to me that this options are enabled (lines 199 and 208), but I want to know either way what I was doing wrong. 

Reply
  • Thanks for the reply @Jason Andrews,

    I'm still confused. I will try to explain what I did hopefuly I'm not too far away from the solution. From what I understood, I can either 1) Load a module directly to the kernel or 2) Recompile the kernel.

    Approach 1)
    1) Downloaded the kernel sources (ack-4.9-armlt-18.04) from:
    https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    git clone --single-branch -b ack-4.9-armlt-18.04 https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    (This should take care of this problem, "The immediate problem is you have some gcc options which are not valid for your compiler. Your gcc may be too new or too old for the environment.")

    2) Used code made for armv8/aarch64 (Just to test), because you said " It also looks like the github work was done with aarch32 CPUs so you need to make some adjustments to the compiler flags. It may take some digging since the flags are probably picked up from the source tree you are compiling against, not in the Makefile of his module."


    /*                                                                             
     * Enable user-mode ARM performance counter access.                            
     */                                                                           
    #include <linux/kernel.h>                                                      
    #include <linux/module.h>                                                      
    #include <linux/smp.h>                                                         
                                                                                    
     
    #define PERF_DEF_OPTS       (1 | 16)                                                                       
    #define PERF_OPT_RESET_CYCLES   (2 | 4)                                                                  
    #define PERF_OPT_DIV64      (8)                                                                          
    #define ARMV8_PMCR_MASK         0x3f                                                                    
    #define ARMV8_PMCR_E            (1 << 0) /* Enable all counters */                                      
    #define ARMV8_PMCR_P            (1 << 1) /* Reset all counters */                                       
    #define ARMV8_PMCR_C            (1 << 2) /* Cycle counter reset */                                      
    #define ARMV8_PMCR_D            (1 << 3) /* CCNT counts every 64th cpu cycle */                         
    #define ARMV8_PMCR_X            (1 << 4) /* Export to ETM */                                            
    #define ARMV8_PMCR_DP           (1 << 5) /* Disable CCNT if non-invasive debug*/                        
    #define ARMV8_PMCR_LC           (1 << 6) /* Cycle Counter 64bit overflow*/
    #define ARMV8_PMCR_N_SHIFT      11       /* Number of counters supported */                             
    #define ARMV8_PMCR_N_MASK       0x1f                                                                    
                                                                                                             
    #define ARMV8_PMUSERENR_EN_EL0  (1 << 0) /* EL0 access enable */                                        
    #define ARMV8_PMUSERENR_CR      (1 << 2) /* Cycle counter read enable */                                
    #define ARMV8_PMUSERENR_ER      (1 << 3) /* Event counter read enable */                                
                                                                                                             
    static inline u32 armv8pmu_pmcr_read(void)                                                              
    {                                                                                                       
            u64 val=0;                                                                                      
            asm volatile("mrs %0, pmcr_el0" : "=r" (val));                                                  
            return (u32)val;                                                                                
    }                                                                                                       
    static inline void armv8pmu_pmcr_write(u32 val)                                                         
    {                                                                                                       
            val &= ARMV8_PMCR_MASK;                                                                         
            isb();                                                                                          
            asm volatile("msr pmcr_el0, %0" : : "r" ((u64)val));                                            
    }       
     
    static inline  long long armv8_read_CNTPCT_EL0(void)
    {
       long long val;
       asm volatile("mrs %0, CNTVCT_EL0" : "=r" (val));
     
       return val;
    }
     
                                                                                                             
    static void                                                                                            
    enable_cpu_counters(void* data)                                                                         
    {                                                                                                       
        /*u32 val=0;*/                                                         
        asm volatile("msr pmuserenr_el0, %0" : : "r"(0xf));
        armv8pmu_pmcr_write(ARMV8_PMCR_LC|ARMV8_PMCR_E);                                                      
            asm volatile("msr PMCNTENSET_EL0, %0" :: "r" ((u32)(1<<31)));
        armv8pmu_pmcr_write(armv8pmu_pmcr_read() | ARMV8_PMCR_E|ARMV8_PMCR_LC);   
            printk("\nCPU:%d ", smp_processor_id());
    }                                                                                                       
                                                                                                             
    static void                                                                                            
    disable_cpu_counters(void* data)                                                                        
    {                                                                                                       
        /*u32 val=0;*/                                                                                             
        printk(KERN_INFO "\ndisabling user-mode PMU access on CPU #%d",                       
        smp_processor_id());                                                                                   
                                                                                                             
        /* Program PMU and disable all counters */                                                            
            armv8pmu_pmcr_write(armv8pmu_pmcr_read() |~ARMV8_PMCR_E);                                              
        asm volatile("msr pmuserenr_el0, %0" : : "r"((u64)0));                                                 
                                                                                                             
    }                                                                                                       
                                                                                                             
    static int __init                                                                                       
    init(void)                                                                                              
    {                                                                       
        u64 cval;
            u32 val;
     
            isb();
            asm volatile("mrs %0, PMCCNTR_EL0" : "=r"(cval));
            printk("\nCPU Cycle count:%llu \n", cval);
            asm volatile("mrs %0, PMCNTENSET_EL0" : "=r"(val));
            printk("PMCNTENSET_EL0:%u ", val);
            asm volatile("mrs %0, PMCR_EL0" : "=r"(val));
            printk("\nPMCR_EL0 Register:%u ", val);
     
            on_each_cpu(enable_cpu_counters, NULL, 1);                                                             
            printk(KERN_INFO "Enable Access PMU Initialized");                                                       
        return 0;                                                                                              
    }                                                                                                       
                                                                                                             
    static void __exit                                                                                      
    fini(void)                                                                                              
    {                                                                                                       
        on_each_cpu(disable_cpu_counters, NULL, 1);                                                            
        printk(KERN_INFO "Access PMU Disabled");                                                          
    }                                                                                                       
                                                                                                             
    module_init(init);                                                                                      
    module_exit(fini);
      

    3) Changed the Makefile and the compiling command:


    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    
    PWD := $(shell pwd)
    
    obj-m += enable_arm_pmu.o
    
    all:
    	make ARCH=$(ARCH) CPU=$(CPU) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNEL) SUBDIRS=$(PWD) modules
    clean:
    	make -C $(KERNEL) SUBDIRS=$(PWD) clean


    make KERNEL=/home/lfpm1993/Desktop/kernel-release/

    Logs from the terminal:


    make ARCH=arm64 CPU= CROSS_COMPILE=aarch64-linux-gnu- -C /home/lfpm1993/Desktop/kernel-release/ SUBDIRS=/home/lfpm1993/Desktop/build modules
    make[1]: Entering directory '/home/lfpm1993/Desktop/kernel-release'
    
      WARNING: Symbol version dump ./Module.symvers
               is missing; modules will have no dependencies and modversions.
    
      Building modules, stage 2.
      MODPOST 1 modules
    make[1]: Leaving directory '/home/lfpm1993/Desktop/kernel-release'

    4) Connected to the board throug adb:
    sudo adb connect 146.193.56.204

    5) Pushed the files and started a serial communication with Putty:
    adb push /home/lfpm1993/Desktop/build/enable_arm_pmu.ko /data/data/modules/

    6) Changed directories and tried to add the module:
    cd /data/data/modules/
    insmod enable_arm_pmu.ko

    Logs from the board:

    juno:/data/data/modules # insmod enable_arm_pmu.ko
    [ 145.220439] type=1400 audit(1530629564.649:76): avc: denied { write } for pid=306 comm="Binder:306_4" name="timerslack_ns" dev="proc" ino=13840 scontext=u:r:system_server:s0 tcontext=u:r:platform_app:s0:c512,c768 tclass=file permissive=1
    insmod: [ 145.241340] type=1400 audit(1530629670.053:77): avc: denied { module_load } for pid=1077 comm="insmod" path="/data/data/modules/enable_arm_pmu.ko" dev="sda4" ino=7596 scontext=u:r:su:s0 tcontext=u:object_r:system_data_file:s0 tclass=system permissive=1
    failed to load enable_arm_pmu.ko: Exec format error




    Approach 2)
    1) Downloaded the kernel sources (ack-4.9-armlt-18.04) from:
    https://git.linaro.org/landing-teams/working/arm/kernel-release.git
    git clone --single-branch -b ack-4.9-armlt-18.04 https://git.linaro.org/landing-teams/working/arm/kernel-release.git

    2
    Compiled for Android recomended settings (infocenter.arm.com/.../index.jsp
    ARCH=arm64 /home/lfpm1993/Desktop/kernel-release/scripts/kconfig/merge_config.sh /home/lfpm1993/Desktop/kernel-release/arch/arm64/configs/defconfig /home/lfpm1993/Desktop/kernel-release/kernel/configs/android-base.config /home/lfpm1993/Desktop/kernel-release/kernel/configs/android-recommended.config

    3) Checked from the link you gave me if all the options were enabled (https://developer.arm.com/products/system-design/cycle-models/knowledge-articles/using-the-arm-performance-monitor-unit-linux-driver, I also disable 'module signature verification'):
    make menuconfig
    (kernel performance events and counters; Profilling support)

    4) Followed by building the Image file:
    make Image.gz

    5) Tried to recompile the kernel doing this:

    (https://community.arm.com/dev-platforms/w/docs/265/boot-an-arm64-kernel-on-the-juno-r1-platform):
    Basically says "Copy the 'Image' generated in step 2 to \SOFTWARE", and that's what I did. After rebooting, it enters a loop or blocks the execution.

    (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4134.html), but I guess it is a little outdated, couldn't follow to the end.


    Question: Assuming I have all the PMU's and profilling tools enable in the kernelspace, do I still need to turn them on, in the userspace? If so, what is the best approach? 

    Sorry for all the trouble and thanks again,
    Luís


    EDIT #1: It is possible to check kernel configuration parameters:
    adb pull /proc/config.gz /home/lfpm1993/Desktop


    #
    # Automatically generated file; DO NOT EDIT.
    # Linux/arm64 4.9.51 Kernel Configuration
    #
    CONFIG_ARM64=y
    CONFIG_64BIT=y
    CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
    CONFIG_MMU=y
    CONFIG_DEBUG_RODATA=y
    CONFIG_ARM64_PAGE_SHIFT=12
    CONFIG_ARM64_CONT_SHIFT=4
    CONFIG_ARCH_MMAP_RND_BITS_MIN=18
    CONFIG_ARCH_MMAP_RND_BITS_MAX=24
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
    CONFIG_STACKTRACE_SUPPORT=y
    CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
    CONFIG_LOCKDEP_SUPPORT=y
    CONFIG_TRACE_IRQFLAGS_SUPPORT=y
    CONFIG_RWSEM_XCHGADD_ALGORITHM=y
    CONFIG_GENERIC_BUG=y
    CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
    CONFIG_GENERIC_HWEIGHT=y
    CONFIG_GENERIC_CSUM=y
    CONFIG_GENERIC_CALIBRATE_DELAY=y
    CONFIG_ZONE_DMA=y
    CONFIG_HAVE_GENERIC_RCU_GUP=y
    CONFIG_ARCH_DMA_ADDR_T_64BIT=y
    CONFIG_NEED_DMA_MAP_STATE=y
    CONFIG_NEED_SG_DMA_LENGTH=y
    CONFIG_SMP=y
    CONFIG_SWIOTLB=y
    CONFIG_IOMMU_HELPER=y
    CONFIG_KERNEL_MODE_NEON=y
    CONFIG_FIX_EARLYCON_MEM=y
    CONFIG_PGTABLE_LEVELS=3
    CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
    CONFIG_IRQ_WORK=y
    CONFIG_BUILDTIME_EXTABLE_SORT=y
    
    #
    # General setup
    #
    CONFIG_INIT_ENV_ARG_LIMIT=32
    CONFIG_CROSS_COMPILE=""
    # CONFIG_COMPILE_TEST is not set
    CONFIG_LOCALVERSION=""
    CONFIG_LOCALVERSION_AUTO=y
    CONFIG_DEFAULT_HOSTNAME="(none)"
    CONFIG_SWAP=y
    # CONFIG_SYSVIPC is not set
    CONFIG_POSIX_MQUEUE=y
    CONFIG_POSIX_MQUEUE_SYSCTL=y
    CONFIG_CROSS_MEMORY_ATTACH=y
    CONFIG_FHANDLE=y
    # CONFIG_USELIB is not set
    CONFIG_AUDIT=y
    CONFIG_HAVE_ARCH_AUDITSYSCALL=y
    CONFIG_AUDITSYSCALL=y
    CONFIG_AUDIT_WATCH=y
    CONFIG_AUDIT_TREE=y
    
    #
    # IRQ subsystem
    #
    CONFIG_GENERIC_IRQ_PROBE=y
    CONFIG_GENERIC_IRQ_SHOW=y
    CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
    CONFIG_GENERIC_IRQ_MIGRATION=y
    CONFIG_HARDIRQS_SW_RESEND=y
    CONFIG_IRQ_DOMAIN=y
    CONFIG_IRQ_DOMAIN_HIERARCHY=y
    CONFIG_GENERIC_MSI_IRQ=y
    CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
    CONFIG_HANDLE_DOMAIN_IRQ=y
    # CONFIG_IRQ_DOMAIN_DEBUG is not set
    CONFIG_IRQ_FORCED_THREADING=y
    CONFIG_SPARSE_IRQ=y
    CONFIG_ARCH_CLOCKSOURCE_DATA=y
    CONFIG_GENERIC_TIME_VSYSCALL=y
    CONFIG_GENERIC_CLOCKEVENTS=y
    CONFIG_ARCH_HAS_TICK_BROADCAST=y
    CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
    
    #
    # Timers subsystem
    #
    CONFIG_TICK_ONESHOT=y
    CONFIG_NO_HZ_COMMON=y
    # CONFIG_HZ_PERIODIC is not set
    CONFIG_NO_HZ_IDLE=y
    # CONFIG_NO_HZ_FULL is not set
    CONFIG_NO_HZ=y
    CONFIG_HIGH_RES_TIMERS=y
    
    #
    # CPU/Task time and stats accounting
    #
    CONFIG_TICK_CPU_ACCOUNTING=y
    # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
    # CONFIG_IRQ_TIME_ACCOUNTING is not set
    # CONFIG_SCHED_WALT is not set
    CONFIG_BSD_PROCESS_ACCT=y
    # CONFIG_BSD_PROCESS_ACCT_V3 is not set
    CONFIG_TASKSTATS=y
    CONFIG_TASK_DELAY_ACCT=y
    CONFIG_TASK_XACCT=y
    CONFIG_TASK_IO_ACCOUNTING=y
    
    #
    # RCU Subsystem
    #
    CONFIG_PREEMPT_RCU=y
    # CONFIG_RCU_EXPERT is not set
    CONFIG_SRCU=y
    # CONFIG_TASKS_RCU is not set
    CONFIG_RCU_STALL_COMMON=y
    # CONFIG_TREE_RCU_TRACE is not set
    # CONFIG_RCU_EXPEDITE_BOOT is not set
    CONFIG_BUILD_BIN2C=y
    CONFIG_IKCONFIG=y
    CONFIG_IKCONFIG_PROC=y
    CONFIG_LOG_BUF_SHIFT=18
    CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
    CONFIG_GENERIC_SCHED_CLOCK=y
    CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
    CONFIG_CGROUPS=y
    CONFIG_CGROUP_DEBUG=y
    CONFIG_CGROUP_FREEZER=y
    # CONFIG_CGROUP_PIDS is not set
    # CONFIG_CGROUP_DEVICE is not set
    CONFIG_CPUSETS=y
    CONFIG_PROC_PID_CPUSET=y
    CONFIG_CGROUP_CPUACCT=y
    CONFIG_CGROUP_SCHEDTUNE=y
    # CONFIG_MEMCG is not set
    # CONFIG_BLK_CGROUP is not set
    CONFIG_CGROUP_SCHED=y
    CONFIG_FAIR_GROUP_SCHED=y
    # CONFIG_CFS_BANDWIDTH is not set
    CONFIG_RT_GROUP_SCHED=y
    # CONFIG_CGROUP_HUGETLB is not set
    # CONFIG_CGROUP_PERF is not set
    # CONFIG_SOCK_CGROUP_DATA is not set
    # CONFIG_CHECKPOINT_RESTORE is not set
    # CONFIG_NAMESPACES is not set
    # CONFIG_SCHED_AUTOGROUP is not set
    CONFIG_SCHED_TUNE=y
    # CONFIG_DEFAULT_USE_ENERGY_AWARE is not set
    # CONFIG_SYSFS_DEPRECATED is not set
    # CONFIG_RELAY is not set
    CONFIG_BLK_DEV_INITRD=y
    CONFIG_INITRAMFS_SOURCE=""
    CONFIG_RD_GZIP=y
    CONFIG_RD_BZIP2=y
    CONFIG_RD_LZMA=y
    CONFIG_RD_XZ=y
    CONFIG_RD_LZO=y
    CONFIG_RD_LZ4=y
    CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
    # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
    CONFIG_SYSCTL=y
    CONFIG_ANON_INODES=y
    CONFIG_HAVE_UID16=y
    CONFIG_SYSCTL_EXCEPTION_TRACE=y
    CONFIG_BPF=y
    CONFIG_EXPERT=y
    CONFIG_UID16=y
    CONFIG_MULTIUSER=y
    # CONFIG_SGETMASK_SYSCALL is not set
    CONFIG_SYSFS_SYSCALL=y
    # CONFIG_SYSCTL_SYSCALL is not set
    CONFIG_KALLSYMS=y
    CONFIG_KALLSYMS_ALL=y
    # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
    CONFIG_KALLSYMS_BASE_RELATIVE=y
    CONFIG_PRINTK=y
    CONFIG_BUG=y
    CONFIG_ELF_CORE=y
    CONFIG_BASE_FULL=y
    CONFIG_FUTEX=y
    CONFIG_EPOLL=y
    CONFIG_SIGNALFD=y
    CONFIG_TIMERFD=y
    CONFIG_EVENTFD=y
    # CONFIG_BPF_SYSCALL is not set
    CONFIG_SHMEM=y
    # CONFIG_AIO is not set
    CONFIG_ADVISE_SYSCALLS=y
    # CONFIG_USERFAULTFD is not set
    CONFIG_PCI_QUIRKS=y
    CONFIG_MEMBARRIER=y
    CONFIG_EMBEDDED=y
    CONFIG_HAVE_PERF_EVENTS=y
    
    #
    # Kernel Performance Events And Counters
    #
    CONFIG_PERF_EVENTS=y
    # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
    CONFIG_VM_EVENT_COUNTERS=y
    CONFIG_COMPAT_BRK=y
    CONFIG_SLAB=y
    # CONFIG_SLUB is not set
    # CONFIG_SLOB is not set
    # CONFIG_SLAB_FREELIST_RANDOM is not set
    # CONFIG_SYSTEM_DATA_VERIFICATION is not set
    CONFIG_PROFILING=y
    CONFIG_TRACEPOINTS=y
    # CONFIG_KPROBES is not set
    # CONFIG_JUMP_LABEL is not set
    # CONFIG_UPROBES is not set
    # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
    CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
    CONFIG_HAVE_KPROBES=y
    CONFIG_HAVE_KRETPROBES=y
    CONFIG_HAVE_ARCH_TRACEHOOK=y
    CONFIG_HAVE_DMA_CONTIGUOUS=y
    CONFIG_GENERIC_SMP_IDLE_THREAD=y
    CONFIG_GENERIC_IDLE_POLL_SETUP=y
    CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
    CONFIG_HAVE_CLK=y
    CONFIG_HAVE_DMA_API_DEBUG=y
    CONFIG_HAVE_HW_BREAKPOINT=y
    CONFIG_HAVE_PERF_REGS=y
    CONFIG_HAVE_PERF_USER_STACK_DUMP=y
    CONFIG_HAVE_ARCH_JUMP_LABEL=y
    CONFIG_HAVE_RCU_TABLE_FREE=y
    CONFIG_HAVE_CMPXCHG_LOCAL=y
    CONFIG_HAVE_CMPXCHG_DOUBLE=y
    CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
    CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
    CONFIG_SECCOMP_FILTER=y
    CONFIG_HAVE_GCC_PLUGINS=y
    # CONFIG_GCC_PLUGINS is not set
    CONFIG_HAVE_CC_STACKPROTECTOR=y
    CONFIG_CC_STACKPROTECTOR=y
    # CONFIG_CC_STACKPROTECTOR_NONE is not set
    # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
    CONFIG_CC_STACKPROTECTOR_STRONG=y
    CONFIG_HAVE_CONTEXT_TRACKING=y
    CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
    CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
    CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
    CONFIG_HAVE_ARCH_HUGE_VMAP=y
    CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
    CONFIG_MODULES_USE_ELF_RELA=y
    CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
    CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
    CONFIG_ARCH_MMAP_RND_BITS=18
    CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
    CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
    # CONFIG_HAVE_ARCH_HASH is not set
    # CONFIG_ISA_BUS_API is not set
    CONFIG_CLONE_BACKWARDS=y
    CONFIG_OLD_SIGSUSPEND3=y
    CONFIG_COMPAT_OLD_SIGACTION=y
    # CONFIG_CPU_NO_EFFICIENT_FFS is not set
    # CONFIG_HAVE_ARCH_VMAP_STACK is not set
    
    #
    # GCOV-based kernel profiling
    #
    # CONFIG_GCOV_KERNEL is not set
    CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
    CONFIG_HAVE_GENERIC_DMA_COHERENT=y
    CONFIG_SLABINFO=y
    CONFIG_RT_MUTEXES=y
    CONFIG_BASE_SMALL=0
    CONFIG_MODULES=y
    # CONFIG_MODULE_FORCE_LOAD is not set
    CONFIG_MODULE_UNLOAD=y
    # CONFIG_MODULE_FORCE_UNLOAD is not set
    CONFIG_MODVERSIONS=y
    # CONFIG_MODULE_SRCVERSION_ALL is not set
    # CONFIG_MODULE_SIG is not set
    # CONFIG_MODULE_COMPRESS is not set
    # CONFIG_TRIM_UNUSED_KSYMS is not set
    CONFIG_MODULES_TREE_LOOKUP=y
    CONFIG_BLOCK=y
    CONFIG_BLK_DEV_BSG=y
    # CONFIG_BLK_DEV_BSGLIB is not set
    # CONFIG_BLK_DEV_INTEGRITY is not set
    # CONFIG_BLK_CMDLINE_PARSER is not set
    
    #
    # Partition Types
    #
    # CONFIG_PARTITION_ADVANCED is not set
    CONFIG_MSDOS_PARTITION=y
    CONFIG_EFI_PARTITION=y
    CONFIG_BLOCK_COMPAT=y
    CONFIG_BLK_MQ_PCI=y
    
    #
    # IO Schedulers
    #
    CONFIG_IOSCHED_NOOP=y
    CONFIG_IOSCHED_DEADLINE=y
    CONFIG_IOSCHED_CFQ=y
    # CONFIG_DEFAULT_DEADLINE is not set
    CONFIG_DEFAULT_CFQ=y
    # CONFIG_DEFAULT_NOOP is not set
    CONFIG_DEFAULT_IOSCHED="cfq"
    CONFIG_UNINLINE_SPIN_UNLOCK=y
    CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
    CONFIG_MUTEX_SPIN_ON_OWNER=y
    CONFIG_RWSEM_SPIN_ON_OWNER=y
    CONFIG_LOCK_SPIN_ON_OWNER=y
    CONFIG_FREEZER=y
    
    #
    # Platform selection
    #
    # CONFIG_ARCH_SUNXI is not set
    # CONFIG_ARCH_ALPINE is not set
    # CONFIG_ARCH_BCM2835 is not set
    # CONFIG_ARCH_BCM_IPROC is not set
    # CONFIG_ARCH_BERLIN is not set
    # CONFIG_ARCH_BRCMSTB is not set
    # CONFIG_ARCH_EXYNOS is not set
    # CONFIG_ARCH_LAYERSCAPE is not set
    # CONFIG_ARCH_LG1K is not set
    # CONFIG_ARCH_HISI is not set
    # CONFIG_ARCH_MEDIATEK is not set
    # CONFIG_ARCH_MESON is not set
    # CONFIG_ARCH_MVEBU is not set
    # CONFIG_ARCH_QCOM is not set
    # CONFIG_ARCH_ROCKCHIP is not set
    # CONFIG_ARCH_SEATTLE is not set
    # CONFIG_ARCH_RENESAS is not set
    # CONFIG_ARCH_STRATIX10 is not set
    # CONFIG_ARCH_TEGRA is not set
    # CONFIG_ARCH_SPRD is not set
    # CONFIG_ARCH_THUNDER is not set
    # CONFIG_ARCH_UNIPHIER is not set
    CONFIG_ARCH_VEXPRESS=y
    # CONFIG_ARCH_VULCAN is not set
    # CONFIG_ARCH_XGENE is not set
    # CONFIG_ARCH_ZX is not set
    # CONFIG_ARCH_ZYNQMP is not set
    
    #
    # Bus support
    #
    CONFIG_PCI=y
    CONFIG_PCI_DOMAINS=y
    CONFIG_PCI_DOMAINS_GENERIC=y
    CONFIG_PCI_SYSCALL=y
    CONFIG_PCIEPORTBUS=y
    CONFIG_HOTPLUG_PCI_PCIE=y
    CONFIG_PCIEAER=y
    CONFIG_PCIE_ECRC=y
    # CONFIG_PCIEAER_INJECT is not set
    CONFIG_PCIEASPM=y
    # CONFIG_PCIEASPM_DEBUG is not set
    CONFIG_PCIEASPM_DEFAULT=y
    # CONFIG_PCIEASPM_POWERSAVE is not set
    # CONFIG_PCIEASPM_PERFORMANCE is not set
    CONFIG_PCIE_PME=y
    # CONFIG_PCIE_DPC is not set
    # CONFIG_PCIE_PTM is not set
    CONFIG_PCI_BUS_ADDR_T_64BIT=y
    CONFIG_PCI_MSI=y
    CONFIG_PCI_MSI_IRQ_DOMAIN=y
    # CONFIG_PCI_DEBUG is not set
    CONFIG_PCI_REALLOC_ENABLE_AUTO=y
    # CONFIG_PCI_STUB is not set
    CONFIG_PCI_ATS=y
    CONFIG_PCI_ECAM=y
    # CONFIG_PCI_IOV is not set
    CONFIG_PCI_PRI=y
    CONFIG_PCI_PASID=y
    CONFIG_PCI_LABEL=y
    CONFIG_HOTPLUG_PCI=y
    # CONFIG_HOTPLUG_PCI_CPCI is not set
    # CONFIG_HOTPLUG_PCI_SHPC is not set
    
    #
    # PCI host controller drivers
    #
    # CONFIG_PCIE_DW_PLAT is not set
    CONFIG_PCI_HOST_COMMON=y
    CONFIG_PCI_HOST_GENERIC=y
    # CONFIG_PCI_HISI is not set
    # CONFIG_PCI_HOST_THUNDER_PEM is not set
    # CONFIG_PCI_HOST_THUNDER_ECAM is not set
    
    #
    # Kernel Features
    #
    
    #
    # ARM errata workarounds via the alternatives framework
    #
    CONFIG_ARM64_ERRATUM_826319=y
    CONFIG_ARM64_ERRATUM_827319=y
    CONFIG_ARM64_ERRATUM_824069=y
    CONFIG_ARM64_ERRATUM_819472=y
    CONFIG_ARM64_ERRATUM_832075=y
    CONFIG_ARM64_ERRATUM_845719=y
    CONFIG_ARM64_ERRATUM_843419=y
    CONFIG_CAVIUM_ERRATUM_22375=y
    CONFIG_CAVIUM_ERRATUM_23154=y
    CONFIG_CAVIUM_ERRATUM_27456=y
    CONFIG_QCOM_QDF2400_ERRATUM_0065=y
    CONFIG_ARM64_4K_PAGES=y
    # CONFIG_ARM64_16K_PAGES is not set
    # CONFIG_ARM64_64K_PAGES is not set
    CONFIG_ARM64_VA_BITS_39=y
    # CONFIG_ARM64_VA_BITS_48 is not set
    CONFIG_ARM64_VA_BITS=39
    # CONFIG_CPU_BIG_ENDIAN is not set
    CONFIG_SCHED_MC=y
    CONFIG_SCHED_SMT=y
    CONFIG_NR_CPUS=8
    CONFIG_HOTPLUG_CPU=y
    # CONFIG_NUMA is not set
    # CONFIG_PREEMPT_NONE is not set
    # CONFIG_PREEMPT_VOLUNTARY is not set
    CONFIG_PREEMPT=y
    CONFIG_PREEMPT_COUNT=y
    # CONFIG_HZ_100 is not set
    CONFIG_HZ_250=y
    # CONFIG_HZ_300 is not set
    # CONFIG_HZ_1000 is not set
    CONFIG_HZ=250
    CONFIG_SCHED_HRTICK=y
    CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
    CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
    CONFIG_ARCH_SPARSEMEM_ENABLE=y
    CONFIG_ARCH_SPARSEMEM_DEFAULT=y
    CONFIG_ARCH_SELECT_MEMORY_MODEL=y
    CONFIG_HAVE_ARCH_PFN_VALID=y
    CONFIG_HW_PERF_EVENTS=y
    CONFIG_SYS_SUPPORTS_HUGETLBFS=y
    CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
    CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
    CONFIG_SELECT_MEMORY_MODEL=y
    CONFIG_SPARSEMEM_MANUAL=y
    CONFIG_SPARSEMEM=y
    CONFIG_HAVE_MEMORY_PRESENT=y
    CONFIG_SPARSEMEM_EXTREME=y
    CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
    CONFIG_SPARSEMEM_VMEMMAP=y
    CONFIG_HAVE_MEMBLOCK=y
    CONFIG_NO_BOOTMEM=y
    CONFIG_MEMORY_ISOLATION=y
    # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
    CONFIG_SPLIT_PTLOCK_CPUS=4
    CONFIG_COMPACTION=y
    CONFIG_MIGRATION=y
    CONFIG_PHYS_ADDR_T_64BIT=y
    CONFIG_BOUNCE=y
    CONFIG_KSM=y
    CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
    CONFIG_TRANSPARENT_HUGEPAGE=y
    # CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
    CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
    CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
    # CONFIG_CLEANCACHE is not set
    # CONFIG_FRONTSWAP is not set
    CONFIG_CMA=y
    # CONFIG_CMA_DEBUG is not set
    # CONFIG_CMA_DEBUGFS is not set
    CONFIG_CMA_AREAS=7
    # CONFIG_ZPOOL is not set
    # CONFIG_ZBUD is not set
    # CONFIG_ZSMALLOC is not set
    CONFIG_GENERIC_EARLY_IOREMAP=y
    # CONFIG_IDLE_PAGE_TRACKING is not set
    CONFIG_SECCOMP=y
    # CONFIG_PARAVIRT is not set
    # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
    # CONFIG_KEXEC is not set
    # CONFIG_XEN is not set
    CONFIG_FORCE_MAX_ZONEORDER=11
    CONFIG_ARMV8_DEPRECATED=y
    CONFIG_SWP_EMULATION=y
    CONFIG_CP15_BARRIER_EMULATION=y
    CONFIG_SETEND_EMULATION=y
    CONFIG_ARM64_SW_TTBR0_PAN=y
    
    #
    # ARMv8.1 architectural features
    #
    CONFIG_ARM64_HW_AFDBM=y
    CONFIG_ARM64_PAN=y
    # CONFIG_ARM64_LSE_ATOMICS is not set
    CONFIG_ARM64_VHE=y
    
    #
    # ARMv8.2 architectural features
    #
    CONFIG_ARM64_UAO=y
    CONFIG_ARM64_MODULE_CMODEL_LARGE=y
    CONFIG_ARM64_MODULE_PLTS=y
    CONFIG_RELOCATABLE=y
    CONFIG_RANDOMIZE_BASE=y
    
    #
    # Boot options
    #
    CONFIG_CMDLINE="console=ttyAMA0"
    CONFIG_CMDLINE_FROM_BOOTLOADER=y
    # CONFIG_CMDLINE_EXTEND is not set
    # CONFIG_CMDLINE_FORCE is not set
    CONFIG_EFI_STUB=y
    CONFIG_EFI=y
    CONFIG_DMI=y
    # CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE is not set
    
    #
    # Userspace binary formats
    #
    CONFIG_BINFMT_ELF=y
    CONFIG_COMPAT_BINFMT_ELF=y
    CONFIG_ELFCORE=y
    # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
    CONFIG_BINFMT_SCRIPT=y
    # CONFIG_HAVE_AOUT is not set
    CONFIG_BINFMT_MISC=y
    CONFIG_COREDUMP=y
    CONFIG_COMPAT=y
    
    #
    # Power management options
    #
    CONFIG_SUSPEND=y
    CONFIG_SUSPEND_FREEZER=y
    # CONFIG_SUSPEND_SKIP_SYNC is not set
    # CONFIG_HIBERNATION is not set
    CONFIG_PM_SLEEP=y
    CONFIG_PM_SLEEP_SMP=y
    CONFIG_PM_AUTOSLEEP=y
    CONFIG_PM_WAKELOCKS=y
    CONFIG_PM_WAKELOCKS_LIMIT=0
    # CONFIG_PM_WAKELOCKS_GC is not set
    CONFIG_PM=y
    CONFIG_PM_DEBUG=y
    # CONFIG_PM_ADVANCED_DEBUG is not set
    # CONFIG_PM_TEST_SUSPEND is not set
    CONFIG_PM_SLEEP_DEBUG=y
    # CONFIG_DPM_WATCHDOG is not set
    CONFIG_PM_OPP=y
    CONFIG_PM_CLK=y
    CONFIG_PM_GENERIC_DOMAINS=y
    # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
    CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
    CONFIG_PM_GENERIC_DOMAINS_OF=y
    CONFIG_CPU_PM=y
    CONFIG_ARCH_HIBERNATION_POSSIBLE=y
    CONFIG_ARCH_SUSPEND_POSSIBLE=y
    
    #
    # CPU Power Management
    #
    
    #
    # CPU Idle
    #
    CONFIG_CPU_IDLE=y
    # CONFIG_CPU_IDLE_GOV_LADDER is not set
    CONFIG_CPU_IDLE_GOV_MENU=y
    CONFIG_DT_IDLE_STATES=y
    
    #
    # ARM CPU Idle Drivers
    #
    CONFIG_ARM_CPUIDLE=y
    # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
    
    #
    # CPU Frequency scaling
    #
    CONFIG_CPU_FREQ=y
    CONFIG_CPU_FREQ_GOV_ATTR_SET=y
    CONFIG_CPU_FREQ_GOV_COMMON=y
    # CONFIG_CPU_FREQ_STAT is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
    # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHED is not set
    CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
    # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
    CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
    # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
    CONFIG_CPU_FREQ_GOV_USERSPACE=y
    CONFIG_CPU_FREQ_GOV_ONDEMAND=y
    # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
    CONFIG_CPU_FREQ_GOV_SCHED=y
    CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
    # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
    
    #
    # CPU frequency scaling drivers
    #
    # CONFIG_CPUFREQ_DT is not set
    CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
    CONFIG_ARM_DT_BL_CPUFREQ=y
    # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
    CONFIG_ARM_SCMI_CPUFREQ=y
    CONFIG_ARM_SCPI_CPUFREQ=y
    CONFIG_NET=y
    CONFIG_NET_INGRESS=y
    
    #
    # Networking options
    #
    CONFIG_PACKET=y
    # CONFIG_PACKET_DIAG is not set
    CONFIG_UNIX=y
    # CONFIG_UNIX_DIAG is not set
    CONFIG_XFRM=y
    CONFIG_XFRM_ALGO=y
    CONFIG_XFRM_USER=y
    # CONFIG_XFRM_SUB_POLICY is not set
    CONFIG_XFRM_MIGRATE=y
    # CONFIG_XFRM_STATISTICS is not set
    CONFIG_XFRM_IPCOMP=y
    CONFIG_NET_KEY=y
    CONFIG_NET_KEY_MIGRATE=y
    CONFIG_INET=y
    CONFIG_IP_MULTICAST=y
    CONFIG_IP_ADVANCED_ROUTER=y
    # CONFIG_IP_FIB_TRIE_STATS is not set
    CONFIG_IP_MULTIPLE_TABLES=y
    # CONFIG_IP_ROUTE_MULTIPATH is not set
    # CONFIG_IP_ROUTE_VERBOSE is not set
    CONFIG_IP_PNP=y
    CONFIG_IP_PNP_DHCP=y
    CONFIG_IP_PNP_BOOTP=y
    CONFIG_IP_PNP_RARP=y
    # CONFIG_NET_IPIP is not set
    # CONFIG_NET_IPGRE_DEMUX is not set
    CONFIG_NET_IP_TUNNEL=y
    # CONFIG_IP_MROUTE is not set
    # CONFIG_SYN_COOKIES is not set
    # CONFIG_NET_IPVTI is not set
    # CONFIG_NET_UDP_TUNNEL is not set
    # CONFIG_NET_FOU is not set
    # CONFIG_NET_FOU_IP_TUNNELS is not set
    # CONFIG_INET_AH is not set
    CONFIG_INET_ESP=y
    # CONFIG_INET_IPCOMP is not set
    # CONFIG_INET_XFRM_TUNNEL is not set
    CONFIG_INET_TUNNEL=y
    CONFIG_INET_XFRM_MODE_TRANSPORT=y
    CONFIG_INET_XFRM_MODE_TUNNEL=y
    CONFIG_INET_XFRM_MODE_BEET=y
    CONFIG_INET_DIAG=y
    CONFIG_INET_TCP_DIAG=y
    # CONFIG_INET_UDP_DIAG is not set
    CONFIG_INET_DIAG_DESTROY=y
    # CONFIG_TCP_CONG_ADVANCED is not set
    CONFIG_TCP_CONG_CUBIC=y
    CONFIG_DEFAULT_TCP_CONG="cubic"
    # CONFIG_TCP_MD5SIG is not set
    CONFIG_IPV6=y
    CONFIG_IPV6_ROUTER_PREF=y
    CONFIG_IPV6_ROUTE_INFO=y
    CONFIG_IPV6_OPTIMISTIC_DAD=y
    CONFIG_INET6_AH=y
    CONFIG_INET6_ESP=y
    CONFIG_INET6_IPCOMP=y
    CONFIG_IPV6_MIP6=y
    # CONFIG_IPV6_ILA is not set
    CONFIG_INET6_XFRM_TUNNEL=y
    CONFIG_INET6_TUNNEL=y
    CONFIG_INET6_XFRM_MODE_TRANSPORT=y
    CONFIG_INET6_XFRM_MODE_TUNNEL=y
    CONFIG_INET6_XFRM_MODE_BEET=y
    # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
    # CONFIG_IPV6_VTI is not set
    CONFIG_IPV6_SIT=y
    # CONFIG_IPV6_SIT_6RD is not set
    CONFIG_IPV6_NDISC_NODETYPE=y
    # CONFIG_IPV6_TUNNEL is not set
    # CONFIG_IPV6_FOU is not set
    # CONFIG_IPV6_FOU_TUNNEL is not set
    CONFIG_IPV6_MULTIPLE_TABLES=y
    # CONFIG_IPV6_SUBTREES is not set
    # CONFIG_IPV6_MROUTE is not set
    CONFIG_NETLABEL=y
    CONFIG_ANDROID_PARANOID_NETWORK=y
    CONFIG_NETWORK_SECMARK=y
    # CONFIG_NET_PTP_CLASSIFY is not set
    # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
    CONFIG_NETFILTER=y
    # CONFIG_NETFILTER_DEBUG is not set
    CONFIG_NETFILTER_ADVANCED=y
    
    #
    # Core Netfilter Configuration
    #
    CONFIG_NETFILTER_INGRESS=y
    CONFIG_NETFILTER_NETLINK=y
    # CONFIG_NETFILTER_NETLINK_ACCT is not set
    CONFIG_NETFILTER_NETLINK_QUEUE=y
    CONFIG_NETFILTER_NETLINK_LOG=y
    CONFIG_NF_CONNTRACK=y
    CONFIG_NF_CONNTRACK_MARK=y
    CONFIG_NF_CONNTRACK_SECMARK=y
    CONFIG_NF_CONNTRACK_PROCFS=y
    CONFIG_NF_CONNTRACK_EVENTS=y
    # CONFIG_NF_CONNTRACK_TIMEOUT is not set
    # CONFIG_NF_CONNTRACK_TIMESTAMP is not set
    CONFIG_NF_CT_PROTO_DCCP=y
    CONFIG_NF_CT_PROTO_GRE=y
    CONFIG_NF_CT_PROTO_SCTP=y
    CONFIG_NF_CT_PROTO_UDPLITE=y
    CONFIG_NF_CONNTRACK_AMANDA=y
    CONFIG_NF_CONNTRACK_FTP=y
    CONFIG_NF_CONNTRACK_H323=y
    CONFIG_NF_CONNTRACK_IRC=y
    CONFIG_NF_CONNTRACK_BROADCAST=y
    CONFIG_NF_CONNTRACK_NETBIOS_NS=y
    # CONFIG_NF_CONNTRACK_SNMP is not set
    CONFIG_NF_CONNTRACK_PPTP=y
    CONFIG_NF_CONNTRACK_SANE=y
    # CONFIG_NF_CONNTRACK_SIP is not set
    CONFIG_NF_CONNTRACK_TFTP=y
    CONFIG_NF_CT_NETLINK=y
    # CONFIG_NF_CT_NETLINK_TIMEOUT is not set
    # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
    CONFIG_NF_NAT=y
    CONFIG_NF_NAT_NEEDED=y
    CONFIG_NF_NAT_PROTO_DCCP=y
    CONFIG_NF_NAT_PROTO_UDPLITE=y
    CONFIG_NF_NAT_PROTO_SCTP=y
    CONFIG_NF_NAT_AMANDA=y
    CONFIG_NF_NAT_FTP=y
    CONFIG_NF_NAT_IRC=y
    # CONFIG_NF_NAT_SIP is not set
    CONFIG_NF_NAT_TFTP=y
    CONFIG_NF_NAT_REDIRECT=y
    # CONFIG_NF_TABLES is not set
    CONFIG_NETFILTER_XTABLES=y
    
    #
    # Xtables combined modules
    #
    CONFIG_NETFILTER_XT_MARK=y
    CONFIG_NETFILTER_XT_CONNMARK=y
    
    #
    # Xtables targets
    #
    # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
    # CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
    CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
    CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
    CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
    # CONFIG_NETFILTER_XT_TARGET_CT is not set
    # CONFIG_NETFILTER_XT_TARGET_DSCP is not set
    # CONFIG_NETFILTER_XT_TARGET_HL is not set
    # CONFIG_NETFILTER_XT_TARGET_HMARK is not set
    CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
    # CONFIG_NETFILTER_XT_TARGET_LED is not set
    # CONFIG_NETFILTER_XT_TARGET_LOG is not set
    CONFIG_NETFILTER_XT_TARGET_MARK=y
    CONFIG_NETFILTER_XT_NAT=y
    CONFIG_NETFILTER_XT_TARGET_NETMAP=y
    CONFIG_NETFILTER_XT_TARGET_NFLOG=y
    CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
    # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
    # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
    CONFIG_NETFILTER_XT_TARGET_REDIRECT=y
    # CONFIG_NETFILTER_XT_TARGET_TEE is not set
    CONFIG_NETFILTER_XT_TARGET_TPROXY=y
    CONFIG_NETFILTER_XT_TARGET_TRACE=y
    CONFIG_NETFILTER_XT_TARGET_SECMARK=y
    CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
    # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
    
    #
    # Xtables matches
    #
    # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
    # CONFIG_NETFILTER_XT_MATCH_BPF is not set
    # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
    # CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
    CONFIG_NETFILTER_XT_MATCH_COMMENT=y
    # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
    # CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
    CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
    CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
    CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
    # CONFIG_NETFILTER_XT_MATCH_CPU is not set
    # CONFIG_NETFILTER_XT_MATCH_DCCP is not set
    # CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
    # CONFIG_NETFILTER_XT_MATCH_DSCP is not set
    CONFIG_NETFILTER_XT_MATCH_ECN=y
    # CONFIG_NETFILTER_XT_MATCH_ESP is not set
    CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
    CONFIG_NETFILTER_XT_MATCH_HELPER=y
    CONFIG_NETFILTER_XT_MATCH_HL=y
    # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
    CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
    # CONFIG_NETFILTER_XT_MATCH_L2TP is not set
    CONFIG_NETFILTER_XT_MATCH_LENGTH=y
    CONFIG_NETFILTER_XT_MATCH_LIMIT=y
    CONFIG_NETFILTER_XT_MATCH_MAC=y
    CONFIG_NETFILTER_XT_MATCH_MARK=y
    # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
    # CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
    # CONFIG_NETFILTER_XT_MATCH_OSF is not set
    # CONFIG_NETFILTER_XT_MATCH_OWNER is not set
    CONFIG_NETFILTER_XT_MATCH_POLICY=y
    CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
    CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
    CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
    # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
    # CONFIG_NETFILTER_XT_MATCH_REALM is not set
    # CONFIG_NETFILTER_XT_MATCH_RECENT is not set
    # CONFIG_NETFILTER_XT_MATCH_SCTP is not set
    CONFIG_NETFILTER_XT_MATCH_SOCKET=y
    CONFIG_NETFILTER_XT_MATCH_STATE=y
    CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
    CONFIG_NETFILTER_XT_MATCH_STRING=y
    # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
    CONFIG_NETFILTER_XT_MATCH_TIME=y
    CONFIG_NETFILTER_XT_MATCH_U32=y
    # CONFIG_IP_SET is not set
    # CONFIG_IP_VS is not set
    
    #
    # IP: Netfilter Configuration
    #
    CONFIG_NF_DEFRAG_IPV4=y
    CONFIG_NF_CONNTRACK_IPV4=y
    # CONFIG_NF_DUP_IPV4 is not set
    # CONFIG_NF_LOG_ARP is not set
    # CONFIG_NF_LOG_IPV4 is not set
    CONFIG_NF_REJECT_IPV4=y
    CONFIG_NF_NAT_IPV4=y
    CONFIG_NF_NAT_MASQUERADE_IPV4=y
    CONFIG_NF_NAT_PROTO_GRE=y
    CONFIG_NF_NAT_PPTP=y
    CONFIG_NF_NAT_H323=y
    CONFIG_IP_NF_IPTABLES=y
    CONFIG_IP_NF_MATCH_AH=y
    CONFIG_IP_NF_MATCH_ECN=y
    # CONFIG_IP_NF_MATCH_RPFILTER is not set
    CONFIG_IP_NF_MATCH_TTL=y
    CONFIG_IP_NF_FILTER=y
    CONFIG_IP_NF_TARGET_REJECT=y
    # CONFIG_IP_NF_TARGET_SYNPROXY is not set
    CONFIG_IP_NF_NAT=y
    CONFIG_IP_NF_TARGET_MASQUERADE=y
    CONFIG_IP_NF_TARGET_NETMAP=y
    CONFIG_IP_NF_TARGET_REDIRECT=y
    CONFIG_IP_NF_MANGLE=y
    # CONFIG_IP_NF_TARGET_CLUSTERIP is not set
    # CONFIG_IP_NF_TARGET_ECN is not set
    # CONFIG_IP_NF_TARGET_TTL is not set
    CONFIG_IP_NF_RAW=y
    CONFIG_IP_NF_SECURITY=y
    CONFIG_IP_NF_ARPTABLES=y
    CONFIG_IP_NF_ARPFILTER=y
    CONFIG_IP_NF_ARP_MANGLE=y
    
    #
    # IPv6: Netfilter Configuration
    #
    CONFIG_NF_DEFRAG_IPV6=y
    CONFIG_NF_CONNTRACK_IPV6=y
    # CONFIG_NF_DUP_IPV6 is not set
    CONFIG_NF_REJECT_IPV6=y
    # CONFIG_NF_LOG_IPV6 is not set
    # CONFIG_NF_NAT_IPV6 is not set
    CONFIG_IP6_NF_IPTABLES=y
    # CONFIG_IP6_NF_MATCH_AH is not set
    # CONFIG_IP6_NF_MATCH_EUI64 is not set
    # CONFIG_IP6_NF_MATCH_FRAG is not set
    # CONFIG_IP6_NF_MATCH_OPTS is not set
    # CONFIG_IP6_NF_MATCH_HL is not set
    # CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
    # CONFIG_IP6_NF_MATCH_MH is not set
    CONFIG_IP6_NF_MATCH_RPFILTER=y
    # CONFIG_IP6_NF_MATCH_RT is not set
    # CONFIG_IP6_NF_TARGET_HL is not set
    CONFIG_IP6_NF_FILTER=y
    CONFIG_IP6_NF_TARGET_REJECT=y
    # CONFIG_IP6_NF_TARGET_SYNPROXY is not set
    CONFIG_IP6_NF_MANGLE=y
    CONFIG_IP6_NF_RAW=y
    # CONFIG_IP6_NF_SECURITY is not set
    # CONFIG_IP6_NF_NAT is not set
    # CONFIG_IP_DCCP is not set
    # CONFIG_IP_SCTP is not set
    # CONFIG_RDS is not set
    # CONFIG_TIPC is not set
    # CONFIG_ATM is not set
    # CONFIG_L2TP is not set
    # CONFIG_BRIDGE is not set
    CONFIG_HAVE_NET_DSA=y
    # CONFIG_VLAN_8021Q is not set
    # CONFIG_DECNET is not set
    # CONFIG_LLC2 is not set
    # CONFIG_IPX is not set
    # CONFIG_ATALK is not set
    # CONFIG_X25 is not set
    # CONFIG_LAPB is not set
    # CONFIG_PHONET is not set
    # CONFIG_6LOWPAN is not set
    # CONFIG_IEEE802154 is not set
    CONFIG_NET_SCHED=y
    
    #
    # Queueing/Scheduling
    #
    # CONFIG_NET_SCH_CBQ is not set
    CONFIG_NET_SCH_HTB=y
    # CONFIG_NET_SCH_HFSC is not set
    # CONFIG_NET_SCH_PRIO is not set
    # CONFIG_NET_SCH_MULTIQ is not set
    # CONFIG_NET_SCH_RED is not set
    # CONFIG_NET_SCH_SFB is not set
    # CONFIG_NET_SCH_SFQ is not set
    # CONFIG_NET_SCH_TEQL is not set
    # CONFIG_NET_SCH_TBF is not set
    # CONFIG_NET_SCH_GRED is not set
    # CONFIG_NET_SCH_DSMARK is not set
    # CONFIG_NET_SCH_NETEM is not set
    # CONFIG_NET_SCH_DRR is not set
    # CONFIG_NET_SCH_MQPRIO is not set
    # CONFIG_NET_SCH_CHOKE is not set
    # CONFIG_NET_SCH_QFQ is not set
    # CONFIG_NET_SCH_CODEL is not set
    # CONFIG_NET_SCH_FQ_CODEL is not set
    # CONFIG_NET_SCH_FQ is not set
    # CONFIG_NET_SCH_HHF is not set
    # CONFIG_NET_SCH_PIE is not set
    # CONFIG_NET_SCH_INGRESS is not set
    # CONFIG_NET_SCH_PLUG is not set
    
    #
    # Classification
    #
    CONFIG_NET_CLS=y
    # CONFIG_NET_CLS_BASIC is not set
    # CONFIG_NET_CLS_TCINDEX is not set
    # CONFIG_NET_CLS_ROUTE4 is not set
    # CONFIG_NET_CLS_FW is not set
    CONFIG_NET_CLS_U32=y
    # CONFIG_CLS_U32_PERF is not set
    # CONFIG_CLS_U32_MARK is not set
    # CONFIG_NET_CLS_RSVP is not set
    # CONFIG_NET_CLS_RSVP6 is not set
    # CONFIG_NET_CLS_FLOW is not set
    # CONFIG_NET_CLS_CGROUP is not set
    # CONFIG_NET_CLS_BPF is not set
    # CONFIG_NET_CLS_FLOWER is not set
    # CONFIG_NET_CLS_MATCHALL is not set
    CONFIG_NET_EMATCH=y
    CONFIG_NET_EMATCH_STACK=32
    # CONFIG_NET_EMATCH_CMP is not set
    # CONFIG_NET_EMATCH_NBYTE is not set
    CONFIG_NET_EMATCH_U32=y
    # CONFIG_NET_EMATCH_META is not set
    # CONFIG_NET_EMATCH_TEXT is not set
    CONFIG_NET_CLS_ACT=y
    # CONFIG_NET_ACT_POLICE is not set
    # CONFIG_NET_ACT_GACT is not set
    # CONFIG_NET_ACT_MIRRED is not set
    # CONFIG_NET_ACT_IPT is not set
    # CONFIG_NET_ACT_NAT is not set
    # CONFIG_NET_ACT_PEDIT is not set
    # CONFIG_NET_ACT_SIMP is not set
    # CONFIG_NET_ACT_SKBEDIT is not set
    # CONFIG_NET_ACT_CSUM is not set
    # CONFIG_NET_ACT_VLAN is not set
    # CONFIG_NET_ACT_BPF is not set
    # CONFIG_NET_ACT_CONNMARK is not set
    # CONFIG_NET_ACT_SKBMOD is not set
    # CONFIG_NET_ACT_IFE is not set
    # CONFIG_NET_ACT_TUNNEL_KEY is not set
    # CONFIG_NET_CLS_IND is not set
    CONFIG_NET_SCH_FIFO=y
    # CONFIG_DCB is not set
    CONFIG_DNS_RESOLVER=y
    # CONFIG_BATMAN_ADV is not set
    # CONFIG_OPENVSWITCH is not set
    # CONFIG_VSOCKETS is not set
    # CONFIG_NETLINK_DIAG is not set
    # CONFIG_MPLS is not set
    # CONFIG_HSR is not set
    # CONFIG_NET_SWITCHDEV is not set
    # CONFIG_NET_L3_MASTER_DEV is not set
    # CONFIG_NET_NCSI is not set
    CONFIG_RPS=y
    CONFIG_RFS_ACCEL=y
    CONFIG_XPS=y
    # CONFIG_CGROUP_NET_PRIO is not set
    # CONFIG_CGROUP_NET_CLASSID is not set
    CONFIG_NET_RX_BUSY_POLL=y
    CONFIG_BQL=y
    # CONFIG_BPF_JIT is not set
    CONFIG_NET_FLOW_LIMIT=y
    
    #
    # Network testing
    #
    # CONFIG_NET_PKTGEN is not set
    # CONFIG_NET_DROP_MONITOR is not set
    # CONFIG_HAMRADIO is not set
    # CONFIG_CAN is not set
    # CONFIG_IRDA is not set
    # CONFIG_BT is not set
    # CONFIG_AF_RXRPC is not set
    # CONFIG_AF_KCM is not set
    # CONFIG_STREAM_PARSER is not set
    CONFIG_FIB_RULES=y
    CONFIG_WIRELESS=y
    # CONFIG_CFG80211 is not set
    # CONFIG_LIB80211 is not set
    
    #
    # CFG80211 needs to be enabled for MAC80211
    #
    CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
    # CONFIG_WIMAX is not set
    # CONFIG_RFKILL is not set
    # CONFIG_RFKILL_REGULATOR is not set
    # CONFIG_NET_9P is not set
    # CONFIG_CAIF is not set
    # CONFIG_CEPH_LIB is not set
    # CONFIG_NFC is not set
    # CONFIG_LWTUNNEL is not set
    CONFIG_DST_CACHE=y
    # CONFIG_NET_DEVLINK is not set
    CONFIG_MAY_USE_DEVLINK=y
    CONFIG_HAVE_EBPF_JIT=y
    
    #
    # Device Drivers
    #
    CONFIG_ARM_AMBA=y
    
    #
    # Generic Driver Options
    #
    CONFIG_UEVENT_HELPER=y
    CONFIG_UEVENT_HELPER_PATH=""
    # CONFIG_DEVTMPFS is not set
    CONFIG_STANDALONE=y
    CONFIG_PREVENT_FIRMWARE_BUILD=y
    CONFIG_FW_LOADER=y
    CONFIG_FIRMWARE_IN_KERNEL=y
    CONFIG_EXTRA_FIRMWARE=""
    # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
    CONFIG_ALLOW_DEV_COREDUMP=y
    # CONFIG_DEBUG_DRIVER is not set
    # CONFIG_DEBUG_DEVRES is not set
    # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
    # CONFIG_SYS_HYPERVISOR is not set
    # CONFIG_GENERIC_CPU_DEVICES is not set
    CONFIG_GENERIC_CPU_AUTOPROBE=y
    CONFIG_REGMAP=y
    CONFIG_REGMAP_I2C=y
    CONFIG_REGMAP_MMIO=y
    CONFIG_DMA_SHARED_BUFFER=y
    # CONFIG_FENCE_TRACE is not set
    CONFIG_DMA_CMA=y
    
    #
    # Default contiguous memory area size:
    #
    CONFIG_CMA_SIZE_MBYTES=96
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
    # CONFIG_CMA_SIZE_SEL_MIN is not set
    # CONFIG_CMA_SIZE_SEL_MAX is not set
    CONFIG_CMA_ALIGNMENT=8
    
    #
    # Bus devices
    #
    # CONFIG_ARM_CCI400_PMU is not set
    # CONFIG_ARM_CCI5xx_PMU is not set
    # CONFIG_ARM_CCN is not set
    CONFIG_VEXPRESS_CONFIG=y
    CONFIG_CONNECTOR=y
    CONFIG_PROC_EVENTS=y
    CONFIG_MTD=y
    # CONFIG_MTD_TESTS is not set
    # CONFIG_MTD_REDBOOT_PARTS is not set
    CONFIG_MTD_CMDLINE_PARTS=y
    # CONFIG_MTD_AFS_PARTS is not set
    CONFIG_MTD_OF_PARTS=y
    # CONFIG_MTD_AR7_PARTS is not set
    
    #
    # User Modules And Translation Layers
    #
    CONFIG_MTD_BLKDEVS=y
    CONFIG_MTD_BLOCK=y
    # CONFIG_FTL is not set
    # CONFIG_NFTL is not set
    # CONFIG_INFTL is not set
    # CONFIG_RFD_FTL is not set
    # CONFIG_SSFDC is not set
    # CONFIG_SM_FTL is not set
    CONFIG_MTD_OOPS=y
    # CONFIG_MTD_SWAP is not set
    # CONFIG_MTD_PARTITIONED_MASTER is not set
    
    #
    # RAM/ROM/Flash chip drivers
    #
    CONFIG_MTD_CFI=y
    # CONFIG_MTD_JEDECPROBE is not set
    CONFIG_MTD_GEN_PROBE=y
    # CONFIG_MTD_CFI_ADV_OPTIONS is not set
    CONFIG_MTD_MAP_BANK_WIDTH_1=y
    CONFIG_MTD_MAP_BANK_WIDTH_2=y
    CONFIG_MTD_MAP_BANK_WIDTH_4=y
    # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
    # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
    # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
    CONFIG_MTD_CFI_I1=y
    CONFIG_MTD_CFI_I2=y
    # CONFIG_MTD_CFI_I4 is not set
    # CONFIG_MTD_CFI_I8 is not set
    CONFIG_MTD_CFI_INTELEXT=y
    # CONFIG_MTD_CFI_AMDSTD is not set
    # CONFIG_MTD_CFI_STAA is not set
    CONFIG_MTD_CFI_UTIL=y
    # CONFIG_MTD_RAM is not set
    # CONFIG_MTD_ROM is not set
    # CONFIG_MTD_ABSENT is not set
    
    #
    # Mapping drivers for chip access
    #
    # CONFIG_MTD_COMPLEX_MAPPINGS is not set
    # CONFIG_MTD_PHYSMAP is not set
    # CONFIG_MTD_PHYSMAP_OF is not set
    # CONFIG_MTD_INTEL_VR_NOR is not set
    # CONFIG_MTD_PLATRAM is not set
    
    #
    # Self-contained MTD device drivers
    #
    # CONFIG_MTD_PMC551 is not set
    # CONFIG_MTD_SLRAM is not set
    # CONFIG_MTD_PHRAM is not set
    # CONFIG_MTD_MTDRAM is not set
    # CONFIG_MTD_BLOCK2MTD is not set
    
    #
    # Disk-On-Chip Device Drivers
    #
    # CONFIG_MTD_DOCG3 is not set
    CONFIG_MTD_NAND_IDS=y
    CONFIG_MTD_NAND_ECC=y
    # CONFIG_MTD_NAND_ECC_SMC is not set
    CONFIG_MTD_NAND=y
    # CONFIG_MTD_NAND_ECC_BCH is not set
    # CONFIG_MTD_SM_COMMON is not set
    # CONFIG_MTD_NAND_DENALI_PCI is not set
    # CONFIG_MTD_NAND_DENALI_DT is not set
    # CONFIG_MTD_NAND_GPIO is not set
    # CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
    # CONFIG_MTD_NAND_RICOH is not set
    # CONFIG_MTD_NAND_DISKONCHIP is not set
    # CONFIG_MTD_NAND_DOCG4 is not set
    # CONFIG_MTD_NAND_CAFE is not set
    # CONFIG_MTD_NAND_NANDSIM is not set
    # CONFIG_MTD_NAND_BRCMNAND is not set
    # CONFIG_MTD_NAND_PLATFORM is not set
    # CONFIG_MTD_NAND_HISI504 is not set
    # CONFIG_MTD_NAND_MTK is not set
    # CONFIG_MTD_ONENAND is not set
    

    NOTE: The code was really big, I had to trim it.

    It seems to me that this options are enabled (lines 199 and 208), but I want to know either way what I was doing wrong. 

Children
No data