summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-08 22:50:30 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-08 22:50:30 +0200
commit56fadd5827f95396b1237dfe628e2b8a3d28dd00 (patch)
treea1bcdf8f990f18fb0222d215522a99176719c4eb
downloadmeta-enea-56fadd5827f95396b1237dfe628e2b8a3d28dd00.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-rw-r--r--.gitignore1
-rw-r--r--README38
-rw-r--r--conf/conf-notes.txt7
-rw-r--r--conf/distro/enea-cgl.conf30
-rw-r--r--conf/distro/enea.conf28
-rw-r--r--conf/layer.conf12
-rw-r--r--conf/machine/include/arch-armv8.inc20
-rw-r--r--conf/machine/p2020rdb-prt.conf20
-rw-r--r--conf/machine/proliant-m400.conf23
-rw-r--r--images/enea-image-base.bb5
-rw-r--r--images/enea-image-common.inc11
-rw-r--r--images/enea-image-demo.bb80
-rw-r--r--images/enea-image-featured.bb76
-rw-r--r--images/enea-image-minimal.bb32
-rw-r--r--images/enea-image-test-bash.bb26
-rw-r--r--images/enea-image-test-busybox.bb12
-rw-r--r--recipes-append/busybox/busybox_1.22.1.bbappend19
-rw-r--r--recipes-append/hv-cfg/hv-cfg_git.bbappend2
-rw-r--r--recipes-append/ltp/ltp_20140422.bbappend3
-rw-r--r--recipes-append/oprofile/files/oprofile-e500mc.patch2095
-rw-r--r--recipes-append/oprofile/oprofile_0.9.8.bbappend3
-rw-r--r--recipes-append/perf/perf.bbappend4
-rw-r--r--recipes-bsp/libuio/libuio/run-ptest3
-rw-r--r--recipes-bsp/libuio/libuio_git.bb31
-rw-r--r--recipes-bsp/rtl8168/files/r8168-8.031.00.tar.bz2bin0 -> 68024 bytes
-rw-r--r--recipes-bsp/rtl8168/rtl8168_8.031.00.bb35
-rw-r--r--recipes-connectivity/connman/connman_1.25.bbappend5
-rw-r--r--recipes-connectivity/connman/files/0001-added-noipconfig-option.patch353
-rw-r--r--recipes-connectivity/connman/files/connman83
-rw-r--r--recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend1
-rw-r--r--recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend1
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-bench.bb14
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-core-boot.bb65
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-ddt.bb22
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-debug.bb35
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-ptest.bb118
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-rt-tools.bb13
-rw-r--r--recipes-core/packagegroups/packagegroup-enea-sys.bb18
-rw-r--r--recipes-core/sysvinit/sysvinit_2.88dsf.bbappend3
-rw-r--r--recipes-devtools/binutils/binutils-2.24.inc6
-rw-r--r--recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend1
-rw-r--r--recipes-devtools/binutils/binutils-cross_2.24.bbappend1
-rw-r--r--recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend1
-rw-r--r--recipes-devtools/binutils/binutils_2.24.bbappend1
-rw-r--r--recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch1087
-rw-r--r--recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend1
-rw-r--r--recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch48
-rw-r--r--recipes-devtools/valgrind/valgrind_3.9.0.bbappend30
-rw-r--r--recipes-enea/count-ticks/count-ticks/run-ptest23
-rw-r--r--recipes-enea/count-ticks/count-ticks_1.1.bb25
-rw-r--r--recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch22
-rw-r--r--recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch29
-rw-r--r--recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch38
-rw-r--r--recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch288
-rw-r--r--recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch206
-rw-r--r--recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch24
-rw-r--r--recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch60
-rw-r--r--recipes-enea/linx/linx-mod_2.6.6.bb34
-rw-r--r--recipes-enea/linx/linx.inc23
-rw-r--r--recipes-enea/linx/linx_2.6.6.bb6
-rw-r--r--recipes-enea/list2mask/list2mask/run-ptest15
-rw-r--r--recipes-enea/list2mask/list2mask_1.0.bb25
-rw-r--r--recipes-enea/partrt/partrt/run-ptest9
-rw-r--r--recipes-enea/partrt/partrt_1.1.bb30
-rw-r--r--recipes-kernel/linux/files/0001-net-fib-fib6_add-fix-potential-NULL-pointer-derefere.patch52
-rw-r--r--recipes-kernel/linux/files/0001-sdhci-fix-Timeout-error-messages.patch39
-rw-r--r--recipes-kernel/linux/files/Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch13
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch80
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch107
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch59
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0004-HID-sony-validate-HID-output-report-details.patch43
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch43
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch47
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch195
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch48
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch63
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch41
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch86
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch37
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch49
-rw-r--r--recipes-kernel/linux/files/HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch36
-rw-r--r--recipes-kernel/linux/files/arm_arch_timer-Keystone-2-architected-timer-frequenc.patch55
-rw-r--r--recipes-kernel/linux/files/b4860-hard_irq_disable-bug.patch24
-rw-r--r--recipes-kernel/linux/files/cfg/00001-embedded.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00002-root_nfs.cfg7
-rw-r--r--recipes-kernel/linux/files/cfg/00003-fuse.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00004-systemtap.cfg6
-rw-r--r--recipes-kernel/linux/files/cfg/00005-pramfs.cfg4
-rw-r--r--recipes-kernel/linux/files/cfg/00006-with_modules.cfg5
-rw-r--r--recipes-kernel/linux/files/cfg/00007-oprofile.cfg4
-rw-r--r--recipes-kernel/linux/files/cfg/00008-uio_m.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg6
-rw-r--r--recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg5
-rw-r--r--recipes-kernel/linux/files/cfg/00012-preempt.cfg9
-rw-r--r--recipes-kernel/linux/files/cfg/00013-localversion.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00014-kgdb.cfg9
-rw-r--r--recipes-kernel/linux/files/cfg/00015-uio.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg7
-rw-r--r--recipes-kernel/linux/files/cfg/00018-rt.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00019-i2c.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00021-bootlogd.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00023-ikconfig.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg8
-rw-r--r--recipes-kernel/linux/files/cfg/00025-powertop.cfg13
-rw-r--r--recipes-kernel/linux/files/cfg/00026-ltp.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00027-lttng.cfg20
-rw-r--r--recipes-kernel/linux/files/cfg/00028-perf.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00030-latencytop.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00031-igb_drv.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00032-dpa.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00033-kprobes.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00034-cpusets.cfg3
-rw-r--r--recipes-kernel/linux/files/cfg/00035-netfilter.cfg113
-rw-r--r--recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg5
-rw-r--r--recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg30
-rw-r--r--recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00039-nohz.cfg9
-rw-r--r--recipes-kernel/linux/files/cfg/00040-9p.cfg5
-rw-r--r--recipes-kernel/linux/files/cfg/00041-virtio.cfg8
-rw-r--r--recipes-kernel/linux/files/cfg/00042-vhost.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00043-containers.cfg18
-rw-r--r--recipes-kernel/linux/files/cfg/00044-numa.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00045-pci-stub.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00046-sata.cfg5
-rw-r--r--recipes-kernel/linux/files/cfg/00047-bridge.cfg1
-rw-r--r--recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg18
-rw-r--r--recipes-kernel/linux/files/cfg/00049-gpio.cfg2
-rw-r--r--recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg7
-rw-r--r--recipes-kernel/linux/files/cfg/README9
-rwxr-xr-xrecipes-kernel/linux/files/cfg/indexcfgs.pl167
-rw-r--r--recipes-kernel/linux/files/disable_hw_checksum_offload.patch19
-rw-r--r--recipes-kernel/linux/files/fix_for_CVE-2013-2094.patch36
-rwxr-xr-xrecipes-kernel/linux/files/merge_config.sh142
-rw-r--r--recipes-kernel/linux/files/powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch19
-rw-r--r--recipes-kernel/linux/files/pramfs-1.5.1-3.12.tar.gzbin0 -> 72817 bytes
-rw-r--r--recipes-kernel/linux/kernel-configure.inc49
-rw-r--r--recipes-kernel/linux/linux-boundary_3.10.17.bbappend31
-rw-r--r--recipes-kernel/linux/linux-enea.inc8
-rw-r--r--recipes-kernel/linux/linux-keystone_3.10.bbappend50
-rw-r--r--recipes-kernel/linux/linux-proliant-m400.bb97
-rw-r--r--recipes-kernel/linux/linux-proliant-m400/defconfig1
-rw-r--r--recipes-kernel/linux/linux-proliant-m400/hpconfig5548
-rw-r--r--recipes-kernel/linux/linux-proliant-m400/proliant-m400.dts775
-rw-r--r--recipes-kernel/linux/linux-qoriq-cgl-prt_3.12.bbappend1
-rw-r--r--recipes-kernel/linux/linux-qoriq-common.inc57
-rw-r--r--recipes-kernel/linux/linux-qoriq-prt_3.12.bbappend1
-rw-r--r--recipes-kernel/linux/linux-qoriq_3.12.bbappend1
-rw-r--r--recipes-kernel/linux/linux-xlnx_3.8.bbappend23
-rw-r--r--recipes-kernel/linux/linux-yocto_3.10.bbappend9
-rw-r--r--recipes-kernel/linux/linux-yocto_3.14.bbappend4
-rw-r--r--recipes-kernel/linux/linux-yocto_3.8.bbappend21
-rw-r--r--recipes-kernel/linux/pramfs-3.12.inc21
-rwxr-xr-xrecipes-kernel/linux/scripts/proliant-m400-setup.sh8
-rw-r--r--recipes-kernel/linux/staging-kernel.inc133
-rw-r--r--recipes-kernel/pramfs-init/files/pramfs_init80
-rw-r--r--recipes-kernel/pramfs-init/pramfs-init_1.0.bb20
-rw-r--r--recipes-test/benchtest-runner/benchtest-runner.bb23
-rw-r--r--recipes-test/benchtest-runner/files/benchtest-runner24
-rw-r--r--recipes-test/ddt-runner/ddt-runner.bb25
-rw-r--r--recipes-test/ddt-runner/files/ddt-runner51
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/acp3448v2/ethernet97
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/acp3448v2/flash45
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/acp3448v2/pci-express109
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/acp3448v2/usb100
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/b4860qds-64b/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/b4860qds-64b/flash20
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/b4860qds-64b/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/b4860qds-64b/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/b4860qds-64b/spi48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/ethernet89
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/flash48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/i2c75
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/preempt_rt33
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/spi56
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9131rdb/watchdog64
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/ethernet89
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/flash48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/i2c75
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/preempt_rt33
-rw-r--r--recipes-test/ddt-runner/files/scripts/bsc9132qds/sdhc77
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/spi56
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/bsc9132qds/watchdog64
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/flash49
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/i2c42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/pci-express109
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/sata81
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/sdhc40
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/spi48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/usb48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/imx6qsabrelite/watchdog63
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/k2hk-evm/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/k2hk-evm/flash49
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/k2hk-evm/i2c42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/k2hk-evm/spi48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2020rdb/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2020rdb/flash20
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2020rdb/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2020rdb/spi48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2020rdb/usb100
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/ethernet111
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/flash49
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/i2c44
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/pci-express109
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/sata81
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/sdhc41
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/tempsensors60
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p2041rdb/usb48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/ethernet111
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/flash47
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/i2c42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/pci-express109
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/sata80
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/sdhc40
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p3041ds/usb48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/flash20
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/sdhc65
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/spi48
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/p4080ds/usb100
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/pandaboard/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/pandaboard/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/pandaboard/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/pandaboard/sdhc65
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/pandaboard/usb100
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/proliant-m800/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/proliant-m800/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/proliant-m800/sata81
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/romley-ivb/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/romley-ivb/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/romley-ivb/sata81
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/romley-ivb/usb100
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/ethernet88
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/flash20
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/i2c24
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/rtc42
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/sdhc65
-rwxr-xr-xrecipes-test/ddt-runner/files/scripts/zc702-zynq7/spi48
-rwxr-xr-xrecipes-test/perf-networking/files/perf-networking14
-rw-r--r--recipes-test/perf-networking/perf-networking_1.0.bb19
-rw-r--r--recipes-test/rt-bmark/rt-bmark.bb23
-rw-r--r--recipes-test/stress/files/stress-itemx-after-item-only.patch55
-rw-r--r--recipes-test/stress/stress_1.0.4.bb13
-rw-r--r--recipes-test/systest-runner/files/systest-runner30
-rwxr-xr-xrecipes-test/systest-runner/files/tests/ltp23
-rwxr-xr-xrecipes-test/systest-runner/files/tests/perf-network13
-rwxr-xr-xrecipes-test/systest-runner/files/tests/posixtest40
-rw-r--r--recipes-test/systest-runner/systest-runner.bb29
254 files changed, 19588 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e4e5f6c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
*~ \ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..e272ba1
--- /dev/null
+++ b/README
@@ -0,0 +1,38 @@
1OpenEmbedded/Yocto BSP layer for Enea Linux reconfigurable platforms
2====================================================================
3
4This layer provides support for Enea Linux reconfigurable platforms
5to use with OpenEmbedded and/or Yocto.
6
7Dependencies
8------------
9This layer depends on:
10 URI: git://git.enea.com/linux/poky
11 branch: daisy
12
13 URI: git://git.enea.com/linux/meta-openembedded
14 branch: daisy
15 layers: meta-filesystems
16
17Source code
18-----------
19
20git://git.enea.com/linux/meta-enea.git
21
22Maintenance
23-----------
24
25Maintainers: Enea Linux Team <linux-maintainers@enea.com>
26
27Contributing
28------------
29
30Contributions and patches can be sent to the Enea Linux mailing
31list: enealinux@lists.enea.com
32
33License
34-------
35
36All metadata is MIT licensed unless otherwise stated. Source code
37included in tree for individual recipes is under the LICENSE stated
38in each recipe (.bb file) unless otherwise stated.
diff --git a/conf/conf-notes.txt b/conf/conf-notes.txt
new file mode 100644
index 0000000..55281bd
--- /dev/null
+++ b/conf/conf-notes.txt
@@ -0,0 +1,7 @@
1Common targets are:
2 enea-image-minimal
3 enea-image-demo
4 meta-toolchain
5
6You can also run generated qemu images with a command like 'runqemu qemuppc'
7
diff --git a/conf/distro/enea-cgl.conf b/conf/distro/enea-cgl.conf
new file mode 100644
index 0000000..cbfba31
--- /dev/null
+++ b/conf/distro/enea-cgl.conf
@@ -0,0 +1,30 @@
1require conf/distro/poky-lsb.conf
2DISTRO = "enea-cgl"
3DISTRO_NAME = "Enea Linux"
4DISTRO_VERSION_MAJOR = "5.0"
5DISTRO_VERSION_MINOR ??= ""
6DISTRO_VERSION = "${DISTRO_VERSION_MAJOR}${DISTRO_VERSION_MINOR}"
7
8
9SDK_VENDOR = "-eneasdk"
10SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
11
12MAINTAINER = "ENEA <linux-maintainers@enea.com>"
13
14TARGET_VENDOR = "-enea"
15
16PRSERV_HOST ?= "localhost:0"
17
18SANITY_TESTED_DISTROS += "\
19 CentOS-6.1 \n \
20 RedHatEnterpriseServer-6.1 \n \
21 RedHatEnterpriseServer-6.4 \n \
22 Ubuntu-12.10 \n \
23 "
24
25CONNECTIVITY_CHECK_URIS = " \
26 http://linux.enea.com"
27
28BB_DANGLINGAPPENDS_WARNONLY ?= "1"
29
30DISTRO_FEATURES_append = " pam selinux"
diff --git a/conf/distro/enea.conf b/conf/distro/enea.conf
new file mode 100644
index 0000000..da5ddd5
--- /dev/null
+++ b/conf/distro/enea.conf
@@ -0,0 +1,28 @@
1require conf/distro/poky.conf
2DISTRO = "enea"
3DISTRO_NAME = "Enea Linux"
4DISTRO_VERSION_MAJOR = "5.0"
5DISTRO_VERSION_MINOR ??= ""
6DISTRO_VERSION = "${DISTRO_VERSION_MAJOR}${DISTRO_VERSION_MINOR}"
7
8
9SDK_VENDOR = "-eneasdk"
10SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
11
12MAINTAINER = "ENEA <linux-maintainers@enea.com>"
13
14TARGET_VENDOR = "-enea"
15
16PRSERV_HOST ?= "localhost:0"
17
18SANITY_TESTED_DISTROS += "\
19 CentOS-6.1 \n \
20 RedHatEnterpriseServer-6.1 \n \
21 RedHatEnterpriseServer-6.4 \n \
22 Ubuntu-12.10 \n \
23 "
24
25CONNECTIVITY_CHECK_URIS = " \
26 http://linux.enea.com"
27
28BB_DANGLINGAPPENDS_WARNONLY ?= "1"
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..bfd4ef2
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,12 @@
1# We have a packages directory, add to BBFILES
2BBPATH .= ":${LAYERDIR}"
3
4BBFILES += "${LAYERDIR}/recipes-*/*/*.bb*"
5BBFILES += "${LAYERDIR}/images/*.bb*"
6
7BBFILE_COLLECTIONS += "enea"
8BBFILE_PATTERN_enea := "^${LAYERDIR}/"
9BBFILE_PRIORITY_enea = "6"
10
11BB_ENV_EXTRAWHITE := "KSRC USRC"
12BB_DANGLINGAPPENDS_WARNONLY = "yes"
diff --git a/conf/machine/include/arch-armv8.inc b/conf/machine/include/arch-armv8.inc
new file mode 100644
index 0000000..c86142a
--- /dev/null
+++ b/conf/machine/include/arch-armv8.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "aarch64"
2
3ARMPKGARCH ?= "aarch64"
4
5TUNEVALID[aarch64] = "Enable instructions for aarch64"
6TUNEVALID[bigendian] = "Enable big-endian mode."
7TUNECONFLICTS[aarch64] = ""
8MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
9
10# Little Endian base configs
11AVAILTUNES += "aarch64 aarch64_be"
12TUNE_FEATURES_tune-aarch64 ?= "aarch64"
13TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
14
15ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
16
17TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
18TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
19
20PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
diff --git a/conf/machine/p2020rdb-prt.conf b/conf/machine/p2020rdb-prt.conf
new file mode 100644
index 0000000..b870ec2
--- /dev/null
+++ b/conf/machine/p2020rdb-prt.conf
@@ -0,0 +1,20 @@
1#@TYPE: Machine
2#@Name: Freescale P2020RDB
3#@DESCRIPTION: Machine configuration for the Freescale P2020RDB with Preempt-RT enabled
4
5require conf/machine/e500v2.inc
6require conf/machine/include/soc-family.inc
7
8SOC_FAMILY = "p2020"
9BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
10UBOOT_MACHINES ?= " P2020RDB-PC P2020RDB-PC_NAND P2020RDB-PC_SDCARD P2020RDB-PC_SPIFLASH P2020RDB-PC_36BIT P2020RDB-PC_36BIT_SPIFLASH P2020RDB-PC_36BIT_NAND P2020RDB-PC_36BIT_SDCARD"
11KERNEL_DEVICETREE ?= "p2020rdb-pc_32b.dtb"
12KERNEL_DEFCONFIG ?= "${S}/arch/powerpc/configs/mpc85xx_smp_defconfig"
13
14PREFERRED_PROVIDER_virtual/kernel = "linux-qoriq-prt"
15
16JFFS2_ERASEBLOCK = "0x20000"
17
18SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
19SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
20USE_VT = "0"
diff --git a/conf/machine/proliant-m400.conf b/conf/machine/proliant-m400.conf
new file mode 100644
index 0000000..f9a2170
--- /dev/null
+++ b/conf/machine/proliant-m400.conf
@@ -0,0 +1,23 @@
1#@TYPE: Machine
2#@NAME: Moonshot ProLiant m400
3#@DESCRIPTION: Machine configuration for HP Proliant m400
4
5require conf/machine/include/arch-armv8.inc
6
7PREFERRED_PROVIDER_virtual/kernel ?= "linux-proliant-m400"
8
9UBOOT_ENTRYPOINT = "0x00080000"
10UBOOT_LOADADDRESS = "0x00080000"
11
12MACHINE_FEATURES = "pci ext2 ext3 serial"
13
14RDEPENDS_kernel-base = "kernel-image"
15
16KERNEL_IMAGETYPE = "Image"
17
18SERIAL_CONSOLES = "115200;ttyS0 115200;ttyAMA0"
19
20# we do not want to have getty running since we do not have a
21# graphical display attached and therefore do not need virtual
22# terminal functionality
23USE_VT = "0"
diff --git a/images/enea-image-base.bb b/images/enea-image-base.bb
new file mode 100644
index 0000000..41eba70
--- /dev/null
+++ b/images/enea-image-base.bb
@@ -0,0 +1,5 @@
1DESCRIPTION = "console only image that fully suport target HW"
2require enea-image-common.inc
3
4IMAGE_ROOTFS_EXTRA_SPACE = "131072"
5IMAGE_OVERHEAD_FACTOR = "2"
diff --git a/images/enea-image-common.inc b/images/enea-image-common.inc
new file mode 100644
index 0000000..2f063eb
--- /dev/null
+++ b/images/enea-image-common.inc
@@ -0,0 +1,11 @@
1IMAGE_FEATURES += "ssh-server-dropbear package-management"
2
3IMAGE_INSTALL = " \
4 packagegroup-enea-core-boot \
5 "
6
7IMAGE_LINGUAS = ""
8
9LICENSE = "MIT"
10
11inherit core-image
diff --git a/images/enea-image-demo.bb b/images/enea-image-demo.bb
new file mode 100644
index 0000000..cca6647
--- /dev/null
+++ b/images/enea-image-demo.bb
@@ -0,0 +1,80 @@
1# Uncomment for opkg/dpkg/rpm on available on target
2IMAGE_FSTYPES += "ext2.gz.u-boot ext3 tar.gz"
3
4IMAGE_FEATURES += "package-management"
5IMAGE_FEATURES += "eclipse-debug tools-debug tools-profile dbg-pkgs"
6IMAGE_FEATURES += "ssh-server-dropbear"
7
8ENEA_GPL = "linx linx-mod"
9
10ENEA_GPL_qemux86 = ""
11ENEA_GPL_qemuppc = ""
12ENEA_GPL_armv5 = ""
13ENEA_GPL_armv7a = ""
14
15IMAGE_INSTALL = " \
16 packagegroup-enea-core-boot \
17 packagegroup-enea-debug \
18 packagegroup-enea-rt-tools \
19 ${ROOTFS_PKGMANAGE_BOOTSTRAP} \
20 babeltrace \
21 bc \
22 beecrypt \
23 chkconfig \
24 cracklib \
25 curl \
26 dhcp-client \
27 eventlog \
28 file \
29 findutils \
30 freetype \
31 fuse \
32 gawk \
33 gettext \
34 gettext-runtime \
35 gnutls \
36 grep \
37 gzip \
38 icu \
39 insserv \
40 kbd \
41 kexec-tools \
42 libgcrypt \
43 libgpg-error \
44 libtasn1 \
45 libuio \
46 logrotate \
47 lsb \
48 lsbinitscripts \
49 ltp \
50 mingetty \
51 mtd-utils \
52 net-tools \
53 netbase \
54 openssl \
55 ossp-uuid \
56 pciutils \
57 pkgconfig \
58 pramfs-init \
59 procps \
60 psmisc \
61 rpm \
62 sed \
63 sqlite3 \
64 sudo \
65 tar \
66 tipcutils \
67 udev-extraconf \
68 usbutils \
69 zip \
70 ${ENEA_GPL} \
71 "
72
73IMAGE_LINGUAS = ""
74
75inherit core-image
76inherit image_types_uboot
77
78IMAGE_ROOTFS_SIZE = "1"
79# Increased the overhead factor to be able to build via nfs.
80IMAGE_OVERHEAD_FACTOR = "2"
diff --git a/images/enea-image-featured.bb b/images/enea-image-featured.bb
new file mode 100644
index 0000000..2d22237
--- /dev/null
+++ b/images/enea-image-featured.bb
@@ -0,0 +1,76 @@
1DESCRIPTION = "Full featured image with full target support"
2require enea-image-common.inc
3
4IMAGE_FEATURES[validitems] += "read-only-rootfs empty-root-password allow-empty-password post-install-logging "
5
6IMAGE_FEATURES += " \
7 dbg-pkgs \
8 debug-tweaks \
9 dev-pkgs \
10 doc-pkgs \
11 ptest-pkgs \
12 splash \
13 staticdev-pkgs \
14 eclipse-debug \
15 hwcodecs \
16 nfs-server \
17 qt4-pkgs \
18 ssh-server-openssh \
19 tools-debug \
20 tools-profile \
21 tools-sdk \
22 tools-testapps \
23 x11 \
24 x11-base"
25
26IMAGE_INSTALL = " \
27 packagegroup-base \
28 packagegroup-enea-debug \
29 packagegroup-enea-rt-tools \
30 packagegroup-enea-ptest \
31 packagegroup-enea-ddt \
32 packagegroup-enea-sys \
33 packagegroup-enea-bench \
34 ${ROOTFS_PKGMANAGE_BOOTSTRAP} \
35 beecrypt \
36 binutils \
37 chkconfig \
38 cracklib \
39 curl \
40 dhcp-client \
41 eventlog \
42 file \
43 findutils \
44 freetype \
45 fuse \
46 gawk \
47 gcc \
48 gnutls \
49 grep \
50 gzip \
51 icu \
52 insserv \
53 kbd \
54 kernel-modules \
55 libgcrypt \
56 libgpg-error \
57 libtasn1 \
58 lsb \
59 lsbinitscripts \
60 mingetty \
61 openssh \
62 ossp-uuid \
63 perf \
64 pkgconfig \
65 procps \
66 psmisc \
67 rpm \
68 rt-bmark \
69 tar \
70 tipcutils \
71 udev-extraconf \
72 zip \
73 "
74
75IMAGE_ROOTFS_EXTRA_SPACE = "1048576"
76IMAGE_OVERHEAD_FACTOR = "1.5"
diff --git a/images/enea-image-minimal.bb b/images/enea-image-minimal.bb
new file mode 100644
index 0000000..af89d64
--- /dev/null
+++ b/images/enea-image-minimal.bb
@@ -0,0 +1,32 @@
1#
2# Poky specific package kits.
3#
4
5# no need for udev
6VIRTUAL-RUNTIME_dev_manager = ""
7
8
9#
10# Enea Specific Packages
11#
12IMAGE_FEATURES += "ssh-server-dropbear"
13
14IMAGE_INSTALL = " \
15 packagegroup-enea-core-boot \
16 pramfs-init \
17 fuse \
18 "
19
20IMAGE_LINGUAS = ""
21
22LICENSE = "MIT"
23
24inherit core-image
25inherit image_types_uboot
26
27IMAGE_FSTYPES += "ext2.gz.u-boot ext3 tar.gz cpio.gz"
28
29# The bigger of below two will be chosen
30IMAGE_ROOTFS_SIZE = "1"
31# Increased the overhead factor to be able to build via nfs.
32IMAGE_OVERHEAD_FACTOR = "2"
diff --git a/images/enea-image-test-bash.bb b/images/enea-image-test-bash.bb
new file mode 100644
index 0000000..0796c1b
--- /dev/null
+++ b/images/enea-image-test-bash.bb
@@ -0,0 +1,26 @@
1
2IMAGE_FSTYPES += "ext2.gz.u-boot ext3 tar.gz"
3IMAGE_FEATURES += "ptest-pkgs"
4IMAGE_FEATURES += "ssh-server-openssh"
5
6PERF ?= "perf"
7PERF_armv5 ?= ""
8PERF_armv6 ?= ""
9PERF_armv7a ?= ""
10
11IMAGE_INSTALL = " \
12 packagegroup-enea-core-boot \
13 packagegroup-enea-ptest \
14 packagegroup-enea-ddt \
15 packagegroup-enea-sys \
16 packagegroup-enea-bench \
17 packagegroup-enea-rt-tools \
18 openssh \
19 ${PERF}\
20 rt-bmark \
21 kernel-modules \
22 lmsensors-sensors \
23 "
24
25inherit core-image
26inherit image_types_uboot
diff --git a/images/enea-image-test-busybox.bb b/images/enea-image-test-busybox.bb
new file mode 100644
index 0000000..4c371e0
--- /dev/null
+++ b/images/enea-image-test-busybox.bb
@@ -0,0 +1,12 @@
1IMAGE_FSTYPES += "ext2.gz.u-boot ext3 tar.gz"
2IMAGE_FEATURES += "ptest-pkgs"
3IMAGE_FEATURES += "ssh-server-dropbear"
4
5IMAGE_INSTALL = " \
6 packagegroup-enea-core-boot \
7 packagegroup-enea-ptest \
8 packagegroup-enea-sys \
9 "
10
11inherit core-image
12inherit image_types_uboot
diff --git a/recipes-append/busybox/busybox_1.22.1.bbappend b/recipes-append/busybox/busybox_1.22.1.bbappend
new file mode 100644
index 0000000..7b61cf9
--- /dev/null
+++ b/recipes-append/busybox/busybox_1.22.1.bbappend
@@ -0,0 +1,19 @@
1do_prepare_config_append () {
2 sed -i -e 's/# CONFIG_CHRT is not set/CONFIG_CHRT=y/' .config
3 sed -i -e 's/# CONFIG_TASKSET is not set/CONFIG_TASKSET=y/' .config
4 sed -i -e 's/# CONFIG_FEATURE_TASKSET_FANCY is not set/CONFIG_FEATURE_TASKSET_FANCY=y/' .config
5 sed -i -e 's/# CONFIG_HTTPD is not set/CONFIG_HTTPD=y/' .config
6 sed -i -e 's/# CONFIG_FEATURE_HTTPD_RANGES is not set/CONFIG_FEATURE_HTTPD_RANGES=y/' .config
7 sed -i -e 's/# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set/CONFIG_FEATURE_HTTPD_USE_SENDFILE=y/' .config
8 sed -i -e 's/# CONFIG_FEATURE_HTTPD_SETUID is not set/CONFIG_FEATURE_HTTPD_SETUID=y/' .config
9 sed -i -e 's/# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set/CONFIG_FEATURE_HTTPD_BASIC_AUTH=y/' .config
10 sed -i -e 's/# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set/CONFIG_FEATURE_HTTPD_AUTH_MD5=y/' .config
11 sed -i -e 's/# CONFIG_FEATURE_HTTPD_CGI is not set/CONFIG_FEATURE_HTTPD_CGI=y/' .config
12 sed -i -e 's/# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set/CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y/' .config
13 sed -i -e 's/# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set/CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y/' .config
14 sed -i -e 's/# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set/CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y/' .config
15 sed -i -e 's/# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set/CONFIG_FEATURE_HTTPD_ERROR_PAGES=y/' .config
16 sed -i -e 's/# CONFIG_FEATURE_HTTPD_PROXY is not set/CONFIG_FEATURE_HTTPD_PROXY=y/' .config
17 sed -i -e 's/# CONFIG_FEATURE_HTTPD_GZIP is not set/CONFIG_FEATURE_HTTPD_GZIP=y/' .config
18 sed -i -e 's/# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set/CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y/' .config
19}
diff --git a/recipes-append/hv-cfg/hv-cfg_git.bbappend b/recipes-append/hv-cfg/hv-cfg_git.bbappend
new file mode 100644
index 0000000..ff749c9
--- /dev/null
+++ b/recipes-append/hv-cfg/hv-cfg_git.bbappend
@@ -0,0 +1,2 @@
1# Set to SDK 1.2 release, and override AUTOREV
2SRCREV = "102ab848d94f3c04f364ed273d0e00b21b0266f4"
diff --git a/recipes-append/ltp/ltp_20140422.bbappend b/recipes-append/ltp/ltp_20140422.bbappend
new file mode 100644
index 0000000..59a4341
--- /dev/null
+++ b/recipes-append/ltp/ltp_20140422.bbappend
@@ -0,0 +1,3 @@
1do_compile_prepend () {
2 ( make -C ${B}/testcases/open_posix_testsuite generate-makefiles conformance-all tools-all functional-all stress-all )
3}
diff --git a/recipes-append/oprofile/files/oprofile-e500mc.patch b/recipes-append/oprofile/files/oprofile-e500mc.patch
new file mode 100644
index 0000000..f784ae6
--- /dev/null
+++ b/recipes-append/oprofile/files/oprofile-e500mc.patch
@@ -0,0 +1,2095 @@
1diff -uNr a/events/Makefile.am b/events/Makefile.am
2--- a/events/Makefile.am 2012-08-27 20:59:13.000000000 +0200
3+++ b/events/Makefile.am 2013-02-07 07:06:04.168567619 +0100
4@@ -72,6 +72,7 @@
5 ppc/7450/events ppc/7450/unit_masks \
6 ppc/e500/events ppc/e500/unit_masks \
7 ppc/e500v2/events ppc/e500v2/unit_masks \
8+ ppc/e500mc/events ppc/e500mc/unit_masks \
9 ppc/e300/events ppc/e300/unit_masks \
10 tile/tile64/events tile/tile64/unit_masks \
11 tile/tilepro/events tile/tilepro/unit_masks \
12diff -uNr a/events/ppc/e500mc/events b/events/ppc/e500mc/events
13--- a/events/ppc/e500mc/events 1970-01-01 01:00:00.000000000 +0100
14+++ b/events/ppc/e500mc/events 2013-02-07 07:03:57.990063725 +0100
15@@ -0,0 +1,83 @@
16+# e500 Events
17+#
18+event:0x1 counters:0,1,2,3 um:zero minimum:100 name:CPU_CLK : Cycles
19+event:0x2 counters:0,1,2,3 um:zero minimum:500 name:COMPLETED_INSNS : Completed Instructions (0, 1, or 2 per cycle)
20+event:0x3 counters:0,1,2,3 um:zero minimum:500 name:COMPLETED_OPS : Completed Micro-ops (counts 2 for load/store w/update)
21+event:0x4 counters:0,1,2,3 um:zero minimum:500 name:INSTRUCTION_FETCHES : Instruction fetches
22+event:0x5 counters:0,1,2,3 um:zero minimum:500 name:DECODED_OPS : Micro-ops decoded
23+event:0x8 counters:0,1,2,3 um:zero minimum:500 name:COMPLETED_BRANCHES : Branch Instructions completed
24+event:0x9 counters:0,1,2,3 um:zero minimum:500 name:COMPLETED_LOAD_OPS : Load micro-ops completed
25+event:0xa counters:0,1,2,3 um:zero minimum:500 name:COMPLETED_STORE_OPS : Store micro-ops completed
26+event:0xb counters:0,1,2,3 um:zero minimum:500 name:COMPLETION_REDIRECTS : Number of completion buffer redirects
27+event:0xc counters:0,1,2,3 um:zero minimum:500 name:BRANCHES_FINISHED : Branches finished
28+event:0xd counters:0,1,2,3 um:zero minimum:500 name:TAKEN_BRANCHES_FINISHED : Taken branches finished
29+event:0xe counters:0,1,2,3 um:zero minimum:500 name:BIFFED_BRANCHES_FINISHED : Biffed branches finished
30+event:0xf counters:0,1,2,3 um:zero minimum:500 name:BRANCHES_MISPREDICTED : Branch instructions mispredicted due to direction, target, or IAB prediction
31+event:0x10 counters:0,1,2,3 um:zero minimum:500 name:BRANCHES_MISPREDICTED_DIRECTION : Branches mispredicted due to direction prediction
32+event:0x11 counters:0,1,2,3 um:zero minimum:500 name:BTB_HITS : Branches that hit in the BTB, or missed but are not taken
33+event:0x12 counters:0,1,2,3 um:zero minimum:500 name:DECODE_STALLED : Cycles the instruction buffer was not empty, but 0 instructions decoded
34+event:0x13 counters:0,1,2,3 um:zero minimum:500 name:ISSUE_STALLED : Cycles the issue buffer is not empty but 0 instructions issued
35+event:0x14 counters:0,1,2,3 um:zero minimum:500 name:BRANCH_ISSUE_STALLED : Cycles the branch buffer is not empty but 0 instructions issued
36+event:0x15 counters:0,1,2,3 um:zero minimum:500 name:SRS0_SCHEDULE_STALLED : Cycles SRS0 is not empty but 0 instructions scheduled
37+event:0x16 counters:0,1,2,3 um:zero minimum:500 name:SRS1_SCHEDULE_STALLED : Cycles SRS1 is not empty but 0 instructions scheduled
38+event:0x17 counters:0,1,2,3 um:zero minimum:500 name:VRS_SCHEDULE_STALLED : Cycles VRS is not empty but 0 instructions scheduled
39+event:0x18 counters:0,1,2,3 um:zero minimum:500 name:LRS_SCHEDULE_STALLED : Cycles LRS is not empty but 0 instructions scheduled
40+event:0x19 counters:0,1,2,3 um:zero minimum:500 name:BRS_SCHEDULE_STALLED : Cycles BRS is not empty but 0 instructions scheduled Load/Store, Data Cache, and dLFB Events
41+event:0x1a counters:0,1,2,3 um:zero minimum:500 name:TOTAL_TRANSLATED : Total Ldst microops translated.
42+event:0x1b counters:0,1,2,3 um:zero minimum:500 name:LOADS_TRANSLATED : Number of cacheable L* or EVL* microops translated. (This includes microops from load-multiple, load-update, and load-context instructions.)
43+event:0x1c counters:0,1,2,3 um:zero minimum:500 name:STORES_TRANSLATED : Number of cacheable ST* or EVST* microops translated. (This includes microops from store-multiple, store-update, and save-context instructions.)
44+event:0x1d counters:0,1,2,3 um:zero minimum:500 name:TOUCHES_TRANSLATED : Number of cacheable DCBT and DCBTST instructions translated (L1 only) (Does not count touches that are converted to nops i.e. exceptions, noncacheable, hid0[nopti] bit is set.)
45+event:0x1e counters:0,1,2,3 um:zero minimum:500 name:CACHEOPS_TRANSLATED : Number of dcba, dcbf, dcbst, and dcbz instructions translated (e500 traps on dcbi)
46+event:0x1f counters:0,1,2,3 um:zero minimum:500 name:CACHEINHIBITED_ACCESSES_TRANSLATED : Number of cache inhibited accesses translated
47+event:0x20 counters:0,1,2,3 um:zero minimum:500 name:GUARDED_LOADS_TRANSLATED : Number of guarded loads translated
48+event:0x21 counters:0,1,2,3 um:zero minimum:500 name:WRITETHROUGH_STORES_TRANSLATED : Number of write-through stores translated
49+event:0x22 counters:0,1,2,3 um:zero minimum:500 name:MISALIGNED_ACCESSES_TRANSLATED : Number of misaligned load or store accesses translated.
50+event:0x23 counters:0,1,2,3 um:zero minimum:500 name:TOTAL_ALLOCATED_DLFB : Total allocated to dLFB
51+event:0x24 counters:0,1,2,3 um:zero minimum:500 name:LOADS_TRANSLATED_ALLOCATED_DLFB : Loads translated and allocated to dLFB (Applies to same class of instructions as loads translated.)
52+event:0x25 counters:0,1,2,3 um:zero minimum:500 name:STORES_COMPLETED_ALLOCATED_DLFB : Stores completed and allocated to dLFB (Applies to same class of instructions as stores translated.)
53+event:0x26 counters:0,1,2,3 um:zero minimum:500 name:TOUCHES_TRANSLATED_ALLOCATED_DLFB : Touches translated and allocated to dLFB (Applies to same class of instructions as touches translated.)
54+event:0x27 counters:0,1,2,3 um:zero minimum:500 name:STORES_COMPLETED : Number of cacheable ST* or EVST* microops completed. (Applies to the same class of instructions as stores translated.)
55+event:0x28 counters:0,1,2,3 um:zero minimum:500 name:DL1_LOCKS : Number of cache lines locked in the dL1. (Counts a lock even if an overlock condition is encountered.)
56+event:0x29 counters:0,1,2,3 um:zero minimum:500 name:DL1_RELOADS : This is historically used to determine dcache miss rate (along with loads/stores completed). This counts dL1 reloads for any reason.
57+event:0x2a counters:0,1,2,3 um:zero minimum:500 name:DL1_CASTOUTS : dL1 castouts. Does not count castouts due to DCBF.
58+event:0x2b counters:0,1,2,3 um:zero minimum:500 name:DETECTED_REPLAYS : Times detected replay condition - Load miss with dLFB full.
59+event:0x2c counters:0,1,2,3 um:zero minimum:500 name:LOAD_MISS_QUEUE_FULL_REPLAYS : Load miss with load queue full.
60+event:0x2d counters:0,1,2,3 um:zero minimum:500 name:LOAD_GUARDED_MISS_NOT_LAST_REPLAYS : Load guarded miss when the load is not yet at the bottom of the completion buffer.
61+event:0x2e counters:0,1,2,3 um:zero minimum:500 name:STORE_TRANSLATED_QUEUE_FULL_REPLAYS : Translate a store when the StQ is full.
62+event:0x2f counters:0,1,2,3 um:zero minimum:500 name:ADDRESS_COLLISION_REPLAYS : Address collision.
63+event:0x30 counters:0,1,2,3 um:zero minimum:500 name:DMMU_MISS_REPLAYS : DMMU_MISS_REPLAYS : DMMU miss.
64+event:0x31 counters:0,1,2,3 um:zero minimum:500 name:DMMU_BUSY_REPLAYS : DMMU_BUSY_REPLAYS : DMMU busy.
65+event:0x32 counters:0,1,2,3 um:zero minimum:500 name:SECOND_PART_MISALIGNED_AFTER_MISS_REPLAYS : Second part of misaligned access when first part missed in cache.
66+event:0x33 counters:0,1,2,3 um:zero minimum:500 name:LOAD_MISS_DLFB_FULL_CYCLES : Cycles stalled on replay condition - Load miss with dLFB full.
67+event:0x34 counters:0,1,2,3 um:zero minimum:500 name:LOAD_MISS_QUEUE_FULL_CYCLES : Cycles stalled on replay condition - Load miss with load queue full.
68+event:0x35 counters:0,1,2,3 um:zero minimum:500 name:LOAD_GUARDED_MISS_NOT_LAST_CYCLES : Cycles stalled on replay condition - Load guarded miss when the load is not yet at the bottom of the completion buffer.
69+event:0x36 counters:0,1,2,3 um:zero minimum:500 name:STORE_TRANSLATED_QUEUE_FULL_CYCLES : Cycles stalled on replay condition - Translate a store when the StQ is full.
70+event:0x37 counters:0,1,2,3 um:zero minimum:500 name:ADDRESS_COLLISION_CYCLES : Cycles stalled on replay condition - Address collision.
71+event:0x38 counters:0,1,2,3 um:zero minimum:500 name:DMMU_MISS_CYCLES : Cycles stalled on replay condition - DMMU miss.
72+event:0x39 counters:0,1,2,3 um:zero minimum:500 name:DMMU_BUSY_CYCLES : Cycles stalled on replay condition - DMMU busy.
73+event:0x3a counters:0,1,2,3 um:zero minimum:500 name:SECOND_PART_MISALIGNED_AFTER_MISS_CYCLES : Cycles stalled on replay condition - Second part of misaligned access when first part missed in cache.
74+event:0x3b counters:0,1,2,3 um:zero minimum:500 name:IL1_LOCKS : Number of cache lines locked in the iL1. (Counts a lock even if an overlock condition is encountered.)
75+event:0x3c counters:0,1,2,3 um:zero minimum:500 name:IL1_FETCH_RELOADS : This is historically used to determine icache miss rate (along with instructions completed) Reloads due to demand fetch.
76+event:0x3d counters:0,1,2,3 um:zero minimum:500 name:FETCHES : Counts the number of fetches that write at least one instruction to the instruction buffer. (With instruction fetched, can used to compute instructions-per-fetch)
77+event:0x3e counters:0,1,2,3 um:zero minimum:500 name:IMMU_TLB4K_RELOADS : iMMU TLB4K reloads
78+event:0x3f counters:0,1,2,3 um:zero minimum:500 name:IMMU_VSP_RELOADS : iMMU VSP reloads
79+event:0x40 counters:0,1,2,3 um:zero minimum:500 name:DMMU_TLB4K_RELOADS : dMMU TLB4K reloads
80+event:0x41 counters:0,1,2,3 um:zero minimum:500 name:DMMU_VSP_RELOADS : dMMU VSP reloads
81+event:0x42 counters:0,1,2,3 um:zero minimum:500 name:L2MMU_MISSES : Counts iTLB/dTLB error interrupt
82+event:0x43 counters:0,1,2,3 um:zero minimum:500 name:BIU_MASTER_REQUESTS : Number of master transactions. (Number of master TSs.)
83+event:0x44 counters:0,1,2,3 um:zero minimum:500 name:BIU_MASTER_I_REQUESTS : Number of master I-Side transactions. (Number of master I-Side TSs.)
84+event:0x45 counters:0,1,2,3 um:zero minimum:500 name:BIU_MASTER_D_REQUESTS : Number of master D-Side transactions. (Number of master D-Side TSs.)
85+event:0x46 counters:0,1,2,3 um:zero minimum:500 name:BIU_MASTER_D_CASTOUT_REQUESTS : Number of master D-Side non-program-demand castout transactions. This counts replacement pushes and snoop pushes. This does not count DCBF castouts. (Number of master D-side non-program-demand castout TSs.)
86+event:0x47 counters:0,1,2,3 um:zero minimum:500 name:BIU_MASTER_RETRIES : Number of transactions which were initiated by this processor which were retried on the BIU interface. (Number of master ARTRYs.)
87+event:0x48 counters:0,1,2,3 um:zero minimum:500 name:SNOOP_REQUESTS : Number of externally generated snoop requests. (Counts snoop TSs.)
88+event:0x49 counters:0,1,2,3 um:zero minimum:500 name:SNOOP_HITS : Number of snoop hits on all D-side resources regardless of the cache state (modified, exclusive, or shared)
89+event:0x4a counters:0,1,2,3 um:zero minimum:500 name:SNOOP_PUSHES : Number of snoop pushes from all D-side resources. (Counts snoop ARTRY/WOPs.)
90+event:0x4b counters:0,1,2,3 um:zero minimum:500 name:SNOOP_RETRIES : Number of snoop requests retried. (Counts snoop ARTRYs.)
91+event:0x52 counters:0,1,2,3 um:zero minimum:500 name:PMC0_OVERFLOW : Counts the number of times PMC0[32] transitioned from 1 to 0.
92+event:0x53 counters:0,1,2,3 um:zero minimum:500 name:PMC1_OVERFLOW : Counts the number of times PMC1[32] transitioned from 1 to 0.
93+event:0x54 counters:0,1,2,3 um:zero minimum:500 name:PMC2_OVERFLOW : Counts the number of times PMC2[32] transitioned from 1 to 0.
94+event:0x55 counters:0,1,2,3 um:zero minimum:500 name:PMC3_OVERFLOW : Counts the number of times PMC3[32] transitioned from 1 to 0.
95+event:0x56 counters:0,1,2,3 um:zero minimum:500 name:INTERRUPTS : Number of interrupts taken
96+event:0x57 counters:0,1,2,3 um:zero minimum:500 name:EXTERNAL_INTERRUPTS : Number of external input interrupts taken
97+event:0x58 counters:0,1,2,3 um:zero minimum:500 name:CRITICAL_INTERRUPTS : Number of critical input interrupts taken
98+event:0x59 counters:0,1,2,3 um:zero minimum:500 name:SC_TRAP_INTERRUPTS : Number of system call and trap interrupts
99diff -uNr a/events/ppc/e500mc/unit_masks b/events/ppc/e500mc/unit_masks
100--- a/events/ppc/e500mc/unit_masks 1970-01-01 01:00:00.000000000 +0100
101+++ b/events/ppc/e500mc/unit_masks 2013-02-07 07:03:57.994063551 +0100
102@@ -0,0 +1,4 @@
103+# e500 possible unit masks
104+#
105+name:zero type:mandatory default:0x0
106+ 0x0 No unit mask
107diff -uNr a/libop/op_cpu_type.c b/libop/op_cpu_type.c
108--- a/libop/op_cpu_type.c 2012-08-27 20:59:14.000000000 +0200
109+++ b/libop/op_cpu_type.c 2013-02-07 07:03:57.994063551 +0100
110@@ -66,6 +66,7 @@
111 { "NEC VR5500", "mips/vr5500", CPU_MIPS_VR5500, 2 },
112 { "e500", "ppc/e500", CPU_PPC_E500, 4 },
113 { "e500v2", "ppc/e500v2", CPU_PPC_E500_2, 4 },
114+ { "e500mc", "ppc/e500mc", CPU_PPC_E500MC, 4 },
115 { "Core Solo / Duo", "i386/core", CPU_CORE, 2 },
116 { "PowerPC G4", "ppc/7450", CPU_PPC_7450, 6 },
117 { "Core 2", "i386/core_2", CPU_CORE_2, 2 },
118diff -uNr a/libop/op_cpu_type.c.orig b/libop/op_cpu_type.c.orig
119--- a/libop/op_cpu_type.c.orig 1970-01-01 01:00:00.000000000 +0100
120+++ b/libop/op_cpu_type.c.orig 2013-02-07 07:01:39.408100801 +0100
121@@ -0,0 +1,621 @@
122+/**
123+ * @file op_cpu_type.c
124+ * CPU type determination
125+ *
126+ * @remark Copyright 2002 OProfile authors
127+ * @remark Read the file COPYING
128+ *
129+ * @author John Levon
130+ * @author Philippe Elie
131+ */
132+
133+#include <stdio.h>
134+#include <stdlib.h>
135+#include <string.h>
136+#include <sys/utsname.h>
137+#include <ctype.h>
138+#include <errno.h>
139+#include <fnmatch.h>
140+
141+#include "op_cpu_type.h"
142+#include "op_hw_specific.h"
143+
144+struct cpu_descr {
145+ char const * pretty;
146+ char const * name;
147+ op_cpu cpu;
148+ unsigned int nr_counters;
149+};
150+
151+static struct cpu_descr const cpu_descrs[MAX_CPU_TYPE] = {
152+ { "Pentium Pro", "i386/ppro", CPU_PPRO, 2 },
153+ { "PII", "i386/pii", CPU_PII, 2 },
154+ { "PIII", "i386/piii", CPU_PIII, 2 },
155+ { "Athlon", "i386/athlon", CPU_ATHLON, 4 },
156+ { "CPU with timer interrupt", "timer", CPU_TIMER_INT, 1 },
157+ { "CPU with RTC device", "rtc", CPU_RTC, 1 },
158+ { "P4 / Xeon", "i386/p4", CPU_P4, 8 },
159+ { "IA64", "ia64/ia64", CPU_IA64, 4 },
160+ { "Itanium", "ia64/itanium", CPU_IA64_1, 4 },
161+ { "Itanium 2", "ia64/itanium2", CPU_IA64_2, 4 },
162+ { "AMD64 processors", "x86-64/hammer", CPU_HAMMER, 4 },
163+ { "P4 / Xeon with 2 hyper-threads", "i386/p4-ht", CPU_P4_HT2, 4 },
164+ { "Alpha EV4", "alpha/ev4", CPU_AXP_EV4, 2 },
165+ { "Alpha EV5", "alpha/ev5", CPU_AXP_EV5, 3 },
166+ { "Alpha PCA56", "alpha/pca56", CPU_AXP_PCA56, 3 },
167+ { "Alpha EV6", "alpha/ev6", CPU_AXP_EV6, 2 },
168+ { "Alpha EV67", "alpha/ev67", CPU_AXP_EV67, 20 },
169+ { "Pentium M (P6 core)", "i386/p6_mobile", CPU_P6_MOBILE, 2 },
170+ { "ARM/XScale PMU1", "arm/xscale1", CPU_ARM_XSCALE1, 3 },
171+ { "ARM/XScale PMU2", "arm/xscale2", CPU_ARM_XSCALE2, 5 },
172+ { "ppc64 POWER4", "ppc64/power4", CPU_PPC64_POWER4, 8 },
173+ { "ppc64 POWER5", "ppc64/power5", CPU_PPC64_POWER5, 6 },
174+ { "ppc64 POWER5+", "ppc64/power5+", CPU_PPC64_POWER5p, 6 },
175+ { "ppc64 970", "ppc64/970", CPU_PPC64_970, 8 },
176+ { "MIPS 20K", "mips/20K", CPU_MIPS_20K, 1},
177+ { "MIPS 24K", "mips/24K", CPU_MIPS_24K, 2},
178+ { "MIPS 25K", "mips/25K", CPU_MIPS_25K, 2},
179+ { "MIPS 34K", "mips/34K", CPU_MIPS_34K, 2},
180+ { "MIPS 5K", "mips/5K", CPU_MIPS_5K, 2},
181+ { "MIPS R10000", "mips/r10000", CPU_MIPS_R10000, 2 },
182+ { "MIPS R12000", "mips/r12000", CPU_MIPS_R12000, 4 },
183+ { "QED RM7000", "mips/rm7000", CPU_MIPS_RM7000, 1 },
184+ { "PMC-Sierra RM9000", "mips/rm9000", CPU_MIPS_RM9000, 2 },
185+ { "Sibyte SB1", "mips/sb1", CPU_MIPS_SB1, 4 },
186+ { "NEC VR5432", "mips/vr5432", CPU_MIPS_VR5432, 2 },
187+ { "NEC VR5500", "mips/vr5500", CPU_MIPS_VR5500, 2 },
188+ { "e500", "ppc/e500", CPU_PPC_E500, 4 },
189+ { "e500v2", "ppc/e500v2", CPU_PPC_E500_2, 4 },
190+ { "Core Solo / Duo", "i386/core", CPU_CORE, 2 },
191+ { "PowerPC G4", "ppc/7450", CPU_PPC_7450, 6 },
192+ { "Core 2", "i386/core_2", CPU_CORE_2, 2 },
193+ { "ppc64 POWER6", "ppc64/power6", CPU_PPC64_POWER6, 4 },
194+ { "ppc64 970MP", "ppc64/970MP", CPU_PPC64_970MP, 8 },
195+ { "ppc64 Cell Broadband Engine", "ppc64/cell-be", CPU_PPC64_CELL, 8 },
196+ { "AMD64 family10", "x86-64/family10", CPU_FAMILY10, 4 },
197+ { "ppc64 PA6T", "ppc64/pa6t", CPU_PPC64_PA6T, 6 },
198+ { "ARM 11MPCore", "arm/mpcore", CPU_ARM_MPCORE, 2 },
199+ { "ARM V6 PMU", "arm/armv6", CPU_ARM_V6, 3 },
200+ { "ppc64 POWER5++", "ppc64/power5++", CPU_PPC64_POWER5pp, 6 },
201+ { "e300", "ppc/e300", CPU_PPC_E300, 4 },
202+ { "AVR32", "avr32", CPU_AVR32, 3 },
203+ { "ARM Cortex-A8", "arm/armv7", CPU_ARM_V7, 5 },
204+ { "Intel Architectural Perfmon", "i386/arch_perfmon", CPU_ARCH_PERFMON, 0},
205+ { "AMD64 family11h", "x86-64/family11h", CPU_FAMILY11H, 4 },
206+ { "ppc64 POWER7", "ppc64/power7", CPU_PPC64_POWER7, 6 },
207+ { "ppc64 compat version 1", "ppc64/ibm-compat-v1", CPU_PPC64_IBM_COMPAT_V1, 4 },
208+ { "Intel Core/i7", "i386/core_i7", CPU_CORE_I7, 4 },
209+ { "Intel Atom", "i386/atom", CPU_ATOM, 2 },
210+ { "Loongson2", "mips/loongson2", CPU_MIPS_LOONGSON2, 2 },
211+ { "Intel Nehalem microarchitecture", "i386/nehalem", CPU_NEHALEM, 4 },
212+ { "ARM Cortex-A9", "arm/armv7-ca9", CPU_ARM_V7_CA9, 7 },
213+ { "MIPS 74K", "mips/74K", CPU_MIPS_74K, 4},
214+ { "MIPS 1004K", "mips/1004K", CPU_MIPS_1004K, 2},
215+ { "AMD64 family12h", "x86-64/family12h", CPU_FAMILY12H, 4 },
216+ { "AMD64 family14h", "x86-64/family14h", CPU_FAMILY14H, 4 },
217+ { "AMD64 family15h", "x86-64/family15h", CPU_FAMILY15H, 6 },
218+ { "Intel Westmere microarchitecture", "i386/westmere", CPU_WESTMERE, 4 },
219+ { "ARMv7 Scorpion", "arm/armv7-scorpion", CPU_ARM_SCORPION, 5 },
220+ { "ARMv7 ScorpionMP", "arm/armv7-scorpionmp", CPU_ARM_SCORPIONMP, 5 },
221+ { "Intel Sandy Bridge microarchitecture", "i386/sandybridge", CPU_SANDYBRIDGE, 8 },
222+ { "TILE64", "tile/tile64", CPU_TILE_TILE64, 2 },
223+ { "TILEPro", "tile/tilepro", CPU_TILE_TILEPRO, 4 },
224+ { "TILE-GX", "tile/tilegx", CPU_TILE_TILEGX, 4 },
225+ { "IBM System z10", "s390/z10", CPU_S390_Z10, 1 },
226+ { "IBM zEnterprise z196", "s390/z196", CPU_S390_Z196, 1 },
227+ { "Intel Ivy Bridge microarchitecture", "i386/ivybridge", CPU_IVYBRIDGE, 8 },
228+ { "ARM Cortex-A5", "arm/armv7-ca5", CPU_ARM_V7_CA5, 3 },
229+ { "ARM Cortex-A7", "arm/armv7-ca7", CPU_ARM_V7_CA7, 5 },
230+ { "ARM Cortex-A15", "arm/armv7-ca15", CPU_ARM_V7_CA15, 7 },
231+};
232+
233+static size_t const nr_cpu_descrs = sizeof(cpu_descrs) / sizeof(struct cpu_descr);
234+
235+static char * _get_cpuinfo_cpu_type_line(char * buf, int len, const char * prefix, int token)
236+{
237+ char * ret = NULL;
238+ char * end = NULL;
239+ int prefix_len = strlen(prefix);
240+ FILE * fp = fopen("/proc/cpuinfo", "r");
241+
242+ if (!fp) {
243+ perror("Unable to open /proc/cpuinfo\n");
244+ return ret;
245+ }
246+
247+ memset(buf, 0, len);
248+
249+ while (!ret) {
250+ if (fgets(buf, len, fp) == NULL) {
251+ fprintf(stderr, "Did not find processor type in /proc/cpuinfo.\n");
252+ break;
253+ }
254+ if (!strncmp(buf, prefix, prefix_len)) {
255+ ret = buf + prefix_len;
256+ /* Strip leading whitespace and ':' delimiter */
257+ while (*ret && (*ret == ':' || isspace(*ret)))
258+ ++ret;
259+ buf = ret;
260+ /* if token param 0 then read the whole line else
261+ * first token only. */
262+ if (token == 0) {
263+ /* Trim trailing whitespace */
264+ end = buf + strlen(buf) - 1;
265+ while (isspace(*end))
266+ --end;
267+ *(++end) = '\0';
268+ break;
269+ } else {
270+ /* Scan ahead to the end of the token */
271+ while (*buf && !isspace(*buf))
272+ ++buf;
273+ /* Trim trailing whitespace */
274+ *buf = '\0';
275+ break;
276+ }
277+ }
278+ }
279+
280+ fclose(fp);
281+ return ret;
282+}
283+
284+static char * _get_cpuinfo_cpu_type(char * buf, int len, const char * prefix)
285+{
286+ return _get_cpuinfo_cpu_type_line(buf, len, prefix, 1);
287+}
288+
289+static op_cpu _get_ppc64_cpu_type(void)
290+{
291+ int i;
292+ size_t len;
293+ char line[100], cpu_type_str[64], cpu_name_lowercase[64], * cpu_name;
294+
295+ cpu_name = _get_cpuinfo_cpu_type(line, 100, "cpu");
296+ if (!cpu_name)
297+ return CPU_NO_GOOD;
298+
299+ len = strlen(cpu_name);
300+ for (i = 0; i < (int)len ; i++)
301+ cpu_name_lowercase[i] = tolower(cpu_name[i]);
302+
303+ cpu_type_str[0] = '\0';
304+ strcat(cpu_type_str, "ppc64/");
305+ strncat(cpu_type_str, cpu_name_lowercase, len);
306+ return op_get_cpu_number(cpu_type_str);
307+}
308+
309+static op_cpu _get_arm_cpu_type(void)
310+{
311+ unsigned long cpuid, vendorid;
312+ char line[100];
313+ char * cpu_part, * cpu_implementer;
314+
315+ cpu_implementer = _get_cpuinfo_cpu_type(line, 100, "CPU implementer");
316+ if (!cpu_implementer)
317+ return CPU_NO_GOOD;
318+
319+ errno = 0;
320+ vendorid = strtoul(cpu_implementer, NULL, 16);
321+ if (errno) {
322+ fprintf(stderr, "Unable to parse CPU implementer %s\n", cpu_implementer);
323+ return CPU_NO_GOOD;
324+ }
325+
326+ cpu_part = _get_cpuinfo_cpu_type(line, 100, "CPU part");
327+ if (!cpu_part)
328+ return CPU_NO_GOOD;
329+
330+ errno = 0;
331+ cpuid = strtoul(cpu_part, NULL, 16);
332+ if (errno) {
333+ fprintf(stderr, "Unable to parse CPU part %s\n", cpu_part);
334+ return CPU_NO_GOOD;
335+ }
336+
337+ if (vendorid == 0x41) { /* ARM Ltd. */
338+ switch (cpuid) {
339+ case 0xb36:
340+ case 0xb56:
341+ case 0xb76:
342+ return op_get_cpu_number("arm/armv6");
343+ case 0xb02:
344+ return op_get_cpu_number("arm/mpcore");
345+ case 0xc05:
346+ return op_get_cpu_number("arm/armv7-ca5");
347+ case 0xc07:
348+ return op_get_cpu_number("arm/armv7-ca7");
349+ case 0xc08:
350+ return op_get_cpu_number("arm/armv7");
351+ case 0xc09:
352+ return op_get_cpu_number("arm/armv7-ca9");
353+ case 0xc0f:
354+ return op_get_cpu_number("arm/armv7-ca15");
355+ }
356+ } else if (vendorid == 0x69) { /* Intel xscale */
357+ switch (cpuid >> 9) {
358+ case 1:
359+ return op_get_cpu_number("arm/xscale1");
360+ case 2:
361+ return op_get_cpu_number("arm/xscale2");
362+ }
363+ }
364+
365+ return CPU_NO_GOOD;
366+}
367+
368+static op_cpu _get_tile_cpu_type(void)
369+{
370+ int i;
371+ size_t len;
372+ char line[100], cpu_type_str[64], cpu_name_lowercase[64], * cpu_name;
373+
374+ cpu_name = _get_cpuinfo_cpu_type(line, 100, "model name");
375+ if (!cpu_name)
376+ return CPU_NO_GOOD;
377+
378+ len = strlen(cpu_name);
379+ for (i = 0; i < (int)len ; i++)
380+ cpu_name_lowercase[i] = tolower(cpu_name[i]);
381+
382+ cpu_type_str[0] = '\0';
383+ strcat(cpu_type_str, "tile/");
384+ strncat(cpu_type_str, cpu_name_lowercase, len);
385+ return op_get_cpu_number(cpu_type_str);
386+}
387+
388+#if defined(__x86_64__) || defined(__i386__)
389+int op_is_cpu_vendor(char * vendor)
390+{
391+ return cpuid_vendor(vendor);
392+}
393+
394+static unsigned cpuid_eax(unsigned func)
395+{
396+ cpuid_data d;
397+
398+ cpuid(func, &d);
399+ return d.eax;
400+}
401+
402+static inline int perfmon_available(void)
403+{
404+ unsigned eax;
405+ if (cpuid_eax(0) < 10)
406+ return 0;
407+ eax = cpuid_eax(10);
408+ if ((eax & 0xff) == 0)
409+ return 0;
410+ return (eax >> 8) & 0xff;
411+}
412+
413+static int cpu_info_number(char *name, unsigned long *number)
414+{
415+ char buf[100];
416+ char *end;
417+
418+ if (!_get_cpuinfo_cpu_type(buf, sizeof buf, name))
419+ return 0;
420+ *number = strtoul(buf, &end, 0);
421+ return end > buf;
422+}
423+
424+static op_cpu _get_intel_cpu_type(void)
425+{
426+ unsigned eax, family, model;
427+
428+ if (perfmon_available())
429+ return op_cpu_specific_type(CPU_ARCH_PERFMON);
430+
431+ /* Handle old non arch perfmon CPUs */
432+ eax = cpuid_signature();
433+ family = cpu_family(eax);
434+ model = cpu_model(eax);
435+
436+ if (family == 6) {
437+ /* Reproduce kernel p6_init logic. Only for non arch perfmon cpus */
438+ switch (model) {
439+ case 0 ... 2:
440+ return op_get_cpu_number("i386/ppro");
441+ case 3 ... 5:
442+ return op_get_cpu_number("i386/pii");
443+ case 6 ... 8:
444+ case 10 ... 11:
445+ return op_get_cpu_number("i386/piii");
446+ case 9:
447+ case 13:
448+ return op_get_cpu_number("i386/p6_mobile");
449+ }
450+ } else if (family == 15) {
451+ unsigned long siblings;
452+
453+ /* Reproduce kernel p4_init() logic */
454+ if (model > 6 || model == 5)
455+ return CPU_NO_GOOD;
456+ if (!cpu_info_number("siblings", &siblings) ||
457+ siblings == 1)
458+ return op_get_cpu_number("i386/p4");
459+ if (siblings == 2)
460+ return op_get_cpu_number("i386/p4-ht");
461+ }
462+ return CPU_NO_GOOD;
463+}
464+
465+static op_cpu _get_amd_cpu_type(void)
466+{
467+ unsigned eax, family, model;
468+ op_cpu ret = CPU_NO_GOOD;
469+
470+ eax = cpuid_signature();
471+ family = cpu_family(eax);
472+ model = cpu_model(eax);
473+
474+ switch (family) {
475+ case 0x0f:
476+ ret = op_get_cpu_number("x86-64/hammer");
477+ break;
478+ case 0x10:
479+ ret = op_get_cpu_number("x86-64/family10");
480+ break;
481+ case 0x11:
482+ ret = op_get_cpu_number("x86-64/family11h");
483+ break;
484+ case 0x12:
485+ ret = op_get_cpu_number("x86-64/family12h");
486+ break;
487+ case 0x14:
488+ ret = op_get_cpu_number("x86-64/family14h");
489+ break;
490+ case 0x15:
491+ switch (model) {
492+ case 0x00 ... 0x0f:
493+ ret = op_get_cpu_number("x86-64/family15h");
494+ break;
495+ default:
496+ break;
497+ }
498+ break;
499+ default:
500+ break;
501+ }
502+
503+ return ret;
504+}
505+
506+static op_cpu _get_x86_64_cpu_type(void)
507+{
508+ op_cpu ret = CPU_NO_GOOD;
509+
510+ if (cpuid_vendor("GenuineIntel")) {
511+ ret = _get_intel_cpu_type();
512+ } else if (cpuid_vendor("AuthenticAMD")) {
513+ ret = _get_amd_cpu_type();
514+ }
515+
516+ return ret;
517+}
518+
519+#else
520+static op_cpu _get_x86_64_cpu_type(void)
521+{
522+ return CPU_NO_GOOD;
523+}
524+#endif
525+
526+struct mips_cpu_descr
527+{
528+ const char * key;
529+ const char * value;
530+};
531+
532+static struct mips_cpu_descr mips_cpu_descrs[] = {
533+ { .key = "MIPS 5Kc", .value = "mips/5K" }, /* CPU_5KC */
534+ { .key = "MIPS 20Kc", .value = "mips/20K" }, /* CPU_20KC */
535+ { .key = "MIPS 24Kc", .value = "mips/24K" }, /* CPU_24K */
536+ { .key = "MIPS 25Kc", .value = "mips/25K" }, /* CPU_25KF */
537+ { .key = "MIPS 34Kc", .value = "mips/34K" }, /* CPU_34K */
538+ { .key = "MIPS 74Kc", .value = "mips/74K" }, /* CPU_74K */
539+ { .key = "MIPS M14Kc", .value = "mips/M14Kc" }, /* CPU_M14KC */
540+ { .key = "RM9000", .value = "mips/rm9000" }, /* CPU_RM9000 */
541+ { .key = "R10000", .value = "mips/r10000" }, /* CPU_R10000 */
542+ { .key = "R12000", .value = "mips/r12000" }, /* CPU_R12000 */
543+ { .key = "R14000", .value = "mips/r12000" }, /* CPU_R14000 */
544+ { .key = "ICT Loongson-2", .value = "mips/loongson2" }, /* CPU_LOONGSON2 */
545+ { .key = NULL, .value = NULL }
546+};
547+
548+static const char * _get_mips_op_name(const char * key)
549+{
550+ struct mips_cpu_descr * p_it = mips_cpu_descrs;
551+ size_t len;
552+
553+
554+ while (p_it->key != NULL) {
555+ len = strlen(p_it->key);
556+ if (0 == strncmp(key, p_it->key, len))
557+ return p_it->value;
558+ ++p_it;
559+ }
560+ return NULL;
561+}
562+
563+static op_cpu _get_mips_cpu_type(void)
564+{
565+ char line[100];
566+ char * cpu_model;
567+ const char * op_name = NULL;
568+
569+ cpu_model = _get_cpuinfo_cpu_type_line(line, 100, "cpu model", 0);
570+ if (!cpu_model)
571+ return CPU_NO_GOOD;
572+
573+ op_name = _get_mips_op_name(cpu_model);
574+
575+ if (op_name)
576+ return op_get_cpu_number(op_name);
577+ return CPU_NO_GOOD;
578+}
579+
580+static op_cpu __get_cpu_type_alt_method(void)
581+{
582+ struct utsname uname_info;
583+ if (uname(&uname_info) < 0) {
584+ perror("uname failed");
585+ return CPU_NO_GOOD;
586+ }
587+ if (strncmp(uname_info.machine, "x86_64", 6) == 0 ||
588+ fnmatch("i?86", uname_info.machine, 0) == 0) {
589+ return _get_x86_64_cpu_type();
590+ }
591+ if (strncmp(uname_info.machine, "ppc64", 5) == 0) {
592+ return _get_ppc64_cpu_type();
593+ }
594+ if (strncmp(uname_info.machine, "arm", 3) == 0) {
595+ return _get_arm_cpu_type();
596+ }
597+ if (strncmp(uname_info.machine, "tile", 4) == 0) {
598+ return _get_tile_cpu_type();
599+ }
600+ if (strncmp(uname_info.machine, "mips", 4) == 0) {
601+ return _get_mips_cpu_type();
602+ }
603+ return CPU_NO_GOOD;
604+}
605+
606+int op_cpu_variations(op_cpu cpu_type)
607+{
608+ switch (cpu_type) {
609+ case CPU_ARCH_PERFMON:
610+ return 1;
611+ default:
612+ return 0;
613+ }
614+}
615+
616+
617+op_cpu op_cpu_base_type(op_cpu cpu_type)
618+{
619+ /* All the processors that support CPU_ARCH_PERFMON */
620+ switch (cpu_type) {
621+ case CPU_CORE_2:
622+ case CPU_CORE_I7:
623+ case CPU_ATOM:
624+ case CPU_NEHALEM:
625+ case CPU_WESTMERE:
626+ case CPU_SANDYBRIDGE:
627+ case CPU_IVYBRIDGE:
628+ return CPU_ARCH_PERFMON;
629+ default:
630+ /* assume processor in a class by itself */
631+ return cpu_type;
632+ }
633+}
634+
635+op_cpu op_get_cpu_type(void)
636+{
637+ int cpu_type = CPU_NO_GOOD;
638+ char str[100];
639+ FILE * fp;
640+
641+ fp = fopen("/proc/sys/dev/oprofile/cpu_type", "r");
642+ if (!fp) {
643+ /* Try 2.6's oprofilefs one instead. */
644+ fp = fopen("/dev/oprofile/cpu_type", "r");
645+ if (!fp) {
646+ if ((cpu_type = __get_cpu_type_alt_method()) == CPU_NO_GOOD) {
647+ fprintf(stderr, "Unable to open cpu_type file for reading\n");
648+ fprintf(stderr, "Make sure you have done opcontrol --init\n");
649+ }
650+ return cpu_type;
651+ }
652+ }
653+
654+ if (!fgets(str, 99, fp)) {
655+ fprintf(stderr, "Could not read cpu type.\n");
656+ fclose(fp);
657+ return cpu_type;
658+ }
659+
660+ cpu_type = op_get_cpu_number(str);
661+
662+ if (op_cpu_variations(cpu_type))
663+ cpu_type = op_cpu_specific_type(cpu_type);
664+
665+ fclose(fp);
666+
667+ return cpu_type;
668+}
669+
670+
671+op_cpu op_get_cpu_number(char const * cpu_string)
672+{
673+ int cpu_type = CPU_NO_GOOD;
674+ size_t i;
675+
676+ for (i = 0; i < nr_cpu_descrs; ++i) {
677+ if (!strcmp(cpu_descrs[i].name, cpu_string)) {
678+ cpu_type = cpu_descrs[i].cpu;
679+ break;
680+ }
681+ }
682+
683+ /* Attempt to convert into a number */
684+ if (cpu_type == CPU_NO_GOOD)
685+ sscanf(cpu_string, "%d\n", &cpu_type);
686+
687+ if (cpu_type <= CPU_NO_GOOD || cpu_type >= MAX_CPU_TYPE)
688+ cpu_type = CPU_NO_GOOD;
689+
690+ return cpu_type;
691+}
692+
693+
694+char const * op_get_cpu_type_str(op_cpu cpu_type)
695+{
696+ if (cpu_type <= CPU_NO_GOOD || cpu_type >= MAX_CPU_TYPE)
697+ return "invalid cpu type";
698+
699+ return cpu_descrs[cpu_type].pretty;
700+}
701+
702+
703+char const * op_get_cpu_name(op_cpu cpu_type)
704+{
705+ if (cpu_type <= CPU_NO_GOOD || cpu_type >= MAX_CPU_TYPE)
706+ return "invalid cpu type";
707+
708+ return cpu_descrs[cpu_type].name;
709+}
710+
711+
712+int op_get_nr_counters(op_cpu cpu_type)
713+{
714+ int cnt;
715+
716+ if (cpu_type <= CPU_NO_GOOD || cpu_type >= MAX_CPU_TYPE)
717+ return 0;
718+
719+ cnt = arch_num_counters(cpu_type);
720+ if (cnt >= 0)
721+ return cnt;
722+
723+ return op_cpu_has_timer_fs()
724+ ? cpu_descrs[cpu_type].nr_counters + 1
725+ : cpu_descrs[cpu_type].nr_counters;
726+}
727+
728+int op_cpu_has_timer_fs(void)
729+{
730+ static int cached_has_timer_fs_p = -1;
731+ FILE * fp;
732+
733+ if (cached_has_timer_fs_p != -1)
734+ return cached_has_timer_fs_p;
735+
736+ fp = fopen("/dev/oprofile/timer", "r");
737+ cached_has_timer_fs_p = !!fp;
738+ if (fp)
739+ fclose(fp);
740+
741+ return cached_has_timer_fs_p;
742+}
743diff -uNr a/libop/op_cpu_type.h b/libop/op_cpu_type.h
744--- a/libop/op_cpu_type.h 2012-08-27 20:59:14.000000000 +0200
745+++ b/libop/op_cpu_type.h 2013-02-07 07:03:57.994063551 +0100
746@@ -59,6 +59,7 @@
747 CPU_MIPS_VR5500, /**< MIPS VR5500, VR5532 and VR7701 */
748 CPU_PPC_E500, /**< e500 */
749 CPU_PPC_E500_2, /**< e500v2 */
750+ CPU_PPC_E500MC, /**< e500mc */
751 CPU_CORE, /**< Core Solo / Duo series */
752 CPU_PPC_7450, /**< PowerPC G4 */
753 CPU_CORE_2, /**< Intel Core 2 */
754diff -uNr a/libop/op_events.c b/libop/op_events.c
755--- a/libop/op_events.c 2012-08-27 20:59:14.000000000 +0200
756+++ b/libop/op_events.c 2013-02-07 07:03:57.994063551 +0100
757@@ -1182,6 +1182,7 @@
758
759 case CPU_PPC_E500:
760 case CPU_PPC_E500_2:
761+ case CPU_PPC_E500MC:
762 case CPU_PPC_E300:
763 descr->name = "CPU_CLK";
764 break;
765diff -uNr a/libop/op_events.c.orig b/libop/op_events.c.orig
766--- a/libop/op_events.c.orig 1970-01-01 01:00:00.000000000 +0100
767+++ b/libop/op_events.c.orig 2013-02-07 07:01:39.408100801 +0100
768@@ -0,0 +1,1327 @@
769+/**
770+ * @file op_events.c
771+ * Details of PMC profiling events
772+ *
773+ * You can have silliness here.
774+ *
775+ * @remark Copyright 2002 OProfile authors
776+ * @remark Read the file COPYING
777+ *
778+ * @author John Levon
779+ * @author Philippe Elie
780+ */
781+
782+#include "op_events.h"
783+#include "op_libiberty.h"
784+#include "op_fileio.h"
785+#include "op_string.h"
786+#include "op_cpufreq.h"
787+#include "op_hw_specific.h"
788+#include "op_parse_event.h"
789+
790+#include <string.h>
791+#include <stdlib.h>
792+#include <stdio.h>
793+#include <ctype.h>
794+
795+static LIST_HEAD(events_list);
796+static LIST_HEAD(um_list);
797+
798+static char const * filename;
799+static unsigned int line_nr;
800+
801+static void delete_event(struct op_event * event);
802+static void read_events(char const * file);
803+static void read_unit_masks(char const * file);
804+static void free_unit_mask(struct op_unit_mask * um);
805+
806+static char *build_fn(const char *cpu_name, const char *fn)
807+{
808+ char *s;
809+ static const char *dir;
810+ if (dir == NULL)
811+ dir = getenv("OPROFILE_EVENTS_DIR");
812+ if (dir == NULL)
813+ dir = OP_DATADIR;
814+ s = xmalloc(strlen(dir) + strlen(cpu_name) + strlen(fn) + 5);
815+ sprintf(s, "%s/%s/%s", dir, cpu_name, fn);
816+ return s;
817+}
818+
819+static void parse_error(char const * context)
820+{
821+ fprintf(stderr, "oprofile: parse error in %s, line %u\n",
822+ filename, line_nr);
823+ fprintf(stderr, "%s\n", context);
824+ exit(EXIT_FAILURE);
825+}
826+
827+
828+static int parse_int(char const * str)
829+{
830+ int value;
831+ if (sscanf(str, "%d", &value) != 1)
832+ parse_error("expected decimal value");
833+
834+ return value;
835+}
836+
837+
838+static int parse_hex(char const * str)
839+{
840+ int value;
841+ /* 0x/0X to force the use of hexa notation for field intended to
842+ be in hexadecimal */
843+ if (sscanf(str, "0x%x", &value) != 1 &&
844+ sscanf(str, "0X%x", &value) != 1)
845+ parse_error("expected hexadecimal value");
846+
847+ return value;
848+}
849+
850+
851+static u64 parse_long_hex(char const * str)
852+{
853+ u64 value;
854+ if (sscanf(str, "%Lx", &value) != 1)
855+ parse_error("expected long hexadecimal value");
856+
857+ fflush(stderr);
858+ return value;
859+}
860+
861+static void include_um(const char *start, const char *end)
862+{
863+ char *s;
864+ char cpu[end - start + 1];
865+ int old_line_nr;
866+ const char *old_filename;
867+
868+ strncpy(cpu, start, end - start);
869+ cpu[end - start] = 0;
870+ s = build_fn(cpu, "unit_masks");
871+ old_line_nr = line_nr;
872+ old_filename = filename;
873+ read_unit_masks(s);
874+ line_nr = old_line_nr;
875+ filename = old_filename;
876+ free(s);
877+}
878+
879+/* extra:cmask=12,inv,edge */
880+unsigned parse_extra(const char *s)
881+{
882+ unsigned v, w;
883+ int o;
884+
885+ v = 0;
886+ while (*s) {
887+ if (isspace(*s))
888+ break;
889+ if (strisprefix(s, "edge")) {
890+ v |= EXTRA_EDGE;
891+ s += 4;
892+ } else if (strisprefix(s, "inv")) {
893+ v |= EXTRA_INV;
894+ s += 3;
895+ } else if (sscanf(s, "cmask=%x%n", &w, &o) >= 1) {
896+ v |= (w & EXTRA_CMASK_MASK) << EXTRA_CMASK_SHIFT;
897+ s += o;
898+ } else if (strisprefix(s, "any")) {
899+ v |= EXTRA_ANY;
900+ s += 3;
901+ } else {
902+ parse_error("Illegal extra field modifier");
903+ }
904+ if (*s == ',')
905+ ++s;
906+ }
907+ return v;
908+}
909+
910+/* name:MESI type:bitmask default:0x0f */
911+static void parse_um(struct op_unit_mask * um, char const * line)
912+{
913+ int seen_name = 0;
914+ int seen_type = 0;
915+ int seen_default = 0;
916+ char const * valueend = line + 1;
917+ char const * tagend = line + 1;
918+ char const * start = line;
919+
920+ while (*valueend) {
921+ valueend = skip_nonws(valueend);
922+
923+ while (*tagend != ':' && *tagend)
924+ ++tagend;
925+
926+ if (valueend == tagend)
927+ break;
928+
929+ if (!*tagend)
930+ parse_error("parse_um() expected :value");
931+
932+ ++tagend;
933+
934+ if (strisprefix(start, "include")) {
935+ if (seen_name + seen_type + seen_default > 0)
936+ parse_error("include must be on its own");
937+ free_unit_mask(um);
938+ include_um(tagend, valueend);
939+ return;
940+ }
941+
942+ if (strisprefix(start, "name")) {
943+ if (seen_name)
944+ parse_error("duplicate name: tag");
945+ seen_name = 1;
946+ um->name = op_xstrndup(tagend, valueend - tagend);
947+ } else if (strisprefix(start, "type")) {
948+ if (seen_type)
949+ parse_error("duplicate type: tag");
950+ seen_type = 1;
951+ if (strisprefix(tagend, "mandatory")) {
952+ um->unit_type_mask = utm_mandatory;
953+ } else if (strisprefix(tagend, "bitmask")) {
954+ um->unit_type_mask = utm_bitmask;
955+ } else if (strisprefix(tagend, "exclusive")) {
956+ um->unit_type_mask = utm_exclusive;
957+ } else {
958+ parse_error("invalid unit mask type");
959+ }
960+ } else if (strisprefix(start, "default")) {
961+ if (seen_default)
962+ parse_error("duplicate default: tag");
963+ seen_default = 1;
964+ um->default_mask = parse_hex(tagend);
965+ } else {
966+ parse_error("invalid unit mask tag");
967+ }
968+
969+ valueend = skip_ws(valueend);
970+ tagend = valueend;
971+ start = valueend;
972+ }
973+
974+ if (!um->name)
975+ parse_error("Missing name for unit mask");
976+ if (!seen_type)
977+ parse_error("Missing type for unit mask");
978+}
979+
980+
981+/* \t0x08 (M)odified cache state */
982+/* \t0x08 extra:inv,cmask=... (M)odified cache state */
983+static void parse_um_entry(struct op_described_um * entry, char const * line)
984+{
985+ char const * c = line;
986+
987+ c = skip_ws(c);
988+ entry->value = parse_hex(c);
989+ c = skip_nonws(c);
990+
991+ c = skip_ws(c);
992+ if (strisprefix(c, "extra:")) {
993+ c += 6;
994+ entry->extra = parse_extra(c);
995+ c = skip_nonws(c);
996+ } else
997+ entry->extra = 0;
998+
999+ if (!*c)
1000+ parse_error("invalid unit mask entry");
1001+
1002+ c = skip_ws(c);
1003+
1004+ if (!*c)
1005+ parse_error("invalid unit mask entry");
1006+
1007+ entry->desc = xstrdup(c);
1008+}
1009+
1010+
1011+static struct op_unit_mask * new_unit_mask(void)
1012+{
1013+ struct op_unit_mask * um = xmalloc(sizeof(struct op_unit_mask));
1014+ memset(um, '\0', sizeof(struct op_unit_mask));
1015+ list_add_tail(&um->um_next, &um_list);
1016+
1017+ return um;
1018+}
1019+
1020+static void free_unit_mask(struct op_unit_mask * um)
1021+{
1022+ list_del(&um->um_next);
1023+ free(um);
1024+}
1025+
1026+/*
1027+ * name:zero type:mandatory default:0x0
1028+ * \t0x0 No unit mask
1029+ */
1030+static void read_unit_masks(char const * file)
1031+{
1032+ struct op_unit_mask * um = NULL;
1033+ char * line;
1034+ FILE * fp = fopen(file, "r");
1035+
1036+ if (!fp) {
1037+ fprintf(stderr,
1038+ "oprofile: could not open unit mask description file %s\n", file);
1039+ exit(EXIT_FAILURE);
1040+ }
1041+
1042+ filename = file;
1043+ line_nr = 1;
1044+
1045+ line = op_get_line(fp);
1046+
1047+ while (line) {
1048+ if (empty_line(line) || comment_line(line))
1049+ goto next;
1050+
1051+ if (line[0] != '\t') {
1052+ um = new_unit_mask();
1053+ parse_um(um, line);
1054+ } else {
1055+ if (!um)
1056+ parse_error("no unit mask name line");
1057+ if (um->num >= MAX_UNIT_MASK)
1058+ parse_error("oprofile: maximum unit mask entries exceeded");
1059+
1060+ parse_um_entry(&um->um[um->num], line);
1061+ ++(um->num);
1062+ }
1063+
1064+next:
1065+ free(line);
1066+ line = op_get_line(fp);
1067+ ++line_nr;
1068+ }
1069+
1070+ fclose(fp);
1071+}
1072+
1073+
1074+static u32 parse_counter_mask(char const * str)
1075+{
1076+ u32 mask = 0;
1077+ char const * numstart = str;
1078+
1079+ while (*numstart) {
1080+ mask |= 1 << parse_int(numstart);
1081+
1082+ while (*numstart && *numstart != ',')
1083+ ++numstart;
1084+ /* skip , unless we reach eos */
1085+ if (*numstart)
1086+ ++numstart;
1087+
1088+ numstart = skip_ws(numstart);
1089+ }
1090+
1091+ return mask;
1092+}
1093+
1094+static struct op_unit_mask * try_find_um(char const * value)
1095+{
1096+ struct list_head * pos;
1097+
1098+ list_for_each(pos, &um_list) {
1099+ struct op_unit_mask * um = list_entry(pos, struct op_unit_mask, um_next);
1100+ if (strcmp(value, um->name) == 0) {
1101+ um->used = 1;
1102+ return um;
1103+ }
1104+ }
1105+ return NULL;
1106+}
1107+
1108+static struct op_unit_mask * find_um(char const * value)
1109+{
1110+ struct op_unit_mask * um = try_find_um(value);
1111+ if (um)
1112+ return um;
1113+ fprintf(stderr, "oprofile: could not find unit mask %s\n", value);
1114+ exit(EXIT_FAILURE);
1115+}
1116+
1117+/* um:a,b,c,d merge multiple unit masks */
1118+static struct op_unit_mask * merge_um(char * value)
1119+{
1120+ int num;
1121+ char *s;
1122+ struct op_unit_mask *new, *um;
1123+ enum unit_mask_type type = -1U;
1124+
1125+ um = try_find_um(value);
1126+ if (um)
1127+ return um;
1128+
1129+ new = new_unit_mask();
1130+ new->name = xstrdup(value);
1131+ new->used = 1;
1132+ num = 0;
1133+ while ((s = strsep(&value, ",")) != NULL) {
1134+ unsigned c;
1135+ um = find_um(s);
1136+ if (type == -1U)
1137+ type = um->unit_type_mask;
1138+ if (um->unit_type_mask != type)
1139+ parse_error("combined unit mask must be all the same types");
1140+ if (type != utm_bitmask && type != utm_exclusive)
1141+ parse_error("combined unit mask must be all bitmasks or exclusive");
1142+ new->default_mask |= um->default_mask;
1143+ new->num += um->num;
1144+ if (new->num > MAX_UNIT_MASK)
1145+ parse_error("too many members in combined unit mask");
1146+ for (c = 0; c < um->num; c++, num++) {
1147+ new->um[num] = um->um[c];
1148+ new->um[num].desc = xstrdup(new->um[num].desc);
1149+ }
1150+ }
1151+ if (type == -1U)
1152+ parse_error("Empty unit mask");
1153+ new->unit_type_mask = type;
1154+ return new;
1155+}
1156+
1157+/* parse either a "tag:value" or a ": trailing description string" */
1158+static int next_token(char const ** cp, char ** name, char ** value)
1159+{
1160+ size_t tag_len;
1161+ size_t val_len;
1162+ char const * c = *cp;
1163+ char const * end;
1164+ char const * colon;
1165+
1166+ c = skip_ws(c);
1167+ end = colon = c;
1168+ end = skip_nonws(end);
1169+
1170+ colon = strchr(colon, ':');
1171+
1172+ if (!colon) {
1173+ if (*c)
1174+ parse_error("next_token(): garbage at end of line");
1175+ return 0;
1176+ }
1177+
1178+ if (colon >= end)
1179+ parse_error("next_token() expected ':'");
1180+
1181+ tag_len = colon - c;
1182+ val_len = end - (colon + 1);
1183+
1184+ if (!tag_len) {
1185+ /* : trailing description */
1186+ end = skip_ws(end);
1187+ *name = xstrdup("desc");
1188+ *value = xstrdup(end);
1189+ end += strlen(end);
1190+ } else {
1191+ /* tag:value */
1192+ *name = op_xstrndup(c, tag_len);
1193+ *value = op_xstrndup(colon + 1, val_len);
1194+ end = skip_ws(end);
1195+ }
1196+
1197+ *cp = end;
1198+ return 1;
1199+}
1200+
1201+static void include_events (char *value)
1202+{
1203+ char * event_file;
1204+ const char *old_filename;
1205+ int old_line_nr;
1206+
1207+ event_file = build_fn(value, "events");
1208+ old_line_nr = line_nr;
1209+ old_filename = filename;
1210+ read_events(event_file);
1211+ line_nr = old_line_nr;
1212+ filename = old_filename;
1213+ free(event_file);
1214+}
1215+
1216+static struct op_event * new_event(void)
1217+{
1218+ struct op_event * event = xmalloc(sizeof(struct op_event));
1219+ memset(event, '\0', sizeof(struct op_event));
1220+ list_add_tail(&event->event_next, &events_list);
1221+
1222+ return event;
1223+}
1224+
1225+static void free_event(struct op_event * event)
1226+{
1227+ list_del(&event->event_next);
1228+ free(event);
1229+}
1230+
1231+/* event:0x00 counters:0 um:zero minimum:4096 name:ISSUES : Total issues */
1232+/* event:0x00 ext:xxxxxx um:zero minimum:4096 name:ISSUES : Total issues */
1233+static void read_events(char const * file)
1234+{
1235+ struct op_event * event = NULL;
1236+ char * line;
1237+ char * name;
1238+ char * value;
1239+ char const * c;
1240+ int seen_event, seen_counters, seen_um, seen_minimum, seen_name, seen_ext;
1241+ FILE * fp = fopen(file, "r");
1242+ int tags;
1243+
1244+ if (!fp) {
1245+ fprintf(stderr, "oprofile: could not open event description file %s\n", file);
1246+ exit(EXIT_FAILURE);
1247+ }
1248+
1249+ filename = file;
1250+ line_nr = 1;
1251+
1252+ line = op_get_line(fp);
1253+
1254+ while (line) {
1255+ if (empty_line(line) || comment_line(line))
1256+ goto next;
1257+
1258+ tags = 0;
1259+ seen_name = 0;
1260+ seen_event = 0;
1261+ seen_counters = 0;
1262+ seen_ext = 0;
1263+ seen_um = 0;
1264+ seen_minimum = 0;
1265+ event = new_event();
1266+ event->filter = -1;
1267+ event->ext = NULL;
1268+
1269+ c = line;
1270+ while (next_token(&c, &name, &value)) {
1271+ if (strcmp(name, "name") == 0) {
1272+ if (seen_name)
1273+ parse_error("duplicate name: tag");
1274+ seen_name = 1;
1275+ if (strchr(value, '/') != NULL)
1276+ parse_error("invalid event name");
1277+ if (strchr(value, '.') != NULL)
1278+ parse_error("invalid event name");
1279+ event->name = value;
1280+ } else if (strcmp(name, "event") == 0) {
1281+ if (seen_event)
1282+ parse_error("duplicate event: tag");
1283+ seen_event = 1;
1284+ event->val = parse_hex(value);
1285+ free(value);
1286+ } else if (strcmp(name, "counters") == 0) {
1287+ if (seen_counters)
1288+ parse_error("duplicate counters: tag");
1289+ seen_counters = 1;
1290+ if (!strcmp(value, "cpuid"))
1291+ event->counter_mask = arch_get_counter_mask();
1292+ else
1293+ event->counter_mask = parse_counter_mask(value);
1294+ free(value);
1295+ } else if (strcmp(name, "ext") == 0) {
1296+ if (seen_ext)
1297+ parse_error("duplicate ext: tag");
1298+ seen_ext = 1;
1299+ event->ext = value;
1300+ } else if (strcmp(name, "um") == 0) {
1301+ if (seen_um)
1302+ parse_error("duplicate um: tag");
1303+ seen_um = 1;
1304+ if (strchr(value, ','))
1305+ event->unit = merge_um(value);
1306+ else
1307+ event->unit = find_um(value);
1308+ free(value);
1309+ } else if (strcmp(name, "minimum") == 0) {
1310+ if (seen_minimum)
1311+ parse_error("duplicate minimum: tag");
1312+ seen_minimum = 1;
1313+ event->min_count = parse_int(value);
1314+ free(value);
1315+ } else if (strcmp(name, "desc") == 0) {
1316+ event->desc = value;
1317+ } else if (strcmp(name, "filter") == 0) {
1318+ event->filter = parse_int(value);
1319+ free(value);
1320+ } else if (strcmp(name, "include") == 0) {
1321+ if (tags > 0)
1322+ parse_error("tags before include:");
1323+ free_event(event);
1324+ include_events(value);
1325+ free(value);
1326+ c = skip_ws(c);
1327+ if (*c != '\0' && *c != '#')
1328+ parse_error("non whitespace after include:");
1329+ } else {
1330+ parse_error("unknown tag");
1331+ }
1332+ tags++;
1333+
1334+ free(name);
1335+ }
1336+next:
1337+ free(line);
1338+ line = op_get_line(fp);
1339+ ++line_nr;
1340+ }
1341+
1342+ fclose(fp);
1343+}
1344+
1345+
1346+/* usefull for make check */
1347+static int check_unit_mask(struct op_unit_mask const * um,
1348+ char const * cpu_name)
1349+{
1350+ u32 i;
1351+ int err = 0;
1352+
1353+ if (!um->used) {
1354+ fprintf(stderr, "um %s is not used\n", um->name);
1355+ err = EXIT_FAILURE;
1356+ }
1357+
1358+ if (um->unit_type_mask == utm_mandatory && um->num != 1) {
1359+ fprintf(stderr, "mandatory um %s doesn't contain exactly one "
1360+ "entry (%s)\n", um->name, cpu_name);
1361+ err = EXIT_FAILURE;
1362+ } else if (um->unit_type_mask == utm_bitmask) {
1363+ u32 default_mask = um->default_mask;
1364+ for (i = 0; i < um->num; ++i)
1365+ default_mask &= ~um->um[i].value;
1366+
1367+ if (default_mask) {
1368+ fprintf(stderr, "um %s default mask is not valid "
1369+ "(%s)\n", um->name, cpu_name);
1370+ err = EXIT_FAILURE;
1371+ }
1372+ } else {
1373+ for (i = 0; i < um->num; ++i) {
1374+ if (um->default_mask == um->um[i].value)
1375+ break;
1376+ }
1377+
1378+ if (i == um->num) {
1379+ fprintf(stderr, "exclusive um %s default value is not "
1380+ "valid (%s)\n", um->name, cpu_name);
1381+ err = EXIT_FAILURE;
1382+ }
1383+ }
1384+ return err;
1385+}
1386+
1387+static void arch_filter_events(op_cpu cpu_type)
1388+{
1389+ struct list_head * pos, * pos2;
1390+ unsigned filter = arch_get_filter(cpu_type);
1391+ if (!filter)
1392+ return;
1393+ list_for_each_safe (pos, pos2, &events_list) {
1394+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1395+ if (event->filter >= 0 && ((1U << event->filter) & filter))
1396+ delete_event(event);
1397+ }
1398+}
1399+
1400+static void load_events_name(const char *cpu_name)
1401+{
1402+ char * event_file;
1403+ char * um_file;
1404+
1405+ event_file = build_fn(cpu_name, "events");
1406+ um_file = build_fn(cpu_name, "unit_masks");
1407+
1408+ read_unit_masks(um_file);
1409+ read_events(event_file);
1410+
1411+ free(um_file);
1412+ free(event_file);
1413+}
1414+
1415+static void load_events(op_cpu cpu_type)
1416+{
1417+ const char * cpu_name = op_get_cpu_name(cpu_type);
1418+ struct list_head * pos;
1419+ struct op_event *event;
1420+ struct op_unit_mask *unit_mask;
1421+ int err = 0;
1422+
1423+ if (!list_empty(&events_list))
1424+ return;
1425+
1426+ load_events_name(cpu_name);
1427+
1428+ arch_filter_events(cpu_type);
1429+
1430+ /* sanity check: all unit mask must be used */
1431+ list_for_each(pos, &um_list) {
1432+ struct op_unit_mask * um = list_entry(pos, struct op_unit_mask, um_next);
1433+ err |= check_unit_mask(um, cpu_name);
1434+ }
1435+ if (err)
1436+ exit(err);
1437+
1438+ if (!op_cpu_has_timer_fs())
1439+ return;
1440+
1441+ /* sanity check: Don't use event `TIMER' since it is predefined. */
1442+ list_for_each(pos, &events_list) {
1443+ struct op_event * event = list_entry(pos, struct op_event,
1444+ event_next);
1445+
1446+ if (strcmp(event->name, TIMER_EVENT_NAME) == 0) {
1447+ fprintf(stderr, "Error: " TIMER_EVENT_NAME
1448+ " event cannot be redefined.\n");
1449+ exit(EXIT_FAILURE);
1450+ }
1451+ if (event->val == TIMER_EVENT_VALUE) {
1452+ fprintf(stderr, "Error: Event %s uses " TIMER_EVENT_NAME
1453+ " which is reserverd for timer based sampling.\n",
1454+ event->name);
1455+ exit(EXIT_FAILURE);
1456+ }
1457+ }
1458+
1459+ list_for_each(pos, &um_list) {
1460+ struct op_unit_mask * um = list_entry(pos, struct op_unit_mask,
1461+ um_next);
1462+ if (strcmp(um->name, TIMER_EVENT_UNIT_MASK_NAME) == 0) {
1463+ fprintf(stderr, "Error: " TIMER_EVENT_UNIT_MASK_NAME
1464+ " unit mask cannot be redefined.\n");
1465+ exit(EXIT_FAILURE);
1466+ }
1467+ }
1468+
1469+ unit_mask = new_unit_mask();
1470+ unit_mask->name = xstrdup(TIMER_EVENT_UNIT_MASK_NAME);
1471+ unit_mask->num = 1;
1472+ unit_mask->unit_type_mask = utm_mandatory;
1473+ unit_mask->um[0].extra = 0;
1474+ unit_mask->um[0].value = 0;
1475+ unit_mask->um[0].desc = xstrdup("No unit mask");
1476+ unit_mask->used = 1;
1477+
1478+ event = new_event();
1479+ event->name = xstrdup(TIMER_EVENT_NAME);
1480+ event->desc = xstrdup(TIMER_EVENT_DESC);
1481+ event->val = TIMER_EVENT_VALUE;
1482+ event->unit = unit_mask;
1483+ event->min_count = 0;
1484+ event->filter = 0;
1485+ event->counter_mask = 1 << (op_get_nr_counters(cpu_type) - 1);
1486+ event->ext = NULL;
1487+ event->filter = -1;
1488+}
1489+
1490+struct list_head * op_events(op_cpu cpu_type)
1491+{
1492+ load_events(cpu_type);
1493+ arch_filter_events(cpu_type);
1494+ return &events_list;
1495+}
1496+
1497+
1498+static void delete_unit_mask(struct op_unit_mask * unit)
1499+{
1500+ u32 cur;
1501+ for (cur = 0 ; cur < unit->num ; ++cur) {
1502+ if (unit->um[cur].desc)
1503+ free(unit->um[cur].desc);
1504+ }
1505+
1506+ if (unit->name)
1507+ free(unit->name);
1508+
1509+ list_del(&unit->um_next);
1510+ free(unit);
1511+}
1512+
1513+
1514+static void delete_event(struct op_event * event)
1515+{
1516+ if (event->name)
1517+ free(event->name);
1518+ if (event->desc)
1519+ free(event->desc);
1520+
1521+ list_del(&event->event_next);
1522+ free(event);
1523+}
1524+
1525+
1526+void op_free_events(void)
1527+{
1528+ struct list_head * pos, * pos2;
1529+ list_for_each_safe(pos, pos2, &events_list) {
1530+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1531+ delete_event(event);
1532+ }
1533+
1534+ list_for_each_safe(pos, pos2, &um_list) {
1535+ struct op_unit_mask * unit = list_entry(pos, struct op_unit_mask, um_next);
1536+ delete_unit_mask(unit);
1537+ }
1538+}
1539+
1540+/* There can be actually multiple events here, so this is not quite correct */
1541+static struct op_event * find_event_any(u32 nr)
1542+{
1543+ struct list_head * pos;
1544+
1545+ list_for_each(pos, &events_list) {
1546+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1547+ if (event->val == nr)
1548+ return event;
1549+ }
1550+
1551+ return NULL;
1552+}
1553+
1554+static struct op_event * find_event_um(u32 nr, u32 um)
1555+{
1556+ struct list_head * pos;
1557+ unsigned int i;
1558+
1559+ list_for_each(pos, &events_list) {
1560+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1561+ if (event->val == nr) {
1562+ for (i = 0; i < event->unit->num; i++) {
1563+ if (event->unit->um[i].value == um)
1564+ return event;
1565+ }
1566+ }
1567+ }
1568+
1569+ return NULL;
1570+}
1571+
1572+static FILE * open_event_mapping_file(char const * cpu_name)
1573+{
1574+ char * ev_map_file;
1575+ char * dir;
1576+ dir = getenv("OPROFILE_EVENTS_DIR");
1577+ if (dir == NULL)
1578+ dir = OP_DATADIR;
1579+
1580+ ev_map_file = xmalloc(strlen(dir) + strlen("/") + strlen(cpu_name) +
1581+ strlen("/") + + strlen("event_mappings") + 1);
1582+ strcpy(ev_map_file, dir);
1583+ strcat(ev_map_file, "/");
1584+
1585+ strcat(ev_map_file, cpu_name);
1586+ strcat(ev_map_file, "/");
1587+ strcat(ev_map_file, "event_mappings");
1588+ filename = ev_map_file;
1589+ return (fopen(ev_map_file, "r"));
1590+}
1591+
1592+
1593+/**
1594+ * This function is PPC64-specific.
1595+ */
1596+static char const * get_mapping(u32 nr, FILE * fp)
1597+{
1598+ char * line;
1599+ char * name;
1600+ char * value;
1601+ char const * c;
1602+ char * map = NULL;
1603+ int seen_event = 0, seen_mmcr0 = 0, seen_mmcr1 = 0, seen_mmcra = 0;
1604+ u32 mmcr0 = 0;
1605+ u64 mmcr1 = 0;
1606+ u32 mmcra = 0;
1607+ int event_found = 0;
1608+
1609+ line_nr = 1;
1610+ line = op_get_line(fp);
1611+ while (line && !event_found) {
1612+ if (empty_line(line) || comment_line(line))
1613+ goto next;
1614+
1615+ seen_event = 0;
1616+ seen_mmcr0 = 0;
1617+ seen_mmcr1 = 0;
1618+ seen_mmcra = 0;
1619+ mmcr0 = 0;
1620+ mmcr1 = 0;
1621+ mmcra = 0;
1622+
1623+ c = line;
1624+ while (next_token(&c, &name, &value)) {
1625+ if (strcmp(name, "event") == 0) {
1626+ u32 evt;
1627+ if (seen_event)
1628+ parse_error("duplicate event tag");
1629+ seen_event = 1;
1630+ evt = parse_hex(value);
1631+ if (evt == nr)
1632+ event_found = 1;
1633+ free(value);
1634+ } else if (strcmp(name, "mmcr0") == 0) {
1635+ if (seen_mmcr0)
1636+ parse_error("duplicate mmcr0 tag");
1637+ seen_mmcr0 = 1;
1638+ mmcr0 = parse_hex(value);
1639+ free(value);
1640+ } else if (strcmp(name, "mmcr1") == 0) {
1641+ if (seen_mmcr1)
1642+ parse_error("duplicate mmcr1: tag");
1643+ seen_mmcr1 = 1;
1644+ mmcr1 = parse_long_hex(value);
1645+ free(value);
1646+ } else if (strcmp(name, "mmcra") == 0) {
1647+ if (seen_mmcra)
1648+ parse_error("duplicate mmcra: tag");
1649+ seen_mmcra = 1;
1650+ mmcra = parse_hex(value);
1651+ free(value);
1652+ } else {
1653+ parse_error("unknown tag");
1654+ }
1655+
1656+ free(name);
1657+ }
1658+next:
1659+ free(line);
1660+ line = op_get_line(fp);
1661+ ++line_nr;
1662+ }
1663+ if (event_found) {
1664+ if (!seen_mmcr0 || !seen_mmcr1 || !seen_mmcra) {
1665+ fprintf(stderr, "Error: Missing information in line %d of event mapping file %s\n", line_nr, filename);
1666+ exit(EXIT_FAILURE);
1667+ }
1668+ map = xmalloc(70);
1669+ snprintf(map, 70, "mmcr0:%u mmcr1:%Lu mmcra:%u",
1670+ mmcr0, mmcr1, mmcra);
1671+ }
1672+
1673+ return map;
1674+}
1675+
1676+
1677+char const * find_mapping_for_event(u32 nr, op_cpu cpu_type)
1678+{
1679+ char const * cpu_name = op_get_cpu_name(cpu_type);
1680+ FILE * fp = open_event_mapping_file(cpu_name);
1681+ char const * map = NULL;
1682+ switch (cpu_type) {
1683+ case CPU_PPC64_PA6T:
1684+ case CPU_PPC64_970:
1685+ case CPU_PPC64_970MP:
1686+ case CPU_PPC64_POWER4:
1687+ case CPU_PPC64_POWER5:
1688+ case CPU_PPC64_POWER5p:
1689+ case CPU_PPC64_POWER5pp:
1690+ case CPU_PPC64_POWER6:
1691+ case CPU_PPC64_POWER7:
1692+ case CPU_PPC64_IBM_COMPAT_V1:
1693+ if (!fp) {
1694+ fprintf(stderr, "oprofile: could not open event mapping file %s\n", filename);
1695+ exit(EXIT_FAILURE);
1696+ } else {
1697+ map = get_mapping(nr, fp);
1698+ }
1699+ break;
1700+ default:
1701+ break;
1702+ }
1703+
1704+ if (fp)
1705+ fclose(fp);
1706+
1707+ return map;
1708+}
1709+
1710+static int match_event(int i, struct op_event *event, unsigned um)
1711+{
1712+ unsigned v = event->unit->um[i].value;
1713+
1714+ switch (event->unit->unit_type_mask) {
1715+ case utm_exclusive:
1716+ case utm_mandatory:
1717+ return v == um;
1718+
1719+ case utm_bitmask:
1720+ return (v & um) || (!v && v == 0);
1721+ }
1722+
1723+ abort();
1724+}
1725+
1726+struct op_event * find_event_by_name(char const * name, unsigned um, int um_valid)
1727+{
1728+ struct list_head * pos;
1729+
1730+ list_for_each(pos, &events_list) {
1731+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1732+ if (strcmp(event->name, name) == 0) {
1733+ if (um_valid) {
1734+ unsigned i;
1735+
1736+ for (i = 0; i < event->unit->num; i++)
1737+ if (match_event(i, event, um))
1738+ return event;
1739+ continue;
1740+ }
1741+ return event;
1742+ }
1743+ }
1744+
1745+ return NULL;
1746+}
1747+
1748+
1749+static struct op_event * find_next_event(struct op_event * e)
1750+{
1751+ struct list_head * n;
1752+
1753+ for (n = e->event_next.next; n != &events_list; n = n->next) {
1754+ struct op_event * ne = list_entry(n, struct op_event, event_next);
1755+ if (!strcmp(e->name, ne->name))
1756+ return ne;
1757+ }
1758+ return NULL;
1759+}
1760+
1761+struct op_event * op_find_event(op_cpu cpu_type, u32 nr, u32 um)
1762+{
1763+ struct op_event * event;
1764+
1765+ load_events(cpu_type);
1766+
1767+ event = find_event_um(nr, um);
1768+
1769+ return event;
1770+}
1771+
1772+struct op_event * op_find_event_any(op_cpu cpu_type, u32 nr)
1773+{
1774+ load_events(cpu_type);
1775+
1776+ return find_event_any(nr);
1777+}
1778+
1779+int op_check_events(int ctr, u32 nr, u32 um, op_cpu cpu_type)
1780+{
1781+ int ret = OP_INVALID_EVENT;
1782+ size_t i;
1783+ u32 ctr_mask = 1 << ctr;
1784+ struct list_head * pos;
1785+
1786+ load_events(cpu_type);
1787+
1788+ list_for_each(pos, &events_list) {
1789+ struct op_event * event = list_entry(pos, struct op_event, event_next);
1790+ if (event->val != nr)
1791+ continue;
1792+
1793+ ret = OP_OK_EVENT;
1794+
1795+ if ((event->counter_mask & ctr_mask) == 0)
1796+ ret |= OP_INVALID_COUNTER;
1797+
1798+ if (event->unit->unit_type_mask == utm_bitmask) {
1799+ for (i = 0; i < event->unit->num; ++i)
1800+ um &= ~(event->unit->um[i].value);
1801+
1802+ if (um)
1803+ ret |= OP_INVALID_UM;
1804+
1805+ } else {
1806+ for (i = 0; i < event->unit->num; ++i) {
1807+ if (event->unit->um[i].value == um)
1808+ break;
1809+ }
1810+
1811+ if (i == event->unit->num)
1812+ ret |= OP_INVALID_UM;
1813+
1814+ }
1815+
1816+ if (ret == OP_OK_EVENT)
1817+ return ret;
1818+ }
1819+
1820+ return ret;
1821+}
1822+
1823+
1824+void op_default_event(op_cpu cpu_type, struct op_default_event_descr * descr)
1825+{
1826+ descr->name = "";
1827+ descr->um = 0x0;
1828+ /* A fixed value of CPU cycles; this should ensure good
1829+ * granulity even on faster CPUs, though it will generate more
1830+ * interrupts.
1831+ */
1832+ descr->count = 100000;
1833+
1834+ switch (cpu_type) {
1835+ case CPU_PPRO:
1836+ case CPU_PII:
1837+ case CPU_PIII:
1838+ case CPU_P6_MOBILE:
1839+ case CPU_CORE:
1840+ case CPU_CORE_2:
1841+ case CPU_ATHLON:
1842+ case CPU_HAMMER:
1843+ case CPU_FAMILY10:
1844+ case CPU_ARCH_PERFMON:
1845+ case CPU_FAMILY11H:
1846+ case CPU_ATOM:
1847+ case CPU_CORE_I7:
1848+ case CPU_NEHALEM:
1849+ case CPU_WESTMERE:
1850+ case CPU_SANDYBRIDGE:
1851+ case CPU_IVYBRIDGE:
1852+ case CPU_MIPS_LOONGSON2:
1853+ case CPU_FAMILY12H:
1854+ case CPU_FAMILY14H:
1855+ case CPU_FAMILY15H:
1856+ descr->name = "CPU_CLK_UNHALTED";
1857+ break;
1858+
1859+ case CPU_RTC:
1860+ descr->name = "RTC_INTERRUPTS";
1861+ descr->count = 1024;
1862+ break;
1863+
1864+ case CPU_P4:
1865+ case CPU_P4_HT2:
1866+ descr->name = "GLOBAL_POWER_EVENTS";
1867+ descr->um = 0x1;
1868+ break;
1869+
1870+ case CPU_IA64:
1871+ case CPU_IA64_1:
1872+ case CPU_IA64_2:
1873+ descr->count = 1000000;
1874+ descr->name = "CPU_CYCLES";
1875+ break;
1876+
1877+ case CPU_AXP_EV4:
1878+ case CPU_AXP_EV5:
1879+ case CPU_AXP_PCA56:
1880+ case CPU_AXP_EV6:
1881+ case CPU_AXP_EV67:
1882+ descr->name = "CYCLES";
1883+ break;
1884+
1885+ // we could possibly use the CCNT
1886+ case CPU_ARM_XSCALE1:
1887+ case CPU_ARM_XSCALE2:
1888+ case CPU_ARM_MPCORE:
1889+ case CPU_ARM_V6:
1890+ case CPU_ARM_V7:
1891+ case CPU_ARM_V7_CA5:
1892+ case CPU_ARM_V7_CA7:
1893+ case CPU_ARM_V7_CA9:
1894+ case CPU_ARM_V7_CA15:
1895+ case CPU_AVR32:
1896+ case CPU_ARM_SCORPION:
1897+ case CPU_ARM_SCORPIONMP:
1898+ descr->name = "CPU_CYCLES";
1899+ break;
1900+
1901+ case CPU_PPC64_PA6T:
1902+ case CPU_PPC64_970:
1903+ case CPU_PPC64_970MP:
1904+ case CPU_PPC_7450:
1905+ case CPU_PPC64_POWER4:
1906+ case CPU_PPC64_POWER5:
1907+ case CPU_PPC64_POWER6:
1908+ case CPU_PPC64_POWER5p:
1909+ case CPU_PPC64_POWER5pp:
1910+ case CPU_PPC64_CELL:
1911+ case CPU_PPC64_POWER7:
1912+ case CPU_PPC64_IBM_COMPAT_V1:
1913+ descr->name = "CYCLES";
1914+ break;
1915+
1916+ case CPU_MIPS_20K:
1917+ descr->name = "CYCLES";
1918+ break;
1919+
1920+ case CPU_MIPS_24K:
1921+ case CPU_MIPS_34K:
1922+ case CPU_MIPS_74K:
1923+ case CPU_MIPS_1004K:
1924+ descr->name = "INSTRUCTIONS";
1925+ break;
1926+
1927+ case CPU_MIPS_5K:
1928+ case CPU_MIPS_25K:
1929+ descr->name = "CYCLES";
1930+ break;
1931+
1932+ case CPU_MIPS_R10000:
1933+ case CPU_MIPS_R12000:
1934+ descr->name = "INSTRUCTIONS_GRADUATED";
1935+ break;
1936+
1937+ case CPU_MIPS_RM7000:
1938+ case CPU_MIPS_RM9000:
1939+ descr->name = "INSTRUCTIONS_ISSUED";
1940+ break;
1941+
1942+ case CPU_MIPS_SB1:
1943+ descr->name = "INSN_SURVIVED_STAGE7";
1944+ break;
1945+
1946+ case CPU_MIPS_VR5432:
1947+ case CPU_MIPS_VR5500:
1948+ descr->name = "INSTRUCTIONS_EXECUTED";
1949+ break;
1950+
1951+ case CPU_PPC_E500:
1952+ case CPU_PPC_E500_2:
1953+ case CPU_PPC_E300:
1954+ descr->name = "CPU_CLK";
1955+ break;
1956+ case CPU_S390_Z10:
1957+ case CPU_S390_Z196:
1958+ if (op_get_nr_counters(cpu_type) > 1) {
1959+ descr->name = "HWSAMPLING";
1960+ descr->count = 4127518;
1961+ } else {
1962+ descr->name = TIMER_EVENT_NAME;
1963+ descr->count = 10000;
1964+ }
1965+ break;
1966+
1967+ case CPU_TILE_TILE64:
1968+ case CPU_TILE_TILEPRO:
1969+ case CPU_TILE_TILEGX:
1970+ descr->name = "ONE";
1971+ break;
1972+
1973+ // don't use default, if someone add a cpu he wants a compiler
1974+ // warning if he forgets to handle it here.
1975+ case CPU_TIMER_INT:
1976+ case CPU_NO_GOOD:
1977+ case MAX_CPU_TYPE:
1978+ break;
1979+ }
1980+}
1981+
1982+static void extra_check(struct op_event *e, u32 unit_mask)
1983+{
1984+ unsigned i;
1985+ int found = 0;
1986+
1987+ for (i = 0; i < e->unit->num; i++)
1988+ if (e->unit->um[i].value == unit_mask)
1989+ found++;
1990+ if (found > 1) {
1991+ fprintf(stderr,
1992+"Named unit masks not allowed for events without 'extra:' values.\n"
1993+"Please specify the numerical value for the unit mask. See 'opcontrol'"
1994+" man page for more info.\n");
1995+ exit(EXIT_FAILURE);
1996+ }
1997+}
1998+
1999+static void another_extra_check(struct op_event *e, char *name, unsigned w)
2000+{
2001+ int found;
2002+ unsigned i;
2003+
2004+ if (!e->unit->um[w].extra) {
2005+ fprintf(stderr,
2006+"Named unit mask (%s) not allowed for event without 'extra:' values.\n"
2007+"Please specify the numerical value for the unit mask. See 'opcontrol'"
2008+" man page for more info.\n", name);
2009+ exit(EXIT_FAILURE);
2010+ }
2011+
2012+ found = 0;
2013+ for (i = 0; i < e->unit->num; i++) {
2014+ int len = strcspn(e->unit->um[i].desc, " \t");
2015+ if (!strncmp(name, e->unit->um[i].desc, len) &&
2016+ name[len] == '\0')
2017+ found++;
2018+ }
2019+ if (found > 1) {
2020+ fprintf(stderr,
2021+ "Unit mask name `%s' not unique. Sorry please use a numerical unit mask\n", name);
2022+ exit(EXIT_FAILURE);
2023+ }
2024+}
2025+
2026+static void do_resolve_unit_mask(struct op_event *e, struct parsed_event *pe,
2027+ u32 *extra)
2028+{
2029+ unsigned i;
2030+ int found;
2031+
2032+ for (;;) {
2033+ if (pe->unit_mask_name == NULL) {
2034+ int had_unit_mask = pe->unit_mask_valid;
2035+
2036+ found = 0;
2037+ for (i = 0; i < e->unit->num; i++) {
2038+ if (!pe->unit_mask_valid &&
2039+ e->unit->um[i].value == e->unit->default_mask) {
2040+ pe->unit_mask_valid = 1;
2041+ pe->unit_mask = e->unit->default_mask;
2042+ break;
2043+ }
2044+ }
2045+ if (found > 1 && had_unit_mask) {
2046+ fprintf(stderr,
2047+ "Non unique numerical unit mask.\n"
2048+ "Please specify the unit mask using the first word of the description\n");
2049+ exit(EXIT_FAILURE);
2050+ }
2051+ extra_check(e, pe->unit_mask);
2052+ if (i == e->unit->num) {
2053+ e = find_next_event(e);
2054+ if (e != NULL)
2055+ continue;
2056+ } else {
2057+ if (extra)
2058+ *extra = e->unit->um[i].extra;
2059+ }
2060+ return;
2061+ }
2062+ for (i = 0; i < e->unit->num; i++) {
2063+ int len = strcspn(e->unit->um[i].desc, " \t");
2064+ if (!strncmp(pe->unit_mask_name, e->unit->um[i].desc,
2065+ len) && pe->unit_mask_name[len] == '\0')
2066+ break;
2067+ }
2068+ if (i == e->unit->num) {
2069+ e = find_next_event(e);
2070+ if (e != NULL)
2071+ continue;
2072+ fprintf(stderr, "Cannot find unit mask %s for %s\n",
2073+ pe->unit_mask_name, pe->name);
2074+ exit(EXIT_FAILURE);
2075+ }
2076+ another_extra_check(e, pe->unit_mask_name, i);
2077+ pe->unit_mask_valid = 1;
2078+ pe->unit_mask = e->unit->um[i].value;
2079+ if (extra)
2080+ *extra = e->unit->um[i].extra;
2081+ return;
2082+ }
2083+}
2084+
2085+void op_resolve_unit_mask(struct parsed_event *pe, u32 *extra)
2086+{
2087+ struct op_event *e;
2088+
2089+ e = find_event_by_name(pe->name, 0, 0);
2090+ if (!e) {
2091+ fprintf(stderr, "Cannot find event %s\n", pe->name);
2092+ exit(EXIT_FAILURE);
2093+ }
2094+ return do_resolve_unit_mask(e, pe, extra);
2095+}
diff --git a/recipes-append/oprofile/oprofile_0.9.8.bbappend b/recipes-append/oprofile/oprofile_0.9.8.bbappend
new file mode 100644
index 0000000..c631963
--- /dev/null
+++ b/recipes-append/oprofile/oprofile_0.9.8.bbappend
@@ -0,0 +1,3 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://oprofile-e500mc.patch"
diff --git a/recipes-append/perf/perf.bbappend b/recipes-append/perf/perf.bbappend
new file mode 100644
index 0000000..864f938
--- /dev/null
+++ b/recipes-append/perf/perf.bbappend
@@ -0,0 +1,4 @@
1#
2# added the python-math and python-sqlite3 modules, required by perf
3#
4SCRIPTING_RDEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl perl-modules python python-math python-sqlite3', '',d)}"
diff --git a/recipes-bsp/libuio/libuio/run-ptest b/recipes-bsp/libuio/libuio/run-ptest
new file mode 100644
index 0000000..46c80b5
--- /dev/null
+++ b/recipes-bsp/libuio/libuio/run-ptest
@@ -0,0 +1,3 @@
1#!/bin/sh
2echo "SKIP: no upstream test"
3
diff --git a/recipes-bsp/libuio/libuio_git.bb b/recipes-bsp/libuio/libuio_git.bb
new file mode 100644
index 0000000..216c678
--- /dev/null
+++ b/recipes-bsp/libuio/libuio_git.bb
@@ -0,0 +1,31 @@
1SUMMARY = "libUIO"
2DESCRIPTION = "Provide a generic framework for handling devices in userspace."
3HOMEPAGE = "https://www.osadl.org/UIO.uio.0.html"
4SECTION = "libs"
5LICENSE = "GPLv2"
6
7LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
8
9SRCREV = "cc233857ba1613801e7218d07127d19608a99702"
10PR = "r0"
11PV = "1.0+git${SRCPV}"
12
13SRC_URI = "git://git.linutronix.de/projects/libUIO;protocol=git \
14 file://run-ptest"
15
16DEPENDS = "virtual/libc"
17
18S = "${WORKDIR}/git"
19
20inherit autotools
21
22do_configure_prepend () {
23 touch ${S}/ChangeLog
24}
25
26do_install_append () {
27 if [ "${PN}" = "${BPN}" -a ${PTEST_ENABLED} = "1" ]; then
28 mkdir -p ${D}${PTEST_PATH}
29 install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}
30 fi
31}
diff --git a/recipes-bsp/rtl8168/files/r8168-8.031.00.tar.bz2 b/recipes-bsp/rtl8168/files/r8168-8.031.00.tar.bz2
new file mode 100644
index 0000000..114d5a1
--- /dev/null
+++ b/recipes-bsp/rtl8168/files/r8168-8.031.00.tar.bz2
Binary files differ
diff --git a/recipes-bsp/rtl8168/rtl8168_8.031.00.bb b/recipes-bsp/rtl8168/rtl8168_8.031.00.bb
new file mode 100644
index 0000000..e5831c6
--- /dev/null
+++ b/recipes-bsp/rtl8168/rtl8168_8.031.00.bb
@@ -0,0 +1,35 @@
1SUMMARY = "RTL8111/8168 PCI Express 10/100/1000M Gigabit Ethernet"
2DESCRIPTION = "http://www.realtek.com.tw/"
3SECTION = "kernel/modules"
4
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://Makefile;md5=27208bd930c8f7f55db149f659059e10"
7
8DEPENDS = "linux-libc-headers module-init-tools"
9
10SRC_URI = "file://r8168-${PV}.tar.bz2"
11
12SRC_URI[md5sum] = "ec1654f02e2dad930bbeb0210ddab7e5"
13SRC_URI[sha256sum] = "5c617b3c08aca18d1eb24d33f77df40020eb64fb32c8e4008265e08b7ffe5779"
14
15S = "${WORKDIR}/r8168-${PV}/src"
16
17inherit module
18
19do_compile () {
20 cd ${S}
21 do_make_scripts
22 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
23 oe_runmake KERNELDIR=${STAGING_KERNEL_DIR} \
24 KERNEL_SRC=${STAGING_KERNEL_DIR} \
25 KERNEL_VERSION=${KERNEL_VERSION} \
26 CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
27 AR="${KERNEL_AR}" \
28 modules
29}
30
31do_install () {
32 mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net
33 cp ${S}/*ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net
34}
35
diff --git a/recipes-connectivity/connman/connman_1.25.bbappend b/recipes-connectivity/connman/connman_1.25.bbappend
new file mode 100644
index 0000000..4f72ec3
--- /dev/null
+++ b/recipes-connectivity/connman/connman_1.25.bbappend
@@ -0,0 +1,5 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://0001-added-noipconfig-option.patch \
4 file://connman \
5 "
diff --git a/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch b/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch
new file mode 100644
index 0000000..d86b778
--- /dev/null
+++ b/recipes-connectivity/connman/files/0001-added-noipconfig-option.patch
@@ -0,0 +1,353 @@
1Disabling interface index for desired interfaces so that all methods dealing
2with those indexes (ifup, ifdown, new route, new gateway, etc.) will exit
3immediately. This is obtained through a new option called "noipconfig".
4Helpful when dealing with NFS dhcp method like:
5root=/dev/nfs rw nfsroot=172.21.3.8:/unix/enea_linux_rootfs/user/p2041rdb \
6 ip=dhcp console=ttyS0,115200 memmap=16M$0xf7000000 \
7 mem=4080M max_addr=f6ffffff
8
9This ports the https://www.cvg.de/people/ensc/0001-added-noipconfig-option.patch
10 change to connman_1.25. In http://patchwork.openembedded.org/patch/57539/ that
11 change is considered too intrusive and specific to be upstreamed.
12
13Signed-off-by: George Nita <george.nita@enea.com>
14Upstream-Status: Not Applicable
15
16
17diff --git a/src/connman.h b/src/connman.h
18index db6461f..8f4f4d0 100644
19--- a/src/connman.h
20+++ b/src/connman.h
21@@ -544,7 +544,8 @@ void __connman_technology_notify_regdom_by_device(struct connman_device *device,
22
23 #include <connman/device.h>
24
25-int __connman_device_init(const char *device, const char *nodevice);
26+int __connman_device_init(const char *device, const char *nodevice,
27+ const char *noipconfig);
28 void __connman_device_cleanup(void);
29
30 void __connman_device_list(DBusMessageIter *iter, void *user_data);
31diff --git a/src/device.c b/src/device.c
32index c0683ab..6582c51 100644
33--- a/src/device.c
34+++ b/src/device.c
35@@ -37,6 +37,7 @@
36 static GSList *device_list = NULL;
37 static gchar **device_filter = NULL;
38 static gchar **nodevice_filter = NULL;
39+static gchar **noipconfig_filter = NULL;
40
41 enum connman_pending_type {
42 PENDING_NONE = 0,
43@@ -1314,6 +1315,20 @@ done:
44 return device;
45 }
46
47+static bool __connman_device_noipconfig(const char *devname)
48+{
49+ char **pattern;
50+
51+ for (pattern = noipconfig_filter; *pattern; pattern++) {
52+ if (g_pattern_match_simple(*pattern, devname) == TRUE) {
53+ DBG("do not configure device %s", devname);
54+ return TRUE;
55+ }
56+ }
57+
58+ return FALSE;
59+}
60+
61 bool __connman_device_isfiltered(const char *devname)
62 {
63 char **pattern;
64@@ -1403,6 +1418,9 @@ static void cleanup_devices(void)
65 if (index < 0)
66 continue;
67
68+ if (__connman_device_noipconfig(interfaces[i]))
69+ __connman_inet_disable_index(index);
70+
71 if (!__connman_inet_get_address_netmask(index, &sin_addr,
72 &sin_mask)) {
73 char *address = g_strdup(inet_ntoa(sin_addr.sin_addr));
74@@ -1435,7 +1453,8 @@ static void cleanup_devices(void)
75 g_strfreev(interfaces);
76 }
77
78-int __connman_device_init(const char *device, const char *nodevice)
79+int __connman_device_init(const char *device, const char *nodevice,
80+ const char *noipconfig)
81 {
82 DBG("");
83
84@@ -1445,6 +1464,9 @@ int __connman_device_init(const char *device, const char *nodevice)
85 if (nodevice)
86 nodevice_filter = g_strsplit(nodevice, ",", -1);
87
88+ if (noipconfig != NULL)
89+ noipconfig_filter = g_strsplit(noipconfig, ",", -1);
90+
91 cleanup_devices();
92
93 return 0;
94diff --git a/src/inet.c b/src/inet.c
95index fb37143..d1f2c2f 100644
96--- a/src/inet.c
97+++ b/src/inet.c
98@@ -55,6 +55,45 @@
99 ((struct rtattr *) (((uint8_t*) (nmsg)) + \
100 NLMSG_ALIGN((nmsg)->nlmsg_len)))
101
102+static GHashTable *g_disabled_indices;
103+
104+static guint g_intptr_hash(gconstpointer p)
105+{
106+ uintptr_t v = (uintptr_t)p;
107+ return g_int_hash(&v);
108+}
109+
110+static gboolean g_intptr_equal(gconstpointer p1,
111+ gconstpointer p2)
112+{
113+ uintptr_t v1 = (uintptr_t)p1;
114+ uintptr_t v2 = (uintptr_t)p2;
115+
116+ return g_int_equal(&v1, &v2);
117+}
118+
119+void __connman_inet_disable_index(int index)
120+{
121+ connman_info("disabling interface #%d for ipconfig", index);
122+
123+ if (g_disabled_indices == NULL)
124+ g_disabled_indices = g_hash_table_new_full(g_intptr_hash,
125+ g_intptr_equal,
126+ NULL, NULL);
127+
128+ g_hash_table_add(g_disabled_indices, (void *)index);
129+}
130+
131+static bool __connman_inet_is_disabled_index(int index)
132+{
133+ bool rc;
134+
135+ rc = (g_disabled_indices != NULL &&
136+ g_hash_table_contains(g_disabled_indices, (void *)index));
137+
138+ return rc;
139+}
140+
141 int __connman_inet_rtnl_addattr_l(struct nlmsghdr *n, size_t max_length,
142 int type, const void *data, size_t data_length)
143 {
144@@ -98,6 +137,11 @@ int __connman_inet_modify_address(int cmd, int flags,
145 "prefixlen %hhu broadcast %s", cmd, flags, index, family,
146 address, peer, prefixlen, broadcast);
147
148+ if (__connman_inet_is_disabled_index(index)) {
149+ connman_info("index disabled; skipping %s", __func__);
150+ return 0;
151+ }
152+
153 if (!address)
154 return -EINVAL;
155
156@@ -275,6 +319,11 @@ int connman_inet_ifup(int index)
157 struct ifreq ifr;
158 int sk, err;
159
160+ if (__connman_inet_is_disabled_index(index)) {
161+ connman_info("index disabled; skipping %s", __func__);
162+ return 0;
163+ }
164+
165 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
166 if (sk < 0)
167 return -errno;
168@@ -318,6 +367,11 @@ int connman_inet_ifdown(int index)
169 struct sockaddr_in *addr;
170 int sk, err;
171
172+ if (__connman_inet_is_disabled_index(index)) {
173+ connman_info("index disabled; skipping %s", __func__);
174+ return 0;
175+ }
176+
177 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
178 if (sk < 0)
179 return -errno;
180@@ -519,6 +573,11 @@ int connman_inet_add_network_route(int index, const char *host,
181 DBG("index %d host %s gateway %s netmask %s", index,
182 host, gateway, netmask);
183
184+ if (__connman_inet_is_disabled_index(index)) {
185+ connman_info("index disabled; skipping %s", __func__);
186+ return 0;
187+ }
188+
189 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
190 if (sk < 0) {
191 err = -errno;
192@@ -589,6 +648,11 @@ int connman_inet_del_network_route(int index, const char *host)
193
194 DBG("index %d host %s", index, host);
195
196+ if (__connman_inet_is_disabled_index(index)) {
197+ connman_info("index disabled; skipping %s", __func__);
198+ return 0;
199+ }
200+
201 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
202 if (sk < 0) {
203 err = -errno;
204@@ -637,6 +701,11 @@ int connman_inet_del_ipv6_network_route(int index, const char *host,
205
206 DBG("index %d host %s", index, host);
207
208+ if (__connman_inet_is_disabled_index(index)) {
209+ connman_info("index disabled; skipping %s", __func__);
210+ return 0;
211+ }
212+
213 if (!host)
214 return -EINVAL;
215
216@@ -687,6 +756,11 @@ int connman_inet_add_ipv6_network_route(int index, const char *host,
217
218 DBG("index %d host %s gateway %s", index, host, gateway);
219
220+ if (__connman_inet_is_disabled_index(index)) {
221+ connman_info("index disabled; skipping %s", __func__);
222+ return 0;
223+ }
224+
225 if (!host)
226 return -EINVAL;
227
228@@ -741,6 +815,11 @@ int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway)
229
230 DBG("index %d gateway %s", index, gateway);
231
232+ if (__connman_inet_is_disabled_index(index)) {
233+ connman_info("index disabled; skipping clear_ipv6_gateway operation");
234+ return 0;
235+ }
236+
237 if (!gateway)
238 return -EINVAL;
239
240@@ -784,6 +863,11 @@ int connman_inet_set_gateway_interface(int index)
241
242 DBG("index %d", index);
243
244+ if (__connman_inet_is_disabled_index(index)) {
245+ connman_info("index disabled; skipping %s", __func__);
246+ return 0;
247+ }
248+
249 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
250 if (sk < 0) {
251 err = -errno;
252@@ -837,6 +921,11 @@ int connman_inet_set_ipv6_gateway_interface(int index)
253
254 DBG("index %d", index);
255
256+ if (__connman_inet_is_disabled_index(index)) {
257+ connman_info("index disabled; skipping %s", __func__);
258+ return 0;
259+ }
260+
261 sk = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
262 if (sk < 0) {
263 err = -errno;
264@@ -889,6 +978,11 @@ int connman_inet_clear_gateway_address(int index, const char *gateway)
265
266 DBG("index %d gateway %s", index, gateway);
267
268+ if (__connman_inet_is_disabled_index(index)) {
269+ connman_info("index disabled; skipping %s", __func__);
270+ return 0;
271+ }
272+
273 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
274 if (sk < 0) {
275 err = -errno;
276@@ -946,6 +1040,11 @@ int connman_inet_clear_gateway_interface(int index)
277
278 DBG("index %d", index);
279
280+ if (__connman_inet_is_disabled_index(index)) {
281+ connman_info("index disabled; skipping %s", __func__);
282+ return 0;
283+ }
284+
285 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
286 if (sk < 0) {
287 err = -errno;
288@@ -999,6 +1098,11 @@ int connman_inet_clear_ipv6_gateway_interface(int index)
289
290 DBG("index %d", index);
291
292+ if (__connman_inet_is_disabled_index(index)) {
293+ connman_info("index disabled; skipping %s", __func__);
294+ return 0;
295+ }
296+
297 sk = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
298 if (sk < 0) {
299 err = -errno;
300@@ -1059,6 +1163,11 @@ bool connman_inet_compare_subnet(int index, const char *host)
301 return -1;
302 host_addr = _host_addr.s_addr;
303
304+ if (__connman_inet_is_disabled_index(index)) {
305+ connman_info("index disabled; skipping %s", __func__);
306+ return 0;
307+ }
308+
309 sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
310 if (sk < 0)
311 return false;
312@@ -1159,6 +1268,11 @@ int connman_inet_set_mtu(int index, int mtu)
313 struct ifreq ifr;
314 int sk, err;
315
316+ if (__connman_inet_is_disabled_index(index)) {
317+ connman_info("index disabled; skipping %s", __func__);
318+ return 0;
319+ }
320+
321 sk = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
322 if (sk < 0)
323 return sk;
324diff --git a/src/main.c b/src/main.c
325index 7cf6c9a..e06f25c 100644
326--- a/src/main.c
327+++ b/src/main.c
328@@ -453,6 +453,7 @@ static gchar *option_debug = NULL;
329 static gchar *option_device = NULL;
330 static gchar *option_plugin = NULL;
331 static gchar *option_nodevice = NULL;
332+static gchar *option_noipconfig = NULL;
333 static gchar *option_noplugin = NULL;
334 static gchar *option_wifi = NULL;
335 static gboolean option_detach = TRUE;
336@@ -482,6 +483,8 @@ static GOptionEntry options[] = {
337 "Specify networking device or interface", "DEV" },
338 { "nodevice", 'I', 0, G_OPTION_ARG_STRING, &option_nodevice,
339 "Specify networking interface to ignore", "DEV" },
340+ { "noipconfig", 0, 0, G_OPTION_ARG_STRING, &option_noipconfig,
341+ "Specify networking interface which shall not be configured", "DEV" },
342 { "plugin", 'p', 0, G_OPTION_ARG_STRING, &option_plugin,
343 "Specify plugins to load", "NAME,..." },
344 { "noplugin", 'P', 0, G_OPTION_ARG_STRING, &option_noplugin,
345@@ -648,7 +651,7 @@ int main(int argc, char *argv[])
346 __connman_provider_init();
347 __connman_network_init();
348 __connman_config_init();
349- __connman_device_init(option_device, option_nodevice);
350+ __connman_device_init(option_device, option_nodevice, option_noipconfig);
351
352 __connman_ippool_init();
353 __connman_iptables_init();
diff --git a/recipes-connectivity/connman/files/connman b/recipes-connectivity/connman/files/connman
new file mode 100644
index 0000000..a7b7c7b
--- /dev/null
+++ b/recipes-connectivity/connman/files/connman
@@ -0,0 +1,83 @@
1#!/bin/sh
2
3DAEMON=/usr/sbin/connmand
4PIDFILE=/var/run/connmand.pid
5DESC="Connection Manager"
6
7if [ -f /etc/default/connman ] ; then
8 . /etc/default/connman
9fi
10
11set -e
12
13nfsroot=0
14
15exec 9<&0 < /proc/mounts
16while read dev mtpt fstype rest; do
17 if test $mtpt = "/" ; then
18 case $fstype in
19 nfs | nfs4)
20 nfsroot=1
21 break
22 ;;
23 *)
24 ;;
25 esac
26 fi
27done
28
29do_start() {
30 EXTRA_PARAM=""
31 if test $nfsroot -eq 1 ; then
32 NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'`
33 NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'`
34
35 if [ ! -z "$NET_ADDR" ]; then
36 if [ "$NET_ADDR" = dhcp ]; then
37 ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"`
38 if [ ! -z "$ethn" ]; then
39 EXTRA_PARAM="--noipconfig $ethn"
40 fi
41 else
42 for i in $NET_DEVS; do
43 ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'`
44 if [ "$NET_ADDR" = "$ADDR" ]; then
45 EXTRA_PARAM="--noipconfig $i"
46 break
47 fi
48 done
49 fi
50 fi
51 fi
52 if [ -f @LIBDIR@/connman/wired-setup ] ; then
53 . @LIBDIR@/connman/wired-setup
54 fi
55 $DAEMON $EXTRA_PARAM
56}
57
58do_stop() {
59 start-stop-daemon --stop --name connmand --quiet
60}
61
62case "$1" in
63 start)
64 echo "Starting $DESC"
65 do_start
66 ;;
67 stop)
68 echo "Stopping $DESC"
69 do_stop
70 ;;
71 restart|force-reload)
72 echo "Restarting $DESC"
73 do_stop
74 sleep 1
75 do_start
76 ;;
77 *)
78 echo "Usage: $0 {start|stop|restart|force-reload}" >&2
79 exit 1
80 ;;
81esac
82
83exit 0
diff --git a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
new file mode 100644
index 0000000..590b4f1
--- /dev/null
+++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -0,0 +1 @@
RDEPENDS_${PN} += "nativesdk-e2fsprogs nativesdk-u-boot-mkimage"
diff --git a/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend
new file mode 100644
index 0000000..f939bbf
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend
@@ -0,0 +1 @@
RDEPENDS_${PN} += "libstdc++-staticdev glibc-staticdev"
diff --git a/recipes-core/packagegroups/packagegroup-enea-bench.bb b/recipes-core/packagegroups/packagegroup-enea-bench.bb
new file mode 100644
index 0000000..f536bbc
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-bench.bb
@@ -0,0 +1,14 @@
1DESCRIPTION = "Package group for benchmarking test"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r0"
6
7inherit packagegroup
8
9RDEPENDS_${PN} = "\
10 "
11
12RRECOMMENDS_${PN} = "\
13 benchtest-runner \
14 "
diff --git a/recipes-core/packagegroups/packagegroup-enea-core-boot.bb b/recipes-core/packagegroups/packagegroup-enea-core-boot.bb
new file mode 100644
index 0000000..d0836ae
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-core-boot.bb
@@ -0,0 +1,65 @@
1#
2# Copyright (C) 2007 OpenedHand Ltd.
3#
4
5SUMMARY = "Minimal boot requirements"
6DESCRIPTION = "The minimal and busybox set of packages required to boot the system"
7LICENSE = "MIT"
8DEPENDS = "virtual/kernel"
9PR = "r11"
10
11PACKAGE_ARCH = "${MACHINE_ARCH}"
12
13inherit packagegroup
14
15#
16# Set by the machine configuration with packages essential for device bootup
17#
18MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
19MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
20
21# For backwards compatibility after rename
22RPROVIDES_${PN} = "task-core-boot"
23RREPLACES_${PN} = "task-core-boot"
24RCONFLICTS_${PN} = "task-core-boot"
25
26# Distro can override the following VIRTUAL-RUNTIME providers:
27VIRTUAL-RUNTIME_dev_manager ?= "udev"
28VIRTUAL-RUNTIME_login_manager ?= "busybox"
29VIRTUAL-RUNTIME_init_manager ?= "sysvinit"
30VIRTUAL-RUNTIME_initscripts ?= "initscripts"
31VIRTUAL-RUNTIME_keymaps ?= "keymaps"
32
33RDEPENDS_${PN} += "\
34 base-files \
35 base-passwd \
36 ${@base_contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \
37 modutils-initscripts \
38 netbase \
39 init-ifupdown \
40 ${VIRTUAL-RUNTIME_login_manager} \
41 ${VIRTUAL-RUNTIME_init_manager} \
42 ${VIRTUAL-RUNTIME_initscripts} \
43 ${VIRTUAL-RUNTIME_dev_manager} \
44 ${VIRTUAL-RUNTIME_update-alternatives} \
45 ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
46
47RDEPENDS_${PN}_append_fslmachine = " u-boot"
48RDEPENDS_${PN}_append_p2041 = " fm-ucode rcw"
49RDEPENDS_${PN}_append_p4080 = " fm-ucode rcw"
50RDEPENDS_${PN} += "\
51 busybox \
52 ${@base_contains("MACHINE_FEATURES", "rtc", "busybox-hwclock", "", d)} \
53 "
54
55RDEPENDS_${PN}_append_x86 = "\
56 kernel-vmlinux \
57 kernel \
58 "
59RDEPENDS_${PN}_append_x86-64 = "\
60 kernel-vmlinux \
61 kernel \
62 "
63
64RRECOMMENDS_${PN} = "\
65 ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
diff --git a/recipes-core/packagegroups/packagegroup-enea-ddt.bb b/recipes-core/packagegroups/packagegroup-enea-ddt.bb
new file mode 100644
index 0000000..3116b4b
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-ddt.bb
@@ -0,0 +1,22 @@
1DESCRIPTION = "Package group for driver test"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r0"
6
7inherit packagegroup
8
9RDEPENDS_${PN} = "\
10 hdparm \
11 rt-tests \
12 i2c-tools \
13 mtd-utils \
14 net-tools \
15 pciutils \
16 usbutils \
17 watchdog \
18 "
19
20RRECOMMENDS_${PN} = "\
21 ddt-runner \
22 "
diff --git a/recipes-core/packagegroups/packagegroup-enea-debug.bb b/recipes-core/packagegroups/packagegroup-enea-debug.bb
new file mode 100644
index 0000000..b1d386b
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-debug.bb
@@ -0,0 +1,35 @@
1DESCRIPTION = "Tools package group for OE-Core"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r0"
6
7PACKAGES = "\
8 ${PN} \
9 ${PN}-dbg \
10 ${PN}-dev \
11 "
12
13PACKAGE_ARCH = "${MACHINE_ARCH}"
14
15ALLOW_EMPTY_${PN} = "1"
16
17# systemtap needs elfutils which is not fully buildable on uclibc
18# hence we exclude it from uclibc based builds
19SYSTEMTAP = "systemtap"
20SYSTEMTAP_libc-uclibc = ""
21
22# kexec-tools doesn't work on Mips
23KEXECTOOLS ?= "kexec-tools"
24KEXECTOOLS_mips ?= ""
25KEXECTOOLS_mipsel ?= ""
26# No need to remove kexec-tools from powerpc
27#KEXECTOOLS_powerpc ?= ""
28
29RDEPENDS_${PN} = "\
30 gdb \
31 gdbserver \
32 rsync \
33 strace \
34 ${SYSTEMTAP} \
35 "
diff --git a/recipes-core/packagegroups/packagegroup-enea-ptest.bb b/recipes-core/packagegroups/packagegroup-enea-ptest.bb
new file mode 100644
index 0000000..f319469
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-ptest.bb
@@ -0,0 +1,118 @@
1DESCRIPTION = "Ptest package group"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r0"
6
7inherit packagegroup
8
9ENEA_DAEMONS = " \
10 at \
11 cronie \
12 "
13
14ENEA_DATABASE = " \
15 sqlite3 \
16 "
17
18ENEA_TRACE = " \
19 babeltrace \
20 ${VALGRIND} \
21 "
22
23VALGRIND ?= ""
24VALGRIND_powerpc ?= "valgrind"
25VALGRIND_e500v2 ?= ""
26VALGRIND_x86 ?= "valgrind"
27VALGRIND_x86_64 ?= "valgrind"
28VALGRIND_armv7a ?= "valgrind"
29
30ENEA_DEV = " \
31 glibc-locale \
32 "
33
34ENEA_DEVICE = " \
35 libusb1-dbg \
36 libusb-compat-dbg \
37 usbutils \
38 "
39
40ENEA_FSYS = " \
41 acl \
42 pramfs-init \
43 "
44
45ENEA_HIGHAVA = " \
46 kexec \
47 kexec-tools \
48 "
49
50ENEA_LIBS = " \
51 gettext \
52 gettext-runtime \
53 libstdc++ \
54 libuio \
55 zlib \
56 "
57
58ENEA_MESSAGING = " \
59 dbus \
60 "
61
62ENEA_SCRIPTING = " \
63 tcl \
64 python \
65 "
66
67ENEA_SECURITY = " \
68 openssl"
69
70ENEA_SHELL = " \
71 ncurses"
72
73ENEA_UTILS = " \
74 bc \
75 bonnie++ \
76 expat \
77 "
78
79ENEA_GPL ?= " \
80 linx \
81 linx-mod \
82 "
83ENEA_BSD = " \
84 partrt \
85 "
86
87ENEA_GPL_qemux86 = ""
88ENEA_GPL_qemuppc = ""
89ENEA_GPL_armv5 = ""
90ENEA_GPL_armv7a = ""
91ENEA_GPL_aarch64 = ""
92
93RDEPENDS_${PN} = " \
94 ${ENEA_DAEMONS} \
95 ${ENEA_DATABASE} \
96 ${ENEA_TRACE} \
97 ${ENEA_DEV} \
98 ${ENEA_DEVICE} \
99 ${ENEA_FSYS} \
100 ${ENEA_HIGHAVA} \
101 ${ENEA_LIBS} \
102 ${ENEA_MESSAGING} \
103 ${ENEA_SCRIPTING} \
104 ${ENEA_SECURITY} \
105 ${ENEA_SHELL} \
106 ${ENEA_UTILS} \
107 ${ENEA_GPL} \
108 ${ENEA_BSD} \
109 ethtool \
110 libxml2 \
111 gdb \
112 elfutils \
113 "
114
115
116RRECOMMENDS_${PN} = " \
117 ptest-runner \
118 "
diff --git a/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb b/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb
new file mode 100644
index 0000000..7515ed4
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-rt-tools.bb
@@ -0,0 +1,13 @@
1DESCRIPTION = "Enea RT-tools package group"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r1"
6
7inherit packagegroup
8
9RDEPENDS_${PN} = " \
10 partrt \
11 count-ticks \
12 list2mask \
13 "
diff --git a/recipes-core/packagegroups/packagegroup-enea-sys.bb b/recipes-core/packagegroups/packagegroup-enea-sys.bb
new file mode 100644
index 0000000..9ec9756
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-enea-sys.bb
@@ -0,0 +1,18 @@
1DESCRIPTION = "Package group for system test"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
4 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5PR = "r0"
6
7inherit packagegroup
8
9RDEPENDS_${PN} = "\
10 ltp \
11 logrotate \
12 sudo \
13 "
14
15RRECOMMENDS_${PN} = "\
16 systest-runner \
17 perf-networking \
18 "
diff --git a/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend
new file mode 100644
index 0000000..4fd3c00
--- /dev/null
+++ b/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend
@@ -0,0 +1,3 @@
1do_install_append(){
2 chmod o+x ${D}${base_sbindir}/shutdown
3}
diff --git a/recipes-devtools/binutils/binutils-2.24.inc b/recipes-devtools/binutils/binutils-2.24.inc
new file mode 100644
index 0000000..3a1186c
--- /dev/null
+++ b/recipes-devtools/binutils/binutils-2.24.inc
@@ -0,0 +1,6 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "\
4 file://0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch \
5 "
6
diff --git a/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend b/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend
new file mode 100644
index 0000000..0427595
--- /dev/null
+++ b/recipes-devtools/binutils/binutils-cross-canadian_2.24.bbappend
@@ -0,0 +1 @@
require binutils-${PV}.inc
diff --git a/recipes-devtools/binutils/binutils-cross_2.24.bbappend b/recipes-devtools/binutils/binutils-cross_2.24.bbappend
new file mode 100644
index 0000000..0427595
--- /dev/null
+++ b/recipes-devtools/binutils/binutils-cross_2.24.bbappend
@@ -0,0 +1 @@
require binutils-${PV}.inc
diff --git a/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend b/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend
new file mode 100644
index 0000000..0427595
--- /dev/null
+++ b/recipes-devtools/binutils/binutils-crosssdk_2.24.bbappend
@@ -0,0 +1 @@
require binutils-${PV}.inc
diff --git a/recipes-devtools/binutils/binutils_2.24.bbappend b/recipes-devtools/binutils/binutils_2.24.bbappend
new file mode 100644
index 0000000..0427595
--- /dev/null
+++ b/recipes-devtools/binutils/binutils_2.24.bbappend
@@ -0,0 +1 @@
require binutils-${PV}.inc
diff --git a/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch b/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch
new file mode 100644
index 0000000..bda760f
--- /dev/null
+++ b/recipes-devtools/binutils/files/0001-Revert-Report-overflow-on-PowerPC64-h-and-ha-relocat.patch
@@ -0,0 +1,1087 @@
1From 269bee7df1abfdc230f1ed6a6de3150adffde962 Mon Sep 17 00:00:00 2001
2From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
3Date: Fri, 11 Apr 2014 16:15:36 +0300
4Subject: [PATCH] Revert 'Report overflow on PowerPC64 @h and @ha
5 relocations.' patch
6
7---
8 bfd/elf64-ppc.c | 183 +++++++++------------------------------------------
9 bfd/reloc.c | 12 ----
10 elfcpp/powerpc.h | 6 --
11 gas/config/tc-ppc.c | 139 ++++++++++----------------------------
12 gold/powerpc.cc | 130 +++++++++++-------------------------
13 include/elf/ppc64.h | 13 +---
14 6 files changed, 109 insertions(+), 374 deletions(-)
15
16diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
17index bf13a5d..ba3c655 100644
18--- a/bfd/elf64-ppc.c
19+++ b/bfd/elf64-ppc.c
20@@ -327,7 +327,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
21 16, /* bitsize */
22 FALSE, /* pc_relative */
23 0, /* bitpos */
24- complain_overflow_signed, /* complain_on_overflow */
25+ complain_overflow_dont, /* complain_on_overflow */
26 bfd_elf_generic_reloc, /* special_function */
27 "R_PPC64_ADDR16_HI", /* name */
28 FALSE, /* partial_inplace */
29@@ -343,7 +343,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
30 16, /* bitsize */
31 FALSE, /* pc_relative */
32 0, /* bitpos */
33- complain_overflow_signed, /* complain_on_overflow */
34+ complain_overflow_dont, /* complain_on_overflow */
35 ppc64_elf_ha_reloc, /* special_function */
36 "R_PPC64_ADDR16_HA", /* name */
37 FALSE, /* partial_inplace */
38@@ -505,7 +505,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
39 16, /* bitsize */
40 FALSE, /* pc_relative */
41 0, /* bitpos */
42- complain_overflow_signed,/* complain_on_overflow */
43+ complain_overflow_dont,/* complain_on_overflow */
44 ppc64_elf_unhandled_reloc, /* special_function */
45 "R_PPC64_GOT16_HI", /* name */
46 FALSE, /* partial_inplace */
47@@ -521,7 +521,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
48 16, /* bitsize */
49 FALSE, /* pc_relative */
50 0, /* bitpos */
51- complain_overflow_signed,/* complain_on_overflow */
52+ complain_overflow_dont,/* complain_on_overflow */
53 ppc64_elf_unhandled_reloc, /* special_function */
54 "R_PPC64_GOT16_HA", /* name */
55 FALSE, /* partial_inplace */
56@@ -698,7 +698,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
57 16, /* bitsize */
58 FALSE, /* pc_relative */
59 0, /* bitpos */
60- complain_overflow_signed, /* complain_on_overflow */
61+ complain_overflow_dont, /* complain_on_overflow */
62 ppc64_elf_unhandled_reloc, /* special_function */
63 "R_PPC64_PLT16_HI", /* name */
64 FALSE, /* partial_inplace */
65@@ -714,7 +714,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
66 16, /* bitsize */
67 FALSE, /* pc_relative */
68 0, /* bitpos */
69- complain_overflow_signed, /* complain_on_overflow */
70+ complain_overflow_dont, /* complain_on_overflow */
71 ppc64_elf_unhandled_reloc, /* special_function */
72 "R_PPC64_PLT16_HA", /* name */
73 FALSE, /* partial_inplace */
74@@ -759,7 +759,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
75 16, /* bitsize */
76 FALSE, /* pc_relative */
77 0, /* bitpos */
78- complain_overflow_signed, /* complain_on_overflow */
79+ complain_overflow_dont, /* complain_on_overflow */
80 ppc64_elf_sectoff_reloc, /* special_function */
81 "R_PPC64_SECTOFF_HI", /* name */
82 FALSE, /* partial_inplace */
83@@ -774,7 +774,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
84 16, /* bitsize */
85 FALSE, /* pc_relative */
86 0, /* bitpos */
87- complain_overflow_signed, /* complain_on_overflow */
88+ complain_overflow_dont, /* complain_on_overflow */
89 ppc64_elf_sectoff_ha_reloc, /* special_function */
90 "R_PPC64_SECTOFF_HA", /* name */
91 FALSE, /* partial_inplace */
92@@ -981,7 +981,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
93 16, /* bitsize */
94 FALSE, /* pc_relative */
95 0, /* bitpos */
96- complain_overflow_signed, /* complain_on_overflow */
97+ complain_overflow_dont, /* complain_on_overflow */
98 ppc64_elf_toc_reloc, /* special_function */
99 "R_PPC64_TOC16_HI", /* name */
100 FALSE, /* partial_inplace */
101@@ -1000,7 +1000,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
102 16, /* bitsize */
103 FALSE, /* pc_relative */
104 0, /* bitpos */
105- complain_overflow_signed, /* complain_on_overflow */
106+ complain_overflow_dont, /* complain_on_overflow */
107 ppc64_elf_toc_ha_reloc, /* special_function */
108 "R_PPC64_TOC16_HA", /* name */
109 FALSE, /* partial_inplace */
110@@ -1072,7 +1072,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
111 16, /* bitsize */
112 FALSE, /* pc_relative */
113 0, /* bitpos */
114- complain_overflow_signed, /* complain_on_overflow */
115+ complain_overflow_dont, /* complain_on_overflow */
116 ppc64_elf_unhandled_reloc, /* special_function */
117 "R_PPC64_PLTGOT16_HI", /* name */
118 FALSE, /* partial_inplace */
119@@ -1090,7 +1090,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
120 16, /* bitsize */
121 FALSE, /* pc_relative */
122 0, /* bitpos */
123- complain_overflow_signed, /* complain_on_overflow */
124+ complain_overflow_dont,/* complain_on_overflow */
125 ppc64_elf_unhandled_reloc, /* special_function */
126 "R_PPC64_PLTGOT16_HA", /* name */
127 FALSE, /* partial_inplace */
128@@ -1392,7 +1392,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
129 16, /* bitsize */
130 FALSE, /* pc_relative */
131 0, /* bitpos */
132- complain_overflow_signed, /* complain_on_overflow */
133+ complain_overflow_dont, /* complain_on_overflow */
134 ppc64_elf_unhandled_reloc, /* special_function */
135 "R_PPC64_DTPREL16_HI", /* name */
136 FALSE, /* partial_inplace */
137@@ -1407,7 +1407,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
138 16, /* bitsize */
139 FALSE, /* pc_relative */
140 0, /* bitpos */
141- complain_overflow_signed, /* complain_on_overflow */
142+ complain_overflow_dont, /* complain_on_overflow */
143 ppc64_elf_unhandled_reloc, /* special_function */
144 "R_PPC64_DTPREL16_HA", /* name */
145 FALSE, /* partial_inplace */
146@@ -1558,7 +1558,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
147 16, /* bitsize */
148 FALSE, /* pc_relative */
149 0, /* bitpos */
150- complain_overflow_signed, /* complain_on_overflow */
151+ complain_overflow_dont, /* complain_on_overflow */
152 ppc64_elf_unhandled_reloc, /* special_function */
153 "R_PPC64_TPREL16_HI", /* name */
154 FALSE, /* partial_inplace */
155@@ -1573,7 +1573,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
156 16, /* bitsize */
157 FALSE, /* pc_relative */
158 0, /* bitpos */
159- complain_overflow_signed, /* complain_on_overflow */
160+ complain_overflow_dont, /* complain_on_overflow */
161 ppc64_elf_unhandled_reloc, /* special_function */
162 "R_PPC64_TPREL16_HA", /* name */
163 FALSE, /* partial_inplace */
164@@ -1710,7 +1710,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
165 16, /* bitsize */
166 FALSE, /* pc_relative */
167 0, /* bitpos */
168- complain_overflow_signed, /* complain_on_overflow */
169+ complain_overflow_dont, /* complain_on_overflow */
170 ppc64_elf_unhandled_reloc, /* special_function */
171 "R_PPC64_GOT_TLSGD16_HI", /* name */
172 FALSE, /* partial_inplace */
173@@ -1725,7 +1725,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
174 16, /* bitsize */
175 FALSE, /* pc_relative */
176 0, /* bitpos */
177- complain_overflow_signed, /* complain_on_overflow */
178+ complain_overflow_dont, /* complain_on_overflow */
179 ppc64_elf_unhandled_reloc, /* special_function */
180 "R_PPC64_GOT_TLSGD16_HA", /* name */
181 FALSE, /* partial_inplace */
182@@ -1772,7 +1772,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
183 16, /* bitsize */
184 FALSE, /* pc_relative */
185 0, /* bitpos */
186- complain_overflow_signed, /* complain_on_overflow */
187+ complain_overflow_dont, /* complain_on_overflow */
188 ppc64_elf_unhandled_reloc, /* special_function */
189 "R_PPC64_GOT_TLSLD16_HI", /* name */
190 FALSE, /* partial_inplace */
191@@ -1787,7 +1787,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
192 16, /* bitsize */
193 FALSE, /* pc_relative */
194 0, /* bitpos */
195- complain_overflow_signed, /* complain_on_overflow */
196+ complain_overflow_dont, /* complain_on_overflow */
197 ppc64_elf_unhandled_reloc, /* special_function */
198 "R_PPC64_GOT_TLSLD16_HA", /* name */
199 FALSE, /* partial_inplace */
200@@ -1833,7 +1833,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
201 16, /* bitsize */
202 FALSE, /* pc_relative */
203 0, /* bitpos */
204- complain_overflow_signed, /* complain_on_overflow */
205+ complain_overflow_dont, /* complain_on_overflow */
206 ppc64_elf_unhandled_reloc, /* special_function */
207 "R_PPC64_GOT_DTPREL16_HI", /* name */
208 FALSE, /* partial_inplace */
209@@ -1848,7 +1848,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
210 16, /* bitsize */
211 FALSE, /* pc_relative */
212 0, /* bitpos */
213- complain_overflow_signed, /* complain_on_overflow */
214+ complain_overflow_dont, /* complain_on_overflow */
215 ppc64_elf_unhandled_reloc, /* special_function */
216 "R_PPC64_GOT_DTPREL16_HA", /* name */
217 FALSE, /* partial_inplace */
218@@ -1894,7 +1894,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
219 16, /* bitsize */
220 FALSE, /* pc_relative */
221 0, /* bitpos */
222- complain_overflow_signed, /* complain_on_overflow */
223+ complain_overflow_dont, /* complain_on_overflow */
224 ppc64_elf_unhandled_reloc, /* special_function */
225 "R_PPC64_GOT_TPREL16_HI", /* name */
226 FALSE, /* partial_inplace */
227@@ -1909,7 +1909,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
228 16, /* bitsize */
229 FALSE, /* pc_relative */
230 0, /* bitpos */
231- complain_overflow_signed, /* complain_on_overflow */
232+ complain_overflow_dont, /* complain_on_overflow */
233 ppc64_elf_unhandled_reloc, /* special_function */
234 "R_PPC64_GOT_TPREL16_HA", /* name */
235 FALSE, /* partial_inplace */
236@@ -1982,7 +1982,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
237 16, /* bitsize */
238 TRUE, /* pc_relative */
239 0, /* bitpos */
240- complain_overflow_signed, /* complain_on_overflow */
241+ complain_overflow_dont, /* complain_on_overflow */
242 bfd_elf_generic_reloc, /* special_function */
243 "R_PPC64_REL16_HI", /* name */
244 FALSE, /* partial_inplace */
245@@ -1998,7 +1998,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
246 16, /* bitsize */
247 TRUE, /* pc_relative */
248 0, /* bitpos */
249- complain_overflow_signed, /* complain_on_overflow */
250+ complain_overflow_dont, /* complain_on_overflow */
251 ppc64_elf_ha_reloc, /* special_function */
252 "R_PPC64_REL16_HA", /* name */
253 FALSE, /* partial_inplace */
254@@ -2006,96 +2006,6 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
255 0xffff, /* dst_mask */
256 TRUE), /* pcrel_offset */
257
258- /* Like R_PPC64_ADDR16_HI, but no overflow. */
259- HOWTO (R_PPC64_ADDR16_HIGH, /* type */
260- 16, /* rightshift */
261- 1, /* size (0 = byte, 1 = short, 2 = long) */
262- 16, /* bitsize */
263- FALSE, /* pc_relative */
264- 0, /* bitpos */
265- complain_overflow_dont, /* complain_on_overflow */
266- bfd_elf_generic_reloc, /* special_function */
267- "R_PPC64_ADDR16_HIGH", /* name */
268- FALSE, /* partial_inplace */
269- 0, /* src_mask */
270- 0xffff, /* dst_mask */
271- FALSE), /* pcrel_offset */
272-
273- /* Like R_PPC64_ADDR16_HA, but no overflow. */
274- HOWTO (R_PPC64_ADDR16_HIGHA, /* type */
275- 16, /* rightshift */
276- 1, /* size (0 = byte, 1 = short, 2 = long) */
277- 16, /* bitsize */
278- FALSE, /* pc_relative */
279- 0, /* bitpos */
280- complain_overflow_dont, /* complain_on_overflow */
281- ppc64_elf_ha_reloc, /* special_function */
282- "R_PPC64_ADDR16_HIGHA", /* name */
283- FALSE, /* partial_inplace */
284- 0, /* src_mask */
285- 0xffff, /* dst_mask */
286- FALSE), /* pcrel_offset */
287-
288- /* Like R_PPC64_DTPREL16_HI, but no overflow. */
289- HOWTO (R_PPC64_DTPREL16_HIGH,
290- 16, /* rightshift */
291- 1, /* size (0 = byte, 1 = short, 2 = long) */
292- 16, /* bitsize */
293- FALSE, /* pc_relative */
294- 0, /* bitpos */
295- complain_overflow_dont, /* complain_on_overflow */
296- ppc64_elf_unhandled_reloc, /* special_function */
297- "R_PPC64_DTPREL16_HIGH", /* name */
298- FALSE, /* partial_inplace */
299- 0, /* src_mask */
300- 0xffff, /* dst_mask */
301- FALSE), /* pcrel_offset */
302-
303- /* Like R_PPC64_DTPREL16_HA, but no overflow. */
304- HOWTO (R_PPC64_DTPREL16_HIGHA,
305- 16, /* rightshift */
306- 1, /* size (0 = byte, 1 = short, 2 = long) */
307- 16, /* bitsize */
308- FALSE, /* pc_relative */
309- 0, /* bitpos */
310- complain_overflow_dont, /* complain_on_overflow */
311- ppc64_elf_unhandled_reloc, /* special_function */
312- "R_PPC64_DTPREL16_HIGHA", /* name */
313- FALSE, /* partial_inplace */
314- 0, /* src_mask */
315- 0xffff, /* dst_mask */
316- FALSE), /* pcrel_offset */
317-
318- /* Like R_PPC64_TPREL16_HI, but no overflow. */
319- HOWTO (R_PPC64_TPREL16_HIGH,
320- 16, /* rightshift */
321- 1, /* size (0 = byte, 1 = short, 2 = long) */
322- 16, /* bitsize */
323- FALSE, /* pc_relative */
324- 0, /* bitpos */
325- complain_overflow_dont, /* complain_on_overflow */
326- ppc64_elf_unhandled_reloc, /* special_function */
327- "R_PPC64_TPREL16_HIGH", /* name */
328- FALSE, /* partial_inplace */
329- 0, /* src_mask */
330- 0xffff, /* dst_mask */
331- FALSE), /* pcrel_offset */
332-
333- /* Like R_PPC64_TPREL16_HA, but no overflow. */
334- HOWTO (R_PPC64_TPREL16_HIGHA,
335- 16, /* rightshift */
336- 1, /* size (0 = byte, 1 = short, 2 = long) */
337- 16, /* bitsize */
338- FALSE, /* pc_relative */
339- 0, /* bitpos */
340- complain_overflow_dont, /* complain_on_overflow */
341- ppc64_elf_unhandled_reloc, /* special_function */
342- "R_PPC64_TPREL16_HIGHA", /* name */
343- FALSE, /* partial_inplace */
344- 0, /* src_mask */
345- 0xffff, /* dst_mask */
346- FALSE), /* pcrel_offset */
347-
348 /* GNU extension to record C++ vtable hierarchy. */
349 HOWTO (R_PPC64_GNU_VTINHERIT, /* type */
350 0, /* rightshift */
351@@ -2174,12 +2084,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
352 break;
353 case BFD_RELOC_HI16: r = R_PPC64_ADDR16_HI;
354 break;
355- case BFD_RELOC_PPC64_ADDR16_HIGH: r = R_PPC64_ADDR16_HIGH;
356- break;
357 case BFD_RELOC_HI16_S: r = R_PPC64_ADDR16_HA;
358 break;
359- case BFD_RELOC_PPC64_ADDR16_HIGHA: r = R_PPC64_ADDR16_HIGHA;
360- break;
361 case BFD_RELOC_PPC_BA16: r = R_PPC64_ADDR14;
362 break;
363 case BFD_RELOC_PPC_BA16_BRTAKEN: r = R_PPC64_ADDR14_BRTAKEN;
364@@ -2298,12 +2204,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
365 break;
366 case BFD_RELOC_PPC_TPREL16_HI: r = R_PPC64_TPREL16_HI;
367 break;
368- case BFD_RELOC_PPC64_TPREL16_HIGH: r = R_PPC64_TPREL16_HIGH;
369- break;
370 case BFD_RELOC_PPC_TPREL16_HA: r = R_PPC64_TPREL16_HA;
371 break;
372- case BFD_RELOC_PPC64_TPREL16_HIGHA: r = R_PPC64_TPREL16_HIGHA;
373- break;
374 case BFD_RELOC_PPC_TPREL: r = R_PPC64_TPREL64;
375 break;
376 case BFD_RELOC_PPC_DTPREL16: r = R_PPC64_DTPREL16;
377@@ -2312,12 +2214,8 @@ ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
378 break;
379 case BFD_RELOC_PPC_DTPREL16_HI: r = R_PPC64_DTPREL16_HI;
380 break;
381- case BFD_RELOC_PPC64_DTPREL16_HIGH: r = R_PPC64_DTPREL16_HIGH;
382- break;
383 case BFD_RELOC_PPC_DTPREL16_HA: r = R_PPC64_DTPREL16_HA;
384 break;
385- case BFD_RELOC_PPC64_DTPREL16_HIGHA: r = R_PPC64_DTPREL16_HIGHA;
386- break;
387 case BFD_RELOC_PPC_DTPREL: r = R_PPC64_DTPREL64;
388 break;
389 case BFD_RELOC_PPC_GOT_TLSGD16: r = R_PPC64_GOT_TLSGD16;
390@@ -3662,8 +3560,6 @@ must_be_dyn_reloc (struct bfd_link_info *info,
391 case R_PPC64_TPREL16_HA:
392 case R_PPC64_TPREL16_DS:
393 case R_PPC64_TPREL16_LO_DS:
394- case R_PPC64_TPREL16_HIGH:
395- case R_PPC64_TPREL16_HIGHA:
396 case R_PPC64_TPREL16_HIGHER:
397 case R_PPC64_TPREL16_HIGHERA:
398 case R_PPC64_TPREL16_HIGHEST:
399@@ -5394,8 +5290,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
400 case R_PPC64_DTPREL16_HA:
401 case R_PPC64_DTPREL16_DS:
402 case R_PPC64_DTPREL16_LO_DS:
403- case R_PPC64_DTPREL16_HIGH:
404- case R_PPC64_DTPREL16_HIGHA:
405 case R_PPC64_DTPREL16_HIGHER:
406 case R_PPC64_DTPREL16_HIGHERA:
407 case R_PPC64_DTPREL16_HIGHEST:
408@@ -5556,8 +5450,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
409 case R_PPC64_TPREL16_HA:
410 case R_PPC64_TPREL16_DS:
411 case R_PPC64_TPREL16_LO_DS:
412- case R_PPC64_TPREL16_HIGH:
413- case R_PPC64_TPREL16_HIGHA:
414 case R_PPC64_TPREL16_HIGHER:
415 case R_PPC64_TPREL16_HIGHERA:
416 case R_PPC64_TPREL16_HIGHEST:
417@@ -5605,8 +5497,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
418 case R_PPC64_ADDR16_DS:
419 case R_PPC64_ADDR16_HA:
420 case R_PPC64_ADDR16_HI:
421- case R_PPC64_ADDR16_HIGH:
422- case R_PPC64_ADDR16_HIGHA:
423 case R_PPC64_ADDR16_HIGHER:
424 case R_PPC64_ADDR16_HIGHERA:
425 case R_PPC64_ADDR16_HIGHEST:
426@@ -7363,8 +7253,6 @@ dec_dynrel_count (bfd_vma r_info,
427 case R_PPC64_TPREL16_HA:
428 case R_PPC64_TPREL16_DS:
429 case R_PPC64_TPREL16_LO_DS:
430- case R_PPC64_TPREL16_HIGH:
431- case R_PPC64_TPREL16_HIGHA:
432 case R_PPC64_TPREL16_HIGHER:
433 case R_PPC64_TPREL16_HIGHERA:
434 case R_PPC64_TPREL16_HIGHEST:
435@@ -7386,8 +7274,6 @@ dec_dynrel_count (bfd_vma r_info,
436 case R_PPC64_ADDR16_DS:
437 case R_PPC64_ADDR16_HA:
438 case R_PPC64_ADDR16_HI:
439- case R_PPC64_ADDR16_HIGH:
440- case R_PPC64_ADDR16_HIGHA:
441 case R_PPC64_ADDR16_HIGHER:
442 case R_PPC64_ADDR16_HIGHERA:
443 case R_PPC64_ADDR16_HIGHEST:
444@@ -14091,8 +13977,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
445 case R_PPC64_TPREL16_HA:
446 case R_PPC64_TPREL16_DS:
447 case R_PPC64_TPREL16_LO_DS:
448- case R_PPC64_TPREL16_HIGH:
449- case R_PPC64_TPREL16_HIGHA:
450 case R_PPC64_TPREL16_HIGHER:
451 case R_PPC64_TPREL16_HIGHERA:
452 case R_PPC64_TPREL16_HIGHEST:
453@@ -14127,8 +14011,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
454 case R_PPC64_DTPREL16_HA:
455 case R_PPC64_DTPREL16_DS:
456 case R_PPC64_DTPREL16_LO_DS:
457- case R_PPC64_DTPREL16_HIGH:
458- case R_PPC64_DTPREL16_HIGHA:
459 case R_PPC64_DTPREL16_HIGHER:
460 case R_PPC64_DTPREL16_HIGHERA:
461 case R_PPC64_DTPREL16_HIGHEST:
462@@ -14161,8 +14043,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
463 case R_PPC64_ADDR16_DS:
464 case R_PPC64_ADDR16_HA:
465 case R_PPC64_ADDR16_HI:
466- case R_PPC64_ADDR16_HIGH:
467- case R_PPC64_ADDR16_HIGHA:
468 case R_PPC64_ADDR16_HIGHER:
469 case R_PPC64_ADDR16_HIGHERA:
470 case R_PPC64_ADDR16_HIGHEST:
471@@ -14477,20 +14357,21 @@ ppc64_elf_relocate_section (bfd *output_bfd,
472 default:
473 break;
474
475- case R_PPC64_REL16_HA:
476 case R_PPC64_ADDR16_HA:
477- case R_PPC64_ADDR16_HIGHA:
478+ case R_PPC64_REL16_HA:
479 case R_PPC64_ADDR16_HIGHERA:
480 case R_PPC64_ADDR16_HIGHESTA:
481 case R_PPC64_TOC16_HA:
482 case R_PPC64_SECTOFF_HA:
483 case R_PPC64_TPREL16_HA:
484- case R_PPC64_TPREL16_HIGHA:
485+ case R_PPC64_DTPREL16_HA:
486+ case R_PPC64_TPREL16_HIGHER:
487 case R_PPC64_TPREL16_HIGHERA:
488+ case R_PPC64_TPREL16_HIGHEST:
489 case R_PPC64_TPREL16_HIGHESTA:
490- case R_PPC64_DTPREL16_HA:
491- case R_PPC64_DTPREL16_HIGHA:
492+ case R_PPC64_DTPREL16_HIGHER:
493 case R_PPC64_DTPREL16_HIGHERA:
494+ case R_PPC64_DTPREL16_HIGHEST:
495 case R_PPC64_DTPREL16_HIGHESTA:
496 /* It's just possible that this symbol is a weak symbol
497 that's not actually defined anywhere. In that case,
498diff --git a/bfd/reloc.c b/bfd/reloc.c
499index 77a04f8..cc34760 100644
500--- a/bfd/reloc.c
501+++ b/bfd/reloc.c
502@@ -2895,10 +2895,6 @@ ENUMX
503 BFD_RELOC_PPC64_PLTGOT16_DS
504 ENUMX
505 BFD_RELOC_PPC64_PLTGOT16_LO_DS
506-ENUMX
507- BFD_RELOC_PPC64_ADDR16_HIGH
508-ENUMX
509- BFD_RELOC_PPC64_ADDR16_HIGHA
510 ENUMDOC
511 Power(rs6000) and PowerPC relocations.
512
513@@ -2986,14 +2982,6 @@ ENUMX
514 BFD_RELOC_PPC64_DTPREL16_HIGHEST
515 ENUMX
516 BFD_RELOC_PPC64_DTPREL16_HIGHESTA
517-ENUMX
518- BFD_RELOC_PPC64_TPREL16_HIGH
519-ENUMX
520- BFD_RELOC_PPC64_TPREL16_HIGHA
521-ENUMX
522- BFD_RELOC_PPC64_DTPREL16_HIGH
523-ENUMX
524- BFD_RELOC_PPC64_DTPREL16_HIGHA
525 ENUMDOC
526 PowerPC and PowerPC64 thread-local storage relocations.
527
528diff --git a/elfcpp/powerpc.h b/elfcpp/powerpc.h
529index 98354a2..0f13eda 100644
530--- a/elfcpp/powerpc.h
531+++ b/elfcpp/powerpc.h
532@@ -164,17 +164,11 @@ enum
533 R_PPC_EMB_SDA21 = 109,
534 R_PPC64_TOCSAVE = 109,
535 R_PPC_EMB_MRKREF = 110,
536- R_PPC64_ADDR16_HIGH = 110,
537 R_PPC_EMB_RELSEC16 = 111,
538- R_PPC64_ADDR16_HIGHA = 111,
539 R_PPC_EMB_RELST_LO = 112,
540- R_PPC64_TPREL16_HIGH = 112,
541 R_PPC_EMB_RELST_HI = 113,
542- R_PPC64_TPREL16_HIGHA = 113,
543 R_PPC_EMB_RELST_HA = 114,
544- R_PPC64_DTPREL16_HIGH = 114,
545 R_PPC_EMB_BIT_FLD = 115,
546- R_PPC64_DTPREL16_HIGHA = 115,
547 R_PPC_EMB_RELSDA = 116,
548
549 R_PPC_VLE_REL8 = 216,
550diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
551index 7c99e43..d888aee 100644
552--- a/gas/config/tc-ppc.c
553+++ b/gas/config/tc-ppc.c
554@@ -87,11 +87,7 @@ static int set_target_endian = 0;
555 compensating for #lo being treated as a signed number. */
556 #define PPC_HIGHESTA(v) PPC_HIGHEST ((v) + 0x8000)
557
558-#define SEX16(val) (((val) ^ 0x8000) - 0x8000)
559-
560-/* For the time being on ppc64, don't report overflow on @h and @ha
561- applied to constants. */
562-#define REPORT_OVERFLOW_HI 0
563+#define SEX16(val) ((((val) & 0xffff) ^ 0x8000) - 0x8000)
564
565 static bfd_boolean reg_names_p = TARGET_REG_NAMES_P;
566
567@@ -1935,8 +1931,6 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p)
568 MAP32 ("bitfld", BFD_RELOC_PPC_EMB_BIT_FLD),
569 MAP32 ("relsda", BFD_RELOC_PPC_EMB_RELSDA),
570 MAP32 ("xgot", BFD_RELOC_PPC_TOC16),
571- MAP64 ("high", BFD_RELOC_PPC64_ADDR16_HIGH),
572- MAP64 ("higha", BFD_RELOC_PPC64_ADDR16_HIGHA),
573 MAP64 ("higher", BFD_RELOC_PPC64_HIGHER),
574 MAP64 ("highera", BFD_RELOC_PPC64_HIGHER_S),
575 MAP64 ("highest", BFD_RELOC_PPC64_HIGHEST),
576@@ -1946,14 +1940,10 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p)
577 MAP64 ("toc@l", BFD_RELOC_PPC64_TOC16_LO),
578 MAP64 ("toc@h", BFD_RELOC_PPC64_TOC16_HI),
579 MAP64 ("toc@ha", BFD_RELOC_PPC64_TOC16_HA),
580- MAP64 ("dtprel@high", BFD_RELOC_PPC64_DTPREL16_HIGH),
581- MAP64 ("dtprel@higha", BFD_RELOC_PPC64_DTPREL16_HIGHA),
582 MAP64 ("dtprel@higher", BFD_RELOC_PPC64_DTPREL16_HIGHER),
583 MAP64 ("dtprel@highera", BFD_RELOC_PPC64_DTPREL16_HIGHERA),
584 MAP64 ("dtprel@highest", BFD_RELOC_PPC64_DTPREL16_HIGHEST),
585 MAP64 ("dtprel@highesta", BFD_RELOC_PPC64_DTPREL16_HIGHESTA),
586- MAP64 ("tprel@high", BFD_RELOC_PPC64_TPREL16_HIGH),
587- MAP64 ("tprel@higha", BFD_RELOC_PPC64_TPREL16_HIGHA),
588 MAP64 ("tprel@higher", BFD_RELOC_PPC64_TPREL16_HIGHER),
589 MAP64 ("tprel@highera", BFD_RELOC_PPC64_TPREL16_HIGHERA),
590 MAP64 ("tprel@highest", BFD_RELOC_PPC64_TPREL16_HIGHEST),
591@@ -2923,76 +2913,55 @@ md_assemble (char *str)
592 break;
593
594 case BFD_RELOC_LO16:
595- ex.X_add_number &= 0xffff;
596- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
597+ /* X_unsigned is the default, so if the user has done
598+ something which cleared it, we always produce a
599+ signed value. */
600+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
601+ ex.X_add_number &= 0xffff;
602+ else
603 ex.X_add_number = SEX16 (ex.X_add_number);
604 break;
605
606 case BFD_RELOC_HI16:
607- if (REPORT_OVERFLOW_HI && ppc_obj64)
608- {
609- /* PowerPC64 @h is tested for overflow. */
610- ex.X_add_number = (addressT) ex.X_add_number >> 16;
611- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
612- {
613- addressT sign = (((addressT) -1 >> 16) + 1) >> 1;
614- ex.X_add_number
615- = ((addressT) ex.X_add_number ^ sign) - sign;
616- }
617- break;
618- }
619- /* Fall thru */
620-
621- case BFD_RELOC_PPC64_ADDR16_HIGH:
622- ex.X_add_number = PPC_HI (ex.X_add_number);
623- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
624- ex.X_add_number = SEX16 (ex.X_add_number);
625+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
626+ ex.X_add_number = PPC_HI (ex.X_add_number);
627+ else
628+ ex.X_add_number = SEX16 (PPC_HI (ex.X_add_number));
629 break;
630
631 case BFD_RELOC_HI16_S:
632- if (REPORT_OVERFLOW_HI && ppc_obj64)
633- {
634- /* PowerPC64 @ha is tested for overflow. */
635- ex.X_add_number
636- = ((addressT) ex.X_add_number + 0x8000) >> 16;
637- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
638- {
639- addressT sign = (((addressT) -1 >> 16) + 1) >> 1;
640- ex.X_add_number
641- = ((addressT) ex.X_add_number ^ sign) - sign;
642- }
643- break;
644- }
645- /* Fall thru */
646-
647- case BFD_RELOC_PPC64_ADDR16_HIGHA:
648- ex.X_add_number = PPC_HA (ex.X_add_number);
649- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
650- ex.X_add_number = SEX16 (ex.X_add_number);
651+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
652+ ex.X_add_number = PPC_HA (ex.X_add_number);
653+ else
654+ ex.X_add_number = SEX16 (PPC_HA (ex.X_add_number));
655 break;
656
657 case BFD_RELOC_PPC64_HIGHER:
658- ex.X_add_number = PPC_HIGHER (ex.X_add_number);
659- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
660- ex.X_add_number = SEX16 (ex.X_add_number);
661+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
662+ ex.X_add_number = PPC_HIGHER (ex.X_add_number);
663+ else
664+ ex.X_add_number = SEX16 (PPC_HIGHER (ex.X_add_number));
665 break;
666
667 case BFD_RELOC_PPC64_HIGHER_S:
668- ex.X_add_number = PPC_HIGHERA (ex.X_add_number);
669- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
670- ex.X_add_number = SEX16 (ex.X_add_number);
671+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
672+ ex.X_add_number = PPC_HIGHERA (ex.X_add_number);
673+ else
674+ ex.X_add_number = SEX16 (PPC_HIGHERA (ex.X_add_number));
675 break;
676
677 case BFD_RELOC_PPC64_HIGHEST:
678- ex.X_add_number = PPC_HIGHEST (ex.X_add_number);
679- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
680- ex.X_add_number = SEX16 (ex.X_add_number);
681+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
682+ ex.X_add_number = PPC_HIGHEST (ex.X_add_number);
683+ else
684+ ex.X_add_number = SEX16 (PPC_HIGHEST (ex.X_add_number));
685 break;
686
687 case BFD_RELOC_PPC64_HIGHEST_S:
688- ex.X_add_number = PPC_HIGHESTA (ex.X_add_number);
689- if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
690- ex.X_add_number = SEX16 (ex.X_add_number);
691+ if (ex.X_unsigned && ! (operand->flags & PPC_OPERAND_SIGNED))
692+ ex.X_add_number = PPC_HIGHESTA (ex.X_add_number);
693+ else
694+ ex.X_add_number = SEX16 (PPC_HIGHESTA (ex.X_add_number));
695 break;
696 }
697 #endif /* OBJ_ELF */
698@@ -6566,51 +6535,25 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
699 fieldval = value & 0xffff;
700 sign_extend_16:
701 if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0)
702- fieldval = SEX16 (fieldval);
703+ fieldval = (fieldval ^ 0x8000) - 0x8000;
704 fixP->fx_no_overflow = 1;
705 break;
706
707- case BFD_RELOC_HI16:
708- case BFD_RELOC_HI16_PCREL:
709 #ifdef OBJ_ELF
710- if (REPORT_OVERFLOW_HI && ppc_obj64)
711- {
712- fieldval = value >> 16;
713- if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0)
714- {
715- valueT sign = (((valueT) -1 >> 16) + 1) >> 1;
716- fieldval = ((valueT) fieldval ^ sign) - sign;
717- }
718- break;
719- }
720- /* Fall thru */
721-
722 case BFD_RELOC_PPC_VLE_HI16A:
723 case BFD_RELOC_PPC_VLE_HI16D:
724- case BFD_RELOC_PPC64_ADDR16_HIGH:
725 #endif
726+ case BFD_RELOC_HI16:
727+ case BFD_RELOC_HI16_PCREL:
728 fieldval = PPC_HI (value);
729 goto sign_extend_16;
730
731- case BFD_RELOC_HI16_S:
732- case BFD_RELOC_HI16_S_PCREL:
733 #ifdef OBJ_ELF
734- if (REPORT_OVERFLOW_HI && ppc_obj64)
735- {
736- fieldval = (value + 0x8000) >> 16;
737- if (operand != NULL && (operand->flags & PPC_OPERAND_SIGNED) != 0)
738- {
739- valueT sign = (((valueT) -1 >> 16) + 1) >> 1;
740- fieldval = ((valueT) fieldval ^ sign) - sign;
741- }
742- break;
743- }
744- /* Fall thru */
745-
746 case BFD_RELOC_PPC_VLE_HA16A:
747 case BFD_RELOC_PPC_VLE_HA16D:
748- case BFD_RELOC_PPC64_ADDR16_HIGHA:
749 #endif
750+ case BFD_RELOC_HI16_S:
751+ case BFD_RELOC_HI16_S_PCREL:
752 fieldval = PPC_HA (value);
753 goto sign_extend_16;
754
755@@ -6673,14 +6616,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
756 case BFD_RELOC_PPC_GOT_DTPREL16_HA:
757 case BFD_RELOC_PPC64_TPREL16_DS:
758 case BFD_RELOC_PPC64_TPREL16_LO_DS:
759- case BFD_RELOC_PPC64_TPREL16_HIGH:
760- case BFD_RELOC_PPC64_TPREL16_HIGHA:
761 case BFD_RELOC_PPC64_TPREL16_HIGHER:
762 case BFD_RELOC_PPC64_TPREL16_HIGHERA:
763 case BFD_RELOC_PPC64_TPREL16_HIGHEST:
764 case BFD_RELOC_PPC64_TPREL16_HIGHESTA:
765- case BFD_RELOC_PPC64_DTPREL16_HIGH:
766- case BFD_RELOC_PPC64_DTPREL16_HIGHA:
767 case BFD_RELOC_PPC64_DTPREL16_DS:
768 case BFD_RELOC_PPC64_DTPREL16_LO_DS:
769 case BFD_RELOC_PPC64_DTPREL16_HIGHER:
770@@ -6866,8 +6805,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
771 case BFD_RELOC_PPC64_HIGHER_S:
772 case BFD_RELOC_PPC64_HIGHEST:
773 case BFD_RELOC_PPC64_HIGHEST_S:
774- case BFD_RELOC_PPC64_ADDR16_HIGH:
775- case BFD_RELOC_PPC64_ADDR16_HIGHA:
776 break;
777
778 case BFD_RELOC_PPC_DTPMOD:
779@@ -6944,14 +6881,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
780 case BFD_RELOC_PPC64_TOC16_LO:
781 case BFD_RELOC_PPC64_TOC16_HI:
782 case BFD_RELOC_PPC64_TOC16_HA:
783- case BFD_RELOC_PPC64_DTPREL16_HIGH:
784- case BFD_RELOC_PPC64_DTPREL16_HIGHA:
785 case BFD_RELOC_PPC64_DTPREL16_HIGHER:
786 case BFD_RELOC_PPC64_DTPREL16_HIGHERA:
787 case BFD_RELOC_PPC64_DTPREL16_HIGHEST:
788 case BFD_RELOC_PPC64_DTPREL16_HIGHESTA:
789- case BFD_RELOC_PPC64_TPREL16_HIGH:
790- case BFD_RELOC_PPC64_TPREL16_HIGHA:
791 case BFD_RELOC_PPC64_TPREL16_HIGHER:
792 case BFD_RELOC_PPC64_TPREL16_HIGHERA:
793 case BFD_RELOC_PPC64_TPREL16_HIGHEST:
794diff --git a/gold/powerpc.cc b/gold/powerpc.cc
795index 1aa4791..b8e932e 100644
796--- a/gold/powerpc.cc
797+++ b/gold/powerpc.cc
798@@ -5168,8 +5168,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
799 case elfcpp::R_PPC64_JMP_IREL:
800 case elfcpp::R_PPC64_ADDR16_DS:
801 case elfcpp::R_PPC64_ADDR16_LO_DS:
802- case elfcpp::R_PPC64_ADDR16_HIGH:
803- case elfcpp::R_PPC64_ADDR16_HIGHA:
804 case elfcpp::R_PPC64_ADDR16_HIGHER:
805 case elfcpp::R_PPC64_ADDR16_HIGHEST:
806 case elfcpp::R_PPC64_ADDR16_HIGHERA:
807@@ -5178,8 +5176,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
808 case elfcpp::R_POWERPC_ADDR30:
809 case elfcpp::R_PPC64_TPREL16_DS:
810 case elfcpp::R_PPC64_TPREL16_LO_DS:
811- case elfcpp::R_PPC64_TPREL16_HIGH:
812- case elfcpp::R_PPC64_TPREL16_HIGHA:
813 case elfcpp::R_PPC64_TPREL16_HIGHER:
814 case elfcpp::R_PPC64_TPREL16_HIGHEST:
815 case elfcpp::R_PPC64_TPREL16_HIGHERA:
816@@ -5354,6 +5350,7 @@ Target_powerpc<size, big_endian>::Scan::local(
817 case elfcpp::R_POWERPC_GNU_VTINHERIT:
818 case elfcpp::R_POWERPC_GNU_VTENTRY:
819 case elfcpp::R_PPC64_TOCSAVE:
820+ case elfcpp::R_PPC_EMB_MRKREF:
821 case elfcpp::R_POWERPC_TLS:
822 break;
823
824@@ -5391,8 +5388,6 @@ Target_powerpc<size, big_endian>::Scan::local(
825 case elfcpp::R_POWERPC_ADDR16_HI:
826 case elfcpp::R_POWERPC_ADDR16_HA:
827 case elfcpp::R_POWERPC_UADDR16:
828- case elfcpp::R_PPC64_ADDR16_HIGH:
829- case elfcpp::R_PPC64_ADDR16_HIGHA:
830 case elfcpp::R_PPC64_ADDR16_HIGHER:
831 case elfcpp::R_PPC64_ADDR16_HIGHERA:
832 case elfcpp::R_PPC64_ADDR16_HIGHEST:
833@@ -5451,35 +5446,31 @@ Target_powerpc<size, big_endian>::Scan::local(
834 case elfcpp::R_POWERPC_REL16_HI:
835 case elfcpp::R_POWERPC_REL16_HA:
836 case elfcpp::R_POWERPC_SECTOFF:
837- case elfcpp::R_POWERPC_SECTOFF_LO:
838- case elfcpp::R_POWERPC_SECTOFF_HI:
839- case elfcpp::R_POWERPC_SECTOFF_HA:
840- case elfcpp::R_PPC64_SECTOFF_DS:
841- case elfcpp::R_PPC64_SECTOFF_LO_DS:
842 case elfcpp::R_POWERPC_TPREL16:
843+ case elfcpp::R_POWERPC_DTPREL16:
844+ case elfcpp::R_POWERPC_SECTOFF_LO:
845 case elfcpp::R_POWERPC_TPREL16_LO:
846+ case elfcpp::R_POWERPC_DTPREL16_LO:
847+ case elfcpp::R_POWERPC_SECTOFF_HI:
848 case elfcpp::R_POWERPC_TPREL16_HI:
849+ case elfcpp::R_POWERPC_DTPREL16_HI:
850+ case elfcpp::R_POWERPC_SECTOFF_HA:
851 case elfcpp::R_POWERPC_TPREL16_HA:
852- case elfcpp::R_PPC64_TPREL16_DS:
853- case elfcpp::R_PPC64_TPREL16_LO_DS:
854- case elfcpp::R_PPC64_TPREL16_HIGH:
855- case elfcpp::R_PPC64_TPREL16_HIGHA:
856+ case elfcpp::R_POWERPC_DTPREL16_HA:
857+ case elfcpp::R_PPC64_DTPREL16_HIGHER:
858 case elfcpp::R_PPC64_TPREL16_HIGHER:
859+ case elfcpp::R_PPC64_DTPREL16_HIGHERA:
860 case elfcpp::R_PPC64_TPREL16_HIGHERA:
861+ case elfcpp::R_PPC64_DTPREL16_HIGHEST:
862 case elfcpp::R_PPC64_TPREL16_HIGHEST:
863+ case elfcpp::R_PPC64_DTPREL16_HIGHESTA:
864 case elfcpp::R_PPC64_TPREL16_HIGHESTA:
865- case elfcpp::R_POWERPC_DTPREL16:
866- case elfcpp::R_POWERPC_DTPREL16_LO:
867- case elfcpp::R_POWERPC_DTPREL16_HI:
868- case elfcpp::R_POWERPC_DTPREL16_HA:
869+ case elfcpp::R_PPC64_TPREL16_DS:
870+ case elfcpp::R_PPC64_TPREL16_LO_DS:
871 case elfcpp::R_PPC64_DTPREL16_DS:
872 case elfcpp::R_PPC64_DTPREL16_LO_DS:
873- case elfcpp::R_PPC64_DTPREL16_HIGH:
874- case elfcpp::R_PPC64_DTPREL16_HIGHA:
875- case elfcpp::R_PPC64_DTPREL16_HIGHER:
876- case elfcpp::R_PPC64_DTPREL16_HIGHERA:
877- case elfcpp::R_PPC64_DTPREL16_HIGHEST:
878- case elfcpp::R_PPC64_DTPREL16_HIGHESTA:
879+ case elfcpp::R_PPC64_SECTOFF_DS:
880+ case elfcpp::R_PPC64_SECTOFF_LO_DS:
881 case elfcpp::R_PPC64_TLSGD:
882 case elfcpp::R_PPC64_TLSLD:
883 break;
884@@ -5713,6 +5704,7 @@ Target_powerpc<size, big_endian>::Scan::global(
885 case elfcpp::R_POWERPC_GNU_VTINHERIT:
886 case elfcpp::R_POWERPC_GNU_VTENTRY:
887 case elfcpp::R_PPC_LOCAL24PC:
888+ case elfcpp::R_PPC_EMB_MRKREF:
889 case elfcpp::R_POWERPC_TLS:
890 break;
891
892@@ -5762,8 +5754,6 @@ Target_powerpc<size, big_endian>::Scan::global(
893 case elfcpp::R_POWERPC_ADDR16_HI:
894 case elfcpp::R_POWERPC_ADDR16_HA:
895 case elfcpp::R_POWERPC_UADDR16:
896- case elfcpp::R_PPC64_ADDR16_HIGH:
897- case elfcpp::R_PPC64_ADDR16_HIGHA:
898 case elfcpp::R_PPC64_ADDR16_HIGHER:
899 case elfcpp::R_PPC64_ADDR16_HIGHERA:
900 case elfcpp::R_PPC64_ADDR16_HIGHEST:
901@@ -5897,35 +5887,31 @@ Target_powerpc<size, big_endian>::Scan::global(
902 case elfcpp::R_POWERPC_REL16_HI:
903 case elfcpp::R_POWERPC_REL16_HA:
904 case elfcpp::R_POWERPC_SECTOFF:
905- case elfcpp::R_POWERPC_SECTOFF_LO:
906- case elfcpp::R_POWERPC_SECTOFF_HI:
907- case elfcpp::R_POWERPC_SECTOFF_HA:
908- case elfcpp::R_PPC64_SECTOFF_DS:
909- case elfcpp::R_PPC64_SECTOFF_LO_DS:
910 case elfcpp::R_POWERPC_TPREL16:
911+ case elfcpp::R_POWERPC_DTPREL16:
912+ case elfcpp::R_POWERPC_SECTOFF_LO:
913 case elfcpp::R_POWERPC_TPREL16_LO:
914+ case elfcpp::R_POWERPC_DTPREL16_LO:
915+ case elfcpp::R_POWERPC_SECTOFF_HI:
916 case elfcpp::R_POWERPC_TPREL16_HI:
917+ case elfcpp::R_POWERPC_DTPREL16_HI:
918+ case elfcpp::R_POWERPC_SECTOFF_HA:
919 case elfcpp::R_POWERPC_TPREL16_HA:
920- case elfcpp::R_PPC64_TPREL16_DS:
921- case elfcpp::R_PPC64_TPREL16_LO_DS:
922- case elfcpp::R_PPC64_TPREL16_HIGH:
923- case elfcpp::R_PPC64_TPREL16_HIGHA:
924+ case elfcpp::R_POWERPC_DTPREL16_HA:
925+ case elfcpp::R_PPC64_DTPREL16_HIGHER:
926 case elfcpp::R_PPC64_TPREL16_HIGHER:
927+ case elfcpp::R_PPC64_DTPREL16_HIGHERA:
928 case elfcpp::R_PPC64_TPREL16_HIGHERA:
929+ case elfcpp::R_PPC64_DTPREL16_HIGHEST:
930 case elfcpp::R_PPC64_TPREL16_HIGHEST:
931+ case elfcpp::R_PPC64_DTPREL16_HIGHESTA:
932 case elfcpp::R_PPC64_TPREL16_HIGHESTA:
933- case elfcpp::R_POWERPC_DTPREL16:
934- case elfcpp::R_POWERPC_DTPREL16_LO:
935- case elfcpp::R_POWERPC_DTPREL16_HI:
936- case elfcpp::R_POWERPC_DTPREL16_HA:
937+ case elfcpp::R_PPC64_TPREL16_DS:
938+ case elfcpp::R_PPC64_TPREL16_LO_DS:
939 case elfcpp::R_PPC64_DTPREL16_DS:
940 case elfcpp::R_PPC64_DTPREL16_LO_DS:
941- case elfcpp::R_PPC64_DTPREL16_HIGH:
942- case elfcpp::R_PPC64_DTPREL16_HIGHA:
943- case elfcpp::R_PPC64_DTPREL16_HIGHER:
944- case elfcpp::R_PPC64_DTPREL16_HIGHERA:
945- case elfcpp::R_PPC64_DTPREL16_HIGHEST:
946- case elfcpp::R_PPC64_DTPREL16_HIGHESTA:
947+ case elfcpp::R_PPC64_SECTOFF_DS:
948+ case elfcpp::R_PPC64_SECTOFF_LO_DS:
949 case elfcpp::R_PPC64_TLSGD:
950 case elfcpp::R_PPC64_TLSLD:
951 break;
952@@ -7098,10 +7084,8 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
953
954 case elfcpp::R_PPC64_TPREL16_DS:
955 case elfcpp::R_PPC64_TPREL16_LO_DS:
956- case elfcpp::R_PPC64_TPREL16_HIGH:
957- case elfcpp::R_PPC64_TPREL16_HIGHA:
958 if (size != 64)
959- // R_PPC_TLSGD, R_PPC_TLSLD, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HI
960+ // R_PPC_TLSGD and R_PPC_TLSLD
961 break;
962 case elfcpp::R_POWERPC_TPREL16:
963 case elfcpp::R_POWERPC_TPREL16_LO:
964@@ -7131,8 +7115,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
965 case elfcpp::R_POWERPC_DTPREL16_HI:
966 case elfcpp::R_POWERPC_DTPREL16_HA:
967 case elfcpp::R_POWERPC_DTPREL:
968- case elfcpp::R_PPC64_DTPREL16_HIGH:
969- case elfcpp::R_PPC64_DTPREL16_HIGHA:
970 // tls symbol values are relative to tls_segment()->vaddr()
971 value -= dtp_offset;
972 break;
973@@ -7273,34 +7255,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
974 overflow = Reloc::CHECK_BITFIELD;
975 break;
976
977- case elfcpp::R_POWERPC_ADDR16_HI:
978- case elfcpp::R_POWERPC_ADDR16_HA:
979- case elfcpp::R_POWERPC_GOT16_HI:
980- case elfcpp::R_POWERPC_GOT16_HA:
981- case elfcpp::R_POWERPC_PLT16_HI:
982- case elfcpp::R_POWERPC_PLT16_HA:
983- case elfcpp::R_POWERPC_SECTOFF_HI:
984- case elfcpp::R_POWERPC_SECTOFF_HA:
985- case elfcpp::R_PPC64_TOC16_HI:
986- case elfcpp::R_PPC64_TOC16_HA:
987- case elfcpp::R_PPC64_PLTGOT16_HI:
988- case elfcpp::R_PPC64_PLTGOT16_HA:
989- case elfcpp::R_POWERPC_TPREL16_HI:
990- case elfcpp::R_POWERPC_TPREL16_HA:
991- case elfcpp::R_POWERPC_DTPREL16_HI:
992- case elfcpp::R_POWERPC_DTPREL16_HA:
993- case elfcpp::R_POWERPC_GOT_TLSGD16_HI:
994- case elfcpp::R_POWERPC_GOT_TLSGD16_HA:
995- case elfcpp::R_POWERPC_GOT_TLSLD16_HI:
996- case elfcpp::R_POWERPC_GOT_TLSLD16_HA:
997- case elfcpp::R_POWERPC_GOT_TPREL16_HI:
998- case elfcpp::R_POWERPC_GOT_TPREL16_HA:
999- case elfcpp::R_POWERPC_GOT_DTPREL16_HI:
1000- case elfcpp::R_POWERPC_GOT_DTPREL16_HA:
1001- case elfcpp::R_POWERPC_REL16_HI:
1002- case elfcpp::R_POWERPC_REL16_HA:
1003- if (size == 32)
1004- break;
1005 case elfcpp::R_POWERPC_REL24:
1006 case elfcpp::R_PPC_PLTREL24:
1007 case elfcpp::R_PPC_LOCAL24PC:
1008@@ -7334,6 +7288,7 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
1009 case elfcpp::R_POWERPC_TLS:
1010 case elfcpp::R_POWERPC_GNU_VTINHERIT:
1011 case elfcpp::R_POWERPC_GNU_VTENTRY:
1012+ case elfcpp::R_PPC_EMB_MRKREF:
1013 break;
1014
1015 case elfcpp::R_PPC64_ADDR64:
1016@@ -7404,12 +7359,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
1017 status = Reloc::addr16_u(view, value, overflow);
1018 break;
1019
1020- case elfcpp::R_PPC64_ADDR16_HIGH:
1021- case elfcpp::R_PPC64_TPREL16_HIGH:
1022- case elfcpp::R_PPC64_DTPREL16_HIGH:
1023- if (size == 32)
1024- // R_PPC_EMB_MRKREF, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HA
1025- goto unsupp;
1026 case elfcpp::R_POWERPC_ADDR16_HI:
1027 case elfcpp::R_POWERPC_REL16_HI:
1028 case elfcpp::R_PPC64_TOC16_HI:
1029@@ -7424,12 +7373,6 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
1030 Reloc::addr16_hi(view, value);
1031 break;
1032
1033- case elfcpp::R_PPC64_ADDR16_HIGHA:
1034- case elfcpp::R_PPC64_TPREL16_HIGHA:
1035- case elfcpp::R_PPC64_DTPREL16_HIGHA:
1036- if (size == 32)
1037- // R_PPC_EMB_RELSEC16, R_PPC_EMB_RELST_HI, R_PPC_EMB_BIT_FLD
1038- goto unsupp;
1039 case elfcpp::R_POWERPC_ADDR16_HA:
1040 case elfcpp::R_POWERPC_REL16_HA:
1041 case elfcpp::R_PPC64_TOC16_HA:
1042@@ -7554,6 +7497,11 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
1043 case elfcpp::R_PPC64_PLT16_LO_DS:
1044 case elfcpp::R_PPC64_PLTGOT16_DS:
1045 case elfcpp::R_PPC64_PLTGOT16_LO_DS:
1046+ case elfcpp::R_PPC_EMB_RELSEC16:
1047+ case elfcpp::R_PPC_EMB_RELST_LO:
1048+ case elfcpp::R_PPC_EMB_RELST_HI:
1049+ case elfcpp::R_PPC_EMB_RELST_HA:
1050+ case elfcpp::R_PPC_EMB_BIT_FLD:
1051 case elfcpp::R_PPC_EMB_RELSDA:
1052 case elfcpp::R_PPC_TOC16:
1053 default:
1054diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h
1055index 78d947b..5888460 100644
1056--- a/include/elf/ppc64.h
1057+++ b/include/elf/ppc64.h
1058@@ -141,14 +141,6 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type)
1059 RELOC_NUMBER (R_PPC64_TLSLD, 108)
1060 RELOC_NUMBER (R_PPC64_TOCSAVE, 109)
1061
1062-/* Added when HA and HI relocs were changed to report overflows. */
1063- RELOC_NUMBER (R_PPC64_ADDR16_HIGH, 110)
1064- RELOC_NUMBER (R_PPC64_ADDR16_HIGHA, 111)
1065- RELOC_NUMBER (R_PPC64_TPREL16_HIGH, 112)
1066- RELOC_NUMBER (R_PPC64_TPREL16_HIGHA, 113)
1067- RELOC_NUMBER (R_PPC64_DTPREL16_HIGH, 114)
1068- RELOC_NUMBER (R_PPC64_DTPREL16_HIGHA, 115)
1069-
1070 #ifndef RELOC_MACROS_GEN_FUNC
1071 /* Fake relocation only used internally by ld. */
1072 RELOC_NUMBER (R_PPC64_LO_DS_OPT, 128)
1073@@ -169,9 +161,8 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type)
1074
1075 END_RELOC_NUMBERS (R_PPC64_max)
1076
1077-#define IS_PPC64_TLS_RELOC(R) \
1078- (((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA) \
1079- || ((R) >= R_PPC64_TPREL16_HIGH && (R) <= R_PPC64_DTPREL16_HIGHA))
1080+#define IS_PPC64_TLS_RELOC(R) \
1081+ ((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA)
1082
1083
1084 /* e_flags bits specifying ABI.
1085--
10861.7.9.5
1087
diff --git a/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend b/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend
new file mode 100644
index 0000000..c9eeb4e
--- /dev/null
+++ b/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bbappend
@@ -0,0 +1 @@
BBCLASSEXTEND += " nativesdk"
diff --git a/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch b/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch
new file mode 100644
index 0000000..88a8a54
--- /dev/null
+++ b/recipes-devtools/valgrind/files/disable-power-isa-2.07-check.patch
@@ -0,0 +1,48 @@
1valgrind: Disable Power ISA 2.07 check
2
3The Power ISA 2.07 check fails when not supported by both machine
4architecture and gcc.
5
6Upstream-Status: Inappropriate [disable feature]
7
8Signed-off-by: Gabriel Barbu <gabriel.barbu@enea.com>
9
10--- a/configure.ac 2014-05-05 17:06:29.674630565 +0200
11+++ b/configure.ac 2014-05-06 13:16:47.525598513 +0200
12@@ -1316,18 +1316,25 @@
13 AM_CONDITIONAL(BUILD_DFP_TESTS, test x$ac_gcc_have_dfp_type = xyes)
14
15 # isa 2.07 checking
16-AC_MSG_CHECKING([that assembler knows ISA 2.07 ])
17+AC_ARG_ENABLE([isa_2_07_check],
18+ [AS_HELP_STRING([--disable-isa_2_07_check],
19+ [disable Power ISA 2.07 check])],
20+ [],
21+ [disable_isa_2_07_check=no])
22
23-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
24-]], [[
25- __asm__ __volatile__("mtvsrd 1,2 ");
26-]])], [
27-ac_asm_have_isa_2_07=yes
28-AC_MSG_RESULT([yes])
29-], [
30-ac_asm_have_isa_2_07=no
31-AC_MSG_RESULT([no])
32-])
33+AS_IF([test "x$disable_isa_2_07_check" = xno],
34+ [AC_MSG_CHECKING([that assembler knows ISA 2.07 ])
35+
36+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
37+ ]], [[
38+ __asm__ __volatile__("mtvsrd 1,2 ");
39+ ]])], [
40+ ac_asm_have_isa_2_07=yes
41+ AC_MSG_RESULT([yes])
42+ ], [
43+ ac_asm_have_isa_2_07=no
44+ AC_MSG_RESULT([no])
45+ ])])
46
47 AM_CONDITIONAL(HAS_ISA_2_07, test x$ac_asm_have_isa_2_07 = xyes)
48
diff --git a/recipes-devtools/valgrind/valgrind_3.9.0.bbappend b/recipes-devtools/valgrind/valgrind_3.9.0.bbappend
new file mode 100644
index 0000000..4af368d
--- /dev/null
+++ b/recipes-devtools/valgrind/valgrind_3.9.0.bbappend
@@ -0,0 +1,30 @@
1EXTRA_OECONF_append_b4860qds-64b = " --disable-isa_2_07_check"
2
3FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4
5SRC_URI += "\
6 file://disable-power-isa-2.07-check.patch \
7 "
8
9do_compile_ptest_zc702-zynq7-prt() {
10 # This is to replace the ptest building part that fails due to
11 # internal compiler error on ARM targets (LXCR-3358)
12 echo ""
13}
14
15do_compile_ptest_zc702-zynq7() {
16 # This is to replace the ptest building part that fails due to
17 # internal compiler error on ARM targets (LXCR-3358)
18 echo ""
19}
20
21do_compile_ptest_k2hk-evm() {
22 # This is to replace the ptest building part that fails due to
23 # internal compiler error on ARM targets (LXCR-3358)
24 echo ""
25}
26do_compile_ptest_proliant-m800() {
27 # This is to replace the ptest building part that fails due to
28 # internal compiler error on ARM targets (LXCR-3358)
29 echo ""
30}
diff --git a/recipes-enea/count-ticks/count-ticks/run-ptest b/recipes-enea/count-ticks/count-ticks/run-ptest
new file mode 100644
index 0000000..b54364a
--- /dev/null
+++ b/recipes-enea/count-ticks/count-ticks/run-ptest
@@ -0,0 +1,23 @@
1#!/bin/sh -eu
2
3fail () {
4 printf "%s\n" "$*"
5 exit
6}
7
8count_ticks --cpu 0 --start || fail "Failed starting tick counting"
9find /usr -name dummy 2>&1 > /dev/null
10
11nr_ticks=$(count_ticks --batch --cpu 0 --end)
12
13if [ $? -ne 0 ]; then
14 echo "FAIL: count_ticks failed execution"
15 exit
16fi
17
18if [ $nr_ticks == 0 ]; then
19 echo "FAIL: count_ticks didn't see any ticks"
20 exit
21fi
22
23echo "PASS: count_ticks"
diff --git a/recipes-enea/count-ticks/count-ticks_1.1.bb b/recipes-enea/count-ticks/count-ticks_1.1.bb
new file mode 100644
index 0000000..caa6ed7
--- /dev/null
+++ b/recipes-enea/count-ticks/count-ticks_1.1.bb
@@ -0,0 +1,25 @@
1SUMMARY = "Tick count tool"
2DESCRIPTION = "Count number of kernel ticks during command execution."
3SECTION = "utils"
4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4"
6
7PR = "r1"
8
9RDEPENDS_${PN} = "bash"
10
11SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \
12 file://run-ptest \
13 "
14
15SRCREV = "0fa0a8e084fe68e77a1f0968f2fbfa993292ae9c"
16
17inherit ptest
18
19S = "${WORKDIR}/git"
20
21FILES_${PN} += "/bin/*"
22
23do_install() {
24 install -D ${S}/install/bin/count_ticks ${D}/usr/bin/count_ticks
25}
diff --git a/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch b/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch
new file mode 100644
index 0000000..42f3e99
--- /dev/null
+++ b/recipes-enea/linx/linx-2.6.6/liblinx_free_buf.patch
@@ -0,0 +1,22 @@
1Fixed buffer free problem when sending between threads in the same process.
2
3Upstream-Status: Not Applicable
4
5Signed-off-by: Huimin She <huimin.she@enea.com>
6
7---
8diff -rup a/liblinx/linx.c b/liblinx/linx.c
9--- a/liblinx/linx.c 2014-04-17 13:40:30.000000000 +0200
10+++ b/liblinx/linx.c 2014-07-24 14:22:30.264648751 +0200
11@@ -711,7 +711,10 @@ int linx_send(LINX * linx, union LINX_SI
12 if (ret == 0) {
13 sig_adm->sndrcv = sndrcv;
14 }
15- adm_free_buf(linx, sig_adm);
16+ if (ret != 1) {
17+ /* Don't free signals sent back to itself, they are needed later! */
18+ adm_free_buf(linx, sig_adm);
19+ }
20 out:
21 /* Take signal pointer from user. */
22 *sig = LINX_NIL;
diff --git a/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch b/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch
new file mode 100644
index 0000000..05a4b7e
--- /dev/null
+++ b/recipes-enea/linx/linx-2.6.6/liblinx_nobase.patch
@@ -0,0 +1,29 @@
1From 5ea9763286eb43e01c4ef2f3db59e13367a77138 Mon Sep 17 00:00:00 2001
2From: jack zhang <jack.zhang@enea.com>
3Date: Mon, 17 Dec 2012 03:52:11 +0100
4Subject: [PATCH] LXCR-995 As an Enea sales person, I want LINX added to Enea
5 Linux
6Signed-off-by: jack zhang <jack.zhang@enea.com>
7
8 Upstream-Status: Pending
9 For details, see LINXCR-1518
10---
11 liblinx/Makefile.am | 2 +-
12 1 files changed, 1 insertions(+), 1 deletions(-)
13
14diff --git a/liblinx/Makefile.am b/liblinx/Makefile.am
15index 8559e43..3ce47d6 100644
16--- a/liblinx/Makefile.am
17+++ b/liblinx/Makefile.am
18@@ -47,7 +47,7 @@ dist_man7_MANS = $(LINXROOT)/doc/man7/linx.7
19
20 include $(LINXROOT)/flags.am
21
22-include_HEADERS = \
23+nobase_include_HEADERS = \
24 $(LINXROOT)/include/linx.h \
25 $(LINXROOT)/include/linx_ioctl.h \
26 $(LINXROOT)/include/linx_socket.h \
27--
281.7.5.4
29
diff --git a/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch b/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch
new file mode 100644
index 0000000..af4b477
--- /dev/null
+++ b/recipes-enea/linx/linx-2.6.6/linxcfg_nobase.patch
@@ -0,0 +1,38 @@
1From a3b3dc8117490ddfcc2081fca5ff663e4157a106 Mon Sep 17 00:00:00 2001
2From: jack zhang <jack.zhang@enea.com>
3Date: Mon, 17 Dec 2012 03:57:15 +0100
4Subject: [PATCH] LXCR-995 As an Enea sales person, I want LINX added to Enea
5 Linux
6Signed-off-by: jack zhang <jack.zhang@enea.com>
7
8 Upstream-Status: Pending
9 For details, see LINXCR-1518
10---
11 linxcfg/Makefile.am | 4 +---
12 1 files changed, 1 insertions(+), 3 deletions(-)
13
14diff --git a/linxcfg/Makefile.am b/linxcfg/Makefile.am
15index 9fc8e84..287c71b 100644
16--- a/linxcfg/Makefile.am
17+++ b/linxcfg/Makefile.am
18@@ -24,16 +24,14 @@ dist_man1_MANS = \
19 $(LINXROOT)/doc/man1/mkcmclcon.1 \
20 $(LINXROOT)/doc/man1/rmcmclcon.1
21
22-include_HEADERS = \
23+nobase_include_HEADERS = \
24 $(LINXROOT)/include/linxcfg.h \
25 $(LINXROOT)/include/linux/ethcm_db_ioctl.h \
26 $(LINXROOT)/include/linux/rlnh_db_ioctl.h \
27 $(LINXROOT)/include/linux/tcpcm_db_ioctl.h \
28 $(LINXROOT)/include/linux/shmcm_db_ioctl.h \
29- $(LINXROOT)/include/linux/riocm_db_ioctl.h \
30 $(LINXROOT)/include/linux/cmcl_db_ioctl.h \
31 $(LINXROOT)/include/linux/riocm_db_ioctl.h \
32- $(LINXROOT)/include/linux/cmcl_db_ioctl.h \
33 $(LINXROOT)/include/db_ioctl.h \
34 $(LINXROOT)/include/ethcm_db_ioctl.h \
35 $(LINXROOT)/include/rlnh_db_ioctl.h \
36--
371.7.5.4
38
diff --git a/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch b/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch
new file mode 100644
index 0000000..f29019b
--- /dev/null
+++ b/recipes-enea/linx/linx-mod-2.6.6/linx-kernel-modules.patch
@@ -0,0 +1,288 @@
1Use KERNEL_SRC and modules_install to get use of pokys build kernel modules.
2fix version.h problem.
3
4Signed-off-by: Anders Roxell <anders.roxell@enea.com>
5
6Upstream-status: Pending
7---
8diff -uNr a/cmcl/Makefile b/cmcl/Makefile
9--- a/cmcl/Makefile 2013-02-25 15:46:59.777325274 +0100
10+++ b/cmcl/Makefile 2013-02-25 15:57:22.038398316 +0100
11@@ -3,8 +3,8 @@
12 LINX ?= $(CURDIR)/../../..
13 include $(LINX)/net/linx/config.mk
14
15-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
16-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
17+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
18+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
19
20 ifneq ($(VENDOR_VERSION), "")
21 EXTRA_CFLAGS += -DGFP_IS_INT
22@@ -38,15 +38,17 @@
23
24 linx_cmcl-y += cmcl.o
25
26+SRC := $(shell pwd)
27+
28 modules:
29- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
30+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
31 $(CP) linx_cmcl.ko ..
32
33 clean:
34- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
35+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
36 $(LINXRM) Module.symvers Module.markers modules.order ../linx_cmcl.ko
37
38-install: modules
39- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
40+modules_install: modules
41+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
42 depmod
43
44diff -uNr a/config.mk b/config.mk
45--- a/config.mk 2013-02-25 15:46:59.781325113 +0100
46+++ b/config.mk 2013-02-25 16:13:30.672459997 +0100
47@@ -3,7 +3,7 @@
48 # CROSS_COMPILE is cross compiler prefix (including full path)
49 CROSS_COMPILE ?=
50 # KERNEL is the path to your kernel sources
51-KERNEL ?=
52+KERNEL_SRC ?=
53
54 # Host architecture
55 HOST_ARCH ?= $(patsubst i%86,i386,$(shell uname -m))
56@@ -26,13 +26,13 @@
57 endif
58
59 ifeq ($(ARCH),$(HOST_ARCH))
60-ifndef KERNEL
61-KERNEL := $(HOST_KERNEL)
62+ifndef KERNEL_SRC
63+KERNEL_SRC := $(HOST_KERNEL)
64 endif
65 else
66-ifndef KERNEL
67+ifndef KERNEL_SRC
68 ifdef NEED_KERNEL
69-$(error Please define KERNEL.)
70+$(error Please define KERNEL_SRC.)
71 endif
72 endif
73 endif
74@@ -53,8 +53,8 @@
75 ifdef CROSS_COMPILE
76 $(ECHO) "# CROSS_COMPILE=$(CROSS_COMPILE)"
77 endif
78-ifdef KERNEL
79- $(ECHO) "# KERNEL=$(KERNEL)"
80+ifdef KERNEL_SRC
81+ $(ECHO) "# KERNEL_SRC=$(KERNEL_SRC)"
82 endif
83 ifdef VERBOSE
84 $(ECHO) "# VERBOSE=$(VERBOSE)"
85@@ -62,7 +62,7 @@
86 $(ECHO) "# VERBOSE=no"
87 endif
88
89-export ARCH CROSS_COMPILE KERNEL LINX
90+export ARCH CROSS_COMPILE KERNEL_SRC LINX
91
92 .PHONY: echo_config
93
94@@ -117,5 +117,5 @@
95 # in the mercury linux distribution.
96 EXTRA_CFLAGS += -I$(KDIR)/arch/ppc -DRLNH_ALIGN_ANY
97 else # x86
98-KDIR := /lib/modules/$(shell uname -r)/build
99+KDIR := /lib/modules/$(KERNEL_VERSION)/build
100 endif
101diff -uNr a/ecm/Makefile b/ecm/Makefile
102--- a/ecm/Makefile 2013-02-25 15:46:59.781325113 +0100
103+++ b/ecm/Makefile 2013-02-25 16:11:13.754388313 +0100
104@@ -5,8 +5,8 @@
105 LINX ?= $(CURDIR)/../../..
106 include $(LINX)/net/linx/config.mk
107
108-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
109-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
110+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
111+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
112
113 ifneq ($(VENDOR_VERSION), "")
114 EXTRA_CFLAGS += -DGFP_IS_INT
115@@ -43,14 +43,16 @@
116 linx_eth_cm-y += ecm_rx.o
117 linx_eth_cm-y += ecm_kutils.o
118
119+SRC := $(shell pwd)
120+
121 modules:
122- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
123+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
124 $(CP) linx_eth_cm.ko ..
125
126 clean:
127- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
128+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
129 $(LINXRM) Module.symvers Module.markers modules.order ../linx_eth_cm.ko
130
131-install: modules
132- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
133+modules_install: modules
134+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
135 depmod
136diff -uNr a/Makefile b/Makefile
137--- a/Makefile 2013-02-25 15:46:59.781325113 +0100
138+++ b/Makefile 2013-02-25 15:53:22.752757899 +0100
139@@ -63,9 +63,9 @@
140 2_6_11 := 132619
141
142 # Vendors version of kernel, needed to catch certain back patches
143-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
144+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
145 # Main line kernel version
146-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
147+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
148
149 #
150 # 'gt_or_eq'
151@@ -140,14 +140,16 @@
152 obj-y += riocm/
153 obj-y += cmcl/
154
155+SRC := $(shell pwd)
156+
157 modules:
158- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
159+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
160 $(CP) */*.ko .
161 clean:
162- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
163+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
164 $(LINXRM) Module.symvers Module.markers modules.order
165
166-install: modules
167- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
168+modules_install: modules
169+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
170 depmod
171
172diff -uNr a/riocm/Makefile b/riocm/Makefile
173--- a/riocm/Makefile 2013-02-25 15:46:59.781325113 +0100
174+++ b/riocm/Makefile 2013-02-25 16:05:33.381125565 +0100
175@@ -5,8 +5,8 @@
176 LINX ?= $(CURDIR)/../../..
177 include $(LINX)/net/linx/config.mk
178
179-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
180-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
181+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
182+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
183
184 ifneq ($(VENDOR_VERSION), "")
185 EXTRA_CFLAGS += -DGFP_IS_INT
186@@ -43,15 +43,17 @@
187 linx_rio_cm-y += rio_rx.o
188 linx_rio_cm-y += rio_kutils.o
189
190+SRC := $(shell pwd)
191+
192 modules:
193- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
194+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
195 $(CP) linx_rio_cm.ko ..
196
197 clean:
198- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
199+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
200 $(LINXRM) Module.symvers Module.markers modules.order ../linx_rio_cm.ko
201
202-install: modules
203- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
204+modules_install: modules
205+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
206 depmod
207
208diff -uNr a/shmcm/Makefile b/shmcm/Makefile
209--- a/shmcm/Makefile 2013-02-25 15:46:59.781325113 +0100
210+++ b/shmcm/Makefile 2013-02-25 16:03:58.113250295 +0100
211@@ -5,8 +5,8 @@
212 LINX ?= $(CURDIR)/../../..
213 include $(LINX)/net/linx/config.mk
214
215-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
216-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
217+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
218+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
219
220 ifneq ($(VENDOR_VERSION), "")
221 EXTRA_CFLAGS += -DGFP_IS_INT
222@@ -60,7 +60,7 @@
223 -I$(LINX)/net/linx/include \
224 -I$(LINX)/net/linx/shmcm
225
226-INSTALLDIR = /lib/modules/`uname -r`/kernel/net/linx
227+INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/net/linx
228 MODULES = linx_shm_cm.ko
229
230 obj-m := linx_shm_cm.o
231@@ -70,15 +70,17 @@
232 linx_shm_cm-y += shmcm_tx.o
233 linx_shm_cm-y += shmcm_kutils.o
234
235+SRC := $(shell pwd)
236+
237 modules:
238- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
239+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
240 $(CP) linx_shm_cm.ko ..
241
242 clean:
243- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
244+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
245 $(LINXRM) Module.symvers Module.markers modules.order ../linx_shm_cm.ko
246
247-install: modules
248- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
249+modules_install: modules
250+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
251 depmod
252
253diff -uNr a/tcp_cm/Makefile b/tcp_cm/Makefile
254--- a/tcp_cm/Makefile 2013-02-25 15:46:59.781325113 +0100
255+++ b/tcp_cm/Makefile 2013-02-25 16:10:09.097187839 +0100
256@@ -3,8 +3,8 @@
257 LINX ?= $(CURDIR)/../../..
258 include $(LINX)/net/linx/config.mk
259
260-KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL)/include/linux/version.h)
261-VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL)/include/linux/version.h)
262+KERNEL_CODE := $(shell awk '/LINUX_VERSION_CODE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
263+VENDOR_VERSION := $(shell awk '/UTS_RELEASE/ {print $$3}' $(KERNEL_SRC)/include/generated/utsrelease.h)
264
265 ifneq ($(VENDOR_VERSION), "")
266 EXTRA_CFLAGS += -DGFP_IS_INT
267@@ -38,15 +38,17 @@
268
269 linx_tcp_cm-y += tcp_cm.o
270
271+SRC := $(shell pwd)
272+
273 modules:
274- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules
275+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules
276 $(CP) linx_tcp_cm.ko ..
277
278 clean:
279- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` clean
280+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) clean
281 $(LINXRM) Module.symvers Module.markers modules.order ../linx_tcp_cm.ko
282
283-install: modules
284- $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL) M=`pwd` modules_install
285+modules_install: modules
286+ $(XMAKE) ARCH=$(ARCH) V=$(V) -C $(KERNEL_SRC) M=$(SRC) modules_install
287 depmod
288
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch
new file mode 100644
index 0000000..d6f9106
--- /dev/null
+++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.11-kernel-versions.patch
@@ -0,0 +1,206 @@
1From 20294330f08283d28b6092b568156e29b1792328 Mon Sep 17 00:00:00 2001
2From: Adrian Dudau <adrian.dudau@enea.com>
3Date: Thu, 12 Dec 2013 11:23:24 +0100
4Subject: [PATCH] support for 3.11 kernel versions
5
6Fixed NULL pointer dereference in ecm_conn.c
7
8Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
9---
10 cfg/db_proc.c | 23 ++++++++++++++++++-----
11 ecm/ecm_conn.c | 11 ++++++++---
12 ipc/hunt.c | 24 ++++++++++++++++++++++++
13 3 files changed, 50 insertions(+), 8 deletions(-)
14
15diff --git a/cfg/db_proc.c b/cfg/db_proc.c
16index c062a3d..bad0353 100644
17--- a/cfg/db_proc.c
18+++ b/cfg/db_proc.c
19@@ -41,6 +41,12 @@
20 #include "db_format.h"
21 #include <asm/uaccess.h>
22
23+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
24+#define PDE_INODE_NAME(inode) PDE_DATA(inode)
25+#else
26+#define PDE_INODE_NAME(inode) PDE(inode)->name
27+#endif
28+
29 struct db_seq {
30 const struct db_template *template;
31 struct list_head *list;
32@@ -148,11 +154,11 @@ static int db_proc_open(struct inode *inode, struct file *file)
33 if (status != 0)
34 goto out_20;
35
36- status = db_template_get(PDE(inode)->name, &p->template);
37+ status = db_template_get(PDE_INODE_NAME(inode), &p->template);
38 if (status != 0)
39 goto out_20;
40
41- status = db_list_get(PDE(inode)->name, &p->list);
42+ status = db_list_get(PDE_INODE_NAME(inode), &p->list);
43 if (status != 0)
44 goto out_10;
45
46@@ -161,7 +167,7 @@ static int db_proc_open(struct inode *inode, struct file *file)
47 return 0;
48
49 out_10:
50- db_template_put(PDE(inode)->name, &p->template);
51+ db_template_put(PDE_INODE_NAME(inode), &p->template);
52 out_20:
53 kfree(p);
54 return status;
55@@ -217,11 +223,11 @@ static int db_proc_release(struct inode *inode, struct file *file)
56 s = file->private_data;
57 p = s->private;
58
59- status = db_list_put(PDE(inode)->name, &p->list);
60+ status = db_list_put(PDE_INODE_NAME(inode), &p->list);
61 if (status != 0)
62 return status;
63
64- status = db_template_put(PDE(inode)->name, &p->template);
65+ status = db_template_put(PDE_INODE_NAME(inode), &p->template);
66 if (status != 0)
67 return status;
68
69@@ -258,14 +264,21 @@ int db_proc_add(const char *name)
70 {
71 struct proc_dir_entry *pde;
72
73+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
74+ pde = proc_create_data(name, 0777, db_proc_root,
75+ &db_proc_file_ops, (void *)name);
76+#else
77 pde = create_proc_entry(name, 0777, db_proc_root);
78+#endif
79 if (pde == NULL)
80 return -EINVAL;
81
82 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
83 pde->owner = THIS_MODULE;
84 #endif
85+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
86 pde->proc_fops = &db_proc_file_ops;
87+#endif
88 return 0;
89 }
90 EXPORT_SYMBOL(db_proc_add);
91diff --git a/ecm/ecm_conn.c b/ecm/ecm_conn.c
92index aaf5161..b81abd1 100644
93--- a/ecm/ecm_conn.c
94+++ b/ecm/ecm_conn.c
95@@ -905,8 +905,9 @@ static void free_ecm_connection(struct RlnhLinkObj *co)
96 {
97 /* Undo alloc_ecm_connection(). */
98 if (co != NULL) {
99- if (list_empty(&co->ecm_dev->conn_list))
100- dev_remove_pack(&co->ecm_dev->pt);
101+ if (co->ecm_dev != NULL)
102+ if (list_empty(&co->ecm_dev->conn_list))
103+ dev_remove_pack(&co->ecm_dev->pt);
104 if (co->con_name != NULL)
105 kfree(co->con_name);
106 if (co->dev_name != NULL)
107@@ -1315,7 +1316,11 @@ static int net_event(struct notifier_block *nb, unsigned long event, void *data)
108 struct ecm_work_net_event *p;
109
110 (void)nb;
111- dev = data;
112+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
113+ dev = netdev_notifier_info_to_dev(data);
114+#else
115+ dev = data;
116+#endif
117
118 w = alloc_ecm_work(sizeof(*p), ECM_WORK_NET_EVENT, GFP_KERNEL);
119 if (w == NULL)
120diff --git a/ipc/hunt.c b/ipc/hunt.c
121index 843a893..f4564eb 100644
122--- a/ipc/hunt.c
123+++ b/ipc/hunt.c
124@@ -743,7 +743,9 @@ static inline struct sock *__locate_name(const char *name,
125 unsigned hash, uint32_t hunter_spid)
126 {
127 struct sock *s, *s_found = NULL;
128+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0))
129 struct hlist_node *node;
130+#endif
131
132 linx_trace_enter(LINX_TRACEGROUP_IPC,
133 "%s, %d, 0x%x, 0x%x", name, len, hash, hunter_spid);
134@@ -753,7 +755,11 @@ static inline struct sock *__locate_name(const char *name,
135
136 /* Traverse the list of sockets in the specified hash slot to find a
137 match. */
138+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
139+ sk_for_each(s, &linx_sockets_bound[hash]) {
140+#else
141 sk_for_each(s, node, &linx_sockets_bound[hash]) {
142+#endif
143 linx_check_sock(s);
144
145 /* If the length of the aname are the same, potential match was found. */
146@@ -1122,7 +1128,9 @@ int linx_info_sockets(struct linx_info_sockets *isockets,
147 LINX_SPID __user * spids)
148 {
149 struct sock *sk;
150+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0))
151 const struct hlist_node *node;
152+#endif
153 int i, tot_sockets = 0, tot_sockets_tmp = 0, max_sockets;
154
155 LINX_ASSERT(isockets != NULL);
156@@ -1131,7 +1139,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets,
157
158 read_lock_bh(&linx_socket_bound_unbound_lock);
159 /* Count the number of sockets the needs to be returned. */
160+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
161+ sk_for_each(sk, &linx_sockets_unbound) {
162+#else
163 sk_for_each(sk, node, &linx_sockets_unbound) {
164+#endif
165 if (linx_sk(sk)->type == LINX_TYPE_REMOTE && isockets->remote) {
166 tot_sockets_tmp++;
167 } else if (linx_sk(sk)->type == LINX_TYPE_LOCAL &&
168@@ -1156,7 +1168,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets,
169
170 tot_sockets_tmp = 0;
171
172+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
173+ sk_for_each(sk, &linx_sockets_unbound) {
174+#else
175 sk_for_each(sk, node, &linx_sockets_unbound) {
176+#endif
177 LINX_SPID spid = linx_sock_to_spid(sk);
178 if (linx_sk(sk)->type == LINX_TYPE_REMOTE &&
179 isockets->remote) {
180@@ -1197,7 +1213,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets,
181 for (i = 0; i < LINX_HASH_SIZE; i++) {
182 tot_sockets_tmp = 0;
183 read_lock_bh(&linx_socket_bound_unbound_lock);
184+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
185+ sk_for_each(sk, &linx_sockets_bound[i]) {
186+#else
187 sk_for_each(sk, node, &linx_sockets_bound[i]) {
188+#endif
189 if (linx_sk(sk)->type == LINX_TYPE_REMOTE &&
190 isockets->remote) {
191 tot_sockets_tmp++;
192@@ -1222,7 +1242,11 @@ int linx_info_sockets(struct linx_info_sockets *isockets,
193 }
194
195 tot_sockets_tmp = 0;
196+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
197+ sk_for_each(sk, &linx_sockets_bound[i]) {
198+#else
199 sk_for_each(sk, node, &linx_sockets_bound[i]) {
200+#endif
201 LINX_SPID spid = linx_sock_to_spid(sk);
202 if (linx_sk(sk)->type == LINX_TYPE_REMOTE &&
203 isockets->remote) {
204--
2051.8.3.2
206
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch
new file mode 100644
index 0000000..60c69a8
--- /dev/null
+++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.12-kernels.patch
@@ -0,0 +1,24 @@
1Fixed build errors for linx_mod with kernel 3.12.X.
2
3For details, see [LXCR-3427].
4
5Upstream-Status: Not Applicable
6
7Signed-off-by: Liviu Gheorghisan <liviu.gheorghisan@enea.com>
8
9---
10--- a/af_linx.c 2014-04-02 10:19:44.000000000 +0300
11+++ b/af_linx.c 2014-07-23 17:40:01.629687646 +0300
12@@ -1034,8 +1034,11 @@
13 failure:
14 *errcode = err;
15 return NULL;
16-#else
17+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)
18 return sock_alloc_send_pskb(sk, 0, data_len, 0, errcode);
19+#else
20+ /* max_page_order == 0 => no paged allocations */
21+ return sock_alloc_send_pskb(sk, 0, data_len, 0, errcode, 0);
22 #endif
23 }
24
diff --git a/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch
new file mode 100644
index 0000000..80118a4
--- /dev/null
+++ b/recipes-enea/linx/linx-mod-2.6.6/support-for-3.15-kernels.patch
@@ -0,0 +1,60 @@
1Fixed build errors for linx-mod with kernel >= 3.15.0
2
3Upstream-Status: Not Applicable
4
5Signed-off-by: Huimin She <huimin.she@enea.com>
6
7---
8diff -rup a/af_linx.c b/af_linx.c
9--- a/af_linx.c 2014-07-25 16:22:23.295570583 +0200
10+++ b/af_linx.c 2014-07-25 16:22:23.299570583 +0200
11@@ -743,7 +743,11 @@ setup_receive_filter(struct sock *sk, st
12 /* This function is called to wake up a receiving socket when it is sleeping
13 * waiting for a new message in poll or select.
14 */
15+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))
16 static void linx_data_ready(struct sock *sk, int len)
17+#else
18+static void linx_data_ready(struct sock *sk)
19+#endif
20 {
21 linx_check_sock(sk);
22
23@@ -1401,7 +1405,11 @@ linx_do_legacy_sendmsg(struct sock *sk,
24 LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size);
25 #endif
26 /* Wake up the receiver, if it sleeps and wait for the signal. */
27+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))
28 to->sk_data_ready(to, payload_size);
29+#else
30+ to->sk_data_ready(to);
31+#endif
32
33 return 0;
34 out:
35@@ -1577,7 +1585,11 @@ linx_do_sendmsg(struct sock *sk,
36 LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size);
37 #endif
38 /* Wake up the receiver, if it sleeps and wait for the signal. */
39- to->sk_data_ready(to, payload_size);
40+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))
41+ to->sk_data_ready(to, payload_size);
42+#else
43+ to->sk_data_ready(to);
44+#endif
45
46 return 0;
47 out:
48@@ -1636,7 +1648,11 @@ int __linx_do_sendmsg_skb_to_local_sk(st
49 LINX_SOCK_STAT_QUEUE_SIGNAL(to, payload_size);
50 #endif
51 /* Wake up the receiver, if it sleeps and waits for the signal. */
52- to->sk_data_ready(to, payload_size);
53+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))
54+ to->sk_data_ready(to, payload_size);
55+#else
56+ to->sk_data_ready(to);
57+#endif
58
59 return 0;
60 }
diff --git a/recipes-enea/linx/linx-mod_2.6.6.bb b/recipes-enea/linx/linx-mod_2.6.6.bb
new file mode 100644
index 0000000..18adef9
--- /dev/null
+++ b/recipes-enea/linx/linx-mod_2.6.6.bb
@@ -0,0 +1,34 @@
1SUMMARY = "LINX for Linux fast IPC"
2DESCRIPTION = "LINX is a distributed communication protocol stack for transparent inter node and interprocess communication for a heterogeneous mix of systems."
3HOMEPAGE = "http://linx.sourceforge.net/"
4
5SECTION = "kernel/modules"
6
7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://../../COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
9
10DEPENDS = "linux-libc-headers linx"
11RRECOMMENDS_${PN} = "linx kmod"
12
13SRC_URI = "http://linux.enea.com/linx/linx-${PV}.tar.gz \
14 file://support-for-3.12-kernels.patch \
15 file://support-for-3.15-kernels.patch"
16
17SRC_URI[md5sum] = "f6d7e103eee0807cacf73aa20cf95571"
18SRC_URI[sha256sum] = "a8fa3fe221e883ecb6afaa001652c96080a474b95e8d37c3bcf3e0c2ae618799"
19
20S = "${WORKDIR}/linx-${PV}/net/linx"
21
22inherit module
23
24module_do_compile_prepend () {
25
26 HAS_LOADABLE_MODULES=$(cat ${STAGING_KERNEL_DIR}/.config | grep "CONFIG_MODULES=y")
27
28 if [[ ${#HAS_LOADABLE_MODULES} -eq 0 ]] ; then
29 echo "The specified Linux kernel has no support for pluggable modules (CONFIG_MODULES=y). Enable it before baking this."
30 exit 1
31 fi
32
33 do_make_scripts
34}
diff --git a/recipes-enea/linx/linx.inc b/recipes-enea/linx/linx.inc
new file mode 100644
index 0000000..3160cfb
--- /dev/null
+++ b/recipes-enea/linx/linx.inc
@@ -0,0 +1,23 @@
1SUMMARY = "LINX for Linux fast IPC"
2DESCRIPTION = "LINX is a distributed communication protocol stack for transparent inter node and interprocess communication for a heterogeneous mix of systems."
3HOMEPAGE = "http://linx.sourceforge.net/"
4SECTION = "system/library"
5
6DEPENDS = "linux-libc-headers virtual/libc"
7RRECOMMENDS_${PN} = "linx-mod"
8
9SRC_URI = "http://linux.enea.com/linx/linx-${PV}.tar.gz \
10 file://liblinx_free_buf.patch"
11
12SRC_URI[md5sum] = "f6d7e103eee0807cacf73aa20cf95571"
13SRC_URI[sha256sum] = "a8fa3fe221e883ecb6afaa001652c96080a474b95e8d37c3bcf3e0c2ae618799"
14
15S = "${WORKDIR}/linx-${PV}"
16
17inherit autotools-brokensep
18
19do_install_append () {
20 mkdir -p ${D}/etc
21 install -m 644 ${S}/linxgw/linxgws/example.conf ${D}/etc/linxgws.conf
22}
23
diff --git a/recipes-enea/linx/linx_2.6.6.bb b/recipes-enea/linx/linx_2.6.6.bb
new file mode 100644
index 0000000..79f7ed7
--- /dev/null
+++ b/recipes-enea/linx/linx_2.6.6.bb
@@ -0,0 +1,6 @@
1require linx.inc
2LICENSE = "BSD"
3
4PR = "r0"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
diff --git a/recipes-enea/list2mask/list2mask/run-ptest b/recipes-enea/list2mask/list2mask/run-ptest
new file mode 100644
index 0000000..9eb6c2f
--- /dev/null
+++ b/recipes-enea/list2mask/list2mask/run-ptest
@@ -0,0 +1,15 @@
1#!/bin/sh -eu
2
3mask=$(list2mask --cpus 2-3,5,7-8)
4
5if [ $? -ne 0 ]; then
6 echo "FAIL: list2mask failed to execute"
7 exit
8fi
9
10if [ "$mask" != "1ac" ]; then
11 echo "FAIL: list2mask returns mask '$mask', expected '1ac'"
12 exit
13fi
14
15echo "PASS: list2mask"
diff --git a/recipes-enea/list2mask/list2mask_1.0.bb b/recipes-enea/list2mask/list2mask_1.0.bb
new file mode 100644
index 0000000..d72bcda
--- /dev/null
+++ b/recipes-enea/list2mask/list2mask_1.0.bb
@@ -0,0 +1,25 @@
1SUMMARY = "Translate CPU list to a CPU mask"
2DESCRIPTION = "Translate CPU list given on command line to a hexadecimal CPU mask. Can use kernel boot parameters isolcpus or nohz_full as input as well as a list given on command line."
3SECTION = "utils"
4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4"
6
7PR = "r1"
8
9RDEPENDS_${PN} = "bash"
10
11SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \
12 file://run-ptest \
13 "
14
15SRCREV = "db6eff03d80c04803fb146939c504b500e16fe2f"
16
17inherit ptest
18
19S = "${WORKDIR}/git"
20
21FILES_${PN} += "/bin/*"
22
23do_install() {
24 install -D ${S}/install/bin/${PN} ${D}/usr/bin/${PN}
25}
diff --git a/recipes-enea/partrt/partrt/run-ptest b/recipes-enea/partrt/partrt/run-ptest
new file mode 100644
index 0000000..b84af18
--- /dev/null
+++ b/recipes-enea/partrt/partrt/run-ptest
@@ -0,0 +1,9 @@
1#!/bin/sh
2
3./test_partition.py target -v
4
5if [ $? -eq 0 ]; then
6 echo "PASS: test_partition"
7else
8 echo "FAIL: test_partition"
9fi
diff --git a/recipes-enea/partrt/partrt_1.1.bb b/recipes-enea/partrt/partrt_1.1.bb
new file mode 100644
index 0000000..8113805
--- /dev/null
+++ b/recipes-enea/partrt/partrt_1.1.bb
@@ -0,0 +1,30 @@
1SUMMARY = "CPU partitioning tool"
2DESCRIPTION = "partrt is a tool for dividing a SMP Linux system into a real time domain and a non-real time domain."
3SECTION = "utils"
4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=b52bab7a403562f36be803f11489f1a4"
6
7RDEPENDS_${PN} = "bash"
8RDEPENDS_${PN}-ptest += "python"
9
10SRC_URI = "git://github.com/OpenEneaLinux/rt-tools.git;branch=master \
11 file://run-ptest \
12 "
13
14SRCREV = "cbe36a4946a2b3bb4927ca3b8ac800111ae9ce49"
15
16inherit ptest
17
18S = "${WORKDIR}/git"
19
20FILES_${PN} += "/bin/*"
21
22do_install() {
23 install -d ${D}/usr/bin
24 install ${S}/install/bin/partrt ${D}/usr/bin
25}
26
27do_install_ptest() {
28 install ${S}/test/test_partition.py ${D}${PTEST_PATH}
29 sed -i s/target/${MACHINE}/ ${D}${PTEST_PATH}/run-ptest
30}
diff --git a/recipes-kernel/linux/files/0001-net-fib-fib6_add-fix-potential-NULL-pointer-derefere.patch b/recipes-kernel/linux/files/0001-net-fib-fib6_add-fix-potential-NULL-pointer-derefere.patch
new file mode 100644
index 0000000..abd4430
--- /dev/null
+++ b/recipes-kernel/linux/files/0001-net-fib-fib6_add-fix-potential-NULL-pointer-derefere.patch
@@ -0,0 +1,52 @@
1From c5c56513b779cb082d05f63c606bde9321d395fb Mon Sep 17 00:00:00 2001
2From: Sona Sarmadi <sona.sarmadi@enea.com>
3Date: Tue, 22 Apr 2014 13:52:58 +0200
4Subject: [PATCH] net: fib: fib6_add: fix potential NULL pointer dereference
5
6When the kernel is compiled with CONFIG_IPV6_SUBTREES, and we return
7with an error in fn = fib6_add_1(), then error codes are encoded into
8the return pointer e.g. ERR_PTR(-ENOENT). In such an error case, we
9write the error code into err and jump to out, hence enter the if(err)
10condition. Now, if CONFIG_IPV6_SUBTREES is enabled, we check for:
11if (pn != fn && pn->leaf == rt)
12...
13if (pn != fn && !pn->leaf && !(pn->fn_flags & RTN_RTINFO))
14...
15Since pn is NULL and fn is f.e. ERR_PTR(-ENOENT), then pn != fn
16evaluates to true and causes a NULL-pointer dereference on further
17checks on pn. Fix it, by setting both NULL in error case, so that
18pn != fn already evaluates to false and no further dereference
19takes place.
20
21This was first correctly implemented in 4a287eba2 ("IPv6 routing,
22NLM_F_* flag support: REPLACE and EXCL flags support, warn about
23missing CREATE flag"), but the bug got later on introduced by
24188c517a0 ("ipv6: return errno pointers consistently for fib6_add_1()").
25
26Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
27Cc: Lin Ming <mlin@ss.pku.edu.cn>
28Cc: Matti Vaittinen <matti.vaittinen@nsn.com>
29Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
30Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
31Acked-by: Matti Vaittinen <matti.vaittinen@nsn.com>
32Signed-off-by: David S. Miller <davem@davemloft.net>
33Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
34---
35 net/ipv6/ip6_fib.c | 1 +
36 1 file changed, 1 insertion(+)
37
38diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
39index 5fc9c7a..45562f6 100644
40--- a/net/ipv6/ip6_fib.c
41+++ b/net/ipv6/ip6_fib.c
42@@ -828,6 +828,7 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, struct nl_info *info)
43
44 if (IS_ERR(fn)) {
45 err = PTR_ERR(fn);
46+ fn = NULL;
47 goto out;
48 }
49
50--
511.7.10.4
52
diff --git a/recipes-kernel/linux/files/0001-sdhci-fix-Timeout-error-messages.patch b/recipes-kernel/linux/files/0001-sdhci-fix-Timeout-error-messages.patch
new file mode 100644
index 0000000..9e42dbd
--- /dev/null
+++ b/recipes-kernel/linux/files/0001-sdhci-fix-Timeout-error-messages.patch
@@ -0,0 +1,39 @@
1From 34a06b51a1928ed1692da4fce9f2203dfd306648 Mon Sep 17 00:00:00 2001
2From: "Maxin B. John" <maxin.john@enea.com>
3Date: Tue, 22 Apr 2014 07:26:59 +0200
4Subject: [PATCH] sdhci: fix Timeout error messages
5
6If the driver doesn't implement proper card detection,
7we shouldn't flood the console with Timeout error messages
8
9Upstream-Status: Pending
10
11Signed-off-by: Maxin B. John <maxin.john@enea.com>
12---
13 drivers/mmc/host/sdhci.c | 9 ++++++---
14 1 file changed, 6 insertions(+), 3 deletions(-)
15
16diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
17index 79db375..c77117c 100644
18--- a/drivers/mmc/host/sdhci.c
19+++ b/drivers/mmc/host/sdhci.c
20@@ -2149,10 +2149,13 @@ static void sdhci_timeout_timer(unsigned long data)
21 spin_lock_irqsave(&host->lock, flags);
22
23 if (host->mrq) {
24- pr_err("%s: Timeout waiting for hardware "
25+ /* If the driver doesn't implement proper card detection,
26+ we shouldn't flood the console with Timeout error messages */
27+ if (!(host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION)) {
28+ pr_err("%s: Timeout waiting for hardware "
29 "interrupt.\n", mmc_hostname(host->mmc));
30- sdhci_dumpregs(host);
31-
32+ sdhci_dumpregs(host);
33+ }
34 if (host->data) {
35 host->data->error = -ETIMEDOUT;
36 sdhci_finish_data(host);
37--
381.7.10.4
39
diff --git a/recipes-kernel/linux/files/Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch b/recipes-kernel/linux/files/Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch
new file mode 100644
index 0000000..79e52c3
--- /dev/null
+++ b/recipes-kernel/linux/files/Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch
@@ -0,0 +1,13 @@
1diff --git a/net/core/scm.c b/net/core/scm.c
2index 03795d0..b4da80b 100644
3--- a/net/core/scm.c
4+++ b/net/core/scm.c
5@@ -54,7 +54,7 @@ static __inline__ int scm_check_creds(struct ucred *creds)
6 return -EINVAL;
7
8 if ((creds->pid == task_tgid_vnr(current) ||
9- ns_capable(current->nsproxy->pid_ns->user_ns, CAP_SYS_ADMIN)) &&
10+ ns_capable(task_active_pid_ns(current)->user_ns, CAP_SYS_ADMIN)) &&
11 ((uid_eq(uid, cred->uid) || uid_eq(uid, cred->euid) ||
12 uid_eq(uid, cred->suid)) || nsown_capable(CAP_SETUID)) &&
13 ((gid_eq(gid, cred->gid) || gid_eq(gid, cred->egid) ||
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch b/recipes-kernel/linux/files/HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch
new file mode 100644
index 0000000..faeace9
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch
@@ -0,0 +1,80 @@
1From 43622021d2e2b82ea03d883926605bdd0525e1d1 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:29:55 +0200
4Subject: [PATCH] HID: validate HID report id size
5
6The "Report ID" field of a HID report is used to build indexes of
7reports. The kernel's index of these is limited to 256 entries, so any
8malicious device that sets a Report ID greater than 255 will trigger
9memory corruption on the host:
10
11[ 1347.156239] BUG: unable to handle kernel paging request at ffff88094958a878
12[ 1347.156261] IP: [<ffffffff813e4da0>] hid_register_report+0x2a/0x8b
13
14CVE-2013-2888
15
16Signed-off-by: Kees Cook <keescook@chromium.org>
17Cc: stable@kernel.org
18Signed-off-by: Jiri Kosina <jkosina@suse.cz>
19Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
20---
21 drivers/hid/hid-core.c | 10 +++++++---
22 include/linux/hid.h | 4 +++-
23 2 files changed, 10 insertions(+), 4 deletions(-)
24
25diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
26index 36668d1..5ea7d51 100644
27--- a/drivers/hid/hid-core.c
28+++ b/drivers/hid/hid-core.c
29@@ -63,6 +63,8 @@ struct hid_report *hid_register_report(struct hid_device *device, unsigned type,
30 struct hid_report_enum *report_enum = device->report_enum + type;
31 struct hid_report *report;
32
33+ if (id >= HID_MAX_IDS)
34+ return NULL;
35 if (report_enum->report_id_hash[id])
36 return report_enum->report_id_hash[id];
37
38@@ -404,8 +406,10 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
39
40 case HID_GLOBAL_ITEM_TAG_REPORT_ID:
41 parser->global.report_id = item_udata(item);
42- if (parser->global.report_id == 0) {
43- hid_err(parser->device, "report_id 0 is invalid\n");
44+ if (parser->global.report_id == 0 ||
45+ parser->global.report_id >= HID_MAX_IDS) {
46+ hid_err(parser->device, "report_id %u is invalid\n",
47+ parser->global.report_id);
48 return -1;
49 }
50 return 0;
51@@ -575,7 +579,7 @@ static void hid_close_report(struct hid_device *device)
52 for (i = 0; i < HID_REPORT_TYPES; i++) {
53 struct hid_report_enum *report_enum = device->report_enum + i;
54
55- for (j = 0; j < 256; j++) {
56+ for (j = 0; j < HID_MAX_IDS; j++) {
57 struct hid_report *report = report_enum->report_id_hash[j];
58 if (report)
59 hid_free_report(report);
60diff --git a/include/linux/hid.h b/include/linux/hid.h
61index 0c48991..ff545cc 100644
62--- a/include/linux/hid.h
63+++ b/include/linux/hid.h
64@@ -393,10 +393,12 @@ struct hid_report {
65 struct hid_device *device; /* associated device */
66 };
67
68+#define HID_MAX_IDS 256
69+
70 struct hid_report_enum {
71 unsigned numbered;
72 struct list_head report_list;
73- struct hid_report *report_id_hash[256];
74+ struct hid_report *report_id_hash[HID_MAX_IDS];
75 };
76
77 #define HID_REPORT_TYPES 3
78--
791.7.9.5
80
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch b/recipes-kernel/linux/files/HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch
new file mode 100644
index 0000000..860d710
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch
@@ -0,0 +1,107 @@
1From 331415ff16a12147d57d5c953f3a961b7ede348b Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:50 +0200
4Subject: [PATCH] HID: provide a helper for validating hid reports
5
6Many drivers need to validate the characteristics of their HID report
7during initialization to avoid misusing the reports. This adds a common
8helper to perform validation of the report exisitng, the field existing,
9and the expected number of values within the field.
10
11Signed-off-by: Kees Cook <keescook@chromium.org>
12Cc: stable@vger.kernel.org
13Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
14Signed-off-by: Jiri Kosina <jkosina@suse.cz>
15Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
16---
17 drivers/hid/hid-core.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
18 include/linux/hid.h | 4 ++++
19 2 files changed, 62 insertions(+)
20
21diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
22index ae88a97..be52c06 100644
23--- a/drivers/hid/hid-core.c
24+++ b/drivers/hid/hid-core.c
25@@ -801,6 +801,64 @@ int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size)
26 }
27 EXPORT_SYMBOL_GPL(hid_parse_report);
28
29+static const char * const hid_report_names[] = {
30+ "HID_INPUT_REPORT",
31+ "HID_OUTPUT_REPORT",
32+ "HID_FEATURE_REPORT",
33+};
34+/**
35+ * hid_validate_values - validate existing device report's value indexes
36+ *
37+ * @device: hid device
38+ * @type: which report type to examine
39+ * @id: which report ID to examine (0 for first)
40+ * @field_index: which report field to examine
41+ * @report_counts: expected number of values
42+ *
43+ * Validate the number of values in a given field of a given report, after
44+ * parsing.
45+ */
46+struct hid_report *hid_validate_values(struct hid_device *hid,
47+ unsigned int type, unsigned int id,
48+ unsigned int field_index,
49+ unsigned int report_counts)
50+{
51+ struct hid_report *report;
52+
53+ if (type > HID_FEATURE_REPORT) {
54+ hid_err(hid, "invalid HID report type %u\n", type);
55+ return NULL;
56+ }
57+
58+ if (id >= HID_MAX_IDS) {
59+ hid_err(hid, "invalid HID report id %u\n", id);
60+ return NULL;
61+ }
62+
63+ /*
64+ * Explicitly not using hid_get_report() here since it depends on
65+ * ->numbered being checked, which may not always be the case when
66+ * drivers go to access report values.
67+ */
68+ report = hid->report_enum[type].report_id_hash[id];
69+ if (!report) {
70+ hid_err(hid, "missing %s %u\n", hid_report_names[type], id);
71+ return NULL;
72+ }
73+ if (report->maxfield <= field_index) {
74+ hid_err(hid, "not enough fields in %s %u\n",
75+ hid_report_names[type], id);
76+ return NULL;
77+ }
78+ if (report->field[field_index]->report_count < report_counts) {
79+ hid_err(hid, "not enough values in %s %u field %u\n",
80+ hid_report_names[type], id, field_index);
81+ return NULL;
82+ }
83+ return report;
84+}
85+EXPORT_SYMBOL_GPL(hid_validate_values);
86+
87 /**
88 * hid_open_report - open a driver-specific device report
89 *
90diff --git a/include/linux/hid.h b/include/linux/hid.h
91index ee1ffc5..31b9d29 100644
92--- a/include/linux/hid.h
93+++ b/include/linux/hid.h
94@@ -756,6 +756,10 @@ u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags);
95 struct hid_device *hid_allocate_device(void);
96 struct hid_report *hid_register_report(struct hid_device *device, unsigned type, unsigned id);
97 int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size);
98+struct hid_report *hid_validate_values(struct hid_device *hid,
99+ unsigned int type, unsigned int id,
100+ unsigned int field_index,
101+ unsigned int report_counts);
102 int hid_open_report(struct hid_device *device);
103 int hid_check_keys_pressed(struct hid_device *hid);
104 int hid_connect(struct hid_device *hid, unsigned int connect_mask);
105--
1061.7.9.5
107
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch
new file mode 100644
index 0000000..a2641cf
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch
@@ -0,0 +1,59 @@
1From 78214e81a1bf43740ce89bb5efda78eac2f8ef83 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:51 +0200
4Subject: [PATCH] HID: zeroplus: validate output report details
5
6The zeroplus HID driver was not checking the size of allocated values
7in fields it used. A HID device could send a malicious output report
8that would cause the driver to write beyond the output report allocation
9during initialization, causing a heap overflow:
10
11[ 1442.728680] usb 1-1: New USB device found, idVendor=0c12, idProduct=0005
12...
13[ 1466.243173] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten
14
15CVE-2013-2889
16
17Signed-off-by: Kees Cook <keescook@chromium.org>
18Cc: stable@vger.kernel.org
19Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
20Signed-off-by: Jiri Kosina <jkosina@suse.cz>
21Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
22---
23 drivers/hid/hid-zpff.c | 18 +++++-------------
24 1 file changed, 5 insertions(+), 13 deletions(-)
25
26diff --git a/drivers/hid/hid-zpff.c b/drivers/hid/hid-zpff.c
27index 6ec28a3..a29756c 100644
28--- a/drivers/hid/hid-zpff.c
29+++ b/drivers/hid/hid-zpff.c
30@@ -68,21 +68,13 @@ static int zpff_init(struct hid_device *hid)
31 struct hid_report *report;
32 struct hid_input *hidinput = list_entry(hid->inputs.next,
33 struct hid_input, list);
34- struct list_head *report_list =
35- &hid->report_enum[HID_OUTPUT_REPORT].report_list;
36 struct input_dev *dev = hidinput->input;
37- int error;
38+ int i, error;
39
40- if (list_empty(report_list)) {
41- hid_err(hid, "no output report found\n");
42- return -ENODEV;
43- }
44-
45- report = list_entry(report_list->next, struct hid_report, list);
46-
47- if (report->maxfield < 4) {
48- hid_err(hid, "not enough fields in report\n");
49- return -ENODEV;
50+ for (i = 0; i < 4; i++) {
51+ report = hid_validate_values(hid, HID_OUTPUT_REPORT, 0, i, 1);
52+ if (!report)
53+ return -ENODEV;
54 }
55
56 zpff = kzalloc(sizeof(struct zpff_device), GFP_KERNEL);
57--
581.7.9.5
59
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0004-HID-sony-validate-HID-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0004-HID-sony-validate-HID-output-report-details.patch
new file mode 100644
index 0000000..3a4e843
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0004-HID-sony-validate-HID-output-report-details.patch
@@ -0,0 +1,43 @@
1From 9446edb9a1740989cf6c20daf7510fb9a23be14a Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:52 +0200
4Subject: [PATCH] HID: sony: validate HID output report details
5
6This driver must validate the availability of the HID output report and
7its size before it can write LED states via buzz_set_leds(). This stops
8a heap overflow that is possible if a device provides a malicious HID
9output report:
10
11[ 108.171280] usb 1-1: New USB device found, idVendor=054c, idProduct=0002
12...
13[ 117.507877] BUG kmalloc-192 (Not tainted): Redzone overwritten
14
15CVE-2013-2890
16
17Signed-off-by: Kees Cook <keescook@chromium.org>
18Cc: stable@vger.kernel.org #3.11
19Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
20Signed-off-by: Jiri Kosina <jkosina@suse.cz>
21Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
22---
23 drivers/hid/hid-sony.c | 4 ++++
24 1 file changed, 4 insertions(+)
25
26diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
27index 30dbb6b..b18320d 100644
28--- a/drivers/hid/hid-sony.c
29+++ b/drivers/hid/hid-sony.c
30@@ -537,6 +537,10 @@ static int buzz_init(struct hid_device *hdev)
31 drv_data = hid_get_drvdata(hdev);
32 BUG_ON(!(drv_data->quirks & BUZZ_CONTROLLER));
33
34+ /* Validate expected report characteristics. */
35+ if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 0, 0, 7))
36+ return -ENODEV;
37+
38 buzz = kzalloc(sizeof(*buzz), GFP_KERNEL);
39 if (!buzz) {
40 hid_err(hdev, "Insufficient memory, cannot allocate driver data\n");
41--
421.7.9.5
43
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch
new file mode 100644
index 0000000..e4eadff
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch
@@ -0,0 +1,43 @@
1From 41df7f6d43723deb7364340b44bc5d94bf717456 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:53 +0200
4Subject: [PATCH] HID: steelseries: validate output report details
5
6A HID device could send a malicious output report that would cause the
7steelseries HID driver to write beyond the output report allocation
8during initialization, causing a heap overflow:
9
10[ 167.981534] usb 1-1: New USB device found, idVendor=1038, idProduct=1410
11...
12[ 182.050547] BUG kmalloc-256 (Tainted: G W ): Redzone overwritten
13
14CVE-2013-2891
15
16Signed-off-by: Kees Cook <keescook@chromium.org>
17Cc: stable@vger.kernel.org
18Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
19Signed-off-by: Jiri Kosina <jkosina@suse.cz>
20Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
21---
22 drivers/hid/hid-steelseries.c | 5 +++++
23 1 file changed, 5 insertions(+)
24
25diff --git a/drivers/hid/hid-steelseries.c b/drivers/hid/hid-steelseries.c
26index d164911..29f328f 100644
27--- a/drivers/hid/hid-steelseries.c
28+++ b/drivers/hid/hid-steelseries.c
29@@ -249,6 +249,11 @@ static int steelseries_srws1_probe(struct hid_device *hdev,
30 goto err_free;
31 }
32
33+ if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 0, 0, 16)) {
34+ ret = -ENODEV;
35+ goto err_free;
36+ }
37+
38 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
39 if (ret) {
40 hid_err(hdev, "hw start failed\n");
41--
421.7.9.5
43
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch
new file mode 100644
index 0000000..15cf09b
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch
@@ -0,0 +1,47 @@
1From 412f30105ec6735224535791eed5cdc02888ecb4 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:30:49 +0200
4Subject: [PATCH] HID: pantherlord: validate output report details
5
6A HID device could send a malicious output report that would cause the
7pantherlord HID driver to write beyond the output report allocation
8during initialization, causing a heap overflow:
9
10[ 310.939483] usb 1-1: New USB device found, idVendor=0e8f, idProduct=0003
11...
12[ 315.980774] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten
13
14CVE-2013-2892
15
16Signed-off-by: Kees Cook <keescook@chromium.org>
17Cc: stable@kernel.org
18Signed-off-by: Jiri Kosina <jkosina@suse.cz>
19Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
20---
21 drivers/hid/hid-pl.c | 10 ++++++++--
22 1 file changed, 8 insertions(+), 2 deletions(-)
23
24diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
25index d29112f..2dcd7d9 100644
26--- a/drivers/hid/hid-pl.c
27+++ b/drivers/hid/hid-pl.c
28@@ -132,8 +132,14 @@ static int plff_init(struct hid_device *hid)
29 strong = &report->field[0]->value[2];
30 weak = &report->field[0]->value[3];
31 debug("detected single-field device");
32- } else if (report->maxfield >= 4 && report->field[0]->maxusage == 1 &&
33- report->field[0]->usage[0].hid == (HID_UP_LED | 0x43)) {
34+ } else if (report->field[0]->maxusage == 1 &&
35+ report->field[0]->usage[0].hid ==
36+ (HID_UP_LED | 0x43) &&
37+ report->maxfield >= 4 &&
38+ report->field[0]->report_count >= 1 &&
39+ report->field[1]->report_count >= 1 &&
40+ report->field[2]->report_count >= 1 &&
41+ report->field[3]->report_count >= 1) {
42 report->field[0]->value[0] = 0x00;
43 report->field[1]->value[0] = 0x00;
44 strong = &report->field[2]->value[0];
45--
461.7.9.5
47
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch
new file mode 100644
index 0000000..9376c42
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch
@@ -0,0 +1,195 @@
1From 0fb6bd06e06792469acc15bbe427361b56ada528 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:54 +0200
4Subject: [PATCH] HID: LG: validate HID output report details
5
6A HID device could send a malicious output report that would cause the
7lg, lg3, and lg4 HID drivers to write beyond the output report allocation
8during an event, causing a heap overflow:
9
10[ 325.245240] usb 1-1: New USB device found, idVendor=046d, idProduct=c287
11...
12[ 414.518960] BUG kmalloc-4096 (Not tainted): Redzone overwritten
13
14Additionally, while lg2 did correctly validate the report details, it was
15cleaned up and shortened.
16
17CVE-2013-2893
18
19Signed-off-by: Kees Cook <keescook@chromium.org>
20Cc: stable@vger.kernel.org
21Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
22Signed-off-by: Jiri Kosina <jkosina@suse.cz>
23Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
24---
25 drivers/hid/hid-lg2ff.c | 19 +++----------------
26 drivers/hid/hid-lg3ff.c | 29 ++++++-----------------------
27 drivers/hid/hid-lg4ff.c | 20 +-------------------
28 drivers/hid/hid-lgff.c | 17 ++---------------
29 4 files changed, 12 insertions(+), 73 deletions(-)
30
31diff --git a/drivers/hid/hid-lg2ff.c b/drivers/hid/hid-lg2ff.c
32index b3cd150..1a42eaa 100644
33--- a/drivers/hid/hid-lg2ff.c
34+++ b/drivers/hid/hid-lg2ff.c
35@@ -64,26 +64,13 @@ int lg2ff_init(struct hid_device *hid)
36 struct hid_report *report;
37 struct hid_input *hidinput = list_entry(hid->inputs.next,
38 struct hid_input, list);
39- struct list_head *report_list =
40- &hid->report_enum[HID_OUTPUT_REPORT].report_list;
41 struct input_dev *dev = hidinput->input;
42 int error;
43
44- if (list_empty(report_list)) {
45- hid_err(hid, "no output report found\n");
46+ /* Check that the report looks ok */
47+ report = hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7);
48+ if (!report)
49 return -ENODEV;
50- }
51-
52- report = list_entry(report_list->next, struct hid_report, list);
53-
54- if (report->maxfield < 1) {
55- hid_err(hid, "output report is empty\n");
56- return -ENODEV;
57- }
58- if (report->field[0]->report_count < 7) {
59- hid_err(hid, "not enough values in the field\n");
60- return -ENODEV;
61- }
62
63 lg2ff = kmalloc(sizeof(struct lg2ff_device), GFP_KERNEL);
64 if (!lg2ff)
65diff --git a/drivers/hid/hid-lg3ff.c b/drivers/hid/hid-lg3ff.c
66index e52f181..8c2da18 100644
67--- a/drivers/hid/hid-lg3ff.c
68+++ b/drivers/hid/hid-lg3ff.c
69@@ -66,10 +66,11 @@ static int hid_lg3ff_play(struct input_dev *dev, void *data,
70 int x, y;
71
72 /*
73- * Maxusage should always be 63 (maximum fields)
74- * likely a better way to ensure this data is clean
75+ * Available values in the field should always be 63, but we only use up to
76+ * 35. Instead, clear the entire area, however big it is.
77 */
78- memset(report->field[0]->value, 0, sizeof(__s32)*report->field[0]->maxusage);
79+ memset(report->field[0]->value, 0,
80+ sizeof(__s32) * report->field[0]->report_count);
81
82 switch (effect->type) {
83 case FF_CONSTANT:
84@@ -129,32 +130,14 @@ static const signed short ff3_joystick_ac[] = {
85 int lg3ff_init(struct hid_device *hid)
86 {
87 struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
88- struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list;
89 struct input_dev *dev = hidinput->input;
90- struct hid_report *report;
91- struct hid_field *field;
92 const signed short *ff_bits = ff3_joystick_ac;
93 int error;
94 int i;
95
96- /* Find the report to use */
97- if (list_empty(report_list)) {
98- hid_err(hid, "No output report found\n");
99- return -1;
100- }
101-
102 /* Check that the report looks ok */
103- report = list_entry(report_list->next, struct hid_report, list);
104- if (!report) {
105- hid_err(hid, "NULL output report\n");
106- return -1;
107- }
108-
109- field = report->field[0];
110- if (!field) {
111- hid_err(hid, "NULL field\n");
112- return -1;
113- }
114+ if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 35))
115+ return -ENODEV;
116
117 /* Assume single fixed device G940 */
118 for (i = 0; ff_bits[i] >= 0; i++)
119diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c
120index 0ddae2a..8782fe1 100644
121--- a/drivers/hid/hid-lg4ff.c
122+++ b/drivers/hid/hid-lg4ff.c
123@@ -484,34 +484,16 @@ static enum led_brightness lg4ff_led_get_brightness(struct led_classdev *led_cde
124 int lg4ff_init(struct hid_device *hid)
125 {
126 struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
127- struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list;
128 struct input_dev *dev = hidinput->input;
129- struct hid_report *report;
130- struct hid_field *field;
131 struct lg4ff_device_entry *entry;
132 struct lg_drv_data *drv_data;
133 struct usb_device_descriptor *udesc;
134 int error, i, j;
135 __u16 bcdDevice, rev_maj, rev_min;
136
137- /* Find the report to use */
138- if (list_empty(report_list)) {
139- hid_err(hid, "No output report found\n");
140- return -1;
141- }
142-
143 /* Check that the report looks ok */
144- report = list_entry(report_list->next, struct hid_report, list);
145- if (!report) {
146- hid_err(hid, "NULL output report\n");
147+ if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7))
148 return -1;
149- }
150-
151- field = report->field[0];
152- if (!field) {
153- hid_err(hid, "NULL field\n");
154- return -1;
155- }
156
157 /* Check what wheel has been connected */
158 for (i = 0; i < ARRAY_SIZE(lg4ff_devices); i++) {
159diff --git a/drivers/hid/hid-lgff.c b/drivers/hid/hid-lgff.c
160index d7ea8c8..e1394af 100644
161--- a/drivers/hid/hid-lgff.c
162+++ b/drivers/hid/hid-lgff.c
163@@ -128,27 +128,14 @@ static void hid_lgff_set_autocenter(struct input_dev *dev, u16 magnitude)
164 int lgff_init(struct hid_device* hid)
165 {
166 struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
167- struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list;
168 struct input_dev *dev = hidinput->input;
169- struct hid_report *report;
170- struct hid_field *field;
171 const signed short *ff_bits = ff_joystick;
172 int error;
173 int i;
174
175- /* Find the report to use */
176- if (list_empty(report_list)) {
177- hid_err(hid, "No output report found\n");
178- return -1;
179- }
180-
181 /* Check that the report looks ok */
182- report = list_entry(report_list->next, struct hid_report, list);
183- field = report->field[0];
184- if (!field) {
185- hid_err(hid, "NULL field\n");
186- return -1;
187- }
188+ if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7))
189+ return -ENODEV;
190
191 for (i = 0; i < ARRAY_SIZE(devices); i++) {
192 if (dev->id.vendor == devices[i].idVendor &&
193--
1941.7.9.5
195
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch
new file mode 100644
index 0000000..1c53d77
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch
@@ -0,0 +1,48 @@
1From 0a9cd0a80ac559357c6a90d26c55270ed752aa26 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:55 +0200
4Subject: [PATCH] HID: lenovo-tpkbd: validate output report details
5
6A HID device could send a malicious output report that would cause the
7lenovo-tpkbd HID driver to write just beyond the output report allocation
8during initialization, causing a heap overflow:
9
10[ 76.109807] usb 1-1: New USB device found, idVendor=17ef, idProduct=6009
11...
12[ 80.462540] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten
13
14CVE-2013-2894
15
16Signed-off-by: Kees Cook <keescook@chromium.org>
17Cc: stable@vger.kernel.org
18Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
19Signed-off-by: Jiri Kosina <jkosina@suse.cz>
20Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
21---
22 drivers/hid/hid-lenovo-tpkbd.c | 10 +++++++++-
23 1 file changed, 9 insertions(+), 1 deletion(-)
24
25diff --git a/drivers/hid/hid-lenovo-tpkbd.c b/drivers/hid/hid-lenovo-tpkbd.c
26index 07837f5..762d988 100644
27--- a/drivers/hid/hid-lenovo-tpkbd.c
28+++ b/drivers/hid/hid-lenovo-tpkbd.c
29@@ -339,7 +339,15 @@ static int tpkbd_probe_tp(struct hid_device *hdev)
30 struct tpkbd_data_pointer *data_pointer;
31 size_t name_sz = strlen(dev_name(dev)) + 16;
32 char *name_mute, *name_micmute;
33- int ret;
34+ int i, ret;
35+
36+ /* Validate required reports. */
37+ for (i = 0; i < 4; i++) {
38+ if (!hid_validate_values(hdev, HID_FEATURE_REPORT, 4, i, 1))
39+ return -ENODEV;
40+ }
41+ if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 3, 0, 2))
42+ return -ENODEV;
43
44 if (sysfs_create_group(&hdev->dev.kobj,
45 &tpkbd_attr_group_pointer)) {
46--
471.7.9.5
48
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch
new file mode 100644
index 0000000..a249c54
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch
@@ -0,0 +1,63 @@
1From 297502abb32e225fb23801fcdb0e4f6f8e17099a Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 11 Sep 2013 21:56:56 +0200
4Subject: [PATCH] HID: logitech-dj: validate output report details
5
6A HID device could send a malicious output report that would cause the
7logitech-dj HID driver to leak kernel memory contents to the device, or
8trigger a NULL dereference during initialization:
9
10[ 304.424553] usb 1-1: New USB device found, idVendor=046d, idProduct=c52b
11...
12[ 304.780467] BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
13[ 304.781409] IP: [<ffffffff815d50aa>] logi_dj_recv_send_report.isra.11+0x1a/0x90
14
15CVE-2013-2895
16
17Signed-off-by: Kees Cook <keescook@chromium.org>
18Cc: stable@vger.kernel.org
19Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
20Signed-off-by: Jiri Kosina <jkosina@suse.cz>
21Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
22---
23 drivers/hid/hid-logitech-dj.c | 10 ++++++++--
24 1 file changed, 8 insertions(+), 2 deletions(-)
25
26diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
27index 7800b14..2e53024 100644
28--- a/drivers/hid/hid-logitech-dj.c
29+++ b/drivers/hid/hid-logitech-dj.c
30@@ -461,7 +461,7 @@ static int logi_dj_recv_send_report(struct dj_receiver_dev *djrcv_dev,
31 struct hid_report *report;
32 struct hid_report_enum *output_report_enum;
33 u8 *data = (u8 *)(&dj_report->device_index);
34- int i;
35+ unsigned int i;
36
37 output_report_enum = &hdev->report_enum[HID_OUTPUT_REPORT];
38 report = output_report_enum->report_id_hash[REPORT_ID_DJ_SHORT];
39@@ -471,7 +471,7 @@ static int logi_dj_recv_send_report(struct dj_receiver_dev *djrcv_dev,
40 return -ENODEV;
41 }
42
43- for (i = 0; i < report->field[0]->report_count; i++)
44+ for (i = 0; i < DJREPORT_SHORT_LENGTH - 1; i++)
45 report->field[0]->value[i] = data[i];
46
47 hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
48@@ -791,6 +791,12 @@ static int logi_dj_probe(struct hid_device *hdev,
49 goto hid_parse_fail;
50 }
51
52+ if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, REPORT_ID_DJ_SHORT,
53+ 0, DJREPORT_SHORT_LENGTH - 1)) {
54+ retval = -ENODEV;
55+ goto hid_parse_fail;
56+ }
57+
58 /* Starts the usb device and connects to upper interfaces hiddev and
59 * hidraw */
60 retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
61--
621.7.9.5
63
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch
new file mode 100644
index 0000000..b243fc6
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch
@@ -0,0 +1,41 @@
1From 875b4e3763dbc941f15143dd1a18d10bb0be303b Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:31:28 +0200
4Subject: [PATCH] HID: ntrig: validate feature report details
5
6A HID device could send a malicious feature report that would cause the
7ntrig HID driver to trigger a NULL dereference during initialization:
8
9[57383.031190] usb 3-1: New USB device found, idVendor=1b96, idProduct=0001
10...
11[57383.315193] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
12[57383.315308] IP: [<ffffffffa08102de>] ntrig_probe+0x25e/0x420 [hid_ntrig]
13
14CVE-2013-2896
15
16Signed-off-by: Kees Cook <keescook@chromium.org>
17Cc: stable@kernel.org
18Signed-off-by: Rafi Rubin <rafi@seas.upenn.edu>
19Signed-off-by: Jiri Kosina <jkosina@suse.cz>
20Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
21---
22 drivers/hid/hid-ntrig.c | 3 ++-
23 1 file changed, 2 insertions(+), 1 deletion(-)
24
25diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
26index 98d1fdf..600f207 100644
27--- a/drivers/hid/hid-ntrig.c
28+++ b/drivers/hid/hid-ntrig.c
29@@ -115,7 +115,8 @@ static inline int ntrig_get_mode(struct hid_device *hdev)
30 struct hid_report *report = hdev->report_enum[HID_FEATURE_REPORT].
31 report_id_hash[0x0d];
32
33- if (!report)
34+ if (!report || report->maxfield < 1 ||
35+ report->field[0]->report_count < 1)
36 return -EINVAL;
37
38 hid_hw_request(hdev, report, HID_REQ_GET_REPORT);
39--
401.7.9.5
41
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch
new file mode 100644
index 0000000..ff425ec
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch
@@ -0,0 +1,86 @@
1From 8821f5dc187bdf16cfb32ef5aa8c3035273fa79a Mon Sep 17 00:00:00 2001
2From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
3Date: Wed, 11 Sep 2013 21:56:58 +0200
4Subject: [PATCH] HID: multitouch: validate indexes details
5
6When working on report indexes, always validate that they are in bounds.
7Without this, a HID device could report a malicious feature report that
8could trick the driver into a heap overflow:
9
10[ 634.885003] usb 1-1: New USB device found, idVendor=0596, idProduct=0500
11...
12[ 676.469629] BUG kmalloc-192 (Tainted: G W ): Redzone overwritten
13
14Note that we need to change the indexes from s8 to s16 as they can
15be between -1 and 255.
16
17CVE-2013-2897
18
19Cc: stable@vger.kernel.org
20Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
21Acked-by: Kees Cook <keescook@chromium.org>
22Signed-off-by: Jiri Kosina <jkosina@suse.cz>
23Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
24---
25 drivers/hid/hid-multitouch.c | 26 ++++++++++++++------------
26 1 file changed, 14 insertions(+), 12 deletions(-)
27
28diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
29index ac28f08..5e5fe1b 100644
30--- a/drivers/hid/hid-multitouch.c
31+++ b/drivers/hid/hid-multitouch.c
32@@ -101,9 +101,9 @@ struct mt_device {
33 unsigned last_slot_field; /* the last field of a slot */
34 unsigned mt_report_id; /* the report ID of the multitouch device */
35 unsigned pen_report_id; /* the report ID of the pen device */
36- __s8 inputmode; /* InputMode HID feature, -1 if non-existent */
37- __s8 inputmode_index; /* InputMode HID feature index in the report */
38- __s8 maxcontact_report_id; /* Maximum Contact Number HID feature,
39+ __s16 inputmode; /* InputMode HID feature, -1 if non-existent */
40+ __s16 inputmode_index; /* InputMode HID feature index in the report */
41+ __s16 maxcontact_report_id; /* Maximum Contact Number HID feature,
42 -1 if non-existent */
43 __u8 num_received; /* how many contacts we received */
44 __u8 num_expected; /* expected last contact index */
45@@ -312,20 +312,18 @@ static void mt_feature_mapping(struct hid_device *hdev,
46 struct hid_field *field, struct hid_usage *usage)
47 {
48 struct mt_device *td = hid_get_drvdata(hdev);
49- int i;
50
51 switch (usage->hid) {
52 case HID_DG_INPUTMODE:
53- td->inputmode = field->report->id;
54- td->inputmode_index = 0; /* has to be updated below */
55-
56- for (i=0; i < field->maxusage; i++) {
57- if (field->usage[i].hid == usage->hid) {
58- td->inputmode_index = i;
59- break;
60- }
61+ /* Ignore if value index is out of bounds. */
62+ if (usage->usage_index >= field->report_count) {
63+ dev_err(&hdev->dev, "HID_DG_INPUTMODE out of range\n");
64+ break;
65 }
66
67+ td->inputmode = field->report->id;
68+ td->inputmode_index = usage->usage_index;
69+
70 break;
71 case HID_DG_CONTACTMAX:
72 td->maxcontact_report_id = field->report->id;
73@@ -511,6 +509,10 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
74 mt_store_field(usage, td, hi);
75 return 1;
76 case HID_DG_CONTACTCOUNT:
77+ /* Ignore if indexes are out of bounds. */
78+ if (field->index >= field->report->maxfield ||
79+ usage->usage_index >= field->report_count)
80+ return 1;
81 td->cc_index = field->index;
82 td->cc_value_index = usage->usage_index;
83 return 1;
84--
851.7.9.5
86
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch
new file mode 100644
index 0000000..745fa9e
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch
@@ -0,0 +1,37 @@
1From 9e8910257397372633e74b333ef891f20c800ee4 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:31:44 +0200
4Subject: [PATCH] HID: sensor-hub: validate feature report details
5
6A HID device could send a malicious feature report that would cause the
7sensor-hub HID driver to read past the end of heap allocation, leaking
8kernel memory contents to the caller.
9
10CVE-2013-2898
11
12Signed-off-by: Kees Cook <keescook@chromium.org>
13Cc: stable@kernel.org
14Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
15Signed-off-by: Jiri Kosina <jkosina@suse.cz>
16Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
17---
18 drivers/hid/hid-sensor-hub.c | 3 ++-
19 1 file changed, 2 insertions(+), 1 deletion(-)
20
21diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
22index ffc80cf..6fca30e 100644
23--- a/drivers/hid/hid-sensor-hub.c
24+++ b/drivers/hid/hid-sensor-hub.c
25@@ -221,7 +221,8 @@ int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id,
26
27 mutex_lock(&data->mutex);
28 report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT);
29- if (!report || (field_index >= report->maxfield)) {
30+ if (!report || (field_index >= report->maxfield) ||
31+ report->field[field_index]->report_count < 1) {
32 ret = -EINVAL;
33 goto done_proc;
34 }
35--
361.7.9.5
37
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch b/recipes-kernel/linux/files/HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch
new file mode 100644
index 0000000..7abf193
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch
@@ -0,0 +1,49 @@
1From 1e87a2456b0227ca4ab881e19a11bb99d164e792 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:31:52 +0200
4Subject: [PATCH] HID: picolcd_core: validate output report details
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9A HID device could send a malicious output report that would cause the
10picolcd HID driver to trigger a NULL dereference during attr file writing.
11
12[jkosina@suse.cz: changed
13
14 report->maxfield < 1
15
16to
17
18 report->maxfield != 1
19
20as suggested by Bruno].
21
22CVE-2013-2899
23
24Signed-off-by: Kees Cook <keescook@chromium.org>
25Cc: stable@kernel.org
26Reviewed-by: Bruno Prémont <bonbons@linux-vserver.org>
27Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
28Signed-off-by: Jiri Kosina <jkosina@suse.cz>
29Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
30---
31 drivers/hid/hid-picolcd_core.c | 2 +-
32 1 file changed, 1 insertion(+), 1 deletion(-)
33
34diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c
35index b48092d..acbb0210 100644
36--- a/drivers/hid/hid-picolcd_core.c
37+++ b/drivers/hid/hid-picolcd_core.c
38@@ -290,7 +290,7 @@ static ssize_t picolcd_operation_mode_store(struct device *dev,
39 buf += 10;
40 cnt -= 10;
41 }
42- if (!report)
43+ if (!report || report->maxfield != 1)
44 return -EINVAL;
45
46 while (cnt > 0 && (buf[cnt-1] == '\n' || buf[cnt-1] == '\r'))
47--
481.7.9.5
49
diff --git a/recipes-kernel/linux/files/HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch b/recipes-kernel/linux/files/HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch
new file mode 100644
index 0000000..f75e653
--- /dev/null
+++ b/recipes-kernel/linux/files/HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch
@@ -0,0 +1,36 @@
1From be67b68d52fa28b9b721c47bb42068f0c1214855 Mon Sep 17 00:00:00 2001
2From: Kees Cook <keescook@chromium.org>
3Date: Wed, 28 Aug 2013 22:32:01 +0200
4Subject: [PATCH] HID: check for NULL field when setting values
5
6Defensively check that the field to be worked on is not NULL.
7
8Signed-off-by: Kees Cook <keescook@chromium.org>
9Cc: stable@kernel.org
10Signed-off-by: Jiri Kosina <jkosina@suse.cz>
11Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
12---
13 drivers/hid/hid-core.c | 7 ++++++-
14 1 file changed, 6 insertions(+), 1 deletion(-)
15
16diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
17index ebf5781..dcd60eb 100644
18--- a/drivers/hid/hid-core.c
19+++ b/drivers/hid/hid-core.c
20@@ -1169,7 +1169,12 @@ EXPORT_SYMBOL_GPL(hid_alloc_report_buf);
21
22 int hid_set_field(struct hid_field *field, unsigned offset, __s32 value)
23 {
24- unsigned size = field->report_size;
25+ unsigned size;
26+
27+ if (!field)
28+ return -1;
29+
30+ size = field->report_size;
31
32 hid_dump_input(field->report->device, field->usage + offset, value);
33
34--
351.7.9.5
36
diff --git a/recipes-kernel/linux/files/arm_arch_timer-Keystone-2-architected-timer-frequenc.patch b/recipes-kernel/linux/files/arm_arch_timer-Keystone-2-architected-timer-frequenc.patch
new file mode 100644
index 0000000..49bf07b
--- /dev/null
+++ b/recipes-kernel/linux/files/arm_arch_timer-Keystone-2-architected-timer-frequenc.patch
@@ -0,0 +1,55 @@
1From e2d575410329f42542972b7276fbb1c2c7f48334 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Sixten=20Sj=C3=B6str=C3=B6m=20Thames?=
3 <Sixten.Sjoestroem.Thames@enea.com>
4Date: Mon, 12 May 2014 21:18:47 +0200
5Subject: [PATCH] arm_arch_timer: Keystone 2 architected timer frequency fix
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10The arch timer frequency register returns incorrect values on early
11versions of the Keystone 2 evm silicon. The frequency register always
12returns 1000 MHz on bad silicon. This temporary fix solves that.
13
14Signed-off-by: Sixten Sjöström Thames <Sixten.Sjoestroem.Thames@enea.com>
15---
16 drivers/clocksource/arm_arch_timer.c | 16 ++++++++++++++++
17 1 file changed, 16 insertions(+)
18
19diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
20index a2b2541..321aba1 100644
21--- a/drivers/clocksource/arm_arch_timer.c
22+++ b/drivers/clocksource/arm_arch_timer.c
23@@ -23,6 +23,8 @@
24
25 #include <clocksource/arm_arch_timer.h>
26
27+#define K2_PG1_AT_FREQ 133120000UL
28+
29 static u32 arch_timer_rate;
30
31 enum ppi_nr {
32@@ -165,6 +167,20 @@ static int arch_timer_available(void)
33 if (arch_timer_rate == 0) {
34 freq = arch_timer_get_cntfrq();
35
36+ /* The Keystone 2 EVM PG1.0 silicon has a malfunctional
37+ * Architected timer. The timer frequency register allways
38+ * incorrectly returns 1000 MHz. This is a temorary fix for
39+ * internal Enea Linux testing so that the same kernel can
40+ * be used on targets with both PG1.0 and PG1.1 silicon.
41+ * Another solution is to have different DTBs with hard
42+ * coded frequencies.*/
43+ if (freq == 1000000000) {
44+ pr_warn("Keystone 2 EVM specific arch timer fix\n");
45+ pr_warn("Set architected timer frequency to %u\n",
46+ K2_PG1_AT_FREQ);
47+ freq = K2_PG1_AT_FREQ;
48+ }
49+
50 /* Check the timer frequency. */
51 if (freq == 0) {
52 pr_warn("Architected timer frequency not available\n");
53--
541.7.10.4
55
diff --git a/recipes-kernel/linux/files/b4860-hard_irq_disable-bug.patch b/recipes-kernel/linux/files/b4860-hard_irq_disable-bug.patch
new file mode 100644
index 0000000..b8ef705
--- /dev/null
+++ b/recipes-kernel/linux/files/b4860-hard_irq_disable-bug.patch
@@ -0,0 +1,24 @@
1linux-qoriq-sdk: Repair a kernel compile issue due to a sintax error.
2
3The define __hard_irq_disable() was done using ";" character
4into the comment so the if structure did not recognized the
5"else" branch.
6
7Upstream-Status: Pending
8
9Signed-off-by: Alexandru Vaduva <alexandru.vaduva@enea.com>
10
11diff -ruN a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
12--- a/arch/powerpc/kernel/irq.c 2014-01-30 12:56:20.470918180 +0100
13+++ b/arch/powerpc/kernel/irq.c 2014-01-30 12:57:25.228109187 +0100
14@@ -227,8 +227,9 @@
15 * common cases that we'll ignore for now), so we skip the
16 * (expensive) mtmsrd.
17 */
18- if (unlikely(irq_happened != PACA_IRQ_HARD_DIS))
19+ if (unlikely(irq_happened != PACA_IRQ_HARD_DIS)) {
20 __hard_irq_disable();
21+ }
22 #ifdef CONFIG_TRACE_IRQFLAGS
23 else {
24 /*
diff --git a/recipes-kernel/linux/files/cfg/00001-embedded.cfg b/recipes-kernel/linux/files/cfg/00001-embedded.cfg
new file mode 100644
index 0000000..2f0e6bf
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00001-embedded.cfg
@@ -0,0 +1 @@
CONFIG_EMBEDDED=y
diff --git a/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg b/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg
new file mode 100644
index 0000000..f8d8748
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00002-root_nfs.cfg
@@ -0,0 +1,7 @@
1CONFIG_NETWORK_FILESYSTEMS=y
2CONFIG_NFS_USE_KERNEL_DNS=y
3CONFIG_ROOT_NFS=y
4CONFIG_NFS_FS=y
5CONFIG_NFS_V3=y
6CONFIG_NFS_V4=y
7CONFIG_NFSD=y
diff --git a/recipes-kernel/linux/files/cfg/00003-fuse.cfg b/recipes-kernel/linux/files/cfg/00003-fuse.cfg
new file mode 100644
index 0000000..43e95f2
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00003-fuse.cfg
@@ -0,0 +1 @@
CONFIG_FUSE_FS=y
diff --git a/recipes-kernel/linux/files/cfg/00004-systemtap.cfg b/recipes-kernel/linux/files/cfg/00004-systemtap.cfg
new file mode 100644
index 0000000..88c278c
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00004-systemtap.cfg
@@ -0,0 +1,6 @@
1CONFIG_DEBUG_INFO=y
2CONFIG_KPROBES=y
3CONFIG_RELAY=y
4CONFIG_DEBUG_FS=y
5CONFIG_MODULES=y
6CONFIG_MODULE_UNLOAD=y
diff --git a/recipes-kernel/linux/files/cfg/00005-pramfs.cfg b/recipes-kernel/linux/files/cfg/00005-pramfs.cfg
new file mode 100644
index 0000000..21aabc1
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00005-pramfs.cfg
@@ -0,0 +1,4 @@
1CONFIG_MISC_FILESYSTEMS=y
2CONFIG_PRAMFS=y
3CONFIG_PRAMFS_XATTR=y
4CONFIG_PRAMFS_TEST_MODULE=m
diff --git a/recipes-kernel/linux/files/cfg/00006-with_modules.cfg b/recipes-kernel/linux/files/cfg/00006-with_modules.cfg
new file mode 100644
index 0000000..f4b3ae2
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00006-with_modules.cfg
@@ -0,0 +1,5 @@
1CONFIG_MODULES=y
2# CONFIG_MODULE_FORCE_LOAD is not set
3CONFIG_MODULE_UNLOAD=y
4CONFIG_MODULE_FORCE_UNLOAD=y
5CONFIG_MODVERSIONS=y
diff --git a/recipes-kernel/linux/files/cfg/00007-oprofile.cfg b/recipes-kernel/linux/files/cfg/00007-oprofile.cfg
new file mode 100644
index 0000000..959e94b
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00007-oprofile.cfg
@@ -0,0 +1,4 @@
1CONFIG_PROFILING=y
2CONFIG_OPROFILE=m
3CONFIG_PROFILE_ALL_BRANCHES=y
4CONFIG_OPROFILE_NMI_TIMER=y
diff --git a/recipes-kernel/linux/files/cfg/00008-uio_m.cfg b/recipes-kernel/linux/files/cfg/00008-uio_m.cfg
new file mode 100644
index 0000000..d82eee4
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00008-uio_m.cfg
@@ -0,0 +1,3 @@
1CONFIG_UIO=m
2CONFIG_UIO_PDRV=m
3CONFIG_UIO_PDRV_GENIRQ=m
diff --git a/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg b/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg
new file mode 100644
index 0000000..eaddbaf
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00009-e500mc_debug.cfg
@@ -0,0 +1,6 @@
1CONFIG_FSL_EMB_PERFMON=y
2CONFIG_FSL_EMB_PERF_EVENT=y
3CONFIG_FSL_EMB_PERF_EVENT_E500=y
4
5CONFIG_PPC_OF=y
6CONFIG_PPC_UDBG_16550=y
diff --git a/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg b/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg
new file mode 100644
index 0000000..1476224
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00010-pramfs-bsc913x.cfg
@@ -0,0 +1,5 @@
1CONFIG_MISC_FILESYSTEMS=y
2CONFIG_PRAMFS=y
3CONFIG_PRAMFS_TEST=y
4CONFIG_TEST_MODULE=m
5
diff --git a/recipes-kernel/linux/files/cfg/00012-preempt.cfg b/recipes-kernel/linux/files/cfg/00012-preempt.cfg
new file mode 100644
index 0000000..43fd0bd
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00012-preempt.cfg
@@ -0,0 +1,9 @@
1CONFIG_GENERIC_LOCKBREAK=y
2CONFIG_TREE_PREEMPT_RCU=y
3CONFIG_PREEMPT_RCU=y
4CONFIG_UNINLINE_SPIN_UNLOCK=y
5CONFIG_PREEMPT=y
6CONFIG_PREEMPT__LL=y
7CONFIG_PREEMPT_COUNT=y
8CONFIG_DEBUG_PREEMPT=y
9CONFIG_RCU_CPU_STALL_VERBOSE=y
diff --git a/recipes-kernel/linux/files/cfg/00013-localversion.cfg b/recipes-kernel/linux/files/cfg/00013-localversion.cfg
new file mode 100644
index 0000000..71481b4
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00013-localversion.cfg
@@ -0,0 +1,2 @@
1CONFIG_LOCALVERSION_AUTO=n
2CONFIG_DEFAULT_HOSTNAME="(none)"
diff --git a/recipes-kernel/linux/files/cfg/00014-kgdb.cfg b/recipes-kernel/linux/files/cfg/00014-kgdb.cfg
new file mode 100644
index 0000000..f23cfe3
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00014-kgdb.cfg
@@ -0,0 +1,9 @@
1#depends
2CONFIG_DEBUG_KERNEL=y
3CONFIG_EXPERIMENTAL=y
4
5#configs
6CONFIG_KGDB=y
7CONFIG_KGDB_SERIAL_CONSOLE=y
8CONFIG_KGDB_KDB=y
9CONFIG_MAGIC_SYSRQ=y
diff --git a/recipes-kernel/linux/files/cfg/00015-uio.cfg b/recipes-kernel/linux/files/cfg/00015-uio.cfg
new file mode 100644
index 0000000..b26593e
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00015-uio.cfg
@@ -0,0 +1,3 @@
1CONFIG_UIO=y
2CONFIG_UIO_PDRV=y
3CONFIG_UIO_PDRV_GENIRQ=y
diff --git a/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg b/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg
new file mode 100644
index 0000000..b3fae70
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00016-largefilessupport.cfg
@@ -0,0 +1 @@
CONFIG_LBDAF=y
diff --git a/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg b/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg
new file mode 100644
index 0000000..89aea43
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00017-preempt_keystone.cfg
@@ -0,0 +1,7 @@
1CONFIG_TREE_PREEMPT_RCU=y
2CONFIG_PREEMPT_RCU=y
3CONFIG_UNINLINE_SPIN_UNLOCK=y
4CONFIG_PREEMPT=y
5CONFIG_PREEMPT_COUNT=y
6CONFIG_DEBUG_PREEMPT=y
7CONFIG_RCU_CPU_STALL_VERBOSE=y
diff --git a/recipes-kernel/linux/files/cfg/00018-rt.cfg b/recipes-kernel/linux/files/cfg/00018-rt.cfg
new file mode 100644
index 0000000..a15c930
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00018-rt.cfg
@@ -0,0 +1,3 @@
1CONFIG_PREEMPT_RT_FULL=y
2CONFIG_HZ_1000=y
3CONFIG_HZ=1000
diff --git a/recipes-kernel/linux/files/cfg/00019-i2c.cfg b/recipes-kernel/linux/files/cfg/00019-i2c.cfg
new file mode 100644
index 0000000..8dbcc3c
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00019-i2c.cfg
@@ -0,0 +1 @@
CONFIG_I2C_CHARDEV=y
diff --git a/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg b/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg
new file mode 100644
index 0000000..0d83d11
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00021-bootlogd.cfg
@@ -0,0 +1,2 @@
1CONFIG_LEGACY_PTYS=y
2CONFIG_LEGACY_PTY_COUNT=256
diff --git a/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg b/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg
new file mode 100644
index 0000000..1477bd7
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00022-mtd_tests.cfg
@@ -0,0 +1 @@
CONFIG_MTD_TESTS=m
diff --git a/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg b/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg
new file mode 100644
index 0000000..9e7666c
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00023-ikconfig.cfg
@@ -0,0 +1,2 @@
1CONFIG_IKCONFIG=y
2CONFIG_IKCONFIG_PROC=y
diff --git a/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg b/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg
new file mode 100644
index 0000000..c9b47ac
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00024-preempt_romley-ivb.cfg
@@ -0,0 +1,8 @@
1CONFIG_TREE_PREEMPT_RCU=y
2CONFIG_PREEMPT_RCU=y
3CONFIG_RCU_STALL_COMMON=y
4CONFIG_UNINLINE_SPIN_UNLOCK=y
5CONFIG_PREEMPT=y
6CONFIG_PREEMPT_COUNT=y
7CONFIG_DEBUG_PREEMPT=y
8CONFIG_RCU_CPU_STALL_VERBOSE=y
diff --git a/recipes-kernel/linux/files/cfg/00025-powertop.cfg b/recipes-kernel/linux/files/cfg/00025-powertop.cfg
new file mode 100644
index 0000000..655c101
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00025-powertop.cfg
@@ -0,0 +1,13 @@
1CONFIG_EXPERT=y
2CONFIG_PROC_FS=y
3CONFIG_DEBUG_FS=y
4CONFIG_NO_HZ=y
5CONFIG_HIGH_RES_TIMERS=y
6CONFIG_HPET_TIMER=y
7CONFIG_CPU_FREQ=y
8CONFIG_CPU_FREQ_GOV_ONDEMAND=y
9CONFIG_TIMER_STATS=y
10CONFIG_PERF_EVENTS=y
11CONFIG_TRACEPOINTS=y
12CONFIG_TRACING=y
13CONFIG_X86_MSR=y
diff --git a/recipes-kernel/linux/files/cfg/00026-ltp.cfg b/recipes-kernel/linux/files/cfg/00026-ltp.cfg
new file mode 100644
index 0000000..e36a9c2
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00026-ltp.cfg
@@ -0,0 +1,3 @@
1CONFIG_TUN=y
2CONFIG_KSM=y
3CONFIG_NUMA=y
diff --git a/recipes-kernel/linux/files/cfg/00027-lttng.cfg b/recipes-kernel/linux/files/cfg/00027-lttng.cfg
new file mode 100644
index 0000000..1334194
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00027-lttng.cfg
@@ -0,0 +1,20 @@
1CONFIG_MODULES=y
2CONFIG_KALLSYMS=y
3CONFIG_HIGH_RES_TIMERS=y
4CONFIG_TRACEPOINTS=y
5CONFIG_FTRACE=y
6CONFIG_PERF_EVENTS=y
7CONFIG_EVENT_TRACING=y
8CONFIG_KPROBES=y
9CONFIG_KRETPROBES=y
10CONFIG_FUNCTION_TRACER=y
11CONFIG_FUNCTION_GRAPH_TRACER=y
12CONFIG_IRQSOFF_TRACER=y
13CONFIG_PREEMPT_TRACER=y
14CONFIG_SCHED_TRACER=y
15CONFIG_NOP_TRACER=y
16CONFIG_CONTEXT_SWITCH_TRACER=y
17CONFIG_GENERIC_TRACER=y
18CONFIG_TRACER_MAX_TRACE=y
19CONFIG_TRACER_SNAPSHOT=y
20CONFIG_STACK_TRACER=n
diff --git a/recipes-kernel/linux/files/cfg/00028-perf.cfg b/recipes-kernel/linux/files/cfg/00028-perf.cfg
new file mode 100644
index 0000000..5fddec0
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00028-perf.cfg
@@ -0,0 +1,2 @@
1CONFIG_CGROUP_PERF=y
2CONFIG_PERF_EVENTS=y
diff --git a/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg b/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg
new file mode 100644
index 0000000..5e9cf98
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00029-devtmpfs.cfg
@@ -0,0 +1,2 @@
1CONFIG_DEVTMPFS=y
2CONFIG_DEVTMPFS_MOUNT=y
diff --git a/recipes-kernel/linux/files/cfg/00030-latencytop.cfg b/recipes-kernel/linux/files/cfg/00030-latencytop.cfg
new file mode 100644
index 0000000..0a42694
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00030-latencytop.cfg
@@ -0,0 +1 @@
CONFIG_LATENCYTOP=y
diff --git a/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg b/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg
new file mode 100644
index 0000000..3498fd0
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00031-igb_drv.cfg
@@ -0,0 +1,3 @@
1CONFIG_IGB=y
2CONFIG_IGB_DCA=y
3CONFIG_IGBVF=y
diff --git a/recipes-kernel/linux/files/cfg/00032-dpa.cfg b/recipes-kernel/linux/files/cfg/00032-dpa.cfg
new file mode 100644
index 0000000..c873cd5
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00032-dpa.cfg
@@ -0,0 +1 @@
CONFIG_FSL_FM_MAX_FRAME_SIZE=9600
diff --git a/recipes-kernel/linux/files/cfg/00033-kprobes.cfg b/recipes-kernel/linux/files/cfg/00033-kprobes.cfg
new file mode 100644
index 0000000..e24be27
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00033-kprobes.cfg
@@ -0,0 +1 @@
CONFIG_KPROBES=y
diff --git a/recipes-kernel/linux/files/cfg/00034-cpusets.cfg b/recipes-kernel/linux/files/cfg/00034-cpusets.cfg
new file mode 100644
index 0000000..ec8fad4
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00034-cpusets.cfg
@@ -0,0 +1,3 @@
1CONFIG_CGROUPS=y
2CONFIG_CPUSETS=y
3CONFIG_CGROUP_PERF=y
diff --git a/recipes-kernel/linux/files/cfg/00035-netfilter.cfg b/recipes-kernel/linux/files/cfg/00035-netfilter.cfg
new file mode 100644
index 0000000..2dfdba9
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00035-netfilter.cfg
@@ -0,0 +1,113 @@
1CONFIG_NETFILTER=y
2CONFIG_IP_NF_IPTABLES=y
3CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
4CONFIG_BRIDGE_NF_EBTABLES=y
5CONFIG_IP_VS=y
6CONFIG_IP_NF_FILTER=y
7CONFIG_IP_NF_TARGET_ULOG=y
8CONFIG_IP_NF_IPTABLES=y
9#
10# Not directly sourced via a kernel type but via an external bb
11#
12CONFIG_NETFILTER=y
13CONFIG_NETFILTER_ADVANCED=y
14
15#
16# Core Netfilter Configuration
17#
18CONFIG_NETFILTER_NETLINK=m
19CONFIG_NETFILTER_NETLINK_QUEUE=m
20CONFIG_NETFILTER_NETLINK_LOG=m
21CONFIG_NF_CONNTRACK=m
22CONFIG_NF_CONNTRACK_MARK=y
23CONFIG_NF_CT_PROTO_GRE=m
24CONFIG_NF_CT_PROTO_SCTP=m
25CONFIG_NF_CT_PROTO_UDPLITE=m
26CONFIG_NF_CONNTRACK_AMANDA=m
27CONFIG_NF_CONNTRACK_FTP=m
28CONFIG_NF_CONNTRACK_H323=m
29CONFIG_NF_CONNTRACK_IRC=m
30CONFIG_NF_CONNTRACK_NETBIOS_NS=m
31CONFIG_NF_CONNTRACK_PPTP=m
32CONFIG_NF_CONNTRACK_SANE=m
33CONFIG_NF_CONNTRACK_SIP=m
34CONFIG_NF_CONNTRACK_TFTP=m
35CONFIG_NF_CT_NETLINK=m
36CONFIG_NETFILTER_XTABLES=m
37CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
38CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
39CONFIG_NETFILTER_XT_TARGET_DSCP=m
40CONFIG_NETFILTER_XT_TARGET_HL=m
41CONFIG_NETFILTER_XT_TARGET_MARK=m
42CONFIG_NETFILTER_XT_TARGET_NFLOG=m
43CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
44CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
45CONFIG_NETFILTER_XT_TARGET_TRACE=m
46CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
47CONFIG_NETFILTER_XT_MATCH_COMMENT=m
48CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
49CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
50CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
51CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
52CONFIG_NETFILTER_XT_MATCH_DCCP=m
53CONFIG_NETFILTER_XT_MATCH_DSCP=m
54CONFIG_NETFILTER_XT_MATCH_ESP=m
55CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
56CONFIG_NETFILTER_XT_MATCH_HELPER=m
57CONFIG_NETFILTER_XT_MATCH_HL=m
58CONFIG_NETFILTER_XT_MATCH_LENGTH=m
59CONFIG_NETFILTER_XT_MATCH_LIMIT=m
60CONFIG_NETFILTER_XT_MATCH_MAC=m
61CONFIG_NETFILTER_XT_MATCH_MARK=m
62CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
63CONFIG_NETFILTER_XT_MATCH_POLICY=m
64CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
65CONFIG_NETFILTER_XT_MATCH_QUOTA=m
66CONFIG_NETFILTER_XT_MATCH_REALM=m
67CONFIG_NETFILTER_XT_MATCH_SCTP=m
68CONFIG_NETFILTER_XT_MATCH_STATE=m
69CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
70CONFIG_NETFILTER_XT_MATCH_STRING=m
71CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
72CONFIG_NETFILTER_XT_MATCH_U32=m
73
74#
75# IP: Netfilter Configuration
76#
77CONFIG_NF_DEFRAG_IPV4=m
78CONFIG_NF_CONNTRACK_IPV4=m
79CONFIG_NF_CONNTRACK_PROC_COMPAT=y
80CONFIG_IP_NF_IPTABLES=m
81CONFIG_IP_NF_MATCH_AH=m
82CONFIG_IP_NF_MATCH_ECN=m
83CONFIG_IP_NF_MATCH_TTL=m
84CONFIG_IP_NF_FILTER=m
85CONFIG_IP_NF_TARGET_REJECT=m
86CONFIG_IP_NF_TARGET_ULOG=m
87CONFIG_NF_NAT=m
88CONFIG_NF_NAT_NEEDED=y
89CONFIG_NF_NAT_IPV4=m
90CONFIG_IP_NF_TARGET_MASQUERADE=m
91CONFIG_IP_NF_TARGET_NETMAP=m
92CONFIG_IP_NF_TARGET_REDIRECT=m
93CONFIG_NF_NAT_SNMP_BASIC=m
94CONFIG_NF_NAT_PROTO_GRE=m
95CONFIG_NF_NAT_PROTO_UDPLITE=m
96CONFIG_NF_NAT_PROTO_SCTP=m
97CONFIG_NF_NAT_FTP=m
98CONFIG_NF_NAT_IRC=m
99CONFIG_NF_NAT_TFTP=m
100CONFIG_NF_NAT_AMANDA=m
101CONFIG_NF_NAT_PPTP=m
102CONFIG_NF_NAT_H323=m
103CONFIG_NF_NAT_SIP=m
104CONFIG_IP_NF_MANGLE=m
105CONFIG_IP_NF_TARGET_CLUSTERIP=m
106CONFIG_IP_NF_TARGET_ECN=m
107CONFIG_IP_NF_TARGET_TTL=m
108CONFIG_IP_NF_RAW=m
109CONFIG_IP_NF_ARPTABLES=m
110CONFIG_IP_NF_ARPFILTER=m
111CONFIG_IP_NF_ARP_MANGLE=m
112
113CONFIG_NET_SCHED=y
diff --git a/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg b/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg
new file mode 100644
index 0000000..e41d2e9
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00036-ppc_virt.cfg
@@ -0,0 +1,5 @@
1CONFIG_VIRTUALIZATION=y
2CONFIG_KVM_E500MC=y
3CONFIG_BRIDGE=y
4CONFIG_TUN=y
5CONFIG_PCI_STUB=y
diff --git a/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg b/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg
new file mode 100644
index 0000000..d4e5f8f
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00037-ppc_lxc.cfg
@@ -0,0 +1,30 @@
1CONFIG_MEMCG=y
2CONFIG_MEMCG_KMEM=y
3CONFIG_CGROUP_DEVICE=y
4CONFIG_CPUSETS=y
5CONFIG_PROC_PID_CPUSET=y
6CONFIG_RESOURCE_COUNTERS=y
7CONFIG_CGROUP_MEM_RES_CTLR=y
8CONFIG_CGROUP_SCHED=y
9CONFIG_FAIR_GROUP_SCHED=y
10CONFIG_RT_GROUP_SCHED=y
11CONFIG_CHECKPOINT_RESTORE=y
12CONFIG_NAMESPACES=y
13CONFIG_UTS_NS=y
14CONFIG_IPC_NS=y
15CONFIG_USER_NS=n
16CONFIG_PID_NS=y
17CONFIG_NET_NS=y
18CONFIG_SECCOMP=y
19CONFIG_SECURITY_APPARMOR=y
20CONFIG_CGROUPS=y
21
22CONFIG_CLS_CGROUP=m
23CONFIG_BLK_CGROUP=m
24CONFIG_NETPRIO_CGROUP=m
25
26CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
27CONFIG_VETH=y
28CONFIG_MACVLAN=y
29CONFIG_CGROUP_CPUACCT=y
30
diff --git a/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg b/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg
new file mode 100644
index 0000000..3704a7a
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00038-hotplug_cpu.cfg
@@ -0,0 +1 @@
CONFIG_HOTPLUG_CPU=y
diff --git a/recipes-kernel/linux/files/cfg/00039-nohz.cfg b/recipes-kernel/linux/files/cfg/00039-nohz.cfg
new file mode 100644
index 0000000..4cf684f
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00039-nohz.cfg
@@ -0,0 +1,9 @@
1CONFIG_NO_HZ_COMMON=y
2CONFIG_NO_HZ_FULL=y
3CONFIG_VIRT_CPU_ACCOUNTING=y
4CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
5CONFIG_CONTEXT_TRACKING=y
6CONFIG_RCU_USER_QS=y
7CONFIG_RCU_NOCB_CPU=y
8CONFIG_RCU_NOCB_CPU_ALL=y
9CONFIG_LOCKUP_DETECTOR=n
diff --git a/recipes-kernel/linux/files/cfg/00040-9p.cfg b/recipes-kernel/linux/files/cfg/00040-9p.cfg
new file mode 100644
index 0000000..4b9b161
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00040-9p.cfg
@@ -0,0 +1,5 @@
1CONFIG_NET_9P=y
2CONFIG_NET_9P_VIRTIO=y
3CONFIG_NET_9P_DEBUG=y
4CONFIG_9P_FS=y
5CONFIG_9P_FS_POSIX_ACL=y
diff --git a/recipes-kernel/linux/files/cfg/00041-virtio.cfg b/recipes-kernel/linux/files/cfg/00041-virtio.cfg
new file mode 100644
index 0000000..41f0dcd
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00041-virtio.cfg
@@ -0,0 +1,8 @@
1CONFIG_VIRTIO_PCI=y
2CONFIG_VIRTIO_BALLOON=y
3CONFIG_VIRTIO_BLK=y
4CONFIG_VIRTIO_NET=y
5CONFIG_VIRTIO=y
6CONFIG_VIRTIO_RING=y
7CONFIG_VIRTIO_MMIO=y
8CONFIG_VIRTIO_CONSOLE=y
diff --git a/recipes-kernel/linux/files/cfg/00042-vhost.cfg b/recipes-kernel/linux/files/cfg/00042-vhost.cfg
new file mode 100644
index 0000000..87a6004
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00042-vhost.cfg
@@ -0,0 +1,2 @@
1CONFIG_VHOST_NET=y
2CONFIG_PCI_MSI=y
diff --git a/recipes-kernel/linux/files/cfg/00043-containers.cfg b/recipes-kernel/linux/files/cfg/00043-containers.cfg
new file mode 100644
index 0000000..aac7304
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00043-containers.cfg
@@ -0,0 +1,18 @@
1CONFIG_NAMESPACES=y
2CONFIG_UTS_NS=y
3CONFIG_IPC_NS=y
4CONFIG_USER_NS=y
5CONFIG_PID_NS=y
6CONFIG_NET_NS=y
7CONFIG_CGROUP_FREEZER=y
8CONFIG_CGROUP_DEVICE=y
9CONFIG_CGROUP_CPUACCT=y
10CONFIG_RESOURCE_COUNTERS=y
11CONFIG_CGROUP_SCHED=y
12CONFIG_BLK_CGROUP=y
13CONFIG_CPUSETS=y
14CONFIG_MEMCG=y
15CONFIG_MEMCG_KMEM=y
16CONFIG_VETH=y
17CONFIG_MACVLAN=y
18CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
diff --git a/recipes-kernel/linux/files/cfg/00044-numa.cfg b/recipes-kernel/linux/files/cfg/00044-numa.cfg
new file mode 100644
index 0000000..e480f0c
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00044-numa.cfg
@@ -0,0 +1 @@
CONFIG_NUMA=y
diff --git a/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg b/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg
new file mode 100644
index 0000000..04aec57
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00045-pci-stub.cfg
@@ -0,0 +1 @@
CONFIG_PCI_STUB=m
diff --git a/recipes-kernel/linux/files/cfg/00046-sata.cfg b/recipes-kernel/linux/files/cfg/00046-sata.cfg
new file mode 100644
index 0000000..0a30897
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00046-sata.cfg
@@ -0,0 +1,5 @@
1#enable SATA support
2CONFIG_ATA=y
3CONFIG_SATA_AHCI=y
4CONFIG_SATA_AHCI_PLATFORM=y
5CONFIG_SATA_PMP=y
diff --git a/recipes-kernel/linux/files/cfg/00047-bridge.cfg b/recipes-kernel/linux/files/cfg/00047-bridge.cfg
new file mode 100644
index 0000000..873cbf3
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00047-bridge.cfg
@@ -0,0 +1 @@
CONFIG_BRIDGE=y
diff --git a/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg b/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg
new file mode 100644
index 0000000..7b0b6f6
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00048-containers_no_user_ns.cfg
@@ -0,0 +1,18 @@
1CONFIG_NAMESPACES=y
2CONFIG_UTS_NS=y
3CONFIG_IPC_NS=y
4CONFIG_USER_NS=n
5CONFIG_PID_NS=y
6CONFIG_NET_NS=y
7CONFIG_CGROUP_FREEZER=y
8CONFIG_CGROUP_DEVICE=y
9CONFIG_CGROUP_CPUACCT=y
10CONFIG_RESOURCE_COUNTERS=y
11CONFIG_CGROUP_SCHED=y
12CONFIG_BLK_CGROUP=y
13CONFIG_CPUSETS=y
14CONFIG_MEMCG=y
15CONFIG_MEMCG_KMEM=y
16CONFIG_VETH=y
17CONFIG_MACVLAN=y
18CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
diff --git a/recipes-kernel/linux/files/cfg/00049-gpio.cfg b/recipes-kernel/linux/files/cfg/00049-gpio.cfg
new file mode 100644
index 0000000..9ea98eb
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00049-gpio.cfg
@@ -0,0 +1,2 @@
1CONFIG_GPIO_SYSFS=y
2CONFIG_GPIO_GENERIC=y
diff --git a/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg b/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg
new file mode 100644
index 0000000..fb0d0b2
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/00050-nfsdv4.cfg
@@ -0,0 +1,7 @@
1CONFIG_NFSD_V4=y
2CONFIG_NFSD=y
3CONFIG_INET=y
4CONFIG_NET=y
5CONFIG_NETWORK_FILESYSTEMS =y
6CONFIG_FILE_LOCKING=y
7CONFIG_PROC_FS=y
diff --git a/recipes-kernel/linux/files/cfg/README b/recipes-kernel/linux/files/cfg/README
new file mode 100644
index 0000000..abfff1e
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/README
@@ -0,0 +1,9 @@
1In ordert to add a configuration fragment contained in a .cfg file,
2please follow these steps:
3
41. change to the directory that contains this README file.
52. copy your fragment file here and make sure your file has a .cfg extension
64. run the indexcfgs.pl utility from this directory to
7 index your file.
85. check for the new name and use it to further reference your renamed
9 cfg file.
diff --git a/recipes-kernel/linux/files/cfg/indexcfgs.pl b/recipes-kernel/linux/files/cfg/indexcfgs.pl
new file mode 100755
index 0000000..96cd78a
--- /dev/null
+++ b/recipes-kernel/linux/files/cfg/indexcfgs.pl
@@ -0,0 +1,167 @@
1#!/usr/bin/perl -w
2#----------------------------------------------------------------------
3# indexcfgs.pl - utility to rename files in the current directory to an
4# indexed format so that a unique index number is
5# prepended to the current file name. The naming
6# template is:
7#
8# DDDDD-<name-or-short-description.cfg>
9#
10# Usage: create the *.cfg file you need, with any name and .cfg
11# extension. Run this script and it will automatically
12# rename your file to the indexed format above.
13#
14# Author: Daniel BORNAZ <daniel.bornaz@enea.com
15# Date: 2014/04/09
16# Version: 1.0
17#
18#----------------------------------------------------------------------
19
20use strict;
21use warnings;
22use Getopt::Long;
23
24my %args;
25my $counter_indexed=0;
26my $filetype="*.cfg";
27my $counter_queue=0;
28my $max_index=0;
29my $dir="./";
30my @files;
31my @queue;
32my $opt_strip;
33my $opt_help;
34
35
36#--------------------------------------------------------------------
37# strip the index from the file name
38#
39sub removeindex($){
40 my $tmpname=shift;
41 my $newname;
42
43 if($tmpname=~/^\d{5}\-.*cfg/ig){
44 $newname=substr($tmpname,6);
45 system("mv",$tmpname,$newname) == 0
46 or die "Cannot rename $tmpname to $newname: $?";
47 }else{
48 return 0;
49 }
50}
51
52#--------------------------------------------------------------------
53# get the indexed file name, return the index
54#
55sub decodeindex($){
56 my $tmpname=shift;
57
58 if($tmpname=~/^\d{5}\-.*cfg/ig){
59 return substr($tmpname,0,5);
60 }else{
61 return 0;
62 }
63}
64
65#--------------------------------------------------------------------
66# remove index from cfg files in current directory
67#
68sub strip_file_names {
69 print "Start removing index from $filetype files in $dir\n";
70
71 opendir(DIR,$dir) or die $!;
72
73 while( my $file=readdir(DIR)){
74 # retrieve cfg files (*.cfg)
75 if($file=~/cfg$/gi){
76 removeindex($file);
77 }
78 }
79
80 closedir(DIR);
81}
82
83#--------------------------------------------------------------------
84# index current directory cfg files
85#
86sub index_file_names {
87 print "Start indexing $filetype files in $dir\n";
88
89 opendir(DIR,$dir) or die $!;
90
91 while( my $file=readdir(DIR)){
92 # retrieve cfg files (*.cfg)
93 if($file=~/cfg$/gi){
94 @files=(@files,$file);
95 }
96 }
97
98 closedir(DIR);
99
100
101# separate indexed file names from the ones to be processed
102 foreach my $file (@files){
103 if($file=~/^\d{5}\-.*cfg/){
104 my $crt_index=0;
105
106 $crt_index=decodeindex($file);
107
108 if($crt_index > $max_index){
109 $max_index=$crt_index;
110 }
111
112 $counter_indexed++;
113 }else{
114 @queue=($file,@queue);
115 $counter_queue++;
116 }
117 }
118
119# set the next index number
120 $max_index++;
121
122# index the enqueued file names
123 foreach my $file (@queue){
124 my $newname;
125
126 $newname=sprintf("%05d-%s",$max_index++,$file);
127 system("mv",$file,$newname) == 0
128 or die "Cannot rename $file to $newname: $?";
129 }
130
131 printf("$counter_queue files indexed, ".
132 "$counter_indexed files already indexed. Done.\n");
133}
134
135#--------------------------------------------------------------------
136# display usage help
137#
138sub print_usage {
139 print "\n";
140 print " ./indexcfgs.pl [--strip]\n";
141 print " no params: Index the *.cfg file names in current dir\n";
142 print " to DDDDD-<original_file_name.cfg>\n";
143 print " --strip: Strips the index from the *.cfg file names ".
144 "in current dir\n";
145 print "\n";
146
147 exit 0;
148}
149
150
151#--- Program starts here --------------------------------------------
152GetOptions(\%args,
153 "strip" => \$opt_strip,
154 "help" => \$opt_help,
155);
156
157if(defined($opt_help)){
158 print_usage();
159}
160
161if(defined($opt_strip)){
162 strip_file_names();
163}else{
164 index_file_names();
165}
166
167
diff --git a/recipes-kernel/linux/files/disable_hw_checksum_offload.patch b/recipes-kernel/linux/files/disable_hw_checksum_offload.patch
new file mode 100644
index 0000000..4b318c1
--- /dev/null
+++ b/recipes-kernel/linux/files/disable_hw_checksum_offload.patch
@@ -0,0 +1,19 @@
1Temporarily disable HW checksum offload
2
3Signed-off-by: Tudor Florea <tudor.florea@enea.com>
4Upstream-Status: Pending
5
6
7diff --git a/arch/arm/boot/dts/k2hk-evm.dts b/arch/arm/boot/dts/k2hk-evm.dts
8index 16cf335..7dc9665 100644
9--- a/arch/arm/boot/dts/k2hk-evm.dts
10+++ b/arch/arm/boot/dts/k2hk-evm.dts
11@@ -2521,7 +2521,7 @@
12 };
13 pa: pa@2000000 {
14 label = "keystone-pa";
15- checksum-offload = <1>; /* 1 - HW offload */
16+ checksum-offload = <2>;
17 txhook-order = <10>;
18 txhook-softcsum = <40>;
19 rxhook-order = <10>;
diff --git a/recipes-kernel/linux/files/fix_for_CVE-2013-2094.patch b/recipes-kernel/linux/files/fix_for_CVE-2013-2094.patch
new file mode 100644
index 0000000..1fbad06
--- /dev/null
+++ b/recipes-kernel/linux/files/fix_for_CVE-2013-2094.patch
@@ -0,0 +1,36 @@
1From 8176cced706b5e5d15887584150764894e94e02f Mon Sep 17 00:00:00 2001
2From: Tommi Rantala <tt.rantala@gmail.com>
3Date: Sat, 13 Apr 2013 19:49:14 +0000
4Subject: perf: Treat attr.config as u64 in perf_swevent_init()
5
6Trinity discovered that we fail to check all 64 bits of
7attr.config passed by user space, resulting to out-of-bounds
8access of the perf_swevent_enabled array in
9sw_perf_event_destroy().
10
11Introduced in commit b0a873ebb ("perf: Register PMU
12implementations").
13
14Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
15Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
16Cc: davej@redhat.com
17Cc: Paul Mackerras <paulus@samba.org>
18Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
19Link: http://lkml.kernel.org/r/1365882554-30259-1-git-send-email-tt.rantala@gmail.com
20Signed-off-by: Ingo Molnar <mingo@kernel.org>
21---
22diff --git a/kernel/events/core.c b/kernel/events/core.c
23index 7e0962e..4d3124b 100644
24--- a/kernel/events/core.c
25+++ b/kernel/events/core.c
26@@ -5331,7 +5331,7 @@ static void sw_perf_event_destroy(struct perf_event *event)
27
28 static int perf_swevent_init(struct perf_event *event)
29 {
30- int event_id = event->attr.config;
31+ u64 event_id = event->attr.config;
32
33 if (event->attr.type != PERF_TYPE_SOFTWARE)
34 return -ENOENT;
35--
36cgit v0.9.1
diff --git a/recipes-kernel/linux/files/merge_config.sh b/recipes-kernel/linux/files/merge_config.sh
new file mode 100755
index 0000000..33f18d4
--- /dev/null
+++ b/recipes-kernel/linux/files/merge_config.sh
@@ -0,0 +1,142 @@
1#!/bin/sh
2# merge_config.sh - Takes a list of config fragment values, and merges
3# them one by one. Provides warnings on overridden values, and specified
4# values that did not make it to the resulting .config file (due to missed
5# dependencies or config symbol removal).
6#
7# Portions reused from kconf_check and generate_cfg:
8# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/kconf_check
9# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/generate_cfg
10#
11# Copyright (c) 2009-2010 Wind River Systems, Inc.
12# Copyright 2011 Linaro
13#
14# This program is free software; you can redistribute it and/or modify
15# it under the terms of the GNU General Public License version 2 as
16# published by the Free Software Foundation.
17#
18# This program is distributed in the hope that it will be useful,
19# but WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21# See the GNU General Public License for more details.
22
23
24usage() {
25 echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
26echo " -h display this help text"
27echo " -m only merge the fragments, do not execute the make command"
28echo " -n use allnoconfig instead of alldefconfig"
29echo " -x use allmodconfig instead of alldefconfig"
30echo " -d debug. Don't cleanup temporary files"
31}
32
33MAKE_FLAG=true
34ALLTARGET=alldefconfig
35
36# There are two variables that impact where the .config will be dropped,
37# O= and KBUILD_OUTPUT=. So we'll respect those variables and use them as
38# an output directory as well. These two variables are not propagating
39# automatically to the kernel build, so always explicitly setting O=
40# and passing it to the kernel build ensures that it is respected.
41if [ -n "$KBUILD_OUTPUT" ]; then
42 O=$KBUILD_OUTPUT
43fi
44if [ -z "$O" ]; then
45 O=.
46fi
47
48while true; do
49 case $1 in
50 "-n")
51 ALLTARGET=allnoconfig
52 shift
53 continue
54 ;;
55 "-m")
56 MAKE_FLAG=false
57 shift
58 continue
59 ;;
60 "-d")
61 DEBUG=true
62 shift
63 continue
64 ;;
65 "-h")
66 usage
67 exit
68 ;;
69 *)
70 break
71 ;;
72 esac
73done
74
75clean_up() {
76 rm -f $TMP_FILE
77 exit
78}
79if [ -z "$DEBUG" ]; then
80 trap clean_up SIGHUP SIGINT SIGTERM
81fi
82
83
84MERGE_LIST=$*
85SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
86TMP_FILE=$(mktemp $O/.tmp.config.XXXXXXXXXX)
87
88# Merge files, printing warnings on overrided values
89for MERGE_FILE in $MERGE_LIST ; do
90 echo "Merging $MERGE_FILE"
91 CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
92
93 for CFG in $CFG_LIST ; do
94 grep -q -w $CFG $TMP_FILE
95 if [ $? -eq 0 ] ; then
96 PREV_VAL=$(grep -w $CFG $TMP_FILE)
97 NEW_VAL=$(grep -w $CFG $MERGE_FILE)
98 if [ "x$PREV_VAL" != "x$NEW_VAL" ] ; then
99 echo Value of $CFG is redefined by fragment $MERGE_FILE:
100 echo Previous value: $PREV_VAL
101 echo New value: $NEW_VAL
102 echo
103 fi
104 sed -i "/$CFG[ =]/d" $TMP_FILE
105 fi
106 done
107 cat $MERGE_FILE >> $TMP_FILE
108done
109
110if [ "$MAKE_FLAG" = "false" ]; then
111 cp $TMP_FILE $O/.config
112 echo "#"
113 echo "# merged configuration written to $O/.config (needs make)"
114 echo "#"
115 if [ -z "$DEBUG" ]; then
116 clean_up
117 fi
118 exit
119fi
120
121# Use the merged file as the starting point for:
122# alldefconfig: Fills in any missing symbols with Kconfig default
123# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
124make KCONFIG_ALLCONFIG=$TMP_FILE O=$O $ALLTARGET
125
126
127# Check all specified config values took (might have missed-dependency issues)
128for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
129
130 REQUESTED_VAL=$(sed -n "$SED_CONFIG_EXP" $TMP_FILE | grep -w -e "$CFG")
131 ACTUAL_VAL=$(sed -n "$SED_CONFIG_EXP" $O/.config | grep -w -e "$CFG")
132 if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
133 echo "Value requested for $CFG not in final .config"
134 echo "Requested value: $REQUESTED_VAL"
135 echo "Actual value: $ACTUAL_VAL"
136 echo ""
137 fi
138done
139
140if [ -z "$DEBUG" ]; then
141 clean_up
142fi
diff --git a/recipes-kernel/linux/files/powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch b/recipes-kernel/linux/files/powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch
new file mode 100644
index 0000000..5acf97a
--- /dev/null
+++ b/recipes-kernel/linux/files/powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch
@@ -0,0 +1,19 @@
1diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c
2index ae3d5b7..92cb18d 100644
3--- a/arch/powerpc/mm/tlb_nohash.c
4+++ b/arch/powerpc/mm/tlb_nohash.c
5@@ -596,8 +596,13 @@ static void __early_init_mmu(int boot_cpu)
6 /* XXX This should be decided at runtime based on supported
7 * page sizes in the TLB, but for now let's assume 16M is
8 * always there and a good fit (which it probably is)
9+ *
10+ * Freescale booke only supports 4K pages in TLB0, so use that.
11 */
12- mmu_vmemmap_psize = MMU_PAGE_16M;
13+ if (mmu_has_feature(MMU_FTR_TYPE_FSL_E))
14+ mmu_vmemmap_psize = MMU_PAGE_4K;
15+ else
16+ mmu_vmemmap_psize = MMU_PAGE_16M;
17
18 /* XXX This code only checks for TLB 0 capabilities and doesn't
19 * check what page size combos are supported by the HW. It
diff --git a/recipes-kernel/linux/files/pramfs-1.5.1-3.12.tar.gz b/recipes-kernel/linux/files/pramfs-1.5.1-3.12.tar.gz
new file mode 100644
index 0000000..2d1a065
--- /dev/null
+++ b/recipes-kernel/linux/files/pramfs-1.5.1-3.12.tar.gz
Binary files differ
diff --git a/recipes-kernel/linux/kernel-configure.inc b/recipes-kernel/linux/kernel-configure.inc
new file mode 100644
index 0000000..f3d0abe
--- /dev/null
+++ b/recipes-kernel/linux/kernel-configure.inc
@@ -0,0 +1,49 @@
1SRC_URI += " file://merge_config.sh "
2
3configure_kernel() {
4 # Add debug flavour config elements from fragments
5 # Listed in increasing priority order if conflicts are detected.
6 #
7
8 #
9 #combine features cfgs with defconfig
10 #
11 addon_features=""
12 if [ -n "${2}" ]; then
13 for feature in ${2}; do
14 addon_features="${addon_features} ${WORKDIR}/${feature}"
15 done
16 fi
17
18 # Some meta layers like meta-ti use defconfig file to point to a real
19 # default config file (use-kernel-config=config_filename) which is found
20 # under kernel path (${S}/arch/${archname}/configs/).
21 config=`cat ${1} | grep use-kernel-config | cut -d= -f2`
22 if [ "x${config}" != "x" ]
23 then
24 configfilepath=`find ${S}/arch/ -name ${config} -print | head -n 1`
25 if [ -f ${configfilepath} ]
26 then
27 cp ${configfilepath} ${1}
28 else
29 bbfatal "Specified config file:${config} was not found!"
30 fi
31 fi
32
33 if [ -e "${S}/scripts/kconfig/merge_config.sh" ]; then
34 O=${B} ${S}/scripts/kconfig/merge_config.sh -m ${1} ${addon_features}
35 else
36 O=${B} ${WORKDIR}/merge_config.sh -m ${1} ${addon_features}
37 fi
38
39 mv -f ${B}/.config ${B}/.mconfig
40
41 #
42 #in linux kernel 2.6.33, kconfig does not support alldefconfig yet.
43 #
44 if [ "x${PV}" = "x2.6.33" ]; then
45 oe_runmake KCONFIG_ALLCONFIG=${B}/.mconfig O=${B} allnoconfig
46 else
47 oe_runmake KCONFIG_ALLCONFIG=${B}/.mconfig O=${B} alldefconfig
48 fi
49}
diff --git a/recipes-kernel/linux/linux-boundary_3.10.17.bbappend b/recipes-kernel/linux/linux-boundary_3.10.17.bbappend
new file mode 100644
index 0000000..3e6b61d
--- /dev/null
+++ b/recipes-kernel/linux/linux-boundary_3.10.17.bbappend
@@ -0,0 +1,31 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI_append = "file://cfg/00014-kgdb.cfg \
4 file://cfg/00027-lttng.cfg \
5 file://cfg/00028-perf.cfg \
6 file://cfg/00025-powertop.cfg \
7 file://cfg/00004-systemtap.cfg \
8 file://cfg/00003-fuse.cfg \
9 file://cfg/00034-cpusets.cfg \
10 file://cfg/00030-latencytop.cfg \
11 file://cfg/00022-mtd_tests.cfg \
12 "
13#
14# The linux-boundary recipe doesn't implement a method to merge config fragments
15# to the kernel config file, so we need to implement it ourselves.
16#
17
18# returns all the elements from the src uri that are kernel config files
19def find_cfgs(d):
20 sources=src_patches(d, True)
21 sources_list=[]
22 for s in sources:
23 base, ext = os.path.splitext(os.path.basename(s))
24 if ext and ext in ".cfg":
25 sources_list.append(s)
26 return sources_list
27
28# apply kernel configs from the src uri
29kernel_do_configure_prepend() {
30 ${S}/scripts/kconfig/merge_config.sh -m ${S}/.config ${@" ".join(find_cfgs(d))}
31}
diff --git a/recipes-kernel/linux/linux-enea.inc b/recipes-kernel/linux/linux-enea.inc
new file mode 100644
index 0000000..1579940
--- /dev/null
+++ b/recipes-kernel/linux/linux-enea.inc
@@ -0,0 +1,8 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "\
4 file://cfg/00006-with_modules.cfg \
5 file://cfg/00027-lttng.cfg \
6 file://cfg/00016-largefilessupport.cfg \
7 file://cfg/00034-cpusets.cfg \
8 "
diff --git a/recipes-kernel/linux/linux-keystone_3.10.bbappend b/recipes-kernel/linux/linux-keystone_3.10.bbappend
new file mode 100644
index 0000000..23cd740
--- /dev/null
+++ b/recipes-kernel/linux/linux-keystone_3.10.bbappend
@@ -0,0 +1,50 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://disable_hw_checksum_offload.patch \
4 file://arm_arch_timer-Keystone-2-architected-timer-frequenc.patch \
5 file://Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch \
6 file://0001-net-fib-fib6_add-fix-potential-NULL-pointer-derefere.patch \
7 file://HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch \
8 file://HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch \
9 file://HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch \
10 file://HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch \
11 file://HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch \
12 file://HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch \
13 file://HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch \
14 file://HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch \
15 file://HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch \
16 file://HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch \
17 file://HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch \
18 file://HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch \
19 file://HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch \
20 file://cfg/00014-kgdb.cfg \
21 file://cfg/00027-lttng.cfg \
22 file://cfg/00028-perf.cfg \
23 file://cfg/00025-powertop.cfg \
24 file://cfg/00004-systemtap.cfg \
25 file://cfg/00003-fuse.cfg \
26 file://cfg/00017-preempt_keystone.cfg \
27 file://cfg/00034-cpusets.cfg \
28 file://cfg/00046-sata.cfg \
29 "
30
31KERNEL_FEATURES = " \
32 cfg/00014-kgdb.cfg \
33 cfg/00027-lttng.cfg \
34 cfg/00028-perf.cfg \
35 cfg/00025-powertop.cfg \
36 cfg/00004-systemtap.cfg \
37 cfg/00003-fuse.cfg \
38 cfg/00017-preempt_keystone.cfg \
39 cfg/00034-cpusets.cfg \
40 cfg/00046-sata.cfg \
41 "
42KERNEL_DEFCONFIG = "${WORKDIR}/defconfig"
43require kernel-configure.inc
44
45do_configure_prepend() {
46
47 configure_kernel ${KERNEL_DEFCONFIG} "${KERNEL_FEATURES}"
48
49}
50
diff --git a/recipes-kernel/linux/linux-proliant-m400.bb b/recipes-kernel/linux/linux-proliant-m400.bb
new file mode 100644
index 0000000..8bada19
--- /dev/null
+++ b/recipes-kernel/linux/linux-proliant-m400.bb
@@ -0,0 +1,97 @@
1SECTION = "kernel"
2DESCRIPTION = "Linux kernel for HP Moonshot m400"
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
5
6COMPATIBLE_MACHINE = "proliant-m400"
7
8inherit kernel siteinfo
9require recipes-kernel/linux/linux-dtb.inc
10
11MACHINE_KERNEL_PR_append = "b+gitr${SRCPV}"
12PR = "${MACHINE_KERNEL_PR}"
13
14KERNEL_DEVICETREE = "arch/${ARCH}/boot/dts/proliant-m400.dts"
15
16SRCREV = "485659fab442882158cb3a007215e89529b987a3"
17BRANCH = "Ubuntu-3.13.0-29.53"
18SRC_URI = "git://kernel.ubuntu.com/dannf/trusty-xgene.git;protocol=git \
19 file://hpconfig \
20 file://defconfig \
21 file://proliant-m400.dts \
22 file://cfg/00027-lttng.cfg \
23 file://cfg/00028-perf.cfg \
24 file://cfg/00025-powertop.cfg \
25 file://cfg/00004-systemtap.cfg \
26 "
27
28require kernel-configure.inc
29KERNEL_FEATURES = "\
30 cfg/00027-lttng.cfg \
31 cfg/00028-perf.cfg \
32 cfg/00025-powertop.cfg \
33 cfg/00004-systemtap.cfg \
34 "
35
36DEPENDS += "libgcc u-boot-mkimage-native"
37
38S = "${WORKDIR}/git"
39
40# KERNEL_LOCALVERSION can be set to add a tag to the end of the
41# kernel version string. such as the commit id
42KERNEL_LOCALVERSION ?= ""
43
44# Check the defconfig file and see if it points to an in kernel
45# defconfig that should be used, or if it is a complete config file
46
47addtask setup_defconfig before do_configure after do_patch
48do_setup_defconfig() {
49 cp ${WORKDIR}/proliant-m400.dts ${S}/arch/arm64/boot/dts/proliant-m400.dts
50
51 # Always copy the defconfig file to .config to keep consistency
52 # between the case where there is a real config and the in kernel
53 # tree config
54 cp ${WORKDIR}/hpconfig ${S}/arch/arm64/configs/hpconfig_defconfig
55 cp ${WORKDIR}/defconfig ${S}/.config
56
57 configure_kernel "${S}/.config" "${KERNEL_FEATURES}"
58}
59
60# define our own do_configure that will:
61# 1. Check the .config file and see if string use-kernel-config= is present
62# 2. If the use-kernel-config string is present parse out the config to use
63# and run make ${config}
64# 3. else run yes '' | oe_runmake oldconfig like the default do_configure
65# does
66do_configure() {
67 echo ${KERNEL_LOCALVERSION} > ${B}/.scmversion
68 echo ${KERNEL_LOCALVERSION} > ${S}/.scmversion
69 config=`cat ${S}/.config | grep use-kernel-config | cut -d= -f2`
70 if [ "x${config}" != "x" ]
71 then
72 oe_runmake ${config}
73 else
74 yes '' | oe_runmake oldconfig
75 fi
76}
77
78
79# Force uImage build, no support for doing it in do_compile in arm64 arch
80do_uboot_mkimage() {
81 local ENTRYPOINT=${UBOOT_ENTRYPOINT}
82 if test -n "${UBOOT_ENTRYSYMBOL}"; then
83 ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \
84 awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'`
85 fi
86 uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e ${ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d arch/${ARCH}/boot/Image arch/${ARCH}/boot/uImage
87}
88
89
90do_deploy_append() {
91 local readonly KERNEL_UIMAGE_BASE_NAME="uImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
92 local readonly KERNEL_UIMAGE_SYMLINK_NAME="uImage-${MACHINE}"
93
94 install -m 0644 arch/${ARCH}/boot/uImage ${DEPLOYDIR}/${KERNEL_UIMAGE_BASE_NAME}.bin
95 ln -sf ${KERNEL_UIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_UIMAGE_SYMLINK_NAME}.bin
96 ln -sf ${KERNEL_UIMAGE_BASE_NAME}.bin ${DEPLOYDIR}/uImage
97}
diff --git a/recipes-kernel/linux/linux-proliant-m400/defconfig b/recipes-kernel/linux/linux-proliant-m400/defconfig
new file mode 100644
index 0000000..5019084
--- /dev/null
+++ b/recipes-kernel/linux/linux-proliant-m400/defconfig
@@ -0,0 +1 @@
use-kernel-config=hpconfig_defconfig
diff --git a/recipes-kernel/linux/linux-proliant-m400/hpconfig b/recipes-kernel/linux/linux-proliant-m400/hpconfig
new file mode 100644
index 0000000..d12ddd9
--- /dev/null
+++ b/recipes-kernel/linux/linux-proliant-m400/hpconfig
@@ -0,0 +1,5548 @@
1#
2# Automatically generated file; DO NOT EDIT.
3# Linux/arm64 3.13.11.2 Kernel Configuration
4#
5CONFIG_ARM64=y
6CONFIG_64BIT=y
7CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
8CONFIG_MMU=y
9CONFIG_NO_IOPORT=y
10CONFIG_STACKTRACE_SUPPORT=y
11CONFIG_LOCKDEP_SUPPORT=y
12CONFIG_TRACE_IRQFLAGS_SUPPORT=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CSUM=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_ZONE_DMA32=y
18CONFIG_ARCH_DMA_ADDR_T_64BIT=y
19CONFIG_NEED_DMA_MAP_STATE=y
20CONFIG_NEED_SG_DMA_LENGTH=y
21CONFIG_SWIOTLB=y
22CONFIG_IOMMU_HELPER=y
23CONFIG_KERNEL_MODE_NEON=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25CONFIG_IRQ_WORK=y
26CONFIG_BUILDTIME_EXTABLE_SORT=y
27
28#
29# General setup
30#
31CONFIG_INIT_ENV_ARG_LIMIT=32
32CONFIG_CROSS_COMPILE=""
33# CONFIG_COMPILE_TEST is not set
34CONFIG_LOCALVERSION=""
35# CONFIG_LOCALVERSION_AUTO is not set
36CONFIG_DEFAULT_HOSTNAME="(none)"
37CONFIG_VERSION_SIGNATURE="Ubuntu 3.13.0-29.53-generic 3.13.11.2"
38CONFIG_SWAP=y
39CONFIG_SYSVIPC=y
40CONFIG_SYSVIPC_SYSCTL=y
41CONFIG_POSIX_MQUEUE=y
42CONFIG_POSIX_MQUEUE_SYSCTL=y
43CONFIG_FHANDLE=y
44CONFIG_AUDIT=y
45
46#
47# IRQ subsystem
48#
49CONFIG_GENERIC_IRQ_PROBE=y
50CONFIG_GENERIC_IRQ_SHOW=y
51CONFIG_HARDIRQS_SW_RESEND=y
52CONFIG_GENERIC_IRQ_CHIP=y
53CONFIG_IRQ_DOMAIN=y
54# CONFIG_IRQ_DOMAIN_DEBUG is not set
55CONFIG_SPARSE_IRQ=y
56CONFIG_GENERIC_TIME_VSYSCALL=y
57CONFIG_GENERIC_CLOCKEVENTS=y
58CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
59
60#
61# Timers subsystem
62#
63CONFIG_TICK_ONESHOT=y
64CONFIG_NO_HZ_COMMON=y
65# CONFIG_HZ_PERIODIC is not set
66CONFIG_NO_HZ_IDLE=y
67CONFIG_NO_HZ=y
68CONFIG_HIGH_RES_TIMERS=y
69
70#
71# CPU/Task time and stats accounting
72#
73CONFIG_TICK_CPU_ACCOUNTING=y
74CONFIG_BSD_PROCESS_ACCT=y
75CONFIG_BSD_PROCESS_ACCT_V3=y
76CONFIG_TASKSTATS=y
77CONFIG_TASK_DELAY_ACCT=y
78CONFIG_TASK_XACCT=y
79CONFIG_TASK_IO_ACCOUNTING=y
80
81#
82# RCU Subsystem
83#
84CONFIG_TREE_RCU=y
85# CONFIG_PREEMPT_RCU is not set
86CONFIG_RCU_STALL_COMMON=y
87CONFIG_RCU_FANOUT=64
88CONFIG_RCU_FANOUT_LEAF=16
89# CONFIG_RCU_FANOUT_EXACT is not set
90CONFIG_RCU_FAST_NO_HZ=y
91# CONFIG_TREE_RCU_TRACE is not set
92# CONFIG_RCU_NOCB_CPU is not set
93# CONFIG_IKCONFIG is not set
94CONFIG_LOG_BUF_SHIFT=14
95CONFIG_GENERIC_SCHED_CLOCK=y
96CONFIG_CGROUPS=y
97# CONFIG_CGROUP_DEBUG is not set
98CONFIG_CGROUP_FREEZER=y
99CONFIG_CGROUP_DEVICE=y
100CONFIG_CPUSETS=y
101CONFIG_PROC_PID_CPUSET=y
102CONFIG_CGROUP_CPUACCT=y
103CONFIG_RESOURCE_COUNTERS=y
104CONFIG_MEMCG=y
105CONFIG_MEMCG_SWAP=y
106# CONFIG_MEMCG_SWAP_ENABLED is not set
107CONFIG_MEMCG_KMEM=y
108CONFIG_CGROUP_HUGETLB=y
109CONFIG_CGROUP_PERF=y
110CONFIG_CGROUP_SCHED=y
111CONFIG_FAIR_GROUP_SCHED=y
112CONFIG_CFS_BANDWIDTH=y
113# CONFIG_RT_GROUP_SCHED is not set
114CONFIG_BLK_CGROUP=y
115# CONFIG_DEBUG_BLK_CGROUP is not set
116CONFIG_CHECKPOINT_RESTORE=y
117CONFIG_NAMESPACES=y
118CONFIG_UTS_NS=y
119CONFIG_IPC_NS=y
120CONFIG_USER_NS=y
121CONFIG_PID_NS=y
122CONFIG_NET_NS=y
123CONFIG_UIDGID_STRICT_TYPE_CHECKS=y
124CONFIG_SCHED_AUTOGROUP=y
125CONFIG_MM_OWNER=y
126# CONFIG_SYSFS_DEPRECATED is not set
127CONFIG_RELAY=y
128CONFIG_BLK_DEV_INITRD=y
129CONFIG_INITRAMFS_SOURCE=""
130CONFIG_RD_GZIP=y
131CONFIG_RD_BZIP2=y
132CONFIG_RD_LZMA=y
133CONFIG_RD_XZ=y
134CONFIG_RD_LZO=y
135CONFIG_RD_LZ4=y
136# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
137CONFIG_SYSCTL=y
138CONFIG_ANON_INODES=y
139CONFIG_HAVE_UID16=y
140CONFIG_SYSCTL_EXCEPTION_TRACE=y
141CONFIG_EXPERT=y
142CONFIG_UID16=y
143CONFIG_SYSCTL_SYSCALL=y
144CONFIG_KALLSYMS=y
145CONFIG_KALLSYMS_ALL=y
146CONFIG_PRINTK=y
147CONFIG_BUG=y
148CONFIG_ELF_CORE=y
149CONFIG_BASE_FULL=y
150CONFIG_FUTEX=y
151CONFIG_EPOLL=y
152CONFIG_SIGNALFD=y
153CONFIG_TIMERFD=y
154CONFIG_EVENTFD=y
155CONFIG_SHMEM=y
156CONFIG_AIO=y
157CONFIG_PCI_QUIRKS=y
158# CONFIG_EMBEDDED is not set
159CONFIG_HAVE_PERF_EVENTS=y
160CONFIG_PERF_USE_VMALLOC=y
161
162#
163# Kernel Performance Events And Counters
164#
165CONFIG_PERF_EVENTS=y
166# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
167CONFIG_VM_EVENT_COUNTERS=y
168CONFIG_SLUB_DEBUG=y
169# CONFIG_COMPAT_BRK is not set
170# CONFIG_SLAB is not set
171CONFIG_SLUB=y
172# CONFIG_SLOB is not set
173CONFIG_SLUB_CPU_PARTIAL=y
174CONFIG_PROFILING=y
175CONFIG_TRACEPOINTS=y
176CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
177CONFIG_HAVE_ARCH_TRACEHOOK=y
178CONFIG_HAVE_DMA_ATTRS=y
179CONFIG_GENERIC_SMP_IDLE_THREAD=y
180CONFIG_HAVE_CLK=y
181CONFIG_HAVE_DMA_API_DEBUG=y
182CONFIG_HAVE_HW_BREAKPOINT=y
183CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
184CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
185CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
186CONFIG_MODULES_USE_ELF_RELA=y
187CONFIG_CLONE_BACKWARDS=y
188CONFIG_OLD_SIGSUSPEND3=y
189CONFIG_COMPAT_OLD_SIGACTION=y
190
191#
192# GCOV-based kernel profiling
193#
194# CONFIG_GCOV_KERNEL is not set
195CONFIG_HAVE_GENERIC_DMA_COHERENT=y
196CONFIG_SLABINFO=y
197CONFIG_RT_MUTEXES=y
198CONFIG_BASE_SMALL=0
199CONFIG_SYSTEM_TRUSTED_KEYRING=y
200CONFIG_MODULES=y
201# CONFIG_MODULE_FORCE_LOAD is not set
202CONFIG_MODULE_UNLOAD=y
203# CONFIG_MODULE_FORCE_UNLOAD is not set
204CONFIG_MODVERSIONS=y
205CONFIG_MODULE_SRCVERSION_ALL=y
206CONFIG_MODULE_SIG=y
207# CONFIG_MODULE_SIG_FORCE is not set
208CONFIG_MODULE_SIG_ALL=y
209# CONFIG_MODULE_SIG_SHA1 is not set
210# CONFIG_MODULE_SIG_SHA224 is not set
211# CONFIG_MODULE_SIG_SHA256 is not set
212# CONFIG_MODULE_SIG_SHA384 is not set
213CONFIG_MODULE_SIG_SHA512=y
214CONFIG_MODULE_SIG_HASH="sha512"
215CONFIG_STOP_MACHINE=y
216CONFIG_BLOCK=y
217CONFIG_BLK_DEV_BSG=y
218CONFIG_BLK_DEV_BSGLIB=y
219CONFIG_BLK_DEV_INTEGRITY=y
220CONFIG_BLK_DEV_THROTTLING=y
221CONFIG_BLK_CMDLINE_PARSER=y
222
223#
224# Partition Types
225#
226CONFIG_PARTITION_ADVANCED=y
227CONFIG_ACORN_PARTITION=y
228# CONFIG_ACORN_PARTITION_CUMANA is not set
229# CONFIG_ACORN_PARTITION_EESOX is not set
230CONFIG_ACORN_PARTITION_ICS=y
231# CONFIG_ACORN_PARTITION_ADFS is not set
232# CONFIG_ACORN_PARTITION_POWERTEC is not set
233CONFIG_ACORN_PARTITION_RISCIX=y
234CONFIG_AIX_PARTITION=y
235CONFIG_OSF_PARTITION=y
236CONFIG_AMIGA_PARTITION=y
237CONFIG_ATARI_PARTITION=y
238CONFIG_MAC_PARTITION=y
239CONFIG_MSDOS_PARTITION=y
240CONFIG_BSD_DISKLABEL=y
241CONFIG_MINIX_SUBPARTITION=y
242CONFIG_SOLARIS_X86_PARTITION=y
243CONFIG_UNIXWARE_DISKLABEL=y
244CONFIG_LDM_PARTITION=y
245# CONFIG_LDM_DEBUG is not set
246CONFIG_SGI_PARTITION=y
247CONFIG_ULTRIX_PARTITION=y
248CONFIG_SUN_PARTITION=y
249CONFIG_KARMA_PARTITION=y
250CONFIG_EFI_PARTITION=y
251CONFIG_SYSV68_PARTITION=y
252CONFIG_CMDLINE_PARTITION=y
253CONFIG_BLOCK_COMPAT=y
254
255#
256# IO Schedulers
257#
258CONFIG_IOSCHED_NOOP=y
259CONFIG_IOSCHED_DEADLINE=y
260CONFIG_IOSCHED_CFQ=y
261CONFIG_CFQ_GROUP_IOSCHED=y
262CONFIG_DEFAULT_DEADLINE=y
263# CONFIG_DEFAULT_CFQ is not set
264# CONFIG_DEFAULT_NOOP is not set
265CONFIG_DEFAULT_IOSCHED="deadline"
266CONFIG_PREEMPT_NOTIFIERS=y
267CONFIG_PADATA=y
268CONFIG_ASN1=y
269CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
270CONFIG_INLINE_READ_UNLOCK=y
271CONFIG_INLINE_READ_UNLOCK_IRQ=y
272CONFIG_INLINE_WRITE_UNLOCK=y
273CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
274CONFIG_MUTEX_SPIN_ON_OWNER=y
275CONFIG_FREEZER=y
276
277#
278# Platform selection
279#
280CONFIG_ARCH_VEXPRESS=y
281CONFIG_ARCH_XGENE=y
282
283#
284# Bus support
285#
286CONFIG_ARM_AMBA=y
287CONFIG_PCI=y
288CONFIG_PCI_DOMAINS=y
289CONFIG_PCI_SYSCALL=y
290CONFIG_PCI_MSI=y
291# CONFIG_PCI_DEBUG is not set
292CONFIG_PCI_REALLOC_ENABLE_AUTO=y
293CONFIG_PCI_STUB=m
294CONFIG_PCI_ATS=y
295CONFIG_PCI_IOV=y
296CONFIG_PCI_PRI=y
297CONFIG_PCI_PASID=y
298
299#
300# PCI host controller drivers
301#
302CONFIG_PCI_XGENE_MSI=y
303CONFIG_PCI_XGENE=y
304CONFIG_PCIEPORTBUS=y
305CONFIG_PCIEAER=y
306# CONFIG_PCIE_ECRC is not set
307# CONFIG_PCIEAER_INJECT is not set
308CONFIG_PCIEASPM=y
309# CONFIG_PCIEASPM_DEBUG is not set
310CONFIG_PCIEASPM_DEFAULT=y
311# CONFIG_PCIEASPM_POWERSAVE is not set
312# CONFIG_PCIEASPM_PERFORMANCE is not set
313
314#
315# Kernel Features
316#
317# CONFIG_ARM64_64K_PAGES is not set
318# CONFIG_CPU_BIG_ENDIAN is not set
319CONFIG_SMP=y
320CONFIG_NR_CPUS=8
321CONFIG_HOTPLUG_CPU=y
322# CONFIG_PREEMPT_NONE is not set
323CONFIG_PREEMPT_VOLUNTARY=y
324# CONFIG_PREEMPT is not set
325CONFIG_HZ=100
326CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
327CONFIG_ARCH_SPARSEMEM_ENABLE=y
328CONFIG_ARCH_SPARSEMEM_DEFAULT=y
329CONFIG_ARCH_SELECT_MEMORY_MODEL=y
330CONFIG_HAVE_ARCH_PFN_VALID=y
331CONFIG_HW_PERF_EVENTS=y
332CONFIG_SYS_SUPPORTS_HUGETLBFS=y
333CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
334CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
335CONFIG_SELECT_MEMORY_MODEL=y
336CONFIG_SPARSEMEM_MANUAL=y
337CONFIG_SPARSEMEM=y
338CONFIG_HAVE_MEMORY_PRESENT=y
339CONFIG_SPARSEMEM_EXTREME=y
340CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
341CONFIG_SPARSEMEM_VMEMMAP=y
342CONFIG_HAVE_MEMBLOCK=y
343CONFIG_NO_BOOTMEM=y
344CONFIG_MEMORY_ISOLATION=y
345# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
346CONFIG_PAGEFLAGS_EXTENDED=y
347CONFIG_SPLIT_PTLOCK_CPUS=4
348CONFIG_BALLOON_COMPACTION=y
349CONFIG_COMPACTION=y
350CONFIG_MIGRATION=y
351CONFIG_PHYS_ADDR_T_64BIT=y
352CONFIG_ZONE_DMA_FLAG=0
353CONFIG_MMU_NOTIFIER=y
354# CONFIG_KSM is not set
355CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
356# CONFIG_TRANSPARENT_HUGEPAGE is not set
357CONFIG_CROSS_MEMORY_ATTACH=y
358CONFIG_CLEANCACHE=y
359CONFIG_FRONTSWAP=y
360CONFIG_CMA=y
361# CONFIG_CMA_DEBUG is not set
362CONFIG_ZBUD=y
363CONFIG_ZSWAP=y
364CONFIG_XEN_DOM0=y
365CONFIG_XEN=y
366CONFIG_FORCE_MAX_ZONEORDER=11
367
368#
369# Boot options
370#
371CONFIG_CMDLINE="console=ttyAMA0"
372# CONFIG_CMDLINE_FORCE is not set
373
374#
375# Userspace binary formats
376#
377CONFIG_BINFMT_ELF=y
378CONFIG_COMPAT_BINFMT_ELF=y
379CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
380CONFIG_BINFMT_SCRIPT=y
381# CONFIG_HAVE_AOUT is not set
382CONFIG_BINFMT_MISC=m
383CONFIG_COREDUMP=y
384CONFIG_COMPAT=y
385CONFIG_SYSVIPC_COMPAT=y
386CONFIG_NET=y
387CONFIG_COMPAT_NETLINK_MESSAGES=y
388
389#
390# Networking options
391#
392CONFIG_PACKET=y
393CONFIG_PACKET_DIAG=m
394CONFIG_UNIX=y
395CONFIG_UNIX_DIAG=m
396CONFIG_XFRM=y
397CONFIG_XFRM_ALGO=m
398CONFIG_XFRM_USER=m
399# CONFIG_XFRM_SUB_POLICY is not set
400# CONFIG_XFRM_MIGRATE is not set
401# CONFIG_XFRM_STATISTICS is not set
402CONFIG_XFRM_IPCOMP=m
403CONFIG_NET_KEY=m
404# CONFIG_NET_KEY_MIGRATE is not set
405CONFIG_INET=y
406CONFIG_IP_MULTICAST=y
407CONFIG_IP_ADVANCED_ROUTER=y
408CONFIG_IP_FIB_TRIE_STATS=y
409CONFIG_IP_MULTIPLE_TABLES=y
410CONFIG_IP_ROUTE_MULTIPATH=y
411CONFIG_IP_ROUTE_VERBOSE=y
412CONFIG_IP_ROUTE_CLASSID=y
413CONFIG_IP_PNP=y
414CONFIG_IP_PNP_DHCP=y
415CONFIG_IP_PNP_BOOTP=y
416CONFIG_IP_PNP_RARP=y
417CONFIG_NET_IPIP=m
418CONFIG_NET_IPGRE_DEMUX=m
419CONFIG_NET_IP_TUNNEL=m
420CONFIG_NET_IPGRE=m
421CONFIG_NET_IPGRE_BROADCAST=y
422CONFIG_IP_MROUTE=y
423# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
424CONFIG_IP_PIMSM_V1=y
425CONFIG_IP_PIMSM_V2=y
426CONFIG_SYN_COOKIES=y
427CONFIG_NET_IPVTI=m
428CONFIG_INET_AH=m
429CONFIG_INET_ESP=m
430CONFIG_INET_IPCOMP=m
431CONFIG_INET_XFRM_TUNNEL=m
432CONFIG_INET_TUNNEL=m
433CONFIG_INET_XFRM_MODE_TRANSPORT=m
434CONFIG_INET_XFRM_MODE_TUNNEL=m
435CONFIG_INET_XFRM_MODE_BEET=m
436CONFIG_INET_LRO=y
437CONFIG_INET_DIAG=m
438CONFIG_INET_TCP_DIAG=m
439CONFIG_INET_UDP_DIAG=m
440CONFIG_TCP_CONG_ADVANCED=y
441CONFIG_TCP_CONG_BIC=m
442CONFIG_TCP_CONG_CUBIC=y
443CONFIG_TCP_CONG_WESTWOOD=m
444CONFIG_TCP_CONG_HTCP=m
445CONFIG_TCP_CONG_HSTCP=m
446CONFIG_TCP_CONG_HYBLA=m
447CONFIG_TCP_CONG_VEGAS=m
448CONFIG_TCP_CONG_SCALABLE=m
449CONFIG_TCP_CONG_LP=m
450CONFIG_TCP_CONG_VENO=m
451CONFIG_TCP_CONG_YEAH=m
452CONFIG_TCP_CONG_ILLINOIS=m
453CONFIG_DEFAULT_CUBIC=y
454# CONFIG_DEFAULT_RENO is not set
455CONFIG_DEFAULT_TCP_CONG="cubic"
456CONFIG_TCP_MD5SIG=y
457CONFIG_IPV6=y
458CONFIG_IPV6_ROUTER_PREF=y
459CONFIG_IPV6_ROUTE_INFO=y
460# CONFIG_IPV6_OPTIMISTIC_DAD is not set
461CONFIG_INET6_AH=m
462CONFIG_INET6_ESP=m
463CONFIG_INET6_IPCOMP=m
464CONFIG_IPV6_MIP6=m
465CONFIG_INET6_XFRM_TUNNEL=m
466CONFIG_INET6_TUNNEL=m
467CONFIG_INET6_XFRM_MODE_TRANSPORT=m
468CONFIG_INET6_XFRM_MODE_TUNNEL=m
469CONFIG_INET6_XFRM_MODE_BEET=m
470CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
471CONFIG_IPV6_VTI=m
472CONFIG_IPV6_SIT=m
473CONFIG_IPV6_SIT_6RD=y
474CONFIG_IPV6_NDISC_NODETYPE=y
475CONFIG_IPV6_TUNNEL=m
476CONFIG_IPV6_GRE=m
477CONFIG_IPV6_MULTIPLE_TABLES=y
478CONFIG_IPV6_SUBTREES=y
479CONFIG_IPV6_MROUTE=y
480CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
481CONFIG_IPV6_PIMSM_V2=y
482CONFIG_NETLABEL=y
483CONFIG_NETWORK_SECMARK=y
484# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
485CONFIG_NETFILTER=y
486# CONFIG_NETFILTER_DEBUG is not set
487CONFIG_NETFILTER_ADVANCED=y
488CONFIG_BRIDGE_NETFILTER=y
489
490#
491# Core Netfilter Configuration
492#
493CONFIG_NETFILTER_NETLINK=m
494CONFIG_NETFILTER_NETLINK_ACCT=m
495CONFIG_NETFILTER_NETLINK_QUEUE=m
496CONFIG_NETFILTER_NETLINK_LOG=m
497CONFIG_NF_CONNTRACK=m
498CONFIG_NF_CONNTRACK_MARK=y
499CONFIG_NF_CONNTRACK_SECMARK=y
500CONFIG_NF_CONNTRACK_ZONES=y
501# CONFIG_NF_CONNTRACK_PROCFS is not set
502CONFIG_NF_CONNTRACK_EVENTS=y
503CONFIG_NF_CONNTRACK_TIMEOUT=y
504CONFIG_NF_CONNTRACK_TIMESTAMP=y
505CONFIG_NF_CONNTRACK_LABELS=y
506CONFIG_NF_CT_PROTO_DCCP=m
507CONFIG_NF_CT_PROTO_GRE=m
508CONFIG_NF_CT_PROTO_SCTP=m
509CONFIG_NF_CT_PROTO_UDPLITE=m
510CONFIG_NF_CONNTRACK_AMANDA=m
511CONFIG_NF_CONNTRACK_FTP=m
512CONFIG_NF_CONNTRACK_H323=m
513CONFIG_NF_CONNTRACK_IRC=m
514CONFIG_NF_CONNTRACK_BROADCAST=m
515CONFIG_NF_CONNTRACK_NETBIOS_NS=m
516CONFIG_NF_CONNTRACK_SNMP=m
517CONFIG_NF_CONNTRACK_PPTP=m
518CONFIG_NF_CONNTRACK_SANE=m
519CONFIG_NF_CONNTRACK_SIP=m
520CONFIG_NF_CONNTRACK_TFTP=m
521CONFIG_NF_CT_NETLINK=m
522CONFIG_NF_CT_NETLINK_TIMEOUT=m
523CONFIG_NF_CT_NETLINK_HELPER=m
524CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
525CONFIG_NF_NAT=m
526CONFIG_NF_NAT_NEEDED=y
527CONFIG_NF_NAT_PROTO_DCCP=m
528CONFIG_NF_NAT_PROTO_UDPLITE=m
529CONFIG_NF_NAT_PROTO_SCTP=m
530CONFIG_NF_NAT_AMANDA=m
531CONFIG_NF_NAT_FTP=m
532CONFIG_NF_NAT_IRC=m
533CONFIG_NF_NAT_SIP=m
534CONFIG_NF_NAT_TFTP=m
535CONFIG_NETFILTER_SYNPROXY=m
536CONFIG_NF_TABLES=m
537CONFIG_NFT_EXTHDR=m
538CONFIG_NFT_META=m
539CONFIG_NFT_CT=m
540CONFIG_NFT_RBTREE=m
541CONFIG_NFT_HASH=m
542CONFIG_NFT_COUNTER=m
543CONFIG_NFT_LOG=m
544CONFIG_NFT_LIMIT=m
545CONFIG_NFT_NAT=m
546CONFIG_NFT_COMPAT=m
547CONFIG_NETFILTER_XTABLES=m
548
549#
550# Xtables combined modules
551#
552CONFIG_NETFILTER_XT_MARK=m
553CONFIG_NETFILTER_XT_CONNMARK=m
554CONFIG_NETFILTER_XT_SET=m
555
556#
557# Xtables targets
558#
559CONFIG_NETFILTER_XT_TARGET_AUDIT=m
560CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
561CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
562CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
563CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
564CONFIG_NETFILTER_XT_TARGET_CT=m
565CONFIG_NETFILTER_XT_TARGET_DSCP=m
566CONFIG_NETFILTER_XT_TARGET_HL=m
567CONFIG_NETFILTER_XT_TARGET_HMARK=m
568CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
569CONFIG_NETFILTER_XT_TARGET_LED=m
570CONFIG_NETFILTER_XT_TARGET_LOG=m
571CONFIG_NETFILTER_XT_TARGET_MARK=m
572CONFIG_NETFILTER_XT_TARGET_NETMAP=m
573CONFIG_NETFILTER_XT_TARGET_NFLOG=m
574CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
575CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
576CONFIG_NETFILTER_XT_TARGET_RATEEST=m
577CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
578CONFIG_NETFILTER_XT_TARGET_TEE=m
579CONFIG_NETFILTER_XT_TARGET_TPROXY=m
580CONFIG_NETFILTER_XT_TARGET_TRACE=m
581CONFIG_NETFILTER_XT_TARGET_SECMARK=m
582CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
583CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
584
585#
586# Xtables matches
587#
588CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
589CONFIG_NETFILTER_XT_MATCH_BPF=m
590CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
591CONFIG_NETFILTER_XT_MATCH_COMMENT=m
592CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
593CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
594CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
595CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
596CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
597CONFIG_NETFILTER_XT_MATCH_CPU=m
598CONFIG_NETFILTER_XT_MATCH_DCCP=m
599CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
600CONFIG_NETFILTER_XT_MATCH_DSCP=m
601CONFIG_NETFILTER_XT_MATCH_ECN=m
602CONFIG_NETFILTER_XT_MATCH_ESP=m
603CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
604CONFIG_NETFILTER_XT_MATCH_HELPER=m
605CONFIG_NETFILTER_XT_MATCH_HL=m
606CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
607CONFIG_NETFILTER_XT_MATCH_IPVS=m
608CONFIG_NETFILTER_XT_MATCH_LENGTH=m
609CONFIG_NETFILTER_XT_MATCH_LIMIT=m
610CONFIG_NETFILTER_XT_MATCH_MAC=m
611CONFIG_NETFILTER_XT_MATCH_MARK=m
612CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
613CONFIG_NETFILTER_XT_MATCH_NFACCT=m
614CONFIG_NETFILTER_XT_MATCH_OSF=m
615CONFIG_NETFILTER_XT_MATCH_OWNER=m
616CONFIG_NETFILTER_XT_MATCH_POLICY=m
617CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
618CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
619CONFIG_NETFILTER_XT_MATCH_QUOTA=m
620CONFIG_NETFILTER_XT_MATCH_RATEEST=m
621CONFIG_NETFILTER_XT_MATCH_REALM=m
622CONFIG_NETFILTER_XT_MATCH_RECENT=m
623CONFIG_NETFILTER_XT_MATCH_SCTP=m
624CONFIG_NETFILTER_XT_MATCH_SOCKET=m
625CONFIG_NETFILTER_XT_MATCH_STATE=m
626CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
627CONFIG_NETFILTER_XT_MATCH_STRING=m
628CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
629CONFIG_NETFILTER_XT_MATCH_TIME=m
630CONFIG_NETFILTER_XT_MATCH_U32=m
631CONFIG_IP_SET=m
632CONFIG_IP_SET_MAX=256
633CONFIG_IP_SET_BITMAP_IP=m
634CONFIG_IP_SET_BITMAP_IPMAC=m
635CONFIG_IP_SET_BITMAP_PORT=m
636CONFIG_IP_SET_HASH_IP=m
637CONFIG_IP_SET_HASH_IPPORT=m
638CONFIG_IP_SET_HASH_IPPORTIP=m
639CONFIG_IP_SET_HASH_IPPORTNET=m
640CONFIG_IP_SET_HASH_NETPORTNET=m
641CONFIG_IP_SET_HASH_NET=m
642CONFIG_IP_SET_HASH_NETNET=m
643CONFIG_IP_SET_HASH_NETPORT=m
644CONFIG_IP_SET_HASH_NETIFACE=m
645CONFIG_IP_SET_LIST_SET=m
646CONFIG_IP_VS=m
647# CONFIG_IP_VS_IPV6 is not set
648# CONFIG_IP_VS_DEBUG is not set
649CONFIG_IP_VS_TAB_BITS=12
650
651#
652# IPVS transport protocol load balancing support
653#
654CONFIG_IP_VS_PROTO_TCP=y
655CONFIG_IP_VS_PROTO_UDP=y
656CONFIG_IP_VS_PROTO_AH_ESP=y
657CONFIG_IP_VS_PROTO_ESP=y
658CONFIG_IP_VS_PROTO_AH=y
659CONFIG_IP_VS_PROTO_SCTP=y
660
661#
662# IPVS scheduler
663#
664CONFIG_IP_VS_RR=m
665CONFIG_IP_VS_WRR=m
666CONFIG_IP_VS_LC=m
667CONFIG_IP_VS_WLC=m
668CONFIG_IP_VS_LBLC=m
669CONFIG_IP_VS_LBLCR=m
670CONFIG_IP_VS_DH=m
671CONFIG_IP_VS_SH=m
672CONFIG_IP_VS_SED=m
673CONFIG_IP_VS_NQ=m
674
675#
676# IPVS SH scheduler
677#
678CONFIG_IP_VS_SH_TAB_BITS=8
679
680#
681# IPVS application helper
682#
683CONFIG_IP_VS_FTP=m
684CONFIG_IP_VS_NFCT=y
685CONFIG_IP_VS_PE_SIP=m
686
687#
688# IP: Netfilter Configuration
689#
690CONFIG_NF_DEFRAG_IPV4=m
691CONFIG_NF_CONNTRACK_IPV4=m
692CONFIG_NF_TABLES_IPV4=m
693CONFIG_NFT_REJECT_IPV4=m
694CONFIG_NFT_CHAIN_ROUTE_IPV4=m
695CONFIG_NFT_CHAIN_NAT_IPV4=m
696CONFIG_NF_TABLES_ARP=m
697CONFIG_IP_NF_IPTABLES=m
698CONFIG_IP_NF_MATCH_AH=m
699CONFIG_IP_NF_MATCH_ECN=m
700CONFIG_IP_NF_MATCH_RPFILTER=m
701CONFIG_IP_NF_MATCH_TTL=m
702CONFIG_IP_NF_FILTER=m
703CONFIG_IP_NF_TARGET_REJECT=m
704CONFIG_IP_NF_TARGET_SYNPROXY=m
705CONFIG_IP_NF_TARGET_ULOG=m
706CONFIG_NF_NAT_IPV4=m
707CONFIG_IP_NF_TARGET_MASQUERADE=m
708CONFIG_IP_NF_TARGET_NETMAP=m
709CONFIG_IP_NF_TARGET_REDIRECT=m
710CONFIG_NF_NAT_SNMP_BASIC=m
711CONFIG_NF_NAT_PROTO_GRE=m
712CONFIG_NF_NAT_PPTP=m
713CONFIG_NF_NAT_H323=m
714CONFIG_IP_NF_MANGLE=m
715CONFIG_IP_NF_TARGET_CLUSTERIP=m
716CONFIG_IP_NF_TARGET_ECN=m
717CONFIG_IP_NF_TARGET_TTL=m
718CONFIG_IP_NF_RAW=m
719CONFIG_IP_NF_SECURITY=m
720CONFIG_IP_NF_ARPTABLES=m
721CONFIG_IP_NF_ARPFILTER=m
722CONFIG_IP_NF_ARP_MANGLE=m
723
724#
725# IPv6: Netfilter Configuration
726#
727CONFIG_NF_DEFRAG_IPV6=m
728CONFIG_NF_CONNTRACK_IPV6=m
729CONFIG_NF_TABLES_IPV6=m
730CONFIG_NFT_CHAIN_ROUTE_IPV6=m
731CONFIG_NFT_CHAIN_NAT_IPV6=m
732CONFIG_IP6_NF_IPTABLES=m
733CONFIG_IP6_NF_MATCH_AH=m
734CONFIG_IP6_NF_MATCH_EUI64=m
735CONFIG_IP6_NF_MATCH_FRAG=m
736CONFIG_IP6_NF_MATCH_OPTS=m
737CONFIG_IP6_NF_MATCH_HL=m
738CONFIG_IP6_NF_MATCH_IPV6HEADER=m
739CONFIG_IP6_NF_MATCH_MH=m
740CONFIG_IP6_NF_MATCH_RPFILTER=m
741CONFIG_IP6_NF_MATCH_RT=m
742CONFIG_IP6_NF_TARGET_HL=m
743CONFIG_IP6_NF_FILTER=m
744CONFIG_IP6_NF_TARGET_REJECT=m
745CONFIG_IP6_NF_TARGET_SYNPROXY=m
746CONFIG_IP6_NF_MANGLE=m
747CONFIG_IP6_NF_RAW=m
748CONFIG_IP6_NF_SECURITY=m
749CONFIG_NF_NAT_IPV6=m
750CONFIG_IP6_NF_TARGET_MASQUERADE=m
751CONFIG_IP6_NF_TARGET_NPT=m
752
753#
754# DECnet: Netfilter Configuration
755#
756CONFIG_DECNET_NF_GRABULATOR=m
757CONFIG_NF_TABLES_BRIDGE=m
758CONFIG_BRIDGE_NF_EBTABLES=m
759CONFIG_BRIDGE_EBT_BROUTE=m
760CONFIG_BRIDGE_EBT_T_FILTER=m
761CONFIG_BRIDGE_EBT_T_NAT=m
762CONFIG_BRIDGE_EBT_802_3=m
763CONFIG_BRIDGE_EBT_AMONG=m
764CONFIG_BRIDGE_EBT_ARP=m
765CONFIG_BRIDGE_EBT_IP=m
766CONFIG_BRIDGE_EBT_IP6=m
767CONFIG_BRIDGE_EBT_LIMIT=m
768CONFIG_BRIDGE_EBT_MARK=m
769CONFIG_BRIDGE_EBT_PKTTYPE=m
770CONFIG_BRIDGE_EBT_STP=m
771CONFIG_BRIDGE_EBT_VLAN=m
772CONFIG_BRIDGE_EBT_ARPREPLY=m
773CONFIG_BRIDGE_EBT_DNAT=m
774CONFIG_BRIDGE_EBT_MARK_T=m
775CONFIG_BRIDGE_EBT_REDIRECT=m
776CONFIG_BRIDGE_EBT_SNAT=m
777CONFIG_BRIDGE_EBT_LOG=m
778# CONFIG_BRIDGE_EBT_ULOG is not set
779CONFIG_BRIDGE_EBT_NFLOG=m
780CONFIG_IP_DCCP=m
781CONFIG_INET_DCCP_DIAG=m
782
783#
784# DCCP CCIDs Configuration
785#
786# CONFIG_IP_DCCP_CCID2_DEBUG is not set
787# CONFIG_IP_DCCP_CCID3 is not set
788
789#
790# DCCP Kernel Hacking
791#
792# CONFIG_IP_DCCP_DEBUG is not set
793CONFIG_IP_SCTP=m
794# CONFIG_SCTP_DBG_OBJCNT is not set
795# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
796CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
797# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
798CONFIG_SCTP_COOKIE_HMAC_MD5=y
799CONFIG_SCTP_COOKIE_HMAC_SHA1=y
800CONFIG_RDS=m
801CONFIG_RDS_RDMA=m
802CONFIG_RDS_TCP=m
803# CONFIG_RDS_DEBUG is not set
804CONFIG_TIPC=m
805CONFIG_TIPC_PORTS=8191
806CONFIG_TIPC_MEDIA_IB=y
807CONFIG_ATM=m
808CONFIG_ATM_CLIP=m
809# CONFIG_ATM_CLIP_NO_ICMP is not set
810CONFIG_ATM_LANE=m
811CONFIG_ATM_MPOA=m
812CONFIG_ATM_BR2684=m
813# CONFIG_ATM_BR2684_IPFILTER is not set
814CONFIG_L2TP=m
815CONFIG_L2TP_DEBUGFS=m
816CONFIG_L2TP_V3=y
817CONFIG_L2TP_IP=m
818CONFIG_L2TP_ETH=m
819CONFIG_STP=m
820CONFIG_GARP=m
821CONFIG_MRP=m
822CONFIG_BRIDGE=m
823CONFIG_BRIDGE_IGMP_SNOOPING=y
824CONFIG_BRIDGE_VLAN_FILTERING=y
825CONFIG_HAVE_NET_DSA=y
826CONFIG_NET_DSA=m
827CONFIG_NET_DSA_TAG_DSA=y
828CONFIG_NET_DSA_TAG_EDSA=y
829CONFIG_NET_DSA_TAG_TRAILER=y
830CONFIG_VLAN_8021Q=m
831CONFIG_VLAN_8021Q_GVRP=y
832CONFIG_VLAN_8021Q_MVRP=y
833CONFIG_DECNET=m
834# CONFIG_DECNET_ROUTER is not set
835CONFIG_LLC=m
836CONFIG_LLC2=m
837CONFIG_IPX=m
838# CONFIG_IPX_INTERN is not set
839CONFIG_ATALK=m
840CONFIG_DEV_APPLETALK=m
841CONFIG_IPDDP=m
842CONFIG_IPDDP_ENCAP=y
843CONFIG_X25=m
844CONFIG_LAPB=m
845CONFIG_PHONET=m
846CONFIG_IEEE802154=m
847CONFIG_IEEE802154_6LOWPAN=m
848CONFIG_MAC802154=m
849CONFIG_NET_SCHED=y
850
851#
852# Queueing/Scheduling
853#
854CONFIG_NET_SCH_CBQ=m
855CONFIG_NET_SCH_HTB=m
856CONFIG_NET_SCH_HFSC=m
857CONFIG_NET_SCH_ATM=m
858CONFIG_NET_SCH_PRIO=m
859CONFIG_NET_SCH_MULTIQ=m
860CONFIG_NET_SCH_RED=m
861CONFIG_NET_SCH_SFB=m
862CONFIG_NET_SCH_SFQ=m
863CONFIG_NET_SCH_TEQL=m
864CONFIG_NET_SCH_TBF=m
865CONFIG_NET_SCH_GRED=m
866CONFIG_NET_SCH_DSMARK=m
867CONFIG_NET_SCH_NETEM=m
868CONFIG_NET_SCH_DRR=m
869CONFIG_NET_SCH_MQPRIO=m
870CONFIG_NET_SCH_CHOKE=m
871CONFIG_NET_SCH_QFQ=m
872CONFIG_NET_SCH_CODEL=m
873CONFIG_NET_SCH_FQ_CODEL=m
874CONFIG_NET_SCH_FQ=m
875CONFIG_NET_SCH_INGRESS=m
876CONFIG_NET_SCH_PLUG=m
877
878#
879# Classification
880#
881CONFIG_NET_CLS=y
882CONFIG_NET_CLS_BASIC=m
883CONFIG_NET_CLS_TCINDEX=m
884CONFIG_NET_CLS_ROUTE4=m
885CONFIG_NET_CLS_FW=m
886CONFIG_NET_CLS_U32=m
887# CONFIG_CLS_U32_PERF is not set
888CONFIG_CLS_U32_MARK=y
889CONFIG_NET_CLS_RSVP=m
890CONFIG_NET_CLS_RSVP6=m
891CONFIG_NET_CLS_FLOW=m
892CONFIG_NET_CLS_CGROUP=m
893CONFIG_NET_CLS_BPF=m
894CONFIG_NET_EMATCH=y
895CONFIG_NET_EMATCH_STACK=32
896CONFIG_NET_EMATCH_CMP=m
897CONFIG_NET_EMATCH_NBYTE=m
898CONFIG_NET_EMATCH_U32=m
899CONFIG_NET_EMATCH_META=m
900CONFIG_NET_EMATCH_TEXT=m
901CONFIG_NET_EMATCH_CANID=m
902CONFIG_NET_EMATCH_IPSET=m
903CONFIG_NET_CLS_ACT=y
904CONFIG_NET_ACT_POLICE=m
905CONFIG_NET_ACT_GACT=m
906CONFIG_GACT_PROB=y
907CONFIG_NET_ACT_MIRRED=m
908CONFIG_NET_ACT_IPT=m
909CONFIG_NET_ACT_NAT=m
910CONFIG_NET_ACT_PEDIT=m
911CONFIG_NET_ACT_SIMP=m
912CONFIG_NET_ACT_SKBEDIT=m
913CONFIG_NET_ACT_CSUM=m
914# CONFIG_NET_CLS_IND is not set
915CONFIG_NET_SCH_FIFO=y
916CONFIG_DCB=y
917CONFIG_DNS_RESOLVER=y
918CONFIG_BATMAN_ADV=m
919CONFIG_BATMAN_ADV_BLA=y
920CONFIG_BATMAN_ADV_DAT=y
921CONFIG_BATMAN_ADV_NC=y
922# CONFIG_BATMAN_ADV_DEBUG is not set
923CONFIG_OPENVSWITCH=m
924CONFIG_OPENVSWITCH_GRE=y
925CONFIG_OPENVSWITCH_VXLAN=y
926CONFIG_VSOCKETS=m
927CONFIG_NETLINK_MMAP=y
928CONFIG_NETLINK_DIAG=m
929CONFIG_NET_MPLS_GSO=m
930CONFIG_HSR=m
931CONFIG_RPS=y
932CONFIG_RFS_ACCEL=y
933CONFIG_XPS=y
934CONFIG_NETPRIO_CGROUP=m
935CONFIG_NET_RX_BUSY_POLL=y
936CONFIG_BQL=y
937CONFIG_NET_FLOW_LIMIT=y
938
939#
940# Network testing
941#
942CONFIG_NET_PKTGEN=m
943# CONFIG_NET_DROP_MONITOR is not set
944CONFIG_HAMRADIO=y
945
946#
947# Packet Radio protocols
948#
949CONFIG_AX25=m
950CONFIG_AX25_DAMA_SLAVE=y
951CONFIG_NETROM=m
952CONFIG_ROSE=m
953
954#
955# AX.25 network device drivers
956#
957CONFIG_MKISS=m
958CONFIG_6PACK=m
959CONFIG_BPQETHER=m
960CONFIG_BAYCOM_SER_FDX=m
961CONFIG_BAYCOM_SER_HDX=m
962CONFIG_BAYCOM_PAR=m
963CONFIG_YAM=m
964CONFIG_CAN=m
965CONFIG_CAN_RAW=m
966CONFIG_CAN_BCM=m
967CONFIG_CAN_GW=m
968
969#
970# CAN Device Drivers
971#
972CONFIG_CAN_VCAN=m
973CONFIG_CAN_SLCAN=m
974CONFIG_CAN_DEV=m
975CONFIG_CAN_CALC_BITTIMING=y
976CONFIG_CAN_LEDS=y
977CONFIG_CAN_MCP251X=m
978CONFIG_CAN_JANZ_ICAN3=m
979CONFIG_PCH_CAN=m
980CONFIG_CAN_GRCAN=m
981CONFIG_CAN_SJA1000=m
982CONFIG_CAN_SJA1000_ISA=m
983CONFIG_CAN_SJA1000_PLATFORM=m
984CONFIG_CAN_SJA1000_OF_PLATFORM=m
985CONFIG_CAN_EMS_PCI=m
986CONFIG_CAN_PEAK_PCI=m
987CONFIG_CAN_PEAK_PCIEC=y
988CONFIG_CAN_KVASER_PCI=m
989CONFIG_CAN_PLX_PCI=m
990CONFIG_CAN_C_CAN=m
991CONFIG_CAN_C_CAN_PLATFORM=m
992CONFIG_CAN_C_CAN_PCI=m
993CONFIG_CAN_CC770=m
994CONFIG_CAN_CC770_ISA=m
995CONFIG_CAN_CC770_PLATFORM=m
996CONFIG_CAN_SOFTING=m
997# CONFIG_CAN_DEBUG_DEVICES is not set
998CONFIG_IRDA=m
999
1000#
1001# IrDA protocols
1002#
1003CONFIG_IRLAN=m
1004CONFIG_IRNET=m
1005CONFIG_IRCOMM=m
1006CONFIG_IRDA_ULTRA=y
1007
1008#
1009# IrDA options
1010#
1011CONFIG_IRDA_CACHE_LAST_LSAP=y
1012CONFIG_IRDA_FAST_RR=y
1013# CONFIG_IRDA_DEBUG is not set
1014
1015#
1016# Infrared-port device drivers
1017#
1018
1019#
1020# SIR device drivers
1021#
1022CONFIG_IRTTY_SIR=m
1023
1024#
1025# Dongle support
1026#
1027CONFIG_DONGLE=y
1028CONFIG_ESI_DONGLE=m
1029CONFIG_ACTISYS_DONGLE=m
1030CONFIG_TEKRAM_DONGLE=m
1031CONFIG_TOIM3232_DONGLE=m
1032CONFIG_LITELINK_DONGLE=m
1033CONFIG_MA600_DONGLE=m
1034CONFIG_GIRBIL_DONGLE=m
1035CONFIG_MCP2120_DONGLE=m
1036CONFIG_OLD_BELKIN_DONGLE=m
1037CONFIG_ACT200L_DONGLE=m
1038
1039#
1040# FIR device drivers
1041#
1042CONFIG_VLSI_FIR=m
1043CONFIG_BT=m
1044CONFIG_BT_RFCOMM=m
1045CONFIG_BT_RFCOMM_TTY=y
1046CONFIG_BT_BNEP=m
1047CONFIG_BT_BNEP_MC_FILTER=y
1048CONFIG_BT_BNEP_PROTO_FILTER=y
1049CONFIG_BT_CMTP=m
1050CONFIG_BT_HIDP=m
1051
1052#
1053# Bluetooth device drivers
1054#
1055CONFIG_BT_HCIBTSDIO=m
1056CONFIG_BT_HCIUART=m
1057CONFIG_BT_HCIUART_H4=y
1058CONFIG_BT_HCIUART_BCSP=y
1059CONFIG_BT_HCIUART_ATH3K=y
1060CONFIG_BT_HCIUART_LL=y
1061CONFIG_BT_HCIUART_3WIRE=y
1062CONFIG_BT_HCIVHCI=m
1063CONFIG_BT_MRVL=m
1064CONFIG_BT_MRVL_SDIO=m
1065CONFIG_BT_WILINK=m
1066CONFIG_AF_RXRPC=m
1067# CONFIG_AF_RXRPC_DEBUG is not set
1068CONFIG_RXKAD=m
1069CONFIG_FIB_RULES=y
1070CONFIG_WIRELESS=y
1071CONFIG_WIRELESS_EXT=y
1072CONFIG_WEXT_CORE=y
1073CONFIG_WEXT_PROC=y
1074CONFIG_WEXT_SPY=y
1075CONFIG_WEXT_PRIV=y
1076CONFIG_CFG80211=m
1077# CONFIG_NL80211_TESTMODE is not set
1078# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
1079# CONFIG_CFG80211_REG_DEBUG is not set
1080# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
1081CONFIG_CFG80211_DEFAULT_PS=y
1082CONFIG_CFG80211_DEBUGFS=y
1083# CONFIG_CFG80211_INTERNAL_REGDB is not set
1084CONFIG_CFG80211_WEXT=y
1085CONFIG_LIB80211=m
1086CONFIG_LIB80211_CRYPT_WEP=m
1087CONFIG_LIB80211_CRYPT_CCMP=m
1088CONFIG_LIB80211_CRYPT_TKIP=m
1089# CONFIG_LIB80211_DEBUG is not set
1090CONFIG_MAC80211=m
1091CONFIG_MAC80211_HAS_RC=y
1092CONFIG_MAC80211_RC_PID=y
1093CONFIG_MAC80211_RC_MINSTREL=y
1094CONFIG_MAC80211_RC_MINSTREL_HT=y
1095# CONFIG_MAC80211_RC_DEFAULT_PID is not set
1096CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
1097CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
1098CONFIG_MAC80211_MESH=y
1099CONFIG_MAC80211_LEDS=y
1100CONFIG_MAC80211_DEBUGFS=y
1101CONFIG_MAC80211_MESSAGE_TRACING=y
1102# CONFIG_MAC80211_DEBUG_MENU is not set
1103CONFIG_WIMAX=m
1104CONFIG_WIMAX_DEBUG_LEVEL=8
1105CONFIG_RFKILL=y
1106CONFIG_RFKILL_LEDS=y
1107CONFIG_RFKILL_INPUT=y
1108CONFIG_RFKILL_REGULATOR=m
1109CONFIG_RFKILL_GPIO=m
1110CONFIG_NET_9P=m
1111CONFIG_NET_9P_VIRTIO=m
1112CONFIG_NET_9P_RDMA=m
1113# CONFIG_NET_9P_DEBUG is not set
1114CONFIG_CAIF=m
1115# CONFIG_CAIF_DEBUG is not set
1116CONFIG_CAIF_NETDEV=m
1117CONFIG_CAIF_USB=m
1118CONFIG_CEPH_LIB=m
1119# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
1120CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
1121CONFIG_NFC=m
1122CONFIG_NFC_DIGITAL=m
1123CONFIG_NFC_NCI=m
1124CONFIG_NFC_NCI_SPI=y
1125CONFIG_NFC_HCI=m
1126CONFIG_NFC_SHDLC=y
1127
1128#
1129# Near Field Communication (NFC) devices
1130#
1131CONFIG_NFC_WILINK=m
1132CONFIG_NFC_SIM=m
1133CONFIG_NFC_PN544=m
1134CONFIG_NFC_PN544_I2C=m
1135CONFIG_NFC_MICROREAD=m
1136CONFIG_NFC_MICROREAD_I2C=m
1137
1138#
1139# Device Drivers
1140#
1141
1142#
1143# Generic Driver Options
1144#
1145CONFIG_UEVENT_HELPER_PATH=""
1146CONFIG_DEVTMPFS=y
1147CONFIG_DEVTMPFS_MOUNT=y
1148CONFIG_STANDALONE=y
1149CONFIG_PREVENT_FIRMWARE_BUILD=y
1150CONFIG_FW_LOADER=y
1151CONFIG_FIRMWARE_IN_KERNEL=y
1152CONFIG_EXTRA_FIRMWARE=""
1153CONFIG_FW_LOADER_USER_HELPER=y
1154# CONFIG_DEBUG_DRIVER is not set
1155# CONFIG_DEBUG_DEVRES is not set
1156CONFIG_SYS_HYPERVISOR=y
1157# CONFIG_GENERIC_CPU_DEVICES is not set
1158CONFIG_REGMAP=y
1159CONFIG_REGMAP_I2C=y
1160CONFIG_REGMAP_SPI=y
1161CONFIG_REGMAP_MMIO=y
1162CONFIG_REGMAP_IRQ=y
1163CONFIG_DMA_SHARED_BUFFER=y
1164
1165#
1166# Bus devices
1167#
1168CONFIG_CONNECTOR=y
1169CONFIG_PROC_EVENTS=y
1170CONFIG_MTD=m
1171# CONFIG_MTD_TESTS is not set
1172CONFIG_MTD_REDBOOT_PARTS=m
1173CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
1174# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
1175# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
1176CONFIG_MTD_CMDLINE_PARTS=m
1177CONFIG_MTD_OF_PARTS=m
1178CONFIG_MTD_AR7_PARTS=m
1179
1180#
1181# User Modules And Translation Layers
1182#
1183CONFIG_MTD_BLKDEVS=m
1184CONFIG_MTD_BLOCK=m
1185CONFIG_MTD_BLOCK_RO=m
1186CONFIG_FTL=m
1187CONFIG_NFTL=m
1188CONFIG_NFTL_RW=y
1189CONFIG_INFTL=m
1190CONFIG_RFD_FTL=m
1191CONFIG_SSFDC=m
1192CONFIG_SM_FTL=m
1193CONFIG_MTD_OOPS=m
1194CONFIG_MTD_SWAP=m
1195
1196#
1197# RAM/ROM/Flash chip drivers
1198#
1199CONFIG_MTD_CFI=m
1200CONFIG_MTD_JEDECPROBE=m
1201CONFIG_MTD_GEN_PROBE=m
1202# CONFIG_MTD_CFI_ADV_OPTIONS is not set
1203CONFIG_MTD_MAP_BANK_WIDTH_1=y
1204CONFIG_MTD_MAP_BANK_WIDTH_2=y
1205CONFIG_MTD_MAP_BANK_WIDTH_4=y
1206# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
1207# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
1208# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
1209CONFIG_MTD_CFI_I1=y
1210CONFIG_MTD_CFI_I2=y
1211# CONFIG_MTD_CFI_I4 is not set
1212# CONFIG_MTD_CFI_I8 is not set
1213CONFIG_MTD_CFI_INTELEXT=m
1214CONFIG_MTD_CFI_AMDSTD=m
1215CONFIG_MTD_CFI_STAA=m
1216CONFIG_MTD_CFI_UTIL=m
1217CONFIG_MTD_RAM=m
1218CONFIG_MTD_ROM=m
1219CONFIG_MTD_ABSENT=m
1220
1221#
1222# Mapping drivers for chip access
1223#
1224CONFIG_MTD_COMPLEX_MAPPINGS=y
1225CONFIG_MTD_PHYSMAP=m
1226# CONFIG_MTD_PHYSMAP_COMPAT is not set
1227CONFIG_MTD_PHYSMAP_OF=m
1228CONFIG_MTD_PCI=m
1229CONFIG_MTD_GPIO_ADDR=m
1230CONFIG_MTD_INTEL_VR_NOR=m
1231CONFIG_MTD_PLATRAM=m
1232CONFIG_MTD_LATCH_ADDR=m
1233
1234#
1235# Self-contained MTD device drivers
1236#
1237CONFIG_MTD_PMC551=m
1238# CONFIG_MTD_PMC551_BUGFIX is not set
1239# CONFIG_MTD_PMC551_DEBUG is not set
1240CONFIG_MTD_DATAFLASH=m
1241# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
1242CONFIG_MTD_DATAFLASH_OTP=y
1243CONFIG_MTD_M25P80=m
1244CONFIG_MTD_SST25L=m
1245CONFIG_MTD_SLRAM=m
1246CONFIG_MTD_PHRAM=m
1247CONFIG_MTD_MTDRAM=m
1248CONFIG_MTDRAM_TOTAL_SIZE=4096
1249CONFIG_MTDRAM_ERASE_SIZE=128
1250CONFIG_MTD_BLOCK2MTD=m
1251
1252#
1253# Disk-On-Chip Device Drivers
1254#
1255CONFIG_MTD_DOCG3=m
1256CONFIG_BCH_CONST_M=14
1257CONFIG_BCH_CONST_T=4
1258CONFIG_MTD_NAND_ECC=m
1259# CONFIG_MTD_NAND_ECC_SMC is not set
1260CONFIG_MTD_NAND=m
1261CONFIG_MTD_NAND_BCH=m
1262CONFIG_MTD_NAND_ECC_BCH=y
1263CONFIG_MTD_SM_COMMON=m
1264CONFIG_MTD_NAND_DENALI=m
1265CONFIG_MTD_NAND_DENALI_PCI=m
1266CONFIG_MTD_NAND_DENALI_DT=m
1267CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
1268CONFIG_MTD_NAND_GPIO=m
1269CONFIG_MTD_NAND_IDS=m
1270CONFIG_MTD_NAND_RICOH=m
1271CONFIG_MTD_NAND_DISKONCHIP=m
1272# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
1273CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
1274# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
1275CONFIG_MTD_NAND_DOCG4=m
1276CONFIG_MTD_NAND_CAFE=m
1277CONFIG_MTD_NAND_NANDSIM=m
1278CONFIG_MTD_NAND_PLATFORM=m
1279CONFIG_MTD_ONENAND=m
1280CONFIG_MTD_ONENAND_VERIFY_WRITE=y
1281CONFIG_MTD_ONENAND_GENERIC=m
1282# CONFIG_MTD_ONENAND_OTP is not set
1283CONFIG_MTD_ONENAND_2X_PROGRAM=y
1284
1285#
1286# LPDDR flash memory drivers
1287#
1288CONFIG_MTD_LPDDR=m
1289CONFIG_MTD_QINFO_PROBE=m
1290CONFIG_MTD_UBI=m
1291CONFIG_MTD_UBI_WL_THRESHOLD=4096
1292CONFIG_MTD_UBI_BEB_LIMIT=20
1293CONFIG_MTD_UBI_FASTMAP=y
1294CONFIG_MTD_UBI_GLUEBI=m
1295CONFIG_DTC=y
1296CONFIG_OF=y
1297
1298#
1299# Device Tree and Open Firmware support
1300#
1301CONFIG_PROC_DEVICETREE=y
1302# CONFIG_OF_SELFTEST is not set
1303CONFIG_OF_FLATTREE=y
1304CONFIG_OF_EARLY_FLATTREE=y
1305CONFIG_OF_ADDRESS=y
1306CONFIG_OF_IRQ=y
1307CONFIG_OF_NET=y
1308CONFIG_OF_MDIO=y
1309CONFIG_OF_PCI=y
1310CONFIG_OF_PCI_IRQ=y
1311CONFIG_OF_MTD=y
1312CONFIG_PARPORT=m
1313# CONFIG_PARPORT_GSC is not set
1314CONFIG_PARPORT_AX88796=m
1315CONFIG_PARPORT_1284=y
1316CONFIG_PARPORT_NOT_PC=y
1317CONFIG_BLK_DEV=y
1318CONFIG_BLK_DEV_NULL_BLK=m
1319CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
1320CONFIG_BLK_CPQ_CISS_DA=m
1321CONFIG_CISS_SCSI_TAPE=y
1322CONFIG_BLK_DEV_DAC960=m
1323CONFIG_BLK_DEV_UMEM=m
1324# CONFIG_BLK_DEV_COW_COMMON is not set
1325CONFIG_BLK_DEV_LOOP=y
1326CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
1327CONFIG_BLK_DEV_CRYPTOLOOP=m
1328CONFIG_BLK_DEV_DRBD=m
1329# CONFIG_DRBD_FAULT_INJECTION is not set
1330CONFIG_BLK_DEV_NBD=m
1331CONFIG_BLK_DEV_NVME=m
1332CONFIG_BLK_DEV_SKD=m
1333CONFIG_BLK_DEV_OSD=m
1334CONFIG_BLK_DEV_SX8=m
1335CONFIG_BLK_DEV_RAM=y
1336CONFIG_BLK_DEV_RAM_COUNT=16
1337CONFIG_BLK_DEV_RAM_SIZE=65536
1338# CONFIG_BLK_DEV_XIP is not set
1339CONFIG_CDROM_PKTCDVD=m
1340CONFIG_CDROM_PKTCDVD_BUFFERS=8
1341# CONFIG_CDROM_PKTCDVD_WCACHE is not set
1342CONFIG_ATA_OVER_ETH=m
1343CONFIG_XEN_BLKDEV_FRONTEND=y
1344CONFIG_XEN_BLKDEV_BACKEND=m
1345CONFIG_VIRTIO_BLK=y
1346CONFIG_BLK_DEV_RBD=m
1347CONFIG_BLK_DEV_RSXX=m
1348
1349#
1350# Misc devices
1351#
1352CONFIG_SENSORS_LIS3LV02D=m
1353CONFIG_AD525X_DPOT=m
1354CONFIG_AD525X_DPOT_I2C=m
1355CONFIG_AD525X_DPOT_SPI=m
1356CONFIG_ATMEL_PWM=m
1357CONFIG_DUMMY_IRQ=m
1358CONFIG_PHANTOM=m
1359CONFIG_SGI_IOC4=m
1360CONFIG_TIFM_CORE=m
1361CONFIG_TIFM_7XX1=m
1362CONFIG_ICS932S401=m
1363CONFIG_ATMEL_SSC=m
1364CONFIG_ENCLOSURE_SERVICES=m
1365CONFIG_HP_ILO=m
1366CONFIG_APDS9802ALS=m
1367CONFIG_ISL29003=m
1368CONFIG_ISL29020=m
1369CONFIG_SENSORS_TSL2550=m
1370CONFIG_SENSORS_BH1780=m
1371CONFIG_SENSORS_BH1770=m
1372CONFIG_SENSORS_APDS990X=m
1373CONFIG_HMC6352=m
1374CONFIG_DS1682=m
1375CONFIG_TI_DAC7512=m
1376CONFIG_BMP085=y
1377CONFIG_BMP085_I2C=m
1378CONFIG_BMP085_SPI=m
1379CONFIG_PCH_PHUB=m
1380CONFIG_USB_SWITCH_FSA9480=m
1381CONFIG_LATTICE_ECP3_CONFIG=m
1382CONFIG_SRAM=y
1383CONFIG_C2PORT=m
1384
1385#
1386# EEPROM support
1387#
1388CONFIG_EEPROM_AT24=m
1389CONFIG_EEPROM_AT25=m
1390CONFIG_EEPROM_LEGACY=m
1391CONFIG_EEPROM_MAX6875=m
1392CONFIG_EEPROM_93CX6=m
1393CONFIG_EEPROM_93XX46=m
1394CONFIG_CB710_CORE=m
1395# CONFIG_CB710_DEBUG is not set
1396CONFIG_CB710_DEBUG_ASSUMPTIONS=y
1397
1398#
1399# Texas Instruments shared transport line discipline
1400#
1401CONFIG_TI_ST=m
1402CONFIG_SENSORS_LIS3_SPI=m
1403CONFIG_SENSORS_LIS3_I2C=m
1404
1405#
1406# Altera FPGA firmware download module
1407#
1408CONFIG_ALTERA_STAPL=m
1409
1410#
1411# Intel MIC Host Driver
1412#
1413
1414#
1415# Intel MIC Card Driver
1416#
1417CONFIG_XGENE_QMTM=y
1418
1419#
1420# SCSI device support
1421#
1422CONFIG_SCSI_MOD=y
1423CONFIG_RAID_ATTRS=m
1424CONFIG_SCSI=y
1425CONFIG_SCSI_DMA=y
1426CONFIG_SCSI_TGT=m
1427CONFIG_SCSI_NETLINK=y
1428CONFIG_SCSI_PROC_FS=y
1429
1430#
1431# SCSI support type (disk, tape, CD-ROM)
1432#
1433CONFIG_BLK_DEV_SD=y
1434CONFIG_CHR_DEV_ST=m
1435CONFIG_CHR_DEV_OSST=m
1436CONFIG_BLK_DEV_SR=y
1437# CONFIG_BLK_DEV_SR_VENDOR is not set
1438CONFIG_CHR_DEV_SG=y
1439CONFIG_CHR_DEV_SCH=m
1440CONFIG_SCSI_ENCLOSURE=m
1441CONFIG_SCSI_MULTI_LUN=y
1442CONFIG_SCSI_CONSTANTS=y
1443CONFIG_SCSI_LOGGING=y
1444CONFIG_SCSI_SCAN_ASYNC=y
1445
1446#
1447# SCSI Transports
1448#
1449CONFIG_SCSI_SPI_ATTRS=m
1450CONFIG_SCSI_FC_ATTRS=m
1451CONFIG_SCSI_FC_TGT_ATTRS=y
1452CONFIG_SCSI_ISCSI_ATTRS=m
1453CONFIG_SCSI_SAS_ATTRS=m
1454CONFIG_SCSI_SAS_LIBSAS=m
1455CONFIG_SCSI_SAS_ATA=y
1456CONFIG_SCSI_SAS_HOST_SMP=y
1457CONFIG_SCSI_SRP_ATTRS=m
1458CONFIG_SCSI_SRP_TGT_ATTRS=y
1459CONFIG_SCSI_LOWLEVEL=y
1460CONFIG_ISCSI_TCP=m
1461CONFIG_ISCSI_BOOT_SYSFS=m
1462CONFIG_SCSI_CXGB3_ISCSI=m
1463CONFIG_SCSI_CXGB4_ISCSI=m
1464CONFIG_SCSI_BNX2_ISCSI=m
1465CONFIG_SCSI_BNX2X_FCOE=m
1466CONFIG_BE2ISCSI=m
1467CONFIG_BLK_DEV_3W_XXXX_RAID=m
1468CONFIG_SCSI_HPSA=m
1469CONFIG_SCSI_3W_9XXX=m
1470CONFIG_SCSI_3W_SAS=m
1471CONFIG_SCSI_ACARD=m
1472CONFIG_SCSI_AACRAID=m
1473CONFIG_SCSI_AIC7XXX=m
1474CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
1475CONFIG_AIC7XXX_RESET_DELAY_MS=15000
1476# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
1477CONFIG_AIC7XXX_DEBUG_MASK=0
1478CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
1479# CONFIG_SCSI_AIC7XXX_OLD is not set
1480CONFIG_SCSI_AIC79XX=m
1481CONFIG_AIC79XX_CMDS_PER_DEVICE=32
1482CONFIG_AIC79XX_RESET_DELAY_MS=5000
1483# CONFIG_AIC79XX_DEBUG_ENABLE is not set
1484CONFIG_AIC79XX_DEBUG_MASK=0
1485CONFIG_AIC79XX_REG_PRETTY_PRINT=y
1486CONFIG_SCSI_AIC94XX=m
1487# CONFIG_AIC94XX_DEBUG is not set
1488CONFIG_SCSI_MVSAS=m
1489# CONFIG_SCSI_MVSAS_DEBUG is not set
1490# CONFIG_SCSI_MVSAS_TASKLET is not set
1491CONFIG_SCSI_MVUMI=m
1492CONFIG_SCSI_ARCMSR=m
1493CONFIG_SCSI_ESAS2R=m
1494CONFIG_MEGARAID_NEWGEN=y
1495CONFIG_MEGARAID_MM=m
1496CONFIG_MEGARAID_MAILBOX=m
1497CONFIG_MEGARAID_LEGACY=m
1498CONFIG_MEGARAID_SAS=m
1499CONFIG_SCSI_MPT2SAS=m
1500CONFIG_SCSI_MPT2SAS_MAX_SGE=128
1501# CONFIG_SCSI_MPT2SAS_LOGGING is not set
1502CONFIG_SCSI_MPT3SAS=m
1503CONFIG_SCSI_MPT3SAS_MAX_SGE=128
1504# CONFIG_SCSI_MPT3SAS_LOGGING is not set
1505CONFIG_SCSI_UFSHCD=m
1506CONFIG_SCSI_UFSHCD_PCI=m
1507CONFIG_SCSI_UFSHCD_PLATFORM=m
1508CONFIG_SCSI_HPTIOP=m
1509CONFIG_LIBFC=m
1510CONFIG_LIBFCOE=m
1511CONFIG_FCOE=m
1512CONFIG_SCSI_DMX3191D=m
1513CONFIG_SCSI_FUTURE_DOMAIN=m
1514CONFIG_SCSI_IPS=m
1515CONFIG_SCSI_INITIO=m
1516CONFIG_SCSI_INIA100=m
1517CONFIG_SCSI_STEX=m
1518CONFIG_SCSI_SYM53C8XX_2=m
1519CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
1520CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
1521CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
1522CONFIG_SCSI_SYM53C8XX_MMIO=y
1523CONFIG_SCSI_IPR=m
1524# CONFIG_SCSI_IPR_TRACE is not set
1525# CONFIG_SCSI_IPR_DUMP is not set
1526CONFIG_SCSI_QLOGIC_1280=m
1527CONFIG_SCSI_QLA_FC=m
1528CONFIG_TCM_QLA2XXX=m
1529CONFIG_SCSI_QLA_ISCSI=m
1530CONFIG_SCSI_LPFC=m
1531# CONFIG_SCSI_LPFC_DEBUG_FS is not set
1532CONFIG_SCSI_DC395x=m
1533CONFIG_SCSI_DC390T=m
1534CONFIG_SCSI_DEBUG=m
1535CONFIG_SCSI_PMCRAID=m
1536CONFIG_SCSI_PM8001=m
1537CONFIG_SCSI_SRP=m
1538CONFIG_SCSI_BFA_FC=m
1539CONFIG_SCSI_VIRTIO=m
1540CONFIG_SCSI_CHELSIO_FCOE=m
1541CONFIG_SCSI_LOWLEVEL_PCMCIA=y
1542CONFIG_SCSI_DH=m
1543CONFIG_SCSI_DH_RDAC=m
1544CONFIG_SCSI_DH_HP_SW=m
1545CONFIG_SCSI_DH_EMC=m
1546CONFIG_SCSI_DH_ALUA=m
1547CONFIG_SCSI_OSD_INITIATOR=m
1548CONFIG_SCSI_OSD_ULD=m
1549CONFIG_SCSI_OSD_DPRINT_SENSE=1
1550# CONFIG_SCSI_OSD_DEBUG is not set
1551CONFIG_ATA=y
1552# CONFIG_ATA_NONSTANDARD is not set
1553CONFIG_ATA_VERBOSE_ERROR=y
1554CONFIG_SATA_PMP=y
1555
1556#
1557# Controllers with non-SFF native interface
1558#
1559CONFIG_SATA_AHCI=y
1560CONFIG_SATA_AHCI_PLATFORM=y
1561# CONFIG_AHCI_IMX is not set
1562CONFIG_AHCI_XGENE=y
1563CONFIG_SATA_INIC162X=m
1564CONFIG_SATA_ACARD_AHCI=m
1565CONFIG_SATA_SIL24=m
1566CONFIG_ATA_SFF=y
1567
1568#
1569# SFF controllers with custom DMA interface
1570#
1571CONFIG_PDC_ADMA=m
1572CONFIG_SATA_QSTOR=m
1573CONFIG_SATA_SX4=m
1574CONFIG_ATA_BMDMA=y
1575
1576#
1577# SATA SFF controllers with BMDMA
1578#
1579CONFIG_ATA_PIIX=m
1580# CONFIG_SATA_HIGHBANK is not set
1581CONFIG_SATA_MV=m
1582CONFIG_SATA_NV=m
1583CONFIG_SATA_PROMISE=m
1584CONFIG_SATA_RCAR=m
1585CONFIG_SATA_SIL=m
1586CONFIG_SATA_SIS=m
1587CONFIG_SATA_SVW=m
1588CONFIG_SATA_ULI=m
1589CONFIG_SATA_VIA=m
1590CONFIG_SATA_VITESSE=m
1591
1592#
1593# PATA SFF controllers with BMDMA
1594#
1595CONFIG_PATA_ALI=m
1596CONFIG_PATA_AMD=m
1597CONFIG_PATA_ARASAN_CF=m
1598CONFIG_PATA_ARTOP=m
1599CONFIG_PATA_ATIIXP=m
1600CONFIG_PATA_ATP867X=m
1601CONFIG_PATA_CMD64X=m
1602CONFIG_PATA_CS5520=m
1603CONFIG_PATA_CS5530=m
1604CONFIG_PATA_CS5536=m
1605CONFIG_PATA_CYPRESS=m
1606CONFIG_PATA_EFAR=m
1607CONFIG_PATA_HPT366=m
1608CONFIG_PATA_HPT37X=m
1609CONFIG_PATA_HPT3X2N=m
1610CONFIG_PATA_HPT3X3=m
1611# CONFIG_PATA_HPT3X3_DMA is not set
1612CONFIG_PATA_IT8213=m
1613CONFIG_PATA_IT821X=m
1614CONFIG_PATA_JMICRON=m
1615CONFIG_PATA_MARVELL=m
1616CONFIG_PATA_NETCELL=m
1617CONFIG_PATA_NINJA32=m
1618CONFIG_PATA_NS87415=m
1619CONFIG_PATA_OLDPIIX=m
1620CONFIG_PATA_OPTIDMA=m
1621CONFIG_PATA_PDC2027X=m
1622CONFIG_PATA_PDC_OLD=m
1623CONFIG_PATA_RADISYS=m
1624CONFIG_PATA_RDC=m
1625CONFIG_PATA_SC1200=m
1626CONFIG_PATA_SCH=m
1627CONFIG_PATA_SERVERWORKS=m
1628CONFIG_PATA_SIL680=m
1629CONFIG_PATA_SIS=y
1630CONFIG_PATA_TOSHIBA=m
1631CONFIG_PATA_TRIFLEX=m
1632CONFIG_PATA_VIA=m
1633CONFIG_PATA_WINBOND=m
1634
1635#
1636# PIO-only SFF controllers
1637#
1638CONFIG_PATA_CMD640_PCI=m
1639CONFIG_PATA_MPIIX=m
1640CONFIG_PATA_NS87410=m
1641CONFIG_PATA_OPTI=m
1642CONFIG_PATA_PLATFORM=m
1643CONFIG_PATA_OF_PLATFORM=m
1644CONFIG_PATA_RZ1000=m
1645
1646#
1647# Generic fallback / legacy drivers
1648#
1649CONFIG_ATA_GENERIC=y
1650CONFIG_PATA_LEGACY=m
1651CONFIG_MD=y
1652CONFIG_BLK_DEV_MD=y
1653CONFIG_MD_AUTODETECT=y
1654CONFIG_MD_LINEAR=m
1655CONFIG_MD_RAID0=m
1656CONFIG_MD_RAID1=m
1657CONFIG_MD_RAID10=m
1658CONFIG_MD_RAID456=m
1659CONFIG_MD_MULTIPATH=m
1660CONFIG_MD_FAULTY=m
1661CONFIG_BCACHE=m
1662# CONFIG_BCACHE_DEBUG is not set
1663# CONFIG_BCACHE_CLOSURES_DEBUG is not set
1664CONFIG_BLK_DEV_DM_BUILTIN=y
1665CONFIG_BLK_DEV_DM=y
1666# CONFIG_DM_DEBUG is not set
1667CONFIG_DM_BUFIO=m
1668CONFIG_DM_BIO_PRISON=m
1669CONFIG_DM_PERSISTENT_DATA=m
1670CONFIG_DM_CRYPT=m
1671CONFIG_DM_SNAPSHOT=m
1672CONFIG_DM_THIN_PROVISIONING=m
1673# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
1674CONFIG_DM_CACHE=m
1675CONFIG_DM_CACHE_MQ=m
1676CONFIG_DM_CACHE_CLEANER=m
1677CONFIG_DM_MIRROR=m
1678CONFIG_DM_LOG_USERSPACE=m
1679CONFIG_DM_RAID=m
1680CONFIG_DM_ZERO=m
1681CONFIG_DM_MULTIPATH=m
1682CONFIG_DM_MULTIPATH_QL=m
1683CONFIG_DM_MULTIPATH_ST=m
1684CONFIG_DM_DELAY=m
1685CONFIG_DM_UEVENT=y
1686CONFIG_DM_FLAKEY=m
1687CONFIG_DM_VERITY=m
1688CONFIG_DM_SWITCH=m
1689CONFIG_TARGET_CORE=m
1690CONFIG_TCM_IBLOCK=m
1691CONFIG_TCM_FILEIO=m
1692CONFIG_TCM_PSCSI=m
1693CONFIG_LOOPBACK_TARGET=m
1694CONFIG_TCM_FC=m
1695CONFIG_ISCSI_TARGET=m
1696CONFIG_SBP_TARGET=m
1697CONFIG_FUSION=y
1698CONFIG_FUSION_SPI=m
1699CONFIG_FUSION_FC=m
1700CONFIG_FUSION_SAS=m
1701CONFIG_FUSION_MAX_SGE=128
1702CONFIG_FUSION_CTL=m
1703CONFIG_FUSION_LAN=m
1704CONFIG_FUSION_LOGGING=y
1705
1706#
1707# IEEE 1394 (FireWire) support
1708#
1709CONFIG_FIREWIRE=m
1710CONFIG_FIREWIRE_OHCI=m
1711CONFIG_FIREWIRE_SBP2=m
1712CONFIG_FIREWIRE_NET=m
1713CONFIG_FIREWIRE_NOSY=m
1714CONFIG_I2O=m
1715CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
1716CONFIG_I2O_EXT_ADAPTEC=y
1717CONFIG_I2O_EXT_ADAPTEC_DMA64=y
1718CONFIG_I2O_BUS=m
1719CONFIG_I2O_BLOCK=m
1720CONFIG_I2O_SCSI=m
1721CONFIG_I2O_PROC=m
1722CONFIG_NETDEVICES=y
1723CONFIG_MII=y
1724CONFIG_NET_CORE=y
1725CONFIG_BONDING=m
1726CONFIG_DUMMY=m
1727CONFIG_EQUALIZER=m
1728CONFIG_NET_FC=y
1729CONFIG_IFB=m
1730CONFIG_NET_TEAM=m
1731CONFIG_NET_TEAM_MODE_BROADCAST=m
1732CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
1733CONFIG_NET_TEAM_MODE_RANDOM=m
1734CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
1735CONFIG_NET_TEAM_MODE_LOADBALANCE=m
1736CONFIG_MACVLAN=m
1737CONFIG_MACVTAP=m
1738CONFIG_VXLAN=m
1739CONFIG_NETCONSOLE=m
1740CONFIG_NETCONSOLE_DYNAMIC=y
1741CONFIG_NETPOLL=y
1742# CONFIG_NETPOLL_TRAP is not set
1743CONFIG_NET_POLL_CONTROLLER=y
1744CONFIG_TUN=y
1745CONFIG_VETH=m
1746CONFIG_VIRTIO_NET=y
1747CONFIG_NLMON=m
1748CONFIG_SUNGEM_PHY=m
1749CONFIG_ARCNET=m
1750CONFIG_ARCNET_1201=m
1751CONFIG_ARCNET_1051=m
1752CONFIG_ARCNET_RAW=m
1753CONFIG_ARCNET_CAP=m
1754CONFIG_ARCNET_COM90xx=m
1755CONFIG_ARCNET_COM90xxIO=m
1756CONFIG_ARCNET_RIM_I=m
1757CONFIG_ARCNET_COM20020=m
1758CONFIG_ARCNET_COM20020_PCI=m
1759CONFIG_ATM_DRIVERS=y
1760CONFIG_ATM_DUMMY=m
1761CONFIG_ATM_TCP=m
1762CONFIG_ATM_LANAI=m
1763CONFIG_ATM_ENI=m
1764# CONFIG_ATM_ENI_DEBUG is not set
1765# CONFIG_ATM_ENI_TUNE_BURST is not set
1766CONFIG_ATM_NICSTAR=m
1767# CONFIG_ATM_NICSTAR_USE_SUNI is not set
1768# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
1769CONFIG_ATM_IDT77252=m
1770# CONFIG_ATM_IDT77252_DEBUG is not set
1771# CONFIG_ATM_IDT77252_RCV_ALL is not set
1772CONFIG_ATM_IDT77252_USE_SUNI=y
1773CONFIG_ATM_IA=m
1774# CONFIG_ATM_IA_DEBUG is not set
1775CONFIG_ATM_FORE200E=m
1776# CONFIG_ATM_FORE200E_USE_TASKLET is not set
1777CONFIG_ATM_FORE200E_TX_RETRY=16
1778CONFIG_ATM_FORE200E_DEBUG=0
1779CONFIG_ATM_HE=m
1780CONFIG_ATM_HE_USE_SUNI=y
1781CONFIG_ATM_SOLOS=m
1782
1783#
1784# CAIF transport drivers
1785#
1786CONFIG_CAIF_TTY=m
1787CONFIG_CAIF_SPI_SLAVE=m
1788# CONFIG_CAIF_SPI_SYNC is not set
1789CONFIG_CAIF_HSI=m
1790CONFIG_CAIF_VIRTIO=m
1791CONFIG_VHOST_NET=m
1792CONFIG_VHOST_SCSI=m
1793CONFIG_VHOST_RING=m
1794CONFIG_VHOST=m
1795
1796#
1797# Distributed Switch Architecture drivers
1798#
1799CONFIG_NET_DSA_MV88E6XXX=m
1800CONFIG_NET_DSA_MV88E6060=m
1801CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
1802CONFIG_NET_DSA_MV88E6131=m
1803CONFIG_NET_DSA_MV88E6123_61_65=m
1804CONFIG_ETHERNET=y
1805CONFIG_MDIO=m
1806CONFIG_NET_XGENE=y
1807CONFIG_NET_VENDOR_3COM=y
1808CONFIG_TYPHOON=m
1809CONFIG_NET_VENDOR_ADAPTEC=y
1810CONFIG_ADAPTEC_STARFIRE=m
1811CONFIG_NET_VENDOR_ALTEON=y
1812CONFIG_ACENIC=m
1813# CONFIG_ACENIC_OMIT_TIGON_I is not set
1814CONFIG_NET_VENDOR_AMD=y
1815CONFIG_AMD8111_ETH=m
1816CONFIG_PCNET32=m
1817CONFIG_NET_VENDOR_ARC=y
1818CONFIG_ARC_EMAC=m
1819CONFIG_NET_VENDOR_ATHEROS=y
1820CONFIG_ATL2=m
1821CONFIG_ATL1=m
1822CONFIG_ATL1E=m
1823CONFIG_ATL1C=m
1824CONFIG_ALX=m
1825CONFIG_NET_CADENCE=y
1826CONFIG_ARM_AT91_ETHER=m
1827CONFIG_MACB=m
1828CONFIG_NET_VENDOR_BROADCOM=y
1829CONFIG_B44=m
1830CONFIG_B44_PCI_AUTOSELECT=y
1831CONFIG_B44_PCICORE_AUTOSELECT=y
1832CONFIG_B44_PCI=y
1833CONFIG_BNX2=m
1834CONFIG_CNIC=m
1835CONFIG_TIGON3=m
1836CONFIG_BNX2X=m
1837CONFIG_BNX2X_SRIOV=y
1838CONFIG_NET_VENDOR_BROCADE=y
1839CONFIG_BNA=m
1840CONFIG_NET_CALXEDA_XGMAC=m
1841CONFIG_NET_VENDOR_CHELSIO=y
1842CONFIG_CHELSIO_T1=m
1843CONFIG_CHELSIO_T1_1G=y
1844CONFIG_CHELSIO_T3=m
1845CONFIG_CHELSIO_T4=m
1846CONFIG_CHELSIO_T4VF=m
1847CONFIG_NET_VENDOR_CISCO=y
1848CONFIG_ENIC=m
1849CONFIG_DNET=m
1850CONFIG_NET_VENDOR_DEC=y
1851CONFIG_NET_TULIP=y
1852CONFIG_DE2104X=m
1853CONFIG_DE2104X_DSL=0
1854CONFIG_TULIP=m
1855# CONFIG_TULIP_MWI is not set
1856# CONFIG_TULIP_MMIO is not set
1857# CONFIG_TULIP_NAPI is not set
1858CONFIG_WINBOND_840=m
1859CONFIG_DM9102=m
1860CONFIG_ULI526X=m
1861CONFIG_NET_VENDOR_DLINK=y
1862CONFIG_DL2K=m
1863CONFIG_SUNDANCE=m
1864# CONFIG_SUNDANCE_MMIO is not set
1865CONFIG_NET_VENDOR_EMULEX=y
1866CONFIG_BE2NET=m
1867CONFIG_NET_VENDOR_EXAR=y
1868CONFIG_S2IO=m
1869CONFIG_VXGE=m
1870# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
1871CONFIG_NET_VENDOR_HP=y
1872CONFIG_HP100=m
1873CONFIG_NET_VENDOR_INTEL=y
1874CONFIG_E100=m
1875CONFIG_E1000=m
1876CONFIG_E1000E=m
1877CONFIG_IGB=m
1878CONFIG_IGB_HWMON=y
1879CONFIG_IGBVF=m
1880CONFIG_IXGB=m
1881CONFIG_IXGBE=m
1882CONFIG_IXGBE_HWMON=y
1883CONFIG_IXGBE_DCB=y
1884CONFIG_IXGBEVF=m
1885CONFIG_I40E=m
1886CONFIG_NET_VENDOR_I825XX=y
1887CONFIG_IP1000=m
1888CONFIG_JME=m
1889CONFIG_NET_VENDOR_MARVELL=y
1890CONFIG_MVMDIO=m
1891CONFIG_SKGE=m
1892# CONFIG_SKGE_DEBUG is not set
1893CONFIG_SKGE_GENESIS=y
1894CONFIG_SKY2=m
1895# CONFIG_SKY2_DEBUG is not set
1896CONFIG_NET_VENDOR_MELLANOX=y
1897CONFIG_MLX4_EN=y
1898CONFIG_MLX4_EN_DCB=y
1899CONFIG_MLX4_CORE=y
1900# CONFIG_MLX4_DEBUG is not set
1901CONFIG_MLX5_CORE=m
1902CONFIG_NET_VENDOR_MICREL=y
1903CONFIG_KS8842=m
1904CONFIG_KS8851=m
1905CONFIG_KS8851_MLL=m
1906CONFIG_KSZ884X_PCI=m
1907CONFIG_NET_VENDOR_MICROCHIP=y
1908CONFIG_ENC28J60=m
1909# CONFIG_ENC28J60_WRITEVERIFY is not set
1910CONFIG_NET_VENDOR_MYRI=y
1911CONFIG_MYRI10GE=m
1912CONFIG_FEALNX=m
1913CONFIG_NET_VENDOR_NATSEMI=y
1914CONFIG_NATSEMI=m
1915CONFIG_NS83820=m
1916CONFIG_NET_VENDOR_8390=y
1917CONFIG_NE2K_PCI=m
1918CONFIG_NET_VENDOR_NVIDIA=y
1919CONFIG_FORCEDETH=m
1920CONFIG_NET_VENDOR_OKI=y
1921CONFIG_ETHOC=m
1922CONFIG_NET_PACKET_ENGINE=y
1923CONFIG_HAMACHI=m
1924CONFIG_YELLOWFIN=m
1925CONFIG_NET_VENDOR_QLOGIC=y
1926CONFIG_QLA3XXX=m
1927CONFIG_QLCNIC=m
1928CONFIG_QLCNIC_SRIOV=y
1929CONFIG_QLCNIC_DCB=y
1930CONFIG_QLGE=m
1931CONFIG_NETXEN_NIC=m
1932CONFIG_NET_VENDOR_REALTEK=y
1933CONFIG_8139CP=m
1934CONFIG_8139TOO=m
1935CONFIG_8139TOO_PIO=y
1936# CONFIG_8139TOO_TUNE_TWISTER is not set
1937CONFIG_8139TOO_8129=y
1938# CONFIG_8139_OLD_RX_RESET is not set
1939CONFIG_R8169=m
1940CONFIG_SH_ETH=m
1941CONFIG_NET_VENDOR_RDC=y
1942CONFIG_R6040=m
1943CONFIG_NET_VENDOR_SEEQ=y
1944CONFIG_NET_VENDOR_SILAN=y
1945CONFIG_SC92031=m
1946CONFIG_NET_VENDOR_SIS=y
1947CONFIG_SIS900=m
1948CONFIG_SIS190=m
1949CONFIG_SFC=m
1950CONFIG_SFC_MTD=y
1951CONFIG_SFC_MCDI_MON=y
1952CONFIG_SFC_SRIOV=y
1953CONFIG_NET_VENDOR_SMSC=y
1954CONFIG_SMC91X=y
1955CONFIG_EPIC100=m
1956CONFIG_SMSC911X=m
1957# CONFIG_SMSC911X_ARCH_HOOKS is not set
1958CONFIG_SMSC9420=m
1959CONFIG_NET_VENDOR_STMICRO=y
1960CONFIG_STMMAC_ETH=m
1961CONFIG_STMMAC_PLATFORM=y
1962# CONFIG_STMMAC_PCI is not set
1963# CONFIG_STMMAC_DEBUG_FS is not set
1964# CONFIG_STMMAC_DA is not set
1965CONFIG_NET_VENDOR_SUN=y
1966CONFIG_HAPPYMEAL=m
1967CONFIG_SUNGEM=m
1968CONFIG_CASSINI=m
1969CONFIG_NIU=m
1970CONFIG_NET_VENDOR_TEHUTI=y
1971CONFIG_TEHUTI=m
1972CONFIG_NET_VENDOR_TI=y
1973CONFIG_TLAN=m
1974CONFIG_NET_VENDOR_VIA=y
1975CONFIG_VIA_RHINE=m
1976CONFIG_VIA_RHINE_MMIO=y
1977CONFIG_VIA_VELOCITY=m
1978CONFIG_NET_VENDOR_WIZNET=y
1979CONFIG_WIZNET_W5100=m
1980CONFIG_WIZNET_W5300=m
1981# CONFIG_WIZNET_BUS_DIRECT is not set
1982# CONFIG_WIZNET_BUS_INDIRECT is not set
1983CONFIG_WIZNET_BUS_ANY=y
1984CONFIG_FDDI=y
1985CONFIG_DEFXX=m
1986# CONFIG_DEFXX_MMIO is not set
1987CONFIG_SKFP=m
1988# CONFIG_HIPPI is not set
1989CONFIG_PHYLIB=y
1990
1991#
1992# MII PHY device drivers
1993#
1994CONFIG_AT803X_PHY=y
1995CONFIG_AMD_PHY=y
1996CONFIG_MARVELL_PHY=y
1997CONFIG_DAVICOM_PHY=y
1998CONFIG_QSEMI_PHY=y
1999CONFIG_LXT_PHY=y
2000CONFIG_CICADA_PHY=y
2001CONFIG_VITESSE_PHY=y
2002CONFIG_SMSC_PHY=y
2003CONFIG_BROADCOM_PHY=y
2004CONFIG_BCM87XX_PHY=y
2005CONFIG_ICPLUS_PHY=y
2006CONFIG_REALTEK_PHY=y
2007CONFIG_NATIONAL_PHY=y
2008CONFIG_STE10XP=y
2009CONFIG_LSI_ET1011C_PHY=y
2010CONFIG_MICREL_PHY=y
2011CONFIG_FIXED_PHY=y
2012CONFIG_MDIO_BITBANG=y
2013CONFIG_MDIO_GPIO=y
2014CONFIG_MDIO_BUS_MUX=y
2015CONFIG_MDIO_BUS_MUX_GPIO=y
2016CONFIG_MDIO_BUS_MUX_MMIOREG=y
2017CONFIG_MICREL_KS8995MA=m
2018CONFIG_PLIP=m
2019CONFIG_PPP=y
2020CONFIG_PPP_BSDCOMP=m
2021CONFIG_PPP_DEFLATE=m
2022CONFIG_PPP_FILTER=y
2023CONFIG_PPP_MPPE=m
2024CONFIG_PPP_MULTILINK=y
2025CONFIG_PPPOATM=m
2026CONFIG_PPPOE=m
2027CONFIG_PPTP=m
2028CONFIG_PPPOL2TP=m
2029CONFIG_PPP_ASYNC=m
2030CONFIG_PPP_SYNC_TTY=m
2031CONFIG_SLIP=m
2032CONFIG_SLHC=y
2033CONFIG_SLIP_COMPRESSED=y
2034CONFIG_SLIP_SMART=y
2035CONFIG_SLIP_MODE_SLIP6=y
2036CONFIG_WLAN=y
2037CONFIG_LIBERTAS_THINFIRM=m
2038# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
2039CONFIG_ATMEL=m
2040CONFIG_PCI_ATMEL=m
2041# CONFIG_PRISM54 is not set
2042CONFIG_RTL8180=m
2043CONFIG_ADM8211=m
2044CONFIG_MAC80211_HWSIM=m
2045CONFIG_MWL8K=m
2046CONFIG_ATH_COMMON=m
2047CONFIG_ATH_CARDS=m
2048# CONFIG_ATH_DEBUG is not set
2049CONFIG_ATH5K=m
2050# CONFIG_ATH5K_DEBUG is not set
2051# CONFIG_ATH5K_TRACER is not set
2052CONFIG_ATH5K_PCI=y
2053CONFIG_ATH9K_HW=m
2054CONFIG_ATH9K_COMMON=m
2055CONFIG_ATH9K_BTCOEX_SUPPORT=y
2056CONFIG_ATH9K=m
2057CONFIG_ATH9K_PCI=y
2058CONFIG_ATH9K_AHB=y
2059CONFIG_ATH9K_DEBUGFS=y
2060CONFIG_ATH9K_LEGACY_RATE_CONTROL=y
2061CONFIG_ATH9K_RFKILL=y
2062CONFIG_ATH6KL=m
2063CONFIG_ATH6KL_SDIO=m
2064# CONFIG_ATH6KL_DEBUG is not set
2065# CONFIG_ATH6KL_TRACING is not set
2066CONFIG_WIL6210=m
2067CONFIG_WIL6210_ISR_COR=y
2068CONFIG_WIL6210_TRACING=y
2069CONFIG_ATH10K=m
2070CONFIG_ATH10K_PCI=m
2071# CONFIG_ATH10K_DEBUG is not set
2072CONFIG_ATH10K_DEBUGFS=y
2073CONFIG_ATH10K_TRACING=y
2074CONFIG_WCN36XX=m
2075# CONFIG_WCN36XX_DEBUGFS is not set
2076CONFIG_B43=m
2077CONFIG_B43_BCMA=y
2078CONFIG_B43_SSB=y
2079CONFIG_B43_PCI_AUTOSELECT=y
2080CONFIG_B43_PCICORE_AUTOSELECT=y
2081# CONFIG_B43_SDIO is not set
2082CONFIG_B43_BCMA_PIO=y
2083CONFIG_B43_PIO=y
2084CONFIG_B43_PHY_N=y
2085CONFIG_B43_PHY_LP=y
2086CONFIG_B43_PHY_HT=y
2087CONFIG_B43_LEDS=y
2088CONFIG_B43_HWRNG=y
2089# CONFIG_B43_DEBUG is not set
2090CONFIG_B43LEGACY=m
2091CONFIG_B43LEGACY_PCI_AUTOSELECT=y
2092CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
2093CONFIG_B43LEGACY_LEDS=y
2094CONFIG_B43LEGACY_HWRNG=y
2095# CONFIG_B43LEGACY_DEBUG is not set
2096CONFIG_B43LEGACY_DMA=y
2097CONFIG_B43LEGACY_PIO=y
2098CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
2099# CONFIG_B43LEGACY_DMA_MODE is not set
2100# CONFIG_B43LEGACY_PIO_MODE is not set
2101CONFIG_BRCMUTIL=m
2102CONFIG_BRCMSMAC=m
2103CONFIG_BRCMFMAC=m
2104CONFIG_BRCMFMAC_SDIO=y
2105CONFIG_BRCM_TRACING=y
2106# CONFIG_BRCMDBG is not set
2107CONFIG_HOSTAP=m
2108CONFIG_HOSTAP_FIRMWARE=y
2109CONFIG_HOSTAP_FIRMWARE_NVRAM=y
2110CONFIG_HOSTAP_PLX=m
2111CONFIG_HOSTAP_PCI=m
2112CONFIG_IPW2100=m
2113CONFIG_IPW2100_MONITOR=y
2114# CONFIG_IPW2100_DEBUG is not set
2115CONFIG_IPW2200=m
2116CONFIG_IPW2200_MONITOR=y
2117CONFIG_IPW2200_RADIOTAP=y
2118CONFIG_IPW2200_PROMISCUOUS=y
2119CONFIG_IPW2200_QOS=y
2120# CONFIG_IPW2200_DEBUG is not set
2121CONFIG_LIBIPW=m
2122# CONFIG_LIBIPW_DEBUG is not set
2123CONFIG_IWLWIFI=m
2124CONFIG_IWLDVM=m
2125CONFIG_IWLMVM=m
2126CONFIG_IWLWIFI_OPMODE_MODULAR=y
2127
2128#
2129# Debugging Options
2130#
2131# CONFIG_IWLWIFI_DEBUG is not set
2132CONFIG_IWLWIFI_DEBUGFS=y
2133CONFIG_IWLWIFI_DEVICE_TRACING=y
2134CONFIG_IWLEGACY=m
2135CONFIG_IWL4965=m
2136CONFIG_IWL3945=m
2137
2138#
2139# iwl3945 / iwl4965 Debugging Options
2140#
2141# CONFIG_IWLEGACY_DEBUG is not set
2142CONFIG_IWLEGACY_DEBUGFS=y
2143CONFIG_LIBERTAS=m
2144CONFIG_LIBERTAS_SDIO=m
2145CONFIG_LIBERTAS_SPI=m
2146# CONFIG_LIBERTAS_DEBUG is not set
2147CONFIG_LIBERTAS_MESH=y
2148CONFIG_HERMES=m
2149# CONFIG_HERMES_PRISM is not set
2150CONFIG_HERMES_CACHE_FW_ON_INIT=y
2151CONFIG_PLX_HERMES=m
2152CONFIG_TMD_HERMES=m
2153CONFIG_NORTEL_HERMES=m
2154CONFIG_P54_COMMON=m
2155CONFIG_P54_PCI=m
2156CONFIG_P54_SPI=m
2157# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
2158CONFIG_P54_LEDS=y
2159CONFIG_RT2X00=m
2160CONFIG_RT2400PCI=m
2161CONFIG_RT2500PCI=m
2162CONFIG_RT61PCI=m
2163CONFIG_RT2800PCI=m
2164CONFIG_RT2800PCI_RT33XX=y
2165CONFIG_RT2800PCI_RT35XX=y
2166CONFIG_RT2800PCI_RT53XX=y
2167CONFIG_RT2800PCI_RT3290=y
2168CONFIG_RT2800_LIB=m
2169CONFIG_RT2800_LIB_MMIO=m
2170CONFIG_RT2X00_LIB_MMIO=m
2171CONFIG_RT2X00_LIB_PCI=m
2172CONFIG_RT2X00_LIB=m
2173CONFIG_RT2X00_LIB_FIRMWARE=y
2174CONFIG_RT2X00_LIB_CRYPTO=y
2175CONFIG_RT2X00_LIB_LEDS=y
2176# CONFIG_RT2X00_LIB_DEBUGFS is not set
2177# CONFIG_RT2X00_DEBUG is not set
2178CONFIG_RTL_CARDS=m
2179CONFIG_RTL8192CE=m
2180CONFIG_RTL8192SE=m
2181CONFIG_RTL8192DE=m
2182CONFIG_RTL8723AE=m
2183CONFIG_RTL8723BE=m
2184CONFIG_RTL8188EE=m
2185CONFIG_RTLWIFI=m
2186CONFIG_RTLWIFI_PCI=m
2187# CONFIG_RTLWIFI_DEBUG is not set
2188CONFIG_RTL8192C_COMMON=m
2189CONFIG_RTL8723_COMMON=m
2190CONFIG_RTLBTCOEXIST=m
2191CONFIG_WL_TI=y
2192CONFIG_WL1251=m
2193CONFIG_WL1251_SPI=m
2194CONFIG_WL1251_SDIO=m
2195CONFIG_WL12XX=m
2196CONFIG_WL18XX=m
2197CONFIG_WLCORE=m
2198CONFIG_WLCORE_SPI=m
2199CONFIG_WLCORE_SDIO=m
2200CONFIG_WILINK_PLATFORM_DATA=y
2201CONFIG_MWIFIEX=m
2202CONFIG_MWIFIEX_SDIO=m
2203CONFIG_MWIFIEX_PCIE=m
2204CONFIG_CW1200=m
2205CONFIG_CW1200_WLAN_SDIO=m
2206CONFIG_CW1200_WLAN_SPI=m
2207
2208#
2209# WiMAX Wireless Broadband devices
2210#
2211
2212#
2213# Enable USB support to see WiMAX USB drivers
2214#
2215CONFIG_WAN=y
2216CONFIG_HDLC=m
2217CONFIG_HDLC_RAW=m
2218CONFIG_HDLC_RAW_ETH=m
2219CONFIG_HDLC_CISCO=m
2220CONFIG_HDLC_FR=m
2221CONFIG_HDLC_PPP=m
2222CONFIG_HDLC_X25=m
2223CONFIG_PCI200SYN=m
2224CONFIG_WANXL=m
2225CONFIG_PC300TOO=m
2226CONFIG_FARSYNC=m
2227CONFIG_DSCC4=m
2228CONFIG_DSCC4_PCISYNC=y
2229CONFIG_DSCC4_PCI_RST=y
2230CONFIG_DLCI=m
2231CONFIG_DLCI_MAX=8
2232CONFIG_LAPBETHER=m
2233CONFIG_X25_ASY=m
2234CONFIG_IEEE802154_DRIVERS=m
2235# CONFIG_IEEE802154_FAKEHARD is not set
2236CONFIG_IEEE802154_FAKELB=m
2237CONFIG_IEEE802154_AT86RF230=m
2238CONFIG_IEEE802154_MRF24J40=m
2239CONFIG_XEN_NETDEV_FRONTEND=y
2240CONFIG_XEN_NETDEV_BACKEND=m
2241CONFIG_VMXNET3=m
2242CONFIG_ISDN=y
2243CONFIG_ISDN_I4L=m
2244CONFIG_ISDN_PPP=y
2245CONFIG_ISDN_PPP_VJ=y
2246CONFIG_ISDN_MPP=y
2247CONFIG_IPPP_FILTER=y
2248CONFIG_ISDN_PPP_BSDCOMP=m
2249CONFIG_ISDN_AUDIO=y
2250CONFIG_ISDN_TTY_FAX=y
2251CONFIG_ISDN_X25=y
2252
2253#
2254# ISDN feature submodules
2255#
2256CONFIG_ISDN_DIVERSION=m
2257
2258#
2259# ISDN4Linux hardware drivers
2260#
2261
2262#
2263# Passive cards
2264#
2265CONFIG_ISDN_DRV_HISAX=m
2266
2267#
2268# D-channel protocol features
2269#
2270CONFIG_HISAX_EURO=y
2271CONFIG_DE_AOC=y
2272# CONFIG_HISAX_NO_SENDCOMPLETE is not set
2273# CONFIG_HISAX_NO_LLC is not set
2274# CONFIG_HISAX_NO_KEYPAD is not set
2275CONFIG_HISAX_1TR6=y
2276CONFIG_HISAX_NI1=y
2277CONFIG_HISAX_MAX_CARDS=8
2278
2279#
2280# HiSax supported cards
2281#
2282CONFIG_HISAX_16_3=y
2283CONFIG_HISAX_TELESPCI=y
2284CONFIG_HISAX_S0BOX=y
2285CONFIG_HISAX_FRITZPCI=y
2286CONFIG_HISAX_AVM_A1_PCMCIA=y
2287CONFIG_HISAX_ELSA=y
2288CONFIG_HISAX_DIEHLDIVA=y
2289CONFIG_HISAX_SEDLBAUER=y
2290CONFIG_HISAX_NICCY=y
2291CONFIG_HISAX_BKM_A4T=y
2292CONFIG_HISAX_SCT_QUADRO=y
2293CONFIG_HISAX_GAZEL=y
2294CONFIG_HISAX_HFC_PCI=y
2295CONFIG_HISAX_W6692=y
2296CONFIG_HISAX_HFC_SX=y
2297# CONFIG_HISAX_DEBUG is not set
2298
2299#
2300# HiSax PCMCIA card service modules
2301#
2302
2303#
2304# HiSax sub driver modules
2305#
2306CONFIG_HISAX_HFC4S8S=m
2307CONFIG_HISAX_FRITZ_PCIPNP=m
2308
2309#
2310# Active cards
2311#
2312CONFIG_ISDN_CAPI=m
2313CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
2314CONFIG_CAPI_TRACE=y
2315CONFIG_ISDN_CAPI_MIDDLEWARE=y
2316CONFIG_ISDN_CAPI_CAPI20=m
2317CONFIG_ISDN_CAPI_CAPIDRV=m
2318
2319#
2320# CAPI hardware drivers
2321#
2322CONFIG_CAPI_AVM=y
2323CONFIG_ISDN_DRV_AVMB1_B1PCI=m
2324CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
2325CONFIG_ISDN_DRV_AVMB1_T1PCI=m
2326CONFIG_ISDN_DRV_AVMB1_C4=m
2327CONFIG_CAPI_EICON=y
2328CONFIG_ISDN_DIVAS=m
2329CONFIG_ISDN_DIVAS_BRIPCI=y
2330CONFIG_ISDN_DIVAS_PRIPCI=y
2331CONFIG_ISDN_DIVAS_DIVACAPI=m
2332CONFIG_ISDN_DIVAS_USERIDI=m
2333CONFIG_ISDN_DIVAS_MAINT=m
2334CONFIG_ISDN_DRV_GIGASET=m
2335# CONFIG_GIGASET_CAPI is not set
2336CONFIG_GIGASET_I4L=y
2337# CONFIG_GIGASET_DUMMYLL is not set
2338CONFIG_GIGASET_M101=m
2339# CONFIG_GIGASET_DEBUG is not set
2340CONFIG_HYSDN=m
2341CONFIG_HYSDN_CAPI=y
2342CONFIG_MISDN=m
2343CONFIG_MISDN_DSP=m
2344CONFIG_MISDN_L1OIP=m
2345
2346#
2347# mISDN hardware drivers
2348#
2349CONFIG_MISDN_HFCPCI=m
2350CONFIG_MISDN_HFCMULTI=m
2351CONFIG_MISDN_AVMFRITZ=m
2352CONFIG_MISDN_SPEEDFAX=m
2353CONFIG_MISDN_INFINEON=m
2354CONFIG_MISDN_W6692=m
2355CONFIG_MISDN_NETJET=m
2356CONFIG_MISDN_IPAC=m
2357CONFIG_MISDN_ISAR=m
2358CONFIG_ISDN_HDLC=m
2359
2360#
2361# Input device support
2362#
2363CONFIG_INPUT=y
2364CONFIG_INPUT_FF_MEMLESS=m
2365CONFIG_INPUT_POLLDEV=m
2366CONFIG_INPUT_SPARSEKMAP=m
2367CONFIG_INPUT_MATRIXKMAP=m
2368
2369#
2370# Userland interfaces
2371#
2372CONFIG_INPUT_MOUSEDEV=y
2373CONFIG_INPUT_MOUSEDEV_PSAUX=y
2374CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
2375CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
2376CONFIG_INPUT_JOYDEV=m
2377CONFIG_INPUT_EVDEV=y
2378CONFIG_INPUT_EVBUG=m
2379
2380#
2381# Input Device Drivers
2382#
2383CONFIG_INPUT_KEYBOARD=y
2384CONFIG_KEYBOARD_ADP5520=m
2385CONFIG_KEYBOARD_ADP5588=m
2386CONFIG_KEYBOARD_ADP5589=m
2387CONFIG_KEYBOARD_ATKBD=y
2388CONFIG_KEYBOARD_QT1070=m
2389CONFIG_KEYBOARD_QT2160=m
2390CONFIG_KEYBOARD_LKKBD=m
2391CONFIG_KEYBOARD_GPIO=m
2392CONFIG_KEYBOARD_GPIO_POLLED=m
2393CONFIG_KEYBOARD_TCA6416=m
2394CONFIG_KEYBOARD_TCA8418=m
2395CONFIG_KEYBOARD_MATRIX=m
2396CONFIG_KEYBOARD_LM8323=m
2397CONFIG_KEYBOARD_LM8333=m
2398CONFIG_KEYBOARD_MAX7359=m
2399CONFIG_KEYBOARD_MCS=m
2400CONFIG_KEYBOARD_MPR121=m
2401CONFIG_KEYBOARD_NEWTON=m
2402CONFIG_KEYBOARD_OPENCORES=m
2403CONFIG_KEYBOARD_SAMSUNG=m
2404CONFIG_KEYBOARD_STOWAWAY=m
2405CONFIG_KEYBOARD_SUNKBD=m
2406CONFIG_KEYBOARD_STMPE=m
2407CONFIG_KEYBOARD_TC3589X=m
2408CONFIG_KEYBOARD_XTKBD=m
2409CONFIG_KEYBOARD_CROS_EC=m
2410CONFIG_INPUT_MOUSE=y
2411CONFIG_MOUSE_PS2=m
2412CONFIG_MOUSE_PS2_ALPS=y
2413CONFIG_MOUSE_PS2_LOGIPS2PP=y
2414CONFIG_MOUSE_PS2_SYNAPTICS=y
2415CONFIG_MOUSE_PS2_CYPRESS=y
2416CONFIG_MOUSE_PS2_TRACKPOINT=y
2417CONFIG_MOUSE_PS2_ELANTECH=y
2418CONFIG_MOUSE_PS2_SENTELIC=y
2419CONFIG_MOUSE_PS2_TOUCHKIT=y
2420CONFIG_MOUSE_SERIAL=m
2421CONFIG_MOUSE_CYAPA=m
2422CONFIG_MOUSE_VSXXXAA=m
2423CONFIG_MOUSE_GPIO=m
2424CONFIG_MOUSE_SYNAPTICS_I2C=m
2425CONFIG_INPUT_JOYSTICK=y
2426CONFIG_JOYSTICK_ANALOG=m
2427CONFIG_JOYSTICK_A3D=m
2428CONFIG_JOYSTICK_ADI=m
2429CONFIG_JOYSTICK_COBRA=m
2430CONFIG_JOYSTICK_GF2K=m
2431CONFIG_JOYSTICK_GRIP=m
2432CONFIG_JOYSTICK_GRIP_MP=m
2433CONFIG_JOYSTICK_GUILLEMOT=m
2434CONFIG_JOYSTICK_INTERACT=m
2435CONFIG_JOYSTICK_SIDEWINDER=m
2436CONFIG_JOYSTICK_TMDC=m
2437CONFIG_JOYSTICK_IFORCE=m
2438CONFIG_JOYSTICK_IFORCE_232=y
2439CONFIG_JOYSTICK_WARRIOR=m
2440CONFIG_JOYSTICK_MAGELLAN=m
2441CONFIG_JOYSTICK_SPACEORB=m
2442CONFIG_JOYSTICK_SPACEBALL=m
2443CONFIG_JOYSTICK_STINGER=m
2444CONFIG_JOYSTICK_TWIDJOY=m
2445CONFIG_JOYSTICK_ZHENHUA=m
2446CONFIG_JOYSTICK_DB9=m
2447CONFIG_JOYSTICK_GAMECON=m
2448CONFIG_JOYSTICK_TURBOGRAFX=m
2449CONFIG_JOYSTICK_AS5011=m
2450CONFIG_JOYSTICK_JOYDUMP=m
2451CONFIG_JOYSTICK_WALKERA0701=m
2452CONFIG_INPUT_TABLET=y
2453CONFIG_INPUT_TOUCHSCREEN=y
2454CONFIG_TOUCHSCREEN_88PM860X=m
2455CONFIG_TOUCHSCREEN_ADS7846=m
2456CONFIG_TOUCHSCREEN_AD7877=m
2457CONFIG_TOUCHSCREEN_AD7879=m
2458CONFIG_TOUCHSCREEN_AD7879_I2C=m
2459CONFIG_TOUCHSCREEN_AD7879_SPI=m
2460CONFIG_TOUCHSCREEN_ATMEL_MXT=m
2461CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
2462CONFIG_TOUCHSCREEN_BU21013=m
2463CONFIG_TOUCHSCREEN_CY8CTMG110=m
2464CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
2465CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
2466CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
2467CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
2468CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
2469CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
2470CONFIG_TOUCHSCREEN_DA9034=m
2471CONFIG_TOUCHSCREEN_DA9052=m
2472CONFIG_TOUCHSCREEN_DYNAPRO=m
2473CONFIG_TOUCHSCREEN_HAMPSHIRE=m
2474CONFIG_TOUCHSCREEN_EETI=m
2475CONFIG_TOUCHSCREEN_EGALAX=m
2476CONFIG_TOUCHSCREEN_FUJITSU=m
2477CONFIG_TOUCHSCREEN_ILI210X=m
2478CONFIG_TOUCHSCREEN_GUNZE=m
2479CONFIG_TOUCHSCREEN_ELO=m
2480CONFIG_TOUCHSCREEN_WACOM_W8001=m
2481CONFIG_TOUCHSCREEN_WACOM_I2C=m
2482CONFIG_TOUCHSCREEN_MAX11801=m
2483CONFIG_TOUCHSCREEN_MCS5000=m
2484CONFIG_TOUCHSCREEN_MMS114=m
2485CONFIG_TOUCHSCREEN_MTOUCH=m
2486CONFIG_TOUCHSCREEN_INEXIO=m
2487CONFIG_TOUCHSCREEN_MK712=m
2488CONFIG_TOUCHSCREEN_PENMOUNT=m
2489CONFIG_TOUCHSCREEN_EDT_FT5X06=m
2490CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
2491CONFIG_TOUCHSCREEN_TOUCHWIN=m
2492CONFIG_TOUCHSCREEN_PIXCIR=m
2493CONFIG_TOUCHSCREEN_WM831X=m
2494CONFIG_TOUCHSCREEN_MC13783=m
2495CONFIG_TOUCHSCREEN_TOUCHIT213=m
2496CONFIG_TOUCHSCREEN_TSC_SERIO=m
2497CONFIG_TOUCHSCREEN_TSC2005=m
2498CONFIG_TOUCHSCREEN_TSC2007=m
2499CONFIG_TOUCHSCREEN_W90X900=m
2500CONFIG_TOUCHSCREEN_ST1232=m
2501CONFIG_TOUCHSCREEN_STMPE=m
2502CONFIG_TOUCHSCREEN_TPS6507X=m
2503CONFIG_TOUCHSCREEN_ZFORCE=m
2504CONFIG_INPUT_MISC=y
2505CONFIG_INPUT_88PM860X_ONKEY=m
2506CONFIG_INPUT_88PM80X_ONKEY=m
2507CONFIG_INPUT_AD714X=m
2508CONFIG_INPUT_AD714X_I2C=m
2509CONFIG_INPUT_AD714X_SPI=m
2510CONFIG_INPUT_BMA150=m
2511CONFIG_INPUT_MAX8925_ONKEY=m
2512CONFIG_INPUT_MC13783_PWRBUTTON=m
2513CONFIG_INPUT_MMA8450=m
2514CONFIG_INPUT_MPU3050=m
2515CONFIG_INPUT_GP2A=m
2516CONFIG_INPUT_GPIO_TILT_POLLED=m
2517CONFIG_INPUT_KXTJ9=m
2518# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
2519CONFIG_INPUT_RETU_PWRBUTTON=m
2520CONFIG_INPUT_TWL6040_VIBRA=m
2521CONFIG_INPUT_UINPUT=y
2522CONFIG_INPUT_PCF50633_PMU=m
2523CONFIG_INPUT_PCF8574=m
2524CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
2525CONFIG_INPUT_DA9052_ONKEY=m
2526CONFIG_INPUT_DA9055_ONKEY=m
2527CONFIG_INPUT_WM831X_ON=m
2528CONFIG_INPUT_ADXL34X=m
2529CONFIG_INPUT_ADXL34X_I2C=m
2530CONFIG_INPUT_ADXL34X_SPI=m
2531CONFIG_INPUT_CMA3000=m
2532CONFIG_INPUT_CMA3000_I2C=m
2533CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
2534
2535#
2536# Hardware I/O ports
2537#
2538CONFIG_SERIO=y
2539# CONFIG_SERIO_I8042 is not set
2540CONFIG_SERIO_SERPORT=m
2541CONFIG_SERIO_PARKBD=m
2542CONFIG_SERIO_AMBAKMI=m
2543CONFIG_SERIO_PCIPS2=m
2544CONFIG_SERIO_LIBPS2=y
2545CONFIG_SERIO_RAW=m
2546CONFIG_SERIO_ALTERA_PS2=m
2547CONFIG_SERIO_PS2MULT=m
2548CONFIG_SERIO_ARC_PS2=m
2549CONFIG_SERIO_APBPS2=m
2550CONFIG_SERIO_OLPC_APSP=m
2551CONFIG_GAMEPORT=m
2552CONFIG_GAMEPORT_NS558=m
2553CONFIG_GAMEPORT_L4=m
2554CONFIG_GAMEPORT_EMU10K1=m
2555CONFIG_GAMEPORT_FM801=m
2556
2557#
2558# Character devices
2559#
2560CONFIG_TTY=y
2561CONFIG_VT=y
2562CONFIG_CONSOLE_TRANSLATIONS=y
2563CONFIG_VT_CONSOLE=y
2564CONFIG_HW_CONSOLE=y
2565CONFIG_VT_HW_CONSOLE_BINDING=y
2566CONFIG_UNIX98_PTYS=y
2567CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
2568CONFIG_LEGACY_PTYS=y
2569CONFIG_LEGACY_PTY_COUNT=0
2570CONFIG_SERIAL_NONSTANDARD=y
2571CONFIG_ROCKETPORT=m
2572CONFIG_CYCLADES=m
2573# CONFIG_CYZ_INTR is not set
2574CONFIG_MOXA_INTELLIO=m
2575CONFIG_MOXA_SMARTIO=m
2576CONFIG_SYNCLINKMP=m
2577CONFIG_SYNCLINK_GT=m
2578CONFIG_NOZOMI=m
2579CONFIG_ISI=m
2580CONFIG_N_HDLC=m
2581# CONFIG_N_GSM is not set
2582CONFIG_TRACE_ROUTER=m
2583CONFIG_TRACE_SINK=m
2584# CONFIG_DEVKMEM is not set
2585
2586#
2587# Serial drivers
2588#
2589CONFIG_SERIAL_8250=y
2590# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
2591CONFIG_SERIAL_8250_CONSOLE=y
2592CONFIG_SERIAL_8250_DMA=y
2593CONFIG_SERIAL_8250_PCI=m
2594CONFIG_SERIAL_8250_NR_UARTS=48
2595CONFIG_SERIAL_8250_RUNTIME_UARTS=32
2596CONFIG_SERIAL_8250_EXTENDED=y
2597CONFIG_SERIAL_8250_MANY_PORTS=y
2598CONFIG_SERIAL_8250_SHARE_IRQ=y
2599# CONFIG_SERIAL_8250_DETECT_IRQ is not set
2600CONFIG_SERIAL_8250_RSA=y
2601CONFIG_SERIAL_8250_DW=m
2602
2603#
2604# Non-8250 serial port support
2605#
2606CONFIG_SERIAL_AMBA_PL010=m
2607CONFIG_SERIAL_AMBA_PL011=y
2608CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
2609CONFIG_SERIAL_MAX3100=m
2610CONFIG_SERIAL_MAX310X=y
2611CONFIG_SERIAL_MRST_MAX3110=m
2612CONFIG_SERIAL_MFD_HSU=m
2613CONFIG_SERIAL_UARTLITE=m
2614CONFIG_SERIAL_CORE=y
2615CONFIG_SERIAL_CORE_CONSOLE=y
2616CONFIG_SERIAL_JSM=m
2617CONFIG_SERIAL_OF_PLATFORM=y
2618CONFIG_SERIAL_SCCNXP=y
2619CONFIG_SERIAL_SCCNXP_CONSOLE=y
2620CONFIG_SERIAL_TIMBERDALE=m
2621CONFIG_SERIAL_ALTERA_JTAGUART=m
2622CONFIG_SERIAL_ALTERA_UART=m
2623CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
2624CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
2625# CONFIG_SERIAL_IFX6X60 is not set
2626CONFIG_SERIAL_PCH_UART=m
2627CONFIG_SERIAL_XILINX_PS_UART=m
2628CONFIG_SERIAL_ARC=m
2629CONFIG_SERIAL_ARC_NR_PORTS=1
2630CONFIG_SERIAL_RP2=m
2631CONFIG_SERIAL_RP2_NR_UARTS=32
2632# CONFIG_SERIAL_FSL_LPUART is not set
2633CONFIG_TTY_PRINTK=y
2634CONFIG_PRINTER=m
2635# CONFIG_LP_CONSOLE is not set
2636CONFIG_PPDEV=m
2637CONFIG_HVC_DRIVER=y
2638CONFIG_HVC_IRQ=y
2639CONFIG_HVC_XEN=y
2640CONFIG_HVC_XEN_FRONTEND=y
2641CONFIG_VIRTIO_CONSOLE=y
2642CONFIG_IPMI_HANDLER=y
2643# CONFIG_IPMI_PANIC_EVENT is not set
2644CONFIG_IPMI_DEVICE_INTERFACE=m
2645CONFIG_IPMI_SI=m
2646CONFIG_IPMI_WATCHDOG=m
2647CONFIG_IPMI_POWEROFF=m
2648CONFIG_HW_RANDOM=y
2649CONFIG_HW_RANDOM_TIMERIOMEM=m
2650# CONFIG_HW_RANDOM_ATMEL is not set
2651CONFIG_HW_RANDOM_VIRTIO=m
2652# CONFIG_HW_RANDOM_EXYNOS is not set
2653CONFIG_HW_RANDOM_TPM=m
2654CONFIG_R3964=m
2655CONFIG_APPLICOM=m
2656
2657#
2658# PCMCIA character devices
2659#
2660CONFIG_RAW_DRIVER=m
2661CONFIG_MAX_RAW_DEVS=256
2662CONFIG_TCG_TPM=y
2663CONFIG_TCG_TIS_I2C_ATMEL=m
2664CONFIG_TCG_TIS_I2C_INFINEON=m
2665CONFIG_TCG_TIS_I2C_NUVOTON=m
2666CONFIG_TCG_ST33_I2C=m
2667CONFIG_TCG_XEN=m
2668CONFIG_DEVPORT=y
2669CONFIG_I2C=y
2670CONFIG_I2C_BOARDINFO=y
2671CONFIG_I2C_COMPAT=y
2672CONFIG_I2C_CHARDEV=m
2673CONFIG_I2C_MUX=m
2674
2675#
2676# Multiplexer I2C Chip support
2677#
2678CONFIG_I2C_ARB_GPIO_CHALLENGE=m
2679CONFIG_I2C_MUX_GPIO=m
2680CONFIG_I2C_MUX_PCA9541=m
2681CONFIG_I2C_MUX_PCA954x=m
2682CONFIG_I2C_HELPER_AUTO=y
2683CONFIG_I2C_SMBUS=m
2684CONFIG_I2C_ALGOBIT=m
2685CONFIG_I2C_ALGOPCA=m
2686
2687#
2688# I2C Hardware Bus support
2689#
2690
2691#
2692# PC SMBus host controller drivers
2693#
2694CONFIG_I2C_ALI1535=m
2695CONFIG_I2C_ALI1563=m
2696CONFIG_I2C_ALI15X3=m
2697CONFIG_I2C_AMD756=m
2698CONFIG_I2C_AMD8111=m
2699CONFIG_I2C_I801=m
2700CONFIG_I2C_ISCH=m
2701CONFIG_I2C_PIIX4=m
2702CONFIG_I2C_NFORCE2=m
2703CONFIG_I2C_SIS5595=m
2704CONFIG_I2C_SIS630=m
2705CONFIG_I2C_SIS96X=m
2706CONFIG_I2C_VIA=m
2707CONFIG_I2C_VIAPRO=m
2708
2709#
2710# I2C system bus drivers (mostly embedded / system-on-chip)
2711#
2712CONFIG_I2C_CBUS_GPIO=m
2713CONFIG_I2C_DESIGNWARE_CORE=m
2714CONFIG_I2C_DESIGNWARE_PLATFORM=m
2715CONFIG_I2C_DESIGNWARE_PCI=m
2716CONFIG_I2C_EG20T=m
2717CONFIG_I2C_GPIO=m
2718CONFIG_I2C_KEMPLD=m
2719CONFIG_I2C_NOMADIK=m
2720CONFIG_I2C_OCORES=m
2721CONFIG_I2C_PCA_PLATFORM=m
2722# CONFIG_I2C_PXA_PCI is not set
2723CONFIG_I2C_SIMTEC=m
2724CONFIG_I2C_VERSATILE=m
2725CONFIG_I2C_XILINX=m
2726
2727#
2728# External I2C/SMBus adapter drivers
2729#
2730CONFIG_I2C_PARPORT=m
2731CONFIG_I2C_PARPORT_LIGHT=m
2732CONFIG_I2C_TAOS_EVM=m
2733
2734#
2735# Other I2C/SMBus bus drivers
2736#
2737CONFIG_I2C_STUB=m
2738# CONFIG_I2C_DEBUG_CORE is not set
2739# CONFIG_I2C_DEBUG_ALGO is not set
2740# CONFIG_I2C_DEBUG_BUS is not set
2741CONFIG_SPI=y
2742# CONFIG_SPI_DEBUG is not set
2743CONFIG_SPI_MASTER=y
2744
2745#
2746# SPI Master Controller Drivers
2747#
2748CONFIG_SPI_ALTERA=m
2749CONFIG_SPI_BITBANG=m
2750CONFIG_SPI_BUTTERFLY=m
2751CONFIG_SPI_GPIO=m
2752CONFIG_SPI_LM70_LLP=m
2753CONFIG_SPI_FSL_LIB=y
2754CONFIG_SPI_FSL_SPI=y
2755CONFIG_SPI_OC_TINY=m
2756CONFIG_SPI_PL022=m
2757CONFIG_SPI_PXA2XX_DMA=y
2758CONFIG_SPI_PXA2XX=m
2759CONFIG_SPI_PXA2XX_PCI=m
2760CONFIG_SPI_SC18IS602=m
2761CONFIG_SPI_TOPCLIFF_PCH=m
2762CONFIG_SPI_XCOMM=m
2763# CONFIG_SPI_XILINX is not set
2764CONFIG_SPI_DESIGNWARE=m
2765CONFIG_SPI_DW_PCI=m
2766CONFIG_SPI_DW_MMIO=m
2767
2768#
2769# SPI Protocol Masters
2770#
2771CONFIG_SPI_SPIDEV=m
2772CONFIG_SPI_TLE62X0=m
2773CONFIG_HSI=m
2774CONFIG_HSI_BOARDINFO=y
2775
2776#
2777# HSI clients
2778#
2779CONFIG_HSI_CHAR=m
2780
2781#
2782# PPS support
2783#
2784CONFIG_PPS=y
2785# CONFIG_PPS_DEBUG is not set
2786
2787#
2788# PPS clients support
2789#
2790# CONFIG_PPS_CLIENT_KTIMER is not set
2791CONFIG_PPS_CLIENT_LDISC=m
2792CONFIG_PPS_CLIENT_PARPORT=m
2793CONFIG_PPS_CLIENT_GPIO=m
2794
2795#
2796# PPS generators support
2797#
2798
2799#
2800# PTP clock support
2801#
2802CONFIG_PTP_1588_CLOCK=y
2803
2804#
2805# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
2806#
2807CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
2808CONFIG_ARCH_REQUIRE_GPIOLIB=y
2809CONFIG_GPIOLIB=y
2810CONFIG_GPIO_DEVRES=y
2811CONFIG_OF_GPIO=y
2812# CONFIG_DEBUG_GPIO is not set
2813# CONFIG_GPIO_SYSFS is not set
2814CONFIG_GPIO_GENERIC=m
2815CONFIG_GPIO_DA9052=m
2816CONFIG_GPIO_DA9055=m
2817CONFIG_GPIO_MAX730X=m
2818
2819#
2820# Memory mapped GPIO drivers:
2821#
2822CONFIG_GPIO_GENERIC_PLATFORM=m
2823CONFIG_GPIO_PL061=y
2824CONFIG_GPIO_TS5500=m
2825CONFIG_GPIO_VX855=m
2826CONFIG_GPIO_GRGPIO=m
2827
2828#
2829# I2C GPIO expanders:
2830#
2831CONFIG_GPIO_ARIZONA=m
2832CONFIG_GPIO_MAX7300=m
2833CONFIG_GPIO_MAX732X=m
2834CONFIG_GPIO_PCA953X=m
2835CONFIG_GPIO_PCF857X=m
2836CONFIG_GPIO_RC5T583=y
2837CONFIG_GPIO_SX150X=y
2838CONFIG_GPIO_STMPE=y
2839CONFIG_GPIO_TC3589X=y
2840CONFIG_GPIO_TPS65912=m
2841# CONFIG_GPIO_TWL6040 is not set
2842CONFIG_GPIO_WM831X=m
2843CONFIG_GPIO_WM8350=m
2844CONFIG_GPIO_WM8994=m
2845CONFIG_GPIO_ADP5520=m
2846CONFIG_GPIO_ADP5588=m
2847CONFIG_GPIO_ADNP=m
2848
2849#
2850# PCI GPIO expanders:
2851#
2852CONFIG_GPIO_AMD8111=m
2853CONFIG_GPIO_ML_IOH=m
2854CONFIG_GPIO_TIMBERDALE=y
2855CONFIG_GPIO_RDC321X=m
2856
2857#
2858# SPI GPIO expanders:
2859#
2860CONFIG_GPIO_MAX7301=m
2861CONFIG_GPIO_MCP23S08=m
2862CONFIG_GPIO_MC33880=m
2863CONFIG_GPIO_74X164=m
2864
2865#
2866# AC97 GPIO expanders:
2867#
2868
2869#
2870# LPC GPIO expanders:
2871#
2872CONFIG_GPIO_KEMPLD=m
2873
2874#
2875# MODULbus GPIO expanders:
2876#
2877CONFIG_GPIO_JANZ_TTL=m
2878CONFIG_GPIO_PALMAS=y
2879CONFIG_GPIO_TPS6586X=y
2880CONFIG_GPIO_TPS65910=y
2881CONFIG_GPIO_BCM_KONA=y
2882
2883#
2884# USB GPIO expanders:
2885#
2886CONFIG_W1=m
2887CONFIG_W1_CON=y
2888
2889#
2890# 1-wire Bus Masters
2891#
2892CONFIG_W1_MASTER_MATROX=m
2893CONFIG_W1_MASTER_DS2482=m
2894CONFIG_W1_MASTER_DS1WM=m
2895CONFIG_W1_MASTER_GPIO=m
2896
2897#
2898# 1-wire Slaves
2899#
2900CONFIG_W1_SLAVE_THERM=m
2901CONFIG_W1_SLAVE_SMEM=m
2902CONFIG_W1_SLAVE_DS2408=m
2903CONFIG_W1_SLAVE_DS2408_READBACK=y
2904CONFIG_W1_SLAVE_DS2413=m
2905CONFIG_W1_SLAVE_DS2423=m
2906CONFIG_W1_SLAVE_DS2431=m
2907CONFIG_W1_SLAVE_DS2433=m
2908# CONFIG_W1_SLAVE_DS2433_CRC is not set
2909CONFIG_W1_SLAVE_DS2760=m
2910CONFIG_W1_SLAVE_DS2780=m
2911CONFIG_W1_SLAVE_DS2781=m
2912CONFIG_W1_SLAVE_DS28E04=m
2913CONFIG_W1_SLAVE_BQ27000=m
2914CONFIG_POWER_SUPPLY=y
2915# CONFIG_POWER_SUPPLY_DEBUG is not set
2916CONFIG_PDA_POWER=m
2917CONFIG_GENERIC_ADC_BATTERY=m
2918CONFIG_MAX8925_POWER=m
2919CONFIG_WM831X_BACKUP=m
2920CONFIG_WM831X_POWER=m
2921CONFIG_WM8350_POWER=m
2922CONFIG_TEST_POWER=m
2923CONFIG_BATTERY_88PM860X=m
2924CONFIG_BATTERY_DS2760=m
2925CONFIG_BATTERY_DS2780=m
2926CONFIG_BATTERY_DS2781=m
2927CONFIG_BATTERY_DS2782=m
2928CONFIG_BATTERY_SBS=m
2929CONFIG_BATTERY_BQ27x00=m
2930CONFIG_BATTERY_BQ27X00_I2C=y
2931CONFIG_BATTERY_BQ27X00_PLATFORM=y
2932CONFIG_BATTERY_DA9030=m
2933CONFIG_BATTERY_DA9052=m
2934CONFIG_BATTERY_MAX17040=m
2935CONFIG_BATTERY_MAX17042=m
2936CONFIG_CHARGER_88PM860X=m
2937CONFIG_CHARGER_PCF50633=m
2938CONFIG_CHARGER_MAX8903=m
2939CONFIG_CHARGER_LP8727=m
2940CONFIG_CHARGER_LP8788=m
2941CONFIG_CHARGER_GPIO=m
2942CONFIG_CHARGER_MANAGER=y
2943CONFIG_CHARGER_MAX8997=m
2944CONFIG_CHARGER_MAX8998=m
2945CONFIG_CHARGER_BQ2415X=m
2946CONFIG_CHARGER_BQ24190=m
2947CONFIG_CHARGER_BQ24735=m
2948CONFIG_CHARGER_SMB347=m
2949CONFIG_CHARGER_TPS65090=m
2950CONFIG_POWER_RESET=y
2951CONFIG_POWER_RESET_GPIO=y
2952CONFIG_POWER_RESET_VEXPRESS=y
2953# CONFIG_POWER_RESET_XGENE is not set
2954CONFIG_POWER_RESET_SYSCON=y
2955CONFIG_POWER_AVS=y
2956CONFIG_HWMON=y
2957CONFIG_HWMON_VID=m
2958# CONFIG_HWMON_DEBUG_CHIP is not set
2959
2960#
2961# Native drivers
2962#
2963CONFIG_SENSORS_AD7314=m
2964CONFIG_SENSORS_AD7414=m
2965CONFIG_SENSORS_AD7418=m
2966CONFIG_SENSORS_ADCXX=m
2967CONFIG_SENSORS_ADM1021=m
2968CONFIG_SENSORS_ADM1025=m
2969CONFIG_SENSORS_ADM1026=m
2970CONFIG_SENSORS_ADM1029=m
2971CONFIG_SENSORS_ADM1031=m
2972CONFIG_SENSORS_ADM9240=m
2973CONFIG_SENSORS_ADT7X10=m
2974CONFIG_SENSORS_ADT7310=m
2975CONFIG_SENSORS_ADT7410=m
2976CONFIG_SENSORS_ADT7411=m
2977CONFIG_SENSORS_ADT7462=m
2978CONFIG_SENSORS_ADT7470=m
2979CONFIG_SENSORS_ADT7475=m
2980CONFIG_SENSORS_ASC7621=m
2981CONFIG_SENSORS_ATXP1=m
2982CONFIG_SENSORS_DS620=m
2983CONFIG_SENSORS_DS1621=m
2984CONFIG_SENSORS_DA9052_ADC=m
2985CONFIG_SENSORS_DA9055=m
2986CONFIG_SENSORS_I5K_AMB=m
2987CONFIG_SENSORS_F71805F=m
2988CONFIG_SENSORS_F71882FG=m
2989CONFIG_SENSORS_F75375S=m
2990CONFIG_SENSORS_G760A=m
2991CONFIG_SENSORS_G762=m
2992CONFIG_SENSORS_GL518SM=m
2993CONFIG_SENSORS_GL520SM=m
2994CONFIG_SENSORS_GPIO_FAN=m
2995CONFIG_SENSORS_HIH6130=m
2996CONFIG_SENSORS_HTU21=m
2997CONFIG_SENSORS_IBMAEM=m
2998CONFIG_SENSORS_IBMPEX=m
2999CONFIG_SENSORS_IIO_HWMON=m
3000CONFIG_SENSORS_IT87=m
3001CONFIG_SENSORS_JC42=m
3002CONFIG_SENSORS_LINEAGE=m
3003CONFIG_SENSORS_LM63=m
3004CONFIG_SENSORS_LM70=m
3005CONFIG_SENSORS_LM73=m
3006CONFIG_SENSORS_LM75=m
3007CONFIG_SENSORS_LM77=m
3008CONFIG_SENSORS_LM78=m
3009CONFIG_SENSORS_LM80=m
3010CONFIG_SENSORS_LM83=m
3011CONFIG_SENSORS_LM85=m
3012CONFIG_SENSORS_LM87=m
3013CONFIG_SENSORS_LM90=m
3014CONFIG_SENSORS_LM92=m
3015CONFIG_SENSORS_LM93=m
3016CONFIG_SENSORS_LTC4151=m
3017CONFIG_SENSORS_LTC4215=m
3018CONFIG_SENSORS_LTC4245=m
3019CONFIG_SENSORS_LTC4261=m
3020CONFIG_SENSORS_LM95234=m
3021CONFIG_SENSORS_LM95241=m
3022CONFIG_SENSORS_LM95245=m
3023CONFIG_SENSORS_MAX1111=m
3024CONFIG_SENSORS_MAX16065=m
3025CONFIG_SENSORS_MAX1619=m
3026CONFIG_SENSORS_MAX1668=m
3027CONFIG_SENSORS_MAX197=m
3028CONFIG_SENSORS_MAX6639=m
3029CONFIG_SENSORS_MAX6642=m
3030CONFIG_SENSORS_MAX6650=m
3031CONFIG_SENSORS_MAX6697=m
3032CONFIG_SENSORS_MCP3021=m
3033CONFIG_SENSORS_NCT6775=m
3034CONFIG_SENSORS_NTC_THERMISTOR=m
3035CONFIG_SENSORS_PC87360=m
3036CONFIG_SENSORS_PC87427=m
3037CONFIG_SENSORS_PCF8591=m
3038CONFIG_PMBUS=m
3039CONFIG_SENSORS_PMBUS=m
3040CONFIG_SENSORS_ADM1275=m
3041CONFIG_SENSORS_LM25066=m
3042CONFIG_SENSORS_LTC2978=m
3043CONFIG_SENSORS_MAX16064=m
3044CONFIG_SENSORS_MAX34440=m
3045CONFIG_SENSORS_MAX8688=m
3046CONFIG_SENSORS_UCD9000=m
3047CONFIG_SENSORS_UCD9200=m
3048CONFIG_SENSORS_ZL6100=m
3049CONFIG_SENSORS_SHT15=m
3050CONFIG_SENSORS_SHT21=m
3051CONFIG_SENSORS_SIS5595=m
3052CONFIG_SENSORS_SMM665=m
3053CONFIG_SENSORS_DME1737=m
3054CONFIG_SENSORS_EMC1403=m
3055CONFIG_SENSORS_EMC2103=m
3056CONFIG_SENSORS_EMC6W201=m
3057CONFIG_SENSORS_SMSC47M1=m
3058CONFIG_SENSORS_SMSC47M192=m
3059CONFIG_SENSORS_SMSC47B397=m
3060CONFIG_SENSORS_SCH56XX_COMMON=m
3061CONFIG_SENSORS_SCH5627=m
3062CONFIG_SENSORS_SCH5636=m
3063CONFIG_SENSORS_ADS1015=m
3064CONFIG_SENSORS_ADS7828=m
3065CONFIG_SENSORS_ADS7871=m
3066CONFIG_SENSORS_AMC6821=m
3067CONFIG_SENSORS_INA209=m
3068CONFIG_SENSORS_INA2XX=m
3069CONFIG_SENSORS_THMC50=m
3070CONFIG_SENSORS_TMP102=m
3071CONFIG_SENSORS_TMP401=m
3072CONFIG_SENSORS_TMP421=m
3073CONFIG_SENSORS_VEXPRESS=m
3074CONFIG_SENSORS_VIA686A=m
3075CONFIG_SENSORS_VT1211=m
3076CONFIG_SENSORS_VT8231=m
3077CONFIG_SENSORS_W83781D=m
3078CONFIG_SENSORS_W83791D=m
3079CONFIG_SENSORS_W83792D=m
3080CONFIG_SENSORS_W83793=m
3081CONFIG_SENSORS_W83795=m
3082# CONFIG_SENSORS_W83795_FANCTRL is not set
3083CONFIG_SENSORS_W83L785TS=m
3084CONFIG_SENSORS_W83L786NG=m
3085CONFIG_SENSORS_W83627HF=m
3086CONFIG_SENSORS_W83627EHF=m
3087CONFIG_SENSORS_WM831X=m
3088CONFIG_SENSORS_WM8350=m
3089CONFIG_SENSORS_MC13783_ADC=m
3090CONFIG_THERMAL=y
3091CONFIG_THERMAL_HWMON=y
3092CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
3093# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
3094# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
3095CONFIG_THERMAL_GOV_FAIR_SHARE=y
3096CONFIG_THERMAL_GOV_STEP_WISE=y
3097CONFIG_THERMAL_GOV_USER_SPACE=y
3098CONFIG_THERMAL_EMULATION=y
3099
3100#
3101# Texas Instruments thermal drivers
3102#
3103CONFIG_WATCHDOG=y
3104CONFIG_WATCHDOG_CORE=y
3105# CONFIG_WATCHDOG_NOWAYOUT is not set
3106
3107#
3108# Watchdog Device Drivers
3109#
3110CONFIG_SOFT_WATCHDOG=m
3111CONFIG_DA9052_WATCHDOG=m
3112CONFIG_DA9055_WATCHDOG=m
3113CONFIG_WM831X_WATCHDOG=m
3114CONFIG_WM8350_WATCHDOG=m
3115CONFIG_RETU_WATCHDOG=m
3116CONFIG_ALIM7101_WDT=m
3117CONFIG_I6300ESB_WDT=m
3118CONFIG_KEMPLD_WDT=m
3119CONFIG_MEN_A21_WDT=m
3120CONFIG_XEN_WDT=m
3121
3122#
3123# PCI-based Watchdog Cards
3124#
3125CONFIG_PCIPCWATCHDOG=m
3126CONFIG_WDTPCI=m
3127CONFIG_SSB_POSSIBLE=y
3128
3129#
3130# Sonics Silicon Backplane
3131#
3132CONFIG_SSB=m
3133CONFIG_SSB_SPROM=y
3134CONFIG_SSB_BLOCKIO=y
3135CONFIG_SSB_PCIHOST_POSSIBLE=y
3136CONFIG_SSB_PCIHOST=y
3137CONFIG_SSB_B43_PCI_BRIDGE=y
3138CONFIG_SSB_SDIOHOST_POSSIBLE=y
3139CONFIG_SSB_SDIOHOST=y
3140# CONFIG_SSB_SILENT is not set
3141# CONFIG_SSB_DEBUG is not set
3142CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
3143CONFIG_SSB_DRIVER_PCICORE=y
3144CONFIG_SSB_DRIVER_GPIO=y
3145CONFIG_BCMA_POSSIBLE=y
3146
3147#
3148# Broadcom specific AMBA
3149#
3150CONFIG_BCMA=m
3151CONFIG_BCMA_BLOCKIO=y
3152CONFIG_BCMA_HOST_PCI_POSSIBLE=y
3153CONFIG_BCMA_HOST_PCI=y
3154CONFIG_BCMA_HOST_SOC=y
3155CONFIG_BCMA_DRIVER_GMAC_CMN=y
3156CONFIG_BCMA_DRIVER_GPIO=y
3157# CONFIG_BCMA_DEBUG is not set
3158
3159#
3160# Multifunction device drivers
3161#
3162CONFIG_MFD_CORE=y
3163CONFIG_MFD_AS3711=y
3164CONFIG_MFD_AS3722=y
3165CONFIG_PMIC_ADP5520=y
3166CONFIG_MFD_AAT2870_CORE=y
3167CONFIG_MFD_CROS_EC=m
3168CONFIG_MFD_CROS_EC_I2C=m
3169CONFIG_MFD_CROS_EC_SPI=m
3170CONFIG_PMIC_DA903X=y
3171CONFIG_PMIC_DA9052=y
3172CONFIG_MFD_DA9052_SPI=y
3173CONFIG_MFD_DA9052_I2C=y
3174CONFIG_MFD_DA9055=y
3175CONFIG_MFD_DA9063=y
3176CONFIG_MFD_MC13783=m
3177CONFIG_MFD_MC13XXX=m
3178CONFIG_MFD_MC13XXX_SPI=m
3179CONFIG_MFD_MC13XXX_I2C=m
3180CONFIG_HTC_PASIC3=m
3181CONFIG_HTC_I2CPLD=y
3182CONFIG_LPC_ICH=m
3183CONFIG_LPC_SCH=m
3184CONFIG_MFD_JANZ_CMODIO=m
3185CONFIG_MFD_KEMPLD=m
3186CONFIG_MFD_88PM800=m
3187CONFIG_MFD_88PM805=m
3188CONFIG_MFD_88PM860X=y
3189CONFIG_MFD_MAX77686=y
3190CONFIG_MFD_MAX77693=y
3191CONFIG_MFD_MAX8907=m
3192CONFIG_MFD_MAX8925=y
3193CONFIG_MFD_MAX8997=y
3194CONFIG_MFD_MAX8998=y
3195# CONFIG_EZX_PCAP is not set
3196CONFIG_MFD_RETU=m
3197CONFIG_MFD_PCF50633=m
3198CONFIG_PCF50633_ADC=m
3199CONFIG_PCF50633_GPIO=m
3200CONFIG_MFD_RDC321X=m
3201CONFIG_MFD_RTSX_PCI=m
3202CONFIG_MFD_RC5T583=y
3203CONFIG_MFD_SEC_CORE=y
3204CONFIG_MFD_SI476X_CORE=m
3205CONFIG_MFD_SM501=m
3206# CONFIG_MFD_SM501_GPIO is not set
3207CONFIG_MFD_SMSC=y
3208CONFIG_ABX500_CORE=y
3209CONFIG_AB3100_CORE=y
3210CONFIG_AB3100_OTP=m
3211CONFIG_MFD_STMPE=y
3212
3213#
3214# STMicroelectronics STMPE Interface Drivers
3215#
3216CONFIG_STMPE_I2C=y
3217CONFIG_STMPE_SPI=y
3218CONFIG_MFD_SYSCON=y
3219# CONFIG_MFD_TI_AM335X_TSCADC is not set
3220CONFIG_MFD_LP8788=y
3221CONFIG_MFD_PALMAS=y
3222CONFIG_TPS6105X=m
3223CONFIG_TPS65010=m
3224CONFIG_TPS6507X=m
3225CONFIG_MFD_TPS65090=y
3226CONFIG_MFD_TPS65217=m
3227CONFIG_MFD_TPS6586X=y
3228CONFIG_MFD_TPS65910=y
3229CONFIG_MFD_TPS65912=y
3230CONFIG_MFD_TPS65912_I2C=y
3231CONFIG_MFD_TPS65912_SPI=y
3232CONFIG_MFD_TPS80031=y
3233# CONFIG_TWL4030_CORE is not set
3234CONFIG_TWL6040_CORE=y
3235CONFIG_MFD_WL1273_CORE=m
3236CONFIG_MFD_LM3533=m
3237CONFIG_MFD_TIMBERDALE=m
3238CONFIG_MFD_TC3589X=y
3239# CONFIG_MFD_TMIO is not set
3240CONFIG_MFD_VX855=m
3241CONFIG_MFD_ARIZONA=y
3242CONFIG_MFD_ARIZONA_I2C=m
3243CONFIG_MFD_ARIZONA_SPI=m
3244CONFIG_MFD_WM5102=y
3245CONFIG_MFD_WM5110=y
3246CONFIG_MFD_WM8997=y
3247CONFIG_MFD_WM8400=y
3248CONFIG_MFD_WM831X=y
3249CONFIG_MFD_WM831X_I2C=y
3250CONFIG_MFD_WM831X_SPI=y
3251CONFIG_MFD_WM8350=y
3252CONFIG_MFD_WM8350_I2C=y
3253CONFIG_MFD_WM8994=y
3254CONFIG_VEXPRESS_CONFIG=y
3255CONFIG_REGULATOR=y
3256# CONFIG_REGULATOR_DEBUG is not set
3257CONFIG_REGULATOR_FIXED_VOLTAGE=m
3258CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
3259CONFIG_REGULATOR_USERSPACE_CONSUMER=m
3260CONFIG_REGULATOR_88PM800=m
3261CONFIG_REGULATOR_88PM8607=y
3262CONFIG_REGULATOR_AD5398=m
3263CONFIG_REGULATOR_ANATOP=m
3264CONFIG_REGULATOR_AAT2870=m
3265CONFIG_REGULATOR_AB3100=m
3266CONFIG_REGULATOR_AS3711=m
3267CONFIG_REGULATOR_AS3722=m
3268CONFIG_REGULATOR_DA903X=m
3269CONFIG_REGULATOR_DA9052=m
3270CONFIG_REGULATOR_DA9055=m
3271CONFIG_REGULATOR_DA9063=m
3272CONFIG_REGULATOR_DA9210=m
3273CONFIG_REGULATOR_FAN53555=m
3274CONFIG_REGULATOR_GPIO=m
3275CONFIG_REGULATOR_ISL6271A=m
3276CONFIG_REGULATOR_LP3971=m
3277CONFIG_REGULATOR_LP3972=m
3278CONFIG_REGULATOR_LP872X=y
3279CONFIG_REGULATOR_LP8755=m
3280CONFIG_REGULATOR_LP8788=y
3281CONFIG_REGULATOR_MAX1586=m
3282CONFIG_REGULATOR_MAX8649=m
3283CONFIG_REGULATOR_MAX8660=m
3284CONFIG_REGULATOR_MAX8907=m
3285CONFIG_REGULATOR_MAX8925=m
3286CONFIG_REGULATOR_MAX8952=m
3287CONFIG_REGULATOR_MAX8973=m
3288CONFIG_REGULATOR_MAX8997=m
3289CONFIG_REGULATOR_MAX8998=m
3290CONFIG_REGULATOR_MAX77686=m
3291CONFIG_REGULATOR_MAX77693=m
3292CONFIG_REGULATOR_MC13XXX_CORE=m
3293CONFIG_REGULATOR_MC13783=m
3294CONFIG_REGULATOR_MC13892=m
3295CONFIG_REGULATOR_PALMAS=m
3296CONFIG_REGULATOR_PCF50633=m
3297CONFIG_REGULATOR_PFUZE100=m
3298CONFIG_REGULATOR_RC5T583=m
3299# CONFIG_REGULATOR_S2MPS11 is not set
3300CONFIG_REGULATOR_S5M8767=m
3301CONFIG_REGULATOR_TPS51632=m
3302CONFIG_REGULATOR_TPS6105X=m
3303CONFIG_REGULATOR_TPS62360=m
3304CONFIG_REGULATOR_TPS65023=m
3305CONFIG_REGULATOR_TPS6507X=m
3306CONFIG_REGULATOR_TPS65090=m
3307CONFIG_REGULATOR_TPS65217=m
3308CONFIG_REGULATOR_TPS6524X=m
3309CONFIG_REGULATOR_TPS6586X=m
3310CONFIG_REGULATOR_TPS65910=m
3311CONFIG_REGULATOR_TPS65912=m
3312CONFIG_REGULATOR_TPS80031=m
3313CONFIG_REGULATOR_VEXPRESS=m
3314CONFIG_REGULATOR_WM831X=m
3315CONFIG_REGULATOR_WM8350=m
3316CONFIG_REGULATOR_WM8400=m
3317CONFIG_REGULATOR_WM8994=m
3318CONFIG_MEDIA_SUPPORT=m
3319
3320#
3321# Multimedia core support
3322#
3323CONFIG_MEDIA_CAMERA_SUPPORT=y
3324CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
3325CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
3326CONFIG_MEDIA_RADIO_SUPPORT=y
3327CONFIG_MEDIA_RC_SUPPORT=y
3328# CONFIG_MEDIA_CONTROLLER is not set
3329CONFIG_VIDEO_DEV=m
3330CONFIG_VIDEO_V4L2=m
3331# CONFIG_VIDEO_ADV_DEBUG is not set
3332# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
3333CONFIG_VIDEO_TUNER=m
3334CONFIG_V4L2_MEM2MEM_DEV=m
3335CONFIG_VIDEOBUF_GEN=m
3336CONFIG_VIDEOBUF_DMA_SG=m
3337CONFIG_VIDEOBUF_VMALLOC=m
3338CONFIG_VIDEOBUF_DMA_CONTIG=m
3339CONFIG_VIDEOBUF_DVB=m
3340CONFIG_VIDEOBUF2_CORE=m
3341CONFIG_VIDEOBUF2_MEMOPS=m
3342CONFIG_VIDEOBUF2_DMA_CONTIG=m
3343CONFIG_VIDEOBUF2_VMALLOC=m
3344CONFIG_VIDEO_V4L2_INT_DEVICE=m
3345CONFIG_DVB_CORE=m
3346CONFIG_DVB_NET=y
3347CONFIG_TTPCI_EEPROM=m
3348CONFIG_DVB_MAX_ADAPTERS=8
3349CONFIG_DVB_DYNAMIC_MINORS=y
3350
3351#
3352# Media drivers
3353#
3354CONFIG_RC_CORE=m
3355CONFIG_RC_MAP=m
3356CONFIG_RC_DECODERS=y
3357CONFIG_LIRC=m
3358CONFIG_IR_LIRC_CODEC=m
3359CONFIG_IR_NEC_DECODER=m
3360CONFIG_IR_RC5_DECODER=m
3361CONFIG_IR_RC6_DECODER=m
3362CONFIG_IR_JVC_DECODER=m
3363CONFIG_IR_SONY_DECODER=m
3364CONFIG_IR_RC5_SZ_DECODER=m
3365CONFIG_IR_SANYO_DECODER=m
3366CONFIG_IR_MCE_KBD_DECODER=m
3367CONFIG_RC_DEVICES=y
3368CONFIG_RC_LOOPBACK=m
3369CONFIG_IR_GPIO_CIR=m
3370CONFIG_MEDIA_PCI_SUPPORT=y
3371
3372#
3373# Media capture support
3374#
3375
3376#
3377# Media capture/analog TV support
3378#
3379CONFIG_VIDEO_IVTV=m
3380CONFIG_VIDEO_FB_IVTV=m
3381CONFIG_VIDEO_HEXIUM_GEMINI=m
3382CONFIG_VIDEO_HEXIUM_ORION=m
3383CONFIG_VIDEO_MXB=m
3384
3385#
3386# Media capture/analog/hybrid TV support
3387#
3388CONFIG_VIDEO_CX18=m
3389CONFIG_VIDEO_CX25821=m
3390CONFIG_VIDEO_CX88=m
3391CONFIG_VIDEO_CX88_BLACKBIRD=m
3392CONFIG_VIDEO_CX88_DVB=m
3393CONFIG_VIDEO_CX88_ENABLE_VP3054=y
3394CONFIG_VIDEO_CX88_VP3054=m
3395CONFIG_VIDEO_CX88_MPEG=m
3396CONFIG_VIDEO_BT848=m
3397CONFIG_DVB_BT8XX=m
3398CONFIG_VIDEO_SAA7134=m
3399CONFIG_VIDEO_SAA7134_RC=y
3400CONFIG_VIDEO_SAA7134_DVB=m
3401CONFIG_VIDEO_SAA7164=m
3402
3403#
3404# Media digital TV PCI Adapters
3405#
3406CONFIG_DVB_AV7110=m
3407CONFIG_DVB_AV7110_OSD=y
3408CONFIG_DVB_BUDGET_CORE=m
3409CONFIG_DVB_BUDGET=m
3410CONFIG_DVB_BUDGET_CI=m
3411CONFIG_DVB_BUDGET_AV=m
3412CONFIG_DVB_BUDGET_PATCH=m
3413CONFIG_DVB_B2C2_FLEXCOP_PCI=m
3414# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
3415CONFIG_DVB_PLUTO2=m
3416CONFIG_DVB_DM1105=m
3417CONFIG_DVB_PT1=m
3418CONFIG_MANTIS_CORE=m
3419CONFIG_DVB_MANTIS=m
3420CONFIG_DVB_HOPPER=m
3421CONFIG_DVB_NGENE=m
3422CONFIG_DVB_DDBRIDGE=m
3423CONFIG_V4L_PLATFORM_DRIVERS=y
3424CONFIG_VIDEO_CAFE_CCIC=m
3425CONFIG_VIDEO_TIMBERDALE=m
3426CONFIG_SOC_CAMERA=m
3427CONFIG_SOC_CAMERA_SCALE_CROP=m
3428CONFIG_SOC_CAMERA_PLATFORM=m
3429CONFIG_VIDEO_RCAR_VIN=m
3430CONFIG_VIDEO_SH_MOBILE_CSI2=m
3431CONFIG_VIDEO_SH_MOBILE_CEU=m
3432CONFIG_V4L_MEM2MEM_DRIVERS=y
3433CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
3434CONFIG_VIDEO_SH_VEU=m
3435CONFIG_V4L_TEST_DRIVERS=y
3436CONFIG_VIDEO_VIVI=m
3437CONFIG_VIDEO_MEM2MEM_TESTDEV=m
3438
3439#
3440# Supported MMC/SDIO adapters
3441#
3442CONFIG_SMS_SDIO_DRV=m
3443CONFIG_MEDIA_PARPORT_SUPPORT=y
3444CONFIG_VIDEO_BWQCAM=m
3445CONFIG_VIDEO_CQCAM=m
3446CONFIG_VIDEO_W9966=m
3447CONFIG_RADIO_ADAPTERS=y
3448CONFIG_RADIO_TEA575X=m
3449CONFIG_RADIO_SI470X=y
3450CONFIG_I2C_SI470X=m
3451CONFIG_RADIO_MAXIRADIO=m
3452CONFIG_I2C_SI4713=m
3453CONFIG_RADIO_SI4713=m
3454CONFIG_RADIO_TEA5764=m
3455CONFIG_RADIO_SAA7706H=m
3456CONFIG_RADIO_TEF6862=m
3457CONFIG_RADIO_TIMBERDALE=m
3458CONFIG_RADIO_WL1273=m
3459
3460#
3461# Texas Instruments WL128x FM driver (ST based)
3462#
3463CONFIG_RADIO_WL128X=m
3464
3465#
3466# Supported FireWire (IEEE 1394) Adapters
3467#
3468CONFIG_DVB_FIREDTV=m
3469CONFIG_DVB_FIREDTV_INPUT=y
3470CONFIG_MEDIA_COMMON_OPTIONS=y
3471
3472#
3473# common driver options
3474#
3475CONFIG_VIDEO_CX2341X=m
3476CONFIG_VIDEO_BTCX=m
3477CONFIG_VIDEO_TVEEPROM=m
3478CONFIG_DVB_B2C2_FLEXCOP=m
3479CONFIG_VIDEO_SAA7146=m
3480CONFIG_VIDEO_SAA7146_VV=m
3481CONFIG_SMS_SIANO_MDTV=m
3482CONFIG_SMS_SIANO_RC=y
3483
3484#
3485# Media ancillary drivers (tuners, sensors, i2c, frontends)
3486#
3487CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
3488CONFIG_MEDIA_ATTACH=y
3489CONFIG_VIDEO_IR_I2C=m
3490
3491#
3492# Audio decoders, processors and mixers
3493#
3494CONFIG_VIDEO_TVAUDIO=m
3495CONFIG_VIDEO_TDA7432=m
3496CONFIG_VIDEO_TDA9840=m
3497CONFIG_VIDEO_TEA6415C=m
3498CONFIG_VIDEO_TEA6420=m
3499CONFIG_VIDEO_MSP3400=m
3500CONFIG_VIDEO_CS5345=m
3501CONFIG_VIDEO_CS53L32A=m
3502CONFIG_VIDEO_WM8775=m
3503CONFIG_VIDEO_WM8739=m
3504CONFIG_VIDEO_VP27SMPX=m
3505
3506#
3507# RDS decoders
3508#
3509CONFIG_VIDEO_SAA6588=m
3510
3511#
3512# Video decoders
3513#
3514CONFIG_VIDEO_ADV7180=m
3515CONFIG_VIDEO_SAA711X=m
3516
3517#
3518# Video and audio decoders
3519#
3520CONFIG_VIDEO_SAA717X=m
3521CONFIG_VIDEO_CX25840=m
3522
3523#
3524# Video encoders
3525#
3526CONFIG_VIDEO_SAA7127=m
3527
3528#
3529# Camera sensor devices
3530#
3531CONFIG_VIDEO_OV7670=m
3532
3533#
3534# Flash devices
3535#
3536
3537#
3538# Video improvement chips
3539#
3540CONFIG_VIDEO_UPD64031A=m
3541CONFIG_VIDEO_UPD64083=m
3542
3543#
3544# Miscellaneous helper chips
3545#
3546CONFIG_VIDEO_M52790=m
3547
3548#
3549# Sensors used on soc_camera driver
3550#
3551
3552#
3553# soc_camera sensor drivers
3554#
3555CONFIG_SOC_CAMERA_IMX074=m
3556CONFIG_SOC_CAMERA_MT9M001=m
3557CONFIG_SOC_CAMERA_MT9M111=m
3558CONFIG_SOC_CAMERA_MT9T031=m
3559CONFIG_SOC_CAMERA_MT9T112=m
3560CONFIG_SOC_CAMERA_MT9V022=m
3561CONFIG_SOC_CAMERA_OV2640=m
3562CONFIG_SOC_CAMERA_OV5642=m
3563CONFIG_SOC_CAMERA_OV6650=m
3564CONFIG_SOC_CAMERA_OV772X=m
3565CONFIG_SOC_CAMERA_OV9640=m
3566CONFIG_SOC_CAMERA_OV9740=m
3567CONFIG_SOC_CAMERA_RJ54N1=m
3568CONFIG_SOC_CAMERA_TW9910=m
3569CONFIG_MEDIA_TUNER=m
3570CONFIG_MEDIA_TUNER_SIMPLE=m
3571CONFIG_MEDIA_TUNER_TDA8290=m
3572CONFIG_MEDIA_TUNER_TDA827X=m
3573CONFIG_MEDIA_TUNER_TDA18271=m
3574CONFIG_MEDIA_TUNER_TDA9887=m
3575CONFIG_MEDIA_TUNER_TEA5761=m
3576CONFIG_MEDIA_TUNER_TEA5767=m
3577CONFIG_MEDIA_TUNER_MT20XX=m
3578CONFIG_MEDIA_TUNER_MT2131=m
3579CONFIG_MEDIA_TUNER_XC2028=m
3580CONFIG_MEDIA_TUNER_XC5000=m
3581CONFIG_MEDIA_TUNER_XC4000=m
3582CONFIG_MEDIA_TUNER_MXL5005S=m
3583CONFIG_MEDIA_TUNER_MC44S803=m
3584
3585#
3586# Multistandard (satellite) frontends
3587#
3588CONFIG_DVB_STB0899=m
3589CONFIG_DVB_STB6100=m
3590CONFIG_DVB_STV090x=m
3591CONFIG_DVB_STV6110x=m
3592
3593#
3594# Multistandard (cable + terrestrial) frontends
3595#
3596CONFIG_DVB_DRXK=m
3597CONFIG_DVB_TDA18271C2DD=m
3598
3599#
3600# DVB-S (satellite) frontends
3601#
3602CONFIG_DVB_CX24110=m
3603CONFIG_DVB_CX24123=m
3604CONFIG_DVB_MT312=m
3605CONFIG_DVB_ZL10036=m
3606CONFIG_DVB_ZL10039=m
3607CONFIG_DVB_S5H1420=m
3608CONFIG_DVB_STV0288=m
3609CONFIG_DVB_STB6000=m
3610CONFIG_DVB_STV0299=m
3611CONFIG_DVB_STV0900=m
3612CONFIG_DVB_TDA8083=m
3613CONFIG_DVB_TDA10086=m
3614CONFIG_DVB_TDA8261=m
3615CONFIG_DVB_VES1X93=m
3616CONFIG_DVB_TUNER_ITD1000=m
3617CONFIG_DVB_TUNER_CX24113=m
3618CONFIG_DVB_TDA826X=m
3619CONFIG_DVB_TUA6100=m
3620CONFIG_DVB_CX24116=m
3621CONFIG_DVB_SI21XX=m
3622CONFIG_DVB_TS2020=m
3623CONFIG_DVB_DS3000=m
3624CONFIG_DVB_MB86A16=m
3625
3626#
3627# DVB-T (terrestrial) frontends
3628#
3629CONFIG_DVB_SP8870=m
3630CONFIG_DVB_SP887X=m
3631CONFIG_DVB_CX22702=m
3632CONFIG_DVB_L64781=m
3633CONFIG_DVB_TDA1004X=m
3634CONFIG_DVB_NXT6000=m
3635CONFIG_DVB_MT352=m
3636CONFIG_DVB_ZL10353=m
3637CONFIG_DVB_TDA10048=m
3638
3639#
3640# DVB-C (cable) frontends
3641#
3642CONFIG_DVB_VES1820=m
3643CONFIG_DVB_TDA10021=m
3644CONFIG_DVB_TDA10023=m
3645CONFIG_DVB_STV0297=m
3646
3647#
3648# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
3649#
3650CONFIG_DVB_NXT200X=m
3651CONFIG_DVB_OR51211=m
3652CONFIG_DVB_OR51132=m
3653CONFIG_DVB_BCM3510=m
3654CONFIG_DVB_LGDT330X=m
3655CONFIG_DVB_LGDT3305=m
3656CONFIG_DVB_S5H1409=m
3657CONFIG_DVB_S5H1411=m
3658
3659#
3660# ISDB-T (terrestrial) frontends
3661#
3662
3663#
3664# Digital terrestrial only tuners/PLL
3665#
3666CONFIG_DVB_PLL=m
3667
3668#
3669# SEC control devices for DVB-S
3670#
3671CONFIG_DVB_LNBP21=m
3672CONFIG_DVB_ISL6405=m
3673CONFIG_DVB_ISL6421=m
3674CONFIG_DVB_ISL6423=m
3675CONFIG_DVB_TDA665x=m
3676
3677#
3678# Tools to develop new frontends
3679#
3680# CONFIG_DVB_DUMMY_FE is not set
3681
3682#
3683# Graphics support
3684#
3685CONFIG_VGA_ARB=y
3686CONFIG_VGA_ARB_MAX_GPUS=16
3687CONFIG_DRM=m
3688CONFIG_DRM_KMS_HELPER=m
3689CONFIG_DRM_KMS_FB_HELPER=y
3690CONFIG_DRM_LOAD_EDID_FIRMWARE=y
3691CONFIG_DRM_TTM=m
3692
3693#
3694# I2C encoder or helper chips
3695#
3696CONFIG_DRM_I2C_CH7006=m
3697CONFIG_DRM_I2C_SIL164=m
3698CONFIG_DRM_I2C_NXP_TDA998X=m
3699CONFIG_DRM_TDFX=m
3700CONFIG_DRM_R128=m
3701CONFIG_DRM_RADEON=m
3702CONFIG_DRM_RADEON_UMS=y
3703CONFIG_DRM_NOUVEAU=m
3704CONFIG_NOUVEAU_DEBUG=5
3705CONFIG_NOUVEAU_DEBUG_DEFAULT=3
3706CONFIG_DRM_NOUVEAU_BACKLIGHT=y
3707CONFIG_DRM_MGA=m
3708CONFIG_DRM_VIA=m
3709CONFIG_DRM_SAVAGE=m
3710CONFIG_DRM_VMWGFX=m
3711CONFIG_DRM_VMWGFX_FBCON=y
3712CONFIG_DRM_AST=m
3713# CONFIG_DRM_MGAG200 is not set
3714CONFIG_DRM_CIRRUS_QEMU=m
3715CONFIG_DRM_QXL=m
3716CONFIG_VGASTATE=m
3717CONFIG_VIDEO_OUTPUT_CONTROL=m
3718CONFIG_HDMI=y
3719CONFIG_FB=y
3720CONFIG_FIRMWARE_EDID=y
3721CONFIG_FB_DDC=m
3722# CONFIG_FB_BOOT_VESA_SUPPORT is not set
3723CONFIG_FB_CFB_FILLRECT=y
3724CONFIG_FB_CFB_COPYAREA=y
3725CONFIG_FB_CFB_IMAGEBLIT=y
3726# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
3727CONFIG_FB_SYS_FILLRECT=m
3728CONFIG_FB_SYS_COPYAREA=m
3729CONFIG_FB_SYS_IMAGEBLIT=m
3730# CONFIG_FB_FOREIGN_ENDIAN is not set
3731CONFIG_FB_SYS_FOPS=m
3732CONFIG_FB_DEFERRED_IO=y
3733CONFIG_FB_SVGALIB=m
3734# CONFIG_FB_MACMODES is not set
3735CONFIG_FB_BACKLIGHT=y
3736CONFIG_FB_MODE_HELPERS=y
3737CONFIG_FB_TILEBLITTING=y
3738
3739#
3740# Frame buffer hardware drivers
3741#
3742CONFIG_FB_CIRRUS=m
3743CONFIG_FB_PM2=m
3744CONFIG_FB_PM2_FIFO_DISCONNECT=y
3745CONFIG_FB_CYBER2000=m
3746CONFIG_FB_CYBER2000_DDC=y
3747CONFIG_FB_ASILIANT=y
3748CONFIG_FB_IMSTT=y
3749CONFIG_FB_UVESA=m
3750CONFIG_FB_S1D13XXX=m
3751CONFIG_FB_NVIDIA=m
3752CONFIG_FB_NVIDIA_I2C=y
3753# CONFIG_FB_NVIDIA_DEBUG is not set
3754CONFIG_FB_NVIDIA_BACKLIGHT=y
3755CONFIG_FB_RIVA=m
3756CONFIG_FB_RIVA_I2C=y
3757# CONFIG_FB_RIVA_DEBUG is not set
3758CONFIG_FB_RIVA_BACKLIGHT=y
3759CONFIG_FB_I740=m
3760CONFIG_FB_MATROX=m
3761CONFIG_FB_MATROX_MILLENIUM=y
3762CONFIG_FB_MATROX_MYSTIQUE=y
3763CONFIG_FB_MATROX_G=y
3764CONFIG_FB_MATROX_I2C=m
3765CONFIG_FB_MATROX_MAVEN=m
3766CONFIG_FB_RADEON=m
3767CONFIG_FB_RADEON_I2C=y
3768CONFIG_FB_RADEON_BACKLIGHT=y
3769# CONFIG_FB_RADEON_DEBUG is not set
3770CONFIG_FB_ATY128=m
3771CONFIG_FB_ATY128_BACKLIGHT=y
3772CONFIG_FB_ATY=m
3773CONFIG_FB_ATY_CT=y
3774# CONFIG_FB_ATY_GENERIC_LCD is not set
3775CONFIG_FB_ATY_GX=y
3776CONFIG_FB_ATY_BACKLIGHT=y
3777CONFIG_FB_S3=m
3778CONFIG_FB_S3_DDC=y
3779CONFIG_FB_SAVAGE=m
3780CONFIG_FB_SAVAGE_I2C=y
3781# CONFIG_FB_SAVAGE_ACCEL is not set
3782CONFIG_FB_SIS=m
3783CONFIG_FB_SIS_300=y
3784CONFIG_FB_SIS_315=y
3785CONFIG_FB_NEOMAGIC=m
3786CONFIG_FB_KYRO=m
3787CONFIG_FB_3DFX=m
3788CONFIG_FB_3DFX_ACCEL=y
3789CONFIG_FB_3DFX_I2C=y
3790CONFIG_FB_VOODOO1=m
3791CONFIG_FB_VT8623=m
3792CONFIG_FB_TRIDENT=m
3793CONFIG_FB_ARK=m
3794CONFIG_FB_PM3=m
3795CONFIG_FB_CARMINE=m
3796CONFIG_FB_CARMINE_DRAM_EVAL=y
3797# CONFIG_CARMINE_DRAM_CUSTOM is not set
3798CONFIG_FB_TMIO=m
3799CONFIG_FB_TMIO_ACCELL=y
3800CONFIG_FB_SM501=m
3801CONFIG_FB_GOLDFISH=m
3802# CONFIG_FB_VIRTUAL is not set
3803CONFIG_XEN_FBDEV_FRONTEND=m
3804CONFIG_FB_METRONOME=m
3805CONFIG_FB_MB862XX=m
3806CONFIG_FB_MB862XX_PCI_GDC=y
3807CONFIG_FB_MB862XX_I2C=y
3808CONFIG_FB_BROADSHEET=m
3809CONFIG_FB_AUO_K190X=m
3810CONFIG_FB_AUO_K1900=m
3811CONFIG_FB_AUO_K1901=m
3812CONFIG_FB_SIMPLE=y
3813CONFIG_EXYNOS_VIDEO=y
3814CONFIG_BACKLIGHT_LCD_SUPPORT=y
3815CONFIG_LCD_CLASS_DEVICE=m
3816CONFIG_LCD_L4F00242T03=m
3817CONFIG_LCD_LMS283GF05=m
3818CONFIG_LCD_LTV350QV=m
3819CONFIG_LCD_ILI922X=m
3820CONFIG_LCD_ILI9320=m
3821CONFIG_LCD_TDO24M=m
3822CONFIG_LCD_VGG2432A4=m
3823CONFIG_LCD_PLATFORM=m
3824CONFIG_LCD_S6E63M0=m
3825CONFIG_LCD_LD9040=m
3826CONFIG_LCD_AMS369FG06=m
3827CONFIG_LCD_LMS501KF03=m
3828CONFIG_LCD_HX8357=m
3829CONFIG_BACKLIGHT_CLASS_DEVICE=y
3830CONFIG_BACKLIGHT_ATMEL_PWM=m
3831CONFIG_BACKLIGHT_GENERIC=m
3832CONFIG_BACKLIGHT_LM3533=m
3833CONFIG_BACKLIGHT_PWM=m
3834CONFIG_BACKLIGHT_DA903X=m
3835CONFIG_BACKLIGHT_DA9052=m
3836CONFIG_BACKLIGHT_MAX8925=m
3837CONFIG_BACKLIGHT_WM831X=m
3838CONFIG_BACKLIGHT_ADP5520=m
3839CONFIG_BACKLIGHT_ADP8860=m
3840CONFIG_BACKLIGHT_ADP8870=m
3841CONFIG_BACKLIGHT_88PM860X=m
3842CONFIG_BACKLIGHT_PCF50633=m
3843CONFIG_BACKLIGHT_AAT2870=m
3844CONFIG_BACKLIGHT_LM3630A=m
3845CONFIG_BACKLIGHT_LM3639=m
3846CONFIG_BACKLIGHT_LP855X=m
3847CONFIG_BACKLIGHT_LP8788=m
3848CONFIG_BACKLIGHT_TPS65217=m
3849CONFIG_BACKLIGHT_AS3711=m
3850CONFIG_BACKLIGHT_GPIO=m
3851CONFIG_BACKLIGHT_LV5207LP=m
3852CONFIG_BACKLIGHT_BD6107=m
3853
3854#
3855# Console display driver support
3856#
3857# CONFIG_VGA_CONSOLE is not set
3858CONFIG_DUMMY_CONSOLE=y
3859CONFIG_FRAMEBUFFER_CONSOLE=y
3860CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
3861CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
3862# CONFIG_LOGO is not set
3863CONFIG_FB_SSD1307=m
3864# CONFIG_SOUND is not set
3865
3866#
3867# HID support
3868#
3869CONFIG_HID=m
3870CONFIG_HID_BATTERY_STRENGTH=y
3871CONFIG_HIDRAW=y
3872CONFIG_UHID=m
3873CONFIG_HID_GENERIC=m
3874
3875#
3876# Special HID drivers
3877#
3878CONFIG_HID_A4TECH=m
3879CONFIG_HID_ACRUX=m
3880CONFIG_HID_ACRUX_FF=y
3881CONFIG_HID_APPLE=m
3882CONFIG_HID_AUREAL=m
3883CONFIG_HID_BELKIN=m
3884CONFIG_HID_CHERRY=m
3885CONFIG_HID_CHICONY=m
3886CONFIG_HID_CYPRESS=m
3887CONFIG_HID_DRAGONRISE=m
3888CONFIG_DRAGONRISE_FF=y
3889CONFIG_HID_EMS_FF=m
3890CONFIG_HID_ELECOM=m
3891CONFIG_HID_EZKEY=m
3892CONFIG_HID_KEYTOUCH=m
3893CONFIG_HID_KYE=m
3894CONFIG_HID_UCLOGIC=m
3895CONFIG_HID_WALTOP=m
3896CONFIG_HID_GYRATION=m
3897CONFIG_HID_ICADE=m
3898CONFIG_HID_TWINHAN=m
3899CONFIG_HID_KENSINGTON=m
3900CONFIG_HID_LCPOWER=m
3901CONFIG_HID_LENOVO_TPKBD=m
3902CONFIG_HID_LOGITECH=m
3903CONFIG_HID_LOGITECH_DJ=m
3904CONFIG_LOGITECH_FF=y
3905CONFIG_LOGIRUMBLEPAD2_FF=y
3906CONFIG_LOGIG940_FF=y
3907CONFIG_LOGIWHEELS_FF=y
3908CONFIG_HID_MAGICMOUSE=m
3909CONFIG_HID_MICROSOFT=m
3910CONFIG_HID_MONTEREY=m
3911CONFIG_HID_MULTITOUCH=m
3912CONFIG_HID_ORTEK=m
3913CONFIG_HID_PANTHERLORD=m
3914CONFIG_PANTHERLORD_FF=y
3915CONFIG_HID_PETALYNX=m
3916CONFIG_HID_PICOLCD=m
3917CONFIG_HID_PICOLCD_FB=y
3918CONFIG_HID_PICOLCD_BACKLIGHT=y
3919CONFIG_HID_PICOLCD_LCD=y
3920CONFIG_HID_PICOLCD_LEDS=y
3921CONFIG_HID_PICOLCD_CIR=y
3922CONFIG_HID_PRIMAX=m
3923CONFIG_HID_SAITEK=m
3924CONFIG_HID_SAMSUNG=m
3925CONFIG_HID_SPEEDLINK=m
3926CONFIG_HID_STEELSERIES=m
3927CONFIG_HID_SUNPLUS=m
3928CONFIG_HID_GREENASIA=m
3929CONFIG_GREENASIA_FF=y
3930CONFIG_HID_SMARTJOYPLUS=m
3931CONFIG_SMARTJOYPLUS_FF=y
3932CONFIG_HID_TIVO=m
3933CONFIG_HID_TOPSEED=m
3934CONFIG_HID_THINGM=m
3935CONFIG_HID_THRUSTMASTER=m
3936CONFIG_THRUSTMASTER_FF=y
3937CONFIG_HID_WACOM=m
3938CONFIG_HID_WIIMOTE=m
3939CONFIG_HID_XINMO=m
3940CONFIG_HID_ZEROPLUS=m
3941CONFIG_ZEROPLUS_FF=y
3942CONFIG_HID_ZYDACRON=m
3943CONFIG_HID_SENSOR_HUB=m
3944
3945#
3946# I2C HID support
3947#
3948CONFIG_I2C_HID=m
3949CONFIG_USB_OHCI_LITTLE_ENDIAN=y
3950# CONFIG_USB_SUPPORT is not set
3951CONFIG_UWB=m
3952CONFIG_UWB_WHCI=m
3953CONFIG_MMC=y
3954# CONFIG_MMC_DEBUG is not set
3955# CONFIG_MMC_UNSAFE_RESUME is not set
3956# CONFIG_MMC_CLKGATE is not set
3957
3958#
3959# MMC/SD/SDIO Card Drivers
3960#
3961CONFIG_MMC_BLOCK=y
3962CONFIG_MMC_BLOCK_MINORS=8
3963CONFIG_MMC_BLOCK_BOUNCE=y
3964CONFIG_SDIO_UART=m
3965# CONFIG_MMC_TEST is not set
3966
3967#
3968# MMC/SD/SDIO Host Controller Drivers
3969#
3970CONFIG_MMC_ARMMMCI=y
3971CONFIG_MMC_SDHCI=m
3972CONFIG_MMC_SDHCI_PCI=m
3973CONFIG_MMC_RICOH_MMC=y
3974CONFIG_MMC_SDHCI_PLTFM=m
3975CONFIG_MMC_SDHCI_PXAV3=m
3976CONFIG_MMC_SDHCI_PXAV2=m
3977CONFIG_MMC_TIFM_SD=m
3978CONFIG_MMC_SPI=m
3979CONFIG_MMC_CB710=m
3980CONFIG_MMC_VIA_SDMMC=m
3981CONFIG_MMC_REALTEK_PCI=m
3982CONFIG_MEMSTICK=m
3983# CONFIG_MEMSTICK_DEBUG is not set
3984
3985#
3986# MemoryStick drivers
3987#
3988# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
3989CONFIG_MSPRO_BLOCK=m
3990CONFIG_MS_BLOCK=m
3991
3992#
3993# MemoryStick Host Controller Drivers
3994#
3995CONFIG_MEMSTICK_TIFM_MS=m
3996CONFIG_MEMSTICK_JMICRON_38X=m
3997CONFIG_MEMSTICK_R592=m
3998CONFIG_MEMSTICK_REALTEK_PCI=m
3999CONFIG_NEW_LEDS=y
4000CONFIG_LEDS_CLASS=y
4001
4002#
4003# LED drivers
4004#
4005CONFIG_LEDS_88PM860X=m
4006CONFIG_LEDS_ATMEL_PWM=m
4007CONFIG_LEDS_LM3530=m
4008CONFIG_LEDS_LM3533=m
4009CONFIG_LEDS_LM3642=m
4010CONFIG_LEDS_PCA9532=m
4011CONFIG_LEDS_PCA9532_GPIO=y
4012CONFIG_LEDS_GPIO=m
4013CONFIG_LEDS_LP3944=m
4014CONFIG_LEDS_LP55XX_COMMON=m
4015CONFIG_LEDS_LP5521=m
4016CONFIG_LEDS_LP5523=m
4017CONFIG_LEDS_LP5562=m
4018CONFIG_LEDS_LP8501=m
4019CONFIG_LEDS_LP8788=m
4020CONFIG_LEDS_PCA955X=m
4021CONFIG_LEDS_PCA963X=m
4022CONFIG_LEDS_PCA9685=m
4023CONFIG_LEDS_WM831X_STATUS=m
4024CONFIG_LEDS_WM8350=m
4025CONFIG_LEDS_DA903X=m
4026CONFIG_LEDS_DA9052=m
4027CONFIG_LEDS_DAC124S085=m
4028CONFIG_LEDS_PWM=m
4029CONFIG_LEDS_REGULATOR=m
4030CONFIG_LEDS_BD2802=m
4031CONFIG_LEDS_LT3593=m
4032CONFIG_LEDS_ADP5520=m
4033CONFIG_LEDS_MC13783=m
4034CONFIG_LEDS_TCA6507=m
4035CONFIG_LEDS_MAX8997=m
4036CONFIG_LEDS_LM355x=m
4037CONFIG_LEDS_OT200=m
4038CONFIG_LEDS_BLINKM=m
4039
4040#
4041# LED Triggers
4042#
4043CONFIG_LEDS_TRIGGERS=y
4044CONFIG_LEDS_TRIGGER_TIMER=m
4045CONFIG_LEDS_TRIGGER_ONESHOT=m
4046CONFIG_LEDS_TRIGGER_HEARTBEAT=m
4047CONFIG_LEDS_TRIGGER_BACKLIGHT=m
4048CONFIG_LEDS_TRIGGER_CPU=y
4049CONFIG_LEDS_TRIGGER_GPIO=m
4050CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
4051
4052#
4053# iptables trigger is under Netfilter config (LED target)
4054#
4055CONFIG_LEDS_TRIGGER_TRANSIENT=m
4056CONFIG_LEDS_TRIGGER_CAMERA=m
4057# CONFIG_ACCESSIBILITY is not set
4058CONFIG_INFINIBAND=m
4059CONFIG_INFINIBAND_USER_MAD=m
4060CONFIG_INFINIBAND_USER_ACCESS=m
4061CONFIG_INFINIBAND_USER_MEM=y
4062CONFIG_INFINIBAND_ADDR_TRANS=y
4063CONFIG_INFINIBAND_MTHCA=m
4064# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
4065CONFIG_INFINIBAND_QIB=m
4066CONFIG_INFINIBAND_AMSO1100=m
4067# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
4068CONFIG_INFINIBAND_CXGB3=m
4069# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
4070CONFIG_INFINIBAND_CXGB4=m
4071CONFIG_MLX4_INFINIBAND=m
4072CONFIG_MLX5_INFINIBAND=m
4073CONFIG_INFINIBAND_NES=m
4074# CONFIG_INFINIBAND_NES_DEBUG is not set
4075CONFIG_INFINIBAND_OCRDMA=m
4076CONFIG_INFINIBAND_IPOIB=m
4077CONFIG_INFINIBAND_IPOIB_CM=y
4078# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
4079CONFIG_INFINIBAND_SRP=m
4080CONFIG_INFINIBAND_SRPT=m
4081CONFIG_INFINIBAND_ISER=m
4082CONFIG_INFINIBAND_ISERT=m
4083CONFIG_RTC_LIB=y
4084CONFIG_RTC_CLASS=y
4085CONFIG_RTC_HCTOSYS=y
4086CONFIG_RTC_SYSTOHC=y
4087CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
4088# CONFIG_RTC_DEBUG is not set
4089
4090#
4091# RTC interfaces
4092#
4093CONFIG_RTC_INTF_SYSFS=y
4094CONFIG_RTC_INTF_PROC=y
4095CONFIG_RTC_INTF_DEV=y
4096# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
4097# CONFIG_RTC_DRV_TEST is not set
4098
4099#
4100# I2C RTC drivers
4101#
4102CONFIG_RTC_DRV_88PM860X=m
4103CONFIG_RTC_DRV_88PM80X=m
4104CONFIG_RTC_DRV_AS3722=m
4105CONFIG_RTC_DRV_DS1307=m
4106CONFIG_RTC_DRV_DS1374=m
4107CONFIG_RTC_DRV_DS1672=m
4108CONFIG_RTC_DRV_DS3232=m
4109CONFIG_RTC_DRV_LP8788=m
4110CONFIG_RTC_DRV_MAX6900=m
4111CONFIG_RTC_DRV_MAX8907=m
4112CONFIG_RTC_DRV_MAX8925=m
4113CONFIG_RTC_DRV_MAX8998=m
4114CONFIG_RTC_DRV_MAX8997=m
4115CONFIG_RTC_DRV_MAX77686=m
4116CONFIG_RTC_DRV_RS5C372=m
4117CONFIG_RTC_DRV_ISL1208=m
4118CONFIG_RTC_DRV_ISL12022=m
4119CONFIG_RTC_DRV_X1205=m
4120CONFIG_RTC_DRV_PALMAS=m
4121CONFIG_RTC_DRV_PCF2127=m
4122CONFIG_RTC_DRV_PCF8523=m
4123CONFIG_RTC_DRV_PCF8563=m
4124CONFIG_RTC_DRV_PCF8583=m
4125CONFIG_RTC_DRV_M41T80=m
4126CONFIG_RTC_DRV_M41T80_WDT=y
4127CONFIG_RTC_DRV_BQ32K=m
4128CONFIG_RTC_DRV_TPS6586X=m
4129CONFIG_RTC_DRV_TPS65910=m
4130CONFIG_RTC_DRV_TPS80031=m
4131CONFIG_RTC_DRV_RC5T583=m
4132CONFIG_RTC_DRV_S35390A=m
4133CONFIG_RTC_DRV_FM3130=m
4134CONFIG_RTC_DRV_RX8581=m
4135CONFIG_RTC_DRV_RX8025=m
4136CONFIG_RTC_DRV_EM3027=m
4137CONFIG_RTC_DRV_RV3029C2=m
4138CONFIG_RTC_DRV_S5M=m
4139
4140#
4141# SPI RTC drivers
4142#
4143CONFIG_RTC_DRV_M41T93=m
4144CONFIG_RTC_DRV_M41T94=m
4145CONFIG_RTC_DRV_DS1305=m
4146CONFIG_RTC_DRV_DS1390=m
4147CONFIG_RTC_DRV_MAX6902=m
4148CONFIG_RTC_DRV_R9701=m
4149CONFIG_RTC_DRV_RS5C348=m
4150CONFIG_RTC_DRV_DS3234=m
4151CONFIG_RTC_DRV_PCF2123=m
4152CONFIG_RTC_DRV_RX4581=m
4153
4154#
4155# Platform RTC drivers
4156#
4157CONFIG_RTC_DRV_DS1286=m
4158CONFIG_RTC_DRV_DS1511=m
4159CONFIG_RTC_DRV_DS1553=m
4160CONFIG_RTC_DRV_DS1742=m
4161CONFIG_RTC_DRV_DA9052=m
4162CONFIG_RTC_DRV_DA9055=m
4163CONFIG_RTC_DRV_STK17TA8=m
4164CONFIG_RTC_DRV_M48T86=m
4165CONFIG_RTC_DRV_M48T35=m
4166CONFIG_RTC_DRV_M48T59=m
4167CONFIG_RTC_DRV_MSM6242=m
4168CONFIG_RTC_DRV_BQ4802=m
4169CONFIG_RTC_DRV_RP5C01=m
4170CONFIG_RTC_DRV_V3020=m
4171CONFIG_RTC_DRV_DS2404=m
4172CONFIG_RTC_DRV_WM831X=m
4173CONFIG_RTC_DRV_WM8350=m
4174CONFIG_RTC_DRV_PCF50633=m
4175CONFIG_RTC_DRV_AB3100=m
4176
4177#
4178# on-CPU RTC drivers
4179#
4180CONFIG_RTC_DRV_XGENE=y
4181CONFIG_RTC_DRV_PL030=m
4182CONFIG_RTC_DRV_PL031=m
4183CONFIG_RTC_DRV_MC13XXX=m
4184CONFIG_RTC_DRV_SNVS=m
4185CONFIG_RTC_DRV_MOXART=m
4186
4187#
4188# HID Sensor RTC drivers
4189#
4190CONFIG_DMADEVICES=y
4191# CONFIG_DMADEVICES_DEBUG is not set
4192
4193#
4194# DMA Devices
4195#
4196CONFIG_AMBA_PL08X=y
4197CONFIG_DW_DMAC_CORE=m
4198CONFIG_DW_DMAC=m
4199CONFIG_DW_DMAC_PCI=m
4200CONFIG_TIMB_DMA=m
4201CONFIG_PL330_DMA=m
4202CONFIG_DMA_ENGINE=y
4203CONFIG_DMA_VIRTUAL_CHANNELS=y
4204CONFIG_DMA_OF=y
4205
4206#
4207# DMA Clients
4208#
4209# CONFIG_ASYNC_TX_DMA is not set
4210# CONFIG_DMATEST is not set
4211CONFIG_AUXDISPLAY=y
4212CONFIG_UIO=m
4213CONFIG_UIO_CIF=m
4214CONFIG_UIO_PDRV_GENIRQ=m
4215CONFIG_UIO_DMEM_GENIRQ=m
4216CONFIG_UIO_AEC=m
4217CONFIG_UIO_SERCOS3=m
4218CONFIG_UIO_PCI_GENERIC=m
4219CONFIG_UIO_NETX=m
4220CONFIG_UIO_MF624=m
4221CONFIG_VIRT_DRIVERS=y
4222CONFIG_VIRTIO=y
4223
4224#
4225# Virtio drivers
4226#
4227CONFIG_VIRTIO_PCI=m
4228CONFIG_VIRTIO_BALLOON=y
4229CONFIG_VIRTIO_MMIO=y
4230CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
4231
4232#
4233# Microsoft Hyper-V guest support
4234#
4235
4236#
4237# Xen driver support
4238#
4239CONFIG_XEN_BALLOON=y
4240CONFIG_XEN_SCRUB_PAGES=y
4241CONFIG_XEN_DEV_EVTCHN=m
4242CONFIG_XEN_BACKEND=y
4243CONFIG_XENFS=m
4244CONFIG_XEN_COMPAT_XENFS=y
4245CONFIG_XEN_SYS_HYPERVISOR=y
4246CONFIG_XEN_XENBUS_FRONTEND=y
4247CONFIG_XEN_GNTDEV=m
4248CONFIG_XEN_GRANT_DEV_ALLOC=m
4249CONFIG_SWIOTLB_XEN=y
4250CONFIG_XEN_PRIVCMD=m
4251CONFIG_STAGING=y
4252CONFIG_ET131X=m
4253CONFIG_ECHO=m
4254CONFIG_COMEDI=m
4255# CONFIG_COMEDI_DEBUG is not set
4256CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
4257CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
4258CONFIG_COMEDI_MISC_DRIVERS=y
4259CONFIG_COMEDI_KCOMEDILIB=m
4260CONFIG_COMEDI_BOND=m
4261CONFIG_COMEDI_TEST=m
4262CONFIG_COMEDI_PARPORT=m
4263CONFIG_COMEDI_SERIAL2002=m
4264CONFIG_COMEDI_SKEL=m
4265CONFIG_COMEDI_ISA_DRIVERS=y
4266CONFIG_COMEDI_PCL711=m
4267CONFIG_COMEDI_PCL724=m
4268CONFIG_COMEDI_PCL726=m
4269CONFIG_COMEDI_PCL730=m
4270CONFIG_COMEDI_PCM3724=m
4271CONFIG_COMEDI_AMPLC_DIO200_ISA=m
4272CONFIG_COMEDI_AMPLC_PC236_ISA=m
4273CONFIG_COMEDI_AMPLC_PC263_ISA=m
4274CONFIG_COMEDI_RTI800=m
4275CONFIG_COMEDI_RTI802=m
4276CONFIG_COMEDI_DAS16M1=m
4277CONFIG_COMEDI_DAS08_ISA=m
4278CONFIG_COMEDI_DAS800=m
4279CONFIG_COMEDI_DAS6402=m
4280CONFIG_COMEDI_DT2801=m
4281CONFIG_COMEDI_DT2811=m
4282CONFIG_COMEDI_DT2814=m
4283CONFIG_COMEDI_DT2815=m
4284CONFIG_COMEDI_DT2817=m
4285CONFIG_COMEDI_DMM32AT=m
4286CONFIG_COMEDI_UNIOXX5=m
4287CONFIG_COMEDI_FL512=m
4288CONFIG_COMEDI_AIO_AIO12_8=m
4289CONFIG_COMEDI_AIO_IIRO_16=m
4290CONFIG_COMEDI_II_PCI20KC=m
4291CONFIG_COMEDI_C6XDIGIO=m
4292CONFIG_COMEDI_MPC624=m
4293CONFIG_COMEDI_ADQ12B=m
4294CONFIG_COMEDI_NI_AT_AO=m
4295CONFIG_COMEDI_NI_ATMIO=m
4296CONFIG_COMEDI_NI_ATMIO16D=m
4297CONFIG_COMEDI_NI_LABPC_ISA=m
4298CONFIG_COMEDI_PCMAD=m
4299CONFIG_COMEDI_PCMDA12=m
4300CONFIG_COMEDI_PCMMIO=m
4301CONFIG_COMEDI_PCMUIO=m
4302CONFIG_COMEDI_MULTIQ3=m
4303CONFIG_COMEDI_POC=m
4304CONFIG_COMEDI_S526=m
4305CONFIG_COMEDI_PCI_DRIVERS=y
4306CONFIG_COMEDI_8255_PCI=m
4307CONFIG_COMEDI_ADDI_WATCHDOG=m
4308CONFIG_COMEDI_ADDI_APCI_035=m
4309CONFIG_COMEDI_ADDI_APCI_1032=m
4310CONFIG_COMEDI_ADDI_APCI_1500=m
4311CONFIG_COMEDI_ADDI_APCI_1516=m
4312CONFIG_COMEDI_ADDI_APCI_1564=m
4313CONFIG_COMEDI_ADDI_APCI_16XX=m
4314CONFIG_COMEDI_ADDI_APCI_2032=m
4315CONFIG_COMEDI_ADDI_APCI_2200=m
4316CONFIG_COMEDI_ADDI_APCI_3501=m
4317CONFIG_COMEDI_ADDI_APCI_3XXX=m
4318CONFIG_COMEDI_ADL_PCI6208=m
4319CONFIG_COMEDI_ADL_PCI7X3X=m
4320CONFIG_COMEDI_ADL_PCI8164=m
4321CONFIG_COMEDI_ADL_PCI9111=m
4322CONFIG_COMEDI_ADV_PCI1710=m
4323CONFIG_COMEDI_ADV_PCI1723=m
4324CONFIG_COMEDI_ADV_PCI1724=m
4325CONFIG_COMEDI_ADV_PCI_DIO=m
4326CONFIG_COMEDI_AMPLC_DIO200_PCI=m
4327CONFIG_COMEDI_AMPLC_PC236_PCI=m
4328CONFIG_COMEDI_AMPLC_PC263_PCI=m
4329CONFIG_COMEDI_AMPLC_PCI224=m
4330CONFIG_COMEDI_AMPLC_PCI230=m
4331CONFIG_COMEDI_CONTEC_PCI_DIO=m
4332CONFIG_COMEDI_DAS08_PCI=m
4333CONFIG_COMEDI_DT3000=m
4334CONFIG_COMEDI_DYNA_PCI10XX=m
4335CONFIG_COMEDI_GSC_HPDI=m
4336CONFIG_COMEDI_ICP_MULTI=m
4337CONFIG_COMEDI_DAQBOARD2000=m
4338CONFIG_COMEDI_JR3_PCI=m
4339CONFIG_COMEDI_KE_COUNTER=m
4340CONFIG_COMEDI_CB_PCIDAS64=m
4341CONFIG_COMEDI_CB_PCIDAS=m
4342CONFIG_COMEDI_CB_PCIDDA=m
4343CONFIG_COMEDI_CB_PCIMDAS=m
4344CONFIG_COMEDI_CB_PCIMDDA=m
4345CONFIG_COMEDI_ME4000=m
4346CONFIG_COMEDI_ME_DAQ=m
4347CONFIG_COMEDI_NI_6527=m
4348CONFIG_COMEDI_NI_65XX=m
4349CONFIG_COMEDI_NI_660X=m
4350CONFIG_COMEDI_NI_670X=m
4351CONFIG_COMEDI_NI_LABPC_PCI=m
4352CONFIG_COMEDI_NI_PCIDIO=m
4353CONFIG_COMEDI_NI_PCIMIO=m
4354CONFIG_COMEDI_RTD520=m
4355CONFIG_COMEDI_S626=m
4356CONFIG_COMEDI_MITE=m
4357CONFIG_COMEDI_NI_TIOCMD=m
4358CONFIG_COMEDI_8255=m
4359CONFIG_COMEDI_FC=m
4360CONFIG_COMEDI_AMPLC_DIO200=m
4361CONFIG_COMEDI_AMPLC_PC236=m
4362CONFIG_COMEDI_DAS08=m
4363CONFIG_COMEDI_NI_LABPC=m
4364CONFIG_COMEDI_NI_TIO=m
4365CONFIG_PANEL=m
4366CONFIG_PANEL_PARPORT=0
4367CONFIG_PANEL_PROFILE=5
4368# CONFIG_PANEL_CHANGE_MESSAGE is not set
4369CONFIG_R8187SE=m
4370CONFIG_RTLLIB=m
4371CONFIG_RTLLIB_CRYPTO_CCMP=m
4372CONFIG_RTLLIB_CRYPTO_TKIP=m
4373CONFIG_RTLLIB_CRYPTO_WEP=m
4374CONFIG_RTL8192E=m
4375CONFIG_R8821AE=m
4376CONFIG_IDE_PHISON=m
4377CONFIG_VT6655=m
4378CONFIG_DX_SEP=m
4379
4380#
4381# IIO staging drivers
4382#
4383
4384#
4385# Accelerometers
4386#
4387CONFIG_ADIS16201=m
4388CONFIG_ADIS16203=m
4389CONFIG_ADIS16204=m
4390CONFIG_ADIS16209=m
4391CONFIG_ADIS16220=m
4392CONFIG_ADIS16240=m
4393# CONFIG_LIS3L02DQ is not set
4394CONFIG_SCA3000=m
4395
4396#
4397# Analog to digital converters
4398#
4399CONFIG_AD7291=m
4400CONFIG_AD7606=m
4401CONFIG_AD7606_IFACE_PARALLEL=m
4402CONFIG_AD7606_IFACE_SPI=m
4403CONFIG_AD799X=m
4404CONFIG_AD799X_RING_BUFFER=y
4405CONFIG_AD7780=m
4406CONFIG_AD7816=m
4407CONFIG_AD7192=m
4408CONFIG_AD7280=m
4409
4410#
4411# Analog digital bi-direction converters
4412#
4413CONFIG_ADT7316=m
4414CONFIG_ADT7316_SPI=m
4415CONFIG_ADT7316_I2C=m
4416
4417#
4418# Capacitance to digital converters
4419#
4420CONFIG_AD7150=m
4421CONFIG_AD7152=m
4422CONFIG_AD7746=m
4423
4424#
4425# Direct Digital Synthesis
4426#
4427CONFIG_AD5930=m
4428CONFIG_AD9832=m
4429CONFIG_AD9834=m
4430CONFIG_AD9850=m
4431CONFIG_AD9852=m
4432CONFIG_AD9910=m
4433CONFIG_AD9951=m
4434
4435#
4436# Digital gyroscope sensors
4437#
4438CONFIG_ADIS16060=m
4439
4440#
4441# Network Analyzer, Impedance Converters
4442#
4443CONFIG_AD5933=m
4444
4445#
4446# Light sensors
4447#
4448CONFIG_SENSORS_ISL29018=m
4449CONFIG_SENSORS_ISL29028=m
4450CONFIG_TSL2583=m
4451CONFIG_TSL2x7x=m
4452
4453#
4454# Magnetometer sensors
4455#
4456CONFIG_SENSORS_HMC5843=m
4457
4458#
4459# Active energy metering IC
4460#
4461CONFIG_ADE7753=m
4462CONFIG_ADE7754=m
4463CONFIG_ADE7758=m
4464CONFIG_ADE7759=m
4465CONFIG_ADE7854=m
4466CONFIG_ADE7854_I2C=m
4467CONFIG_ADE7854_SPI=m
4468
4469#
4470# Resolver to digital converters
4471#
4472CONFIG_AD2S90=m
4473CONFIG_AD2S1200=m
4474CONFIG_AD2S1210=m
4475
4476#
4477# Triggers - standalone
4478#
4479CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
4480CONFIG_IIO_SIMPLE_DUMMY=m
4481# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
4482# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
4483CONFIG_ZSMALLOC=y
4484CONFIG_ZRAM=m
4485# CONFIG_ZRAM_DEBUG is not set
4486CONFIG_FB_SM7XX=m
4487CONFIG_CRYSTALHD=m
4488CONFIG_CXT1E1=m
4489CONFIG_SBE_PMCC4_NCOMM=y
4490CONFIG_FB_XGI=m
4491CONFIG_SBE_2T3E3=m
4492CONFIG_FT1000=m
4493
4494#
4495# Speakup console speech
4496#
4497CONFIG_SPEAKUP=m
4498CONFIG_SPEAKUP_SYNTH_ACNTSA=m
4499CONFIG_SPEAKUP_SYNTH_APOLLO=m
4500CONFIG_SPEAKUP_SYNTH_AUDPTR=m
4501CONFIG_SPEAKUP_SYNTH_BNS=m
4502CONFIG_SPEAKUP_SYNTH_DECTLK=m
4503CONFIG_SPEAKUP_SYNTH_DECEXT=m
4504CONFIG_SPEAKUP_SYNTH_LTLK=m
4505CONFIG_SPEAKUP_SYNTH_SOFT=m
4506CONFIG_SPEAKUP_SYNTH_SPKOUT=m
4507CONFIG_SPEAKUP_SYNTH_TXPRT=m
4508CONFIG_SPEAKUP_SYNTH_DUMMY=m
4509CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
4510CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
4511CONFIG_STAGING_MEDIA=y
4512CONFIG_DVB_CXD2099=m
4513CONFIG_VIDEO_DT3155=m
4514# CONFIG_DT3155_CCIR is not set
4515CONFIG_DT3155_STREAMING=y
4516CONFIG_LIRC_STAGING=y
4517CONFIG_LIRC_BT829=m
4518CONFIG_LIRC_PARALLEL=m
4519CONFIG_LIRC_SERIAL=m
4520CONFIG_LIRC_SERIAL_TRANSMITTER=y
4521CONFIG_LIRC_SIR=m
4522CONFIG_LIRC_ZILOG=m
4523
4524#
4525# Android
4526#
4527# CONFIG_ANDROID is not set
4528CONFIG_WIMAX_GDM72XX=m
4529CONFIG_WIMAX_GDM72XX_QOS=y
4530CONFIG_WIMAX_GDM72XX_K_MODE=y
4531CONFIG_WIMAX_GDM72XX_WIMAX2=y
4532CONFIG_WIMAX_GDM72XX_SDIO=y
4533CONFIG_NET_VENDOR_SILICOM=y
4534CONFIG_SBYPASS=m
4535CONFIG_BPCTL=m
4536CONFIG_DGRP=m
4537CONFIG_FIREWIRE_SERIAL=m
4538CONFIG_MTD_SPINAND_MT29F=m
4539CONFIG_MTD_SPINAND_ONDIEECC=y
4540CONFIG_LUSTRE_FS=m
4541CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
4542# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
4543CONFIG_LUSTRE_TRANSLATE_ERRNOS=y
4544CONFIG_LUSTRE_LLITE_LLOOP=y
4545CONFIG_LNET=m
4546CONFIG_LNET_MAX_PAYLOAD=1048576
4547CONFIG_LNET_SELFTEST=m
4548CONFIG_LNET_XPRT_IB=m
4549CONFIG_XILLYBUS=m
4550CONFIG_XILLYBUS_PCIE=m
4551CONFIG_XILLYBUS_OF=m
4552CONFIG_DGNC=m
4553CONFIG_DGAP=m
4554CONFIG_CLKDEV_LOOKUP=y
4555CONFIG_HAVE_CLK_PREPARE=y
4556CONFIG_COMMON_CLK=y
4557
4558#
4559# Common Clock Framework
4560#
4561# CONFIG_COMMON_CLK_DEBUG is not set
4562CONFIG_COMMON_CLK_WM831X=m
4563CONFIG_COMMON_CLK_VERSATILE=y
4564CONFIG_COMMON_CLK_MAX77686=m
4565CONFIG_COMMON_CLK_SI5351=m
4566CONFIG_COMMON_CLK_S2MPS11=m
4567CONFIG_CLK_TWL6040=m
4568CONFIG_COMMON_CLK_XGENE=y
4569
4570#
4571# Hardware Spinlock drivers
4572#
4573CONFIG_CLKSRC_OF=y
4574CONFIG_ARM_ARCH_TIMER=y
4575CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
4576CONFIG_MAILBOX=y
4577CONFIG_PL320_MBOX=y
4578# CONFIG_IOMMU_SUPPORT is not set
4579
4580#
4581# Remoteproc drivers
4582#
4583CONFIG_REMOTEPROC=m
4584CONFIG_STE_MODEM_RPROC=m
4585
4586#
4587# Rpmsg drivers
4588#
4589CONFIG_PM_DEVFREQ=y
4590
4591#
4592# DEVFREQ Governors
4593#
4594CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
4595CONFIG_DEVFREQ_GOV_PERFORMANCE=y
4596CONFIG_DEVFREQ_GOV_POWERSAVE=y
4597CONFIG_DEVFREQ_GOV_USERSPACE=y
4598
4599#
4600# DEVFREQ Drivers
4601#
4602CONFIG_EXTCON=y
4603
4604#
4605# Extcon Device Drivers
4606#
4607CONFIG_OF_EXTCON=y
4608CONFIG_EXTCON_GPIO=m
4609CONFIG_EXTCON_ADC_JACK=m
4610CONFIG_EXTCON_MAX77693=m
4611CONFIG_EXTCON_MAX8997=m
4612CONFIG_EXTCON_PALMAS=m
4613CONFIG_MEMORY=y
4614CONFIG_IIO=m
4615CONFIG_IIO_BUFFER=y
4616CONFIG_IIO_BUFFER_CB=y
4617CONFIG_IIO_KFIFO_BUF=m
4618CONFIG_IIO_TRIGGERED_BUFFER=m
4619CONFIG_IIO_TRIGGER=y
4620CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
4621
4622#
4623# Accelerometers
4624#
4625CONFIG_BMA180=m
4626CONFIG_HID_SENSOR_ACCEL_3D=m
4627CONFIG_IIO_ST_ACCEL_3AXIS=m
4628CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
4629CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
4630CONFIG_KXSD9=m
4631
4632#
4633# Analog to digital converters
4634#
4635CONFIG_AD_SIGMA_DELTA=m
4636CONFIG_AD7266=m
4637CONFIG_AD7298=m
4638CONFIG_AD7476=m
4639CONFIG_AD7791=m
4640CONFIG_AD7793=m
4641CONFIG_AD7887=m
4642CONFIG_AD7923=m
4643CONFIG_EXYNOS_ADC=y
4644CONFIG_LP8788_ADC=y
4645CONFIG_MAX1363=m
4646CONFIG_MCP320X=m
4647CONFIG_MCP3422=m
4648CONFIG_NAU7802=m
4649CONFIG_TI_ADC081C=m
4650
4651#
4652# Amplifiers
4653#
4654CONFIG_AD8366=m
4655
4656#
4657# Hid Sensor IIO Common
4658#
4659CONFIG_HID_SENSOR_IIO_COMMON=m
4660CONFIG_HID_SENSOR_IIO_TRIGGER=m
4661CONFIG_IIO_ST_SENSORS_I2C=m
4662CONFIG_IIO_ST_SENSORS_SPI=m
4663CONFIG_IIO_ST_SENSORS_CORE=m
4664
4665#
4666# Digital to analog converters
4667#
4668CONFIG_AD5064=m
4669CONFIG_AD5360=m
4670CONFIG_AD5380=m
4671CONFIG_AD5421=m
4672CONFIG_AD5446=m
4673CONFIG_AD5449=m
4674CONFIG_AD5504=m
4675CONFIG_AD5624R_SPI=m
4676CONFIG_AD5686=m
4677CONFIG_AD5755=m
4678CONFIG_AD5764=m
4679CONFIG_AD5791=m
4680CONFIG_AD7303=m
4681CONFIG_MAX517=m
4682CONFIG_MCP4725=m
4683
4684#
4685# Frequency Synthesizers DDS/PLL
4686#
4687
4688#
4689# Clock Generator/Distribution
4690#
4691CONFIG_AD9523=m
4692
4693#
4694# Phase-Locked Loop (PLL) frequency synthesizers
4695#
4696CONFIG_ADF4350=m
4697
4698#
4699# Digital gyroscope sensors
4700#
4701CONFIG_ADIS16080=m
4702CONFIG_ADIS16130=m
4703CONFIG_ADIS16136=m
4704CONFIG_ADIS16260=m
4705CONFIG_ADXRS450=m
4706CONFIG_HID_SENSOR_GYRO_3D=m
4707CONFIG_IIO_ST_GYRO_3AXIS=m
4708CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
4709CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
4710CONFIG_ITG3200=m
4711
4712#
4713# Inertial measurement units
4714#
4715CONFIG_ADIS16400=m
4716CONFIG_ADIS16480=m
4717CONFIG_IIO_ADIS_LIB=m
4718CONFIG_IIO_ADIS_LIB_BUFFER=y
4719CONFIG_INV_MPU6050_IIO=m
4720
4721#
4722# Light sensors
4723#
4724CONFIG_ADJD_S311=m
4725CONFIG_APDS9300=m
4726CONFIG_CM36651=m
4727CONFIG_GP2AP020A00F=m
4728CONFIG_HID_SENSOR_ALS=m
4729CONFIG_SENSORS_LM3533=m
4730CONFIG_TCS3472=m
4731CONFIG_SENSORS_TSL2563=m
4732CONFIG_TSL4531=m
4733CONFIG_VCNL4000=m
4734
4735#
4736# Magnetometer sensors
4737#
4738CONFIG_AK8975=m
4739CONFIG_MAG3110=m
4740CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
4741CONFIG_IIO_ST_MAGN_3AXIS=m
4742CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
4743CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
4744
4745#
4746# Triggers - standalone
4747#
4748CONFIG_IIO_INTERRUPT_TRIGGER=m
4749CONFIG_IIO_SYSFS_TRIGGER=m
4750
4751#
4752# Pressure sensors
4753#
4754CONFIG_IIO_ST_PRESS=m
4755CONFIG_IIO_ST_PRESS_I2C=m
4756CONFIG_IIO_ST_PRESS_SPI=m
4757
4758#
4759# Temperature sensors
4760#
4761CONFIG_TMP006=m
4762CONFIG_VME_BUS=m
4763
4764#
4765# VME Bridge Drivers
4766#
4767
4768#
4769# VME Board Drivers
4770#
4771CONFIG_VMIVME_7805=m
4772
4773#
4774# VME Device Drivers
4775#
4776CONFIG_VME_USER=m
4777CONFIG_VME_PIO2=m
4778CONFIG_PWM=y
4779CONFIG_PWM_SYSFS=y
4780CONFIG_PWM_PCA9685=m
4781CONFIG_IRQCHIP=y
4782CONFIG_ARM_GIC=y
4783CONFIG_IPACK_BUS=m
4784CONFIG_BOARD_TPCI200=m
4785CONFIG_SERIAL_IPOCTAL=m
4786CONFIG_RESET_CONTROLLER=y
4787CONFIG_FMC=m
4788CONFIG_FMC_FAKEDEV=m
4789CONFIG_FMC_TRIVIAL=m
4790CONFIG_FMC_WRITE_EEPROM=m
4791CONFIG_FMC_CHARDEV=m
4792
4793#
4794# PHY Subsystem
4795#
4796CONFIG_GENERIC_PHY=y
4797# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
4798CONFIG_PHY_EXYNOS_DP_VIDEO=m
4799CONFIG_PHY_XGENE=y
4800CONFIG_POWERCAP=y
4801
4802#
4803# Frame Manager support
4804#
4805CONFIG_FSL_FMAN=y
4806# CONFIG_FSL_FMAN_TEST is not set
4807
4808#
4809# FMAN Processor support
4810#
4811CONFIG_FMAN_P3040_P4080_P5020=y
4812# CONFIG_FMAN_P1023 is not set
4813# CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM is not set
4814# CONFIG_FMAN_MIB_CNT_OVF_IRQ_EN is not set
4815
4816#
4817# File systems
4818#
4819# CONFIG_EXT2_FS is not set
4820# CONFIG_EXT3_FS is not set
4821CONFIG_EXT4_FS=y
4822CONFIG_EXT4_USE_FOR_EXT23=y
4823CONFIG_EXT4_FS_POSIX_ACL=y
4824CONFIG_EXT4_FS_SECURITY=y
4825# CONFIG_EXT4_DEBUG is not set
4826CONFIG_JBD2=y
4827# CONFIG_JBD2_DEBUG is not set
4828CONFIG_FS_MBCACHE=y
4829CONFIG_REISERFS_FS=m
4830# CONFIG_REISERFS_CHECK is not set
4831# CONFIG_REISERFS_PROC_INFO is not set
4832CONFIG_REISERFS_FS_XATTR=y
4833CONFIG_REISERFS_FS_POSIX_ACL=y
4834CONFIG_REISERFS_FS_SECURITY=y
4835CONFIG_JFS_FS=m
4836CONFIG_JFS_POSIX_ACL=y
4837CONFIG_JFS_SECURITY=y
4838# CONFIG_JFS_DEBUG is not set
4839CONFIG_JFS_STATISTICS=y
4840CONFIG_XFS_FS=m
4841CONFIG_XFS_QUOTA=y
4842CONFIG_XFS_POSIX_ACL=y
4843CONFIG_XFS_RT=y
4844# CONFIG_XFS_WARN is not set
4845# CONFIG_XFS_DEBUG is not set
4846CONFIG_GFS2_FS=m
4847CONFIG_GFS2_FS_LOCKING_DLM=y
4848CONFIG_OCFS2_FS=m
4849CONFIG_OCFS2_FS_O2CB=m
4850CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
4851CONFIG_OCFS2_FS_STATS=y
4852CONFIG_OCFS2_DEBUG_MASKLOG=y
4853# CONFIG_OCFS2_DEBUG_FS is not set
4854CONFIG_BTRFS_FS=m
4855CONFIG_BTRFS_FS_POSIX_ACL=y
4856# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
4857# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
4858# CONFIG_BTRFS_DEBUG is not set
4859# CONFIG_BTRFS_ASSERT is not set
4860CONFIG_NILFS2_FS=m
4861CONFIG_FS_POSIX_ACL=y
4862CONFIG_EXPORTFS=y
4863CONFIG_FILE_LOCKING=y
4864CONFIG_FSNOTIFY=y
4865CONFIG_DNOTIFY=y
4866CONFIG_INOTIFY_USER=y
4867CONFIG_FANOTIFY=y
4868CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
4869CONFIG_QUOTA=y
4870CONFIG_QUOTA_NETLINK_INTERFACE=y
4871# CONFIG_PRINT_QUOTA_WARNING is not set
4872# CONFIG_QUOTA_DEBUG is not set
4873CONFIG_QUOTA_TREE=m
4874CONFIG_QFMT_V1=m
4875CONFIG_QFMT_V2=m
4876CONFIG_QUOTACTL=y
4877CONFIG_AUTOFS4_FS=m
4878CONFIG_FUSE_FS=y
4879CONFIG_CUSE=m
4880CONFIG_OVERLAYFS_FS=m
4881CONFIG_GENERIC_ACL=y
4882
4883#
4884# Caches
4885#
4886CONFIG_FSCACHE=m
4887CONFIG_FSCACHE_STATS=y
4888# CONFIG_FSCACHE_HISTOGRAM is not set
4889# CONFIG_FSCACHE_DEBUG is not set
4890# CONFIG_FSCACHE_OBJECT_LIST is not set
4891CONFIG_CACHEFILES=m
4892# CONFIG_CACHEFILES_DEBUG is not set
4893# CONFIG_CACHEFILES_HISTOGRAM is not set
4894
4895#
4896# CD-ROM/DVD Filesystems
4897#
4898CONFIG_ISO9660_FS=m
4899CONFIG_JOLIET=y
4900CONFIG_ZISOFS=y
4901CONFIG_UDF_FS=m
4902CONFIG_UDF_NLS=y
4903
4904#
4905# DOS/FAT/NT Filesystems
4906#
4907CONFIG_FAT_FS=y
4908CONFIG_MSDOS_FS=m
4909CONFIG_VFAT_FS=y
4910CONFIG_FAT_DEFAULT_CODEPAGE=437
4911CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
4912CONFIG_NTFS_FS=m
4913# CONFIG_NTFS_DEBUG is not set
4914# CONFIG_NTFS_RW is not set
4915
4916#
4917# Pseudo filesystems
4918#
4919CONFIG_PROC_FS=y
4920CONFIG_PROC_KCORE=y
4921CONFIG_PROC_SYSCTL=y
4922CONFIG_PROC_PAGE_MONITOR=y
4923CONFIG_SYSFS=y
4924CONFIG_TMPFS=y
4925CONFIG_TMPFS_POSIX_ACL=y
4926CONFIG_TMPFS_XATTR=y
4927CONFIG_HUGETLBFS=y
4928CONFIG_HUGETLB_PAGE=y
4929CONFIG_CONFIGFS_FS=m
4930CONFIG_MISC_FILESYSTEMS=y
4931CONFIG_ADFS_FS=m
4932# CONFIG_ADFS_FS_RW is not set
4933CONFIG_AFFS_FS=m
4934CONFIG_ECRYPT_FS=y
4935CONFIG_ECRYPT_FS_MESSAGING=y
4936CONFIG_HFS_FS=m
4937CONFIG_HFSPLUS_FS=m
4938CONFIG_HFSPLUS_FS_POSIX_ACL=y
4939CONFIG_BEFS_FS=m
4940# CONFIG_BEFS_DEBUG is not set
4941CONFIG_BFS_FS=m
4942CONFIG_EFS_FS=m
4943CONFIG_JFFS2_FS=m
4944CONFIG_JFFS2_FS_DEBUG=0
4945CONFIG_JFFS2_FS_WRITEBUFFER=y
4946# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
4947# CONFIG_JFFS2_SUMMARY is not set
4948# CONFIG_JFFS2_FS_XATTR is not set
4949CONFIG_JFFS2_COMPRESSION_OPTIONS=y
4950CONFIG_JFFS2_ZLIB=y
4951CONFIG_JFFS2_LZO=y
4952CONFIG_JFFS2_RTIME=y
4953# CONFIG_JFFS2_RUBIN is not set
4954# CONFIG_JFFS2_CMODE_NONE is not set
4955# CONFIG_JFFS2_CMODE_PRIORITY is not set
4956# CONFIG_JFFS2_CMODE_SIZE is not set
4957CONFIG_JFFS2_CMODE_FAVOURLZO=y
4958CONFIG_UBIFS_FS=m
4959# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
4960CONFIG_UBIFS_FS_LZO=y
4961CONFIG_UBIFS_FS_ZLIB=y
4962# CONFIG_LOGFS is not set
4963CONFIG_CRAMFS=m
4964CONFIG_SQUASHFS=m
4965# CONFIG_SQUASHFS_FILE_CACHE is not set
4966CONFIG_SQUASHFS_FILE_DIRECT=y
4967# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
4968# CONFIG_SQUASHFS_DECOMP_MULTI is not set
4969CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
4970CONFIG_SQUASHFS_XATTR=y
4971CONFIG_SQUASHFS_ZLIB=y
4972CONFIG_SQUASHFS_LZO=y
4973CONFIG_SQUASHFS_XZ=y
4974# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
4975# CONFIG_SQUASHFS_EMBEDDED is not set
4976CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
4977CONFIG_VXFS_FS=m
4978CONFIG_MINIX_FS=m
4979CONFIG_OMFS_FS=m
4980CONFIG_HPFS_FS=m
4981CONFIG_QNX4FS_FS=m
4982CONFIG_QNX6FS_FS=m
4983# CONFIG_QNX6FS_DEBUG is not set
4984CONFIG_ROMFS_FS=m
4985CONFIG_ROMFS_BACKED_BY_BLOCK=y
4986# CONFIG_ROMFS_BACKED_BY_MTD is not set
4987# CONFIG_ROMFS_BACKED_BY_BOTH is not set
4988CONFIG_ROMFS_ON_BLOCK=y
4989CONFIG_PSTORE=y
4990# CONFIG_PSTORE_CONSOLE is not set
4991CONFIG_PSTORE_RAM=m
4992CONFIG_SYSV_FS=m
4993CONFIG_UFS_FS=m
4994# CONFIG_UFS_FS_WRITE is not set
4995# CONFIG_UFS_DEBUG is not set
4996CONFIG_EXOFS_FS=m
4997# CONFIG_EXOFS_DEBUG is not set
4998CONFIG_F2FS_FS=m
4999CONFIG_F2FS_STAT_FS=y
5000CONFIG_F2FS_FS_XATTR=y
5001CONFIG_F2FS_FS_POSIX_ACL=y
5002CONFIG_F2FS_FS_SECURITY=y
5003# CONFIG_F2FS_CHECK_FS is not set
5004CONFIG_ORE=m
5005CONFIG_NETWORK_FILESYSTEMS=y
5006CONFIG_NFS_FS=y
5007CONFIG_NFS_V2=y
5008CONFIG_NFS_V3=y
5009CONFIG_NFS_V3_ACL=y
5010CONFIG_NFS_V4=y
5011CONFIG_NFS_SWAP=y
5012CONFIG_NFS_V4_1=y
5013CONFIG_NFS_V4_2=y
5014CONFIG_PNFS_FILE_LAYOUT=y
5015CONFIG_PNFS_BLOCK=y
5016CONFIG_PNFS_OBJLAYOUT=m
5017CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
5018CONFIG_NFS_V4_1_MIGRATION=y
5019CONFIG_NFS_V4_SECURITY_LABEL=y
5020CONFIG_ROOT_NFS=y
5021# CONFIG_NFS_USE_LEGACY_DNS is not set
5022CONFIG_NFS_USE_KERNEL_DNS=y
5023CONFIG_NFS_DEBUG=y
5024CONFIG_NFSD=m
5025CONFIG_NFSD_V2_ACL=y
5026CONFIG_NFSD_V3=y
5027CONFIG_NFSD_V3_ACL=y
5028CONFIG_NFSD_V4=y
5029CONFIG_NFSD_V4_SECURITY_LABEL=y
5030# CONFIG_NFSD_FAULT_INJECTION is not set
5031CONFIG_LOCKD=y
5032CONFIG_LOCKD_V4=y
5033CONFIG_NFS_ACL_SUPPORT=y
5034CONFIG_NFS_COMMON=y
5035CONFIG_SUNRPC=y
5036CONFIG_SUNRPC_GSS=y
5037CONFIG_SUNRPC_BACKCHANNEL=y
5038CONFIG_SUNRPC_XPRT_RDMA=m
5039CONFIG_SUNRPC_SWAP=y
5040CONFIG_RPCSEC_GSS_KRB5=m
5041CONFIG_SUNRPC_DEBUG=y
5042CONFIG_CEPH_FS=m
5043CONFIG_CEPH_FSCACHE=y
5044CONFIG_CIFS=m
5045CONFIG_CIFS_STATS=y
5046# CONFIG_CIFS_STATS2 is not set
5047CONFIG_CIFS_WEAK_PW_HASH=y
5048CONFIG_CIFS_UPCALL=y
5049CONFIG_CIFS_XATTR=y
5050CONFIG_CIFS_POSIX=y
5051CONFIG_CIFS_ACL=y
5052CONFIG_CIFS_DEBUG=y
5053# CONFIG_CIFS_DEBUG2 is not set
5054CONFIG_CIFS_DFS_UPCALL=y
5055CONFIG_CIFS_SMB2=y
5056CONFIG_CIFS_FSCACHE=y
5057CONFIG_NCP_FS=m
5058CONFIG_NCPFS_PACKET_SIGNING=y
5059CONFIG_NCPFS_IOCTL_LOCKING=y
5060CONFIG_NCPFS_STRONG=y
5061CONFIG_NCPFS_NFS_NS=y
5062CONFIG_NCPFS_OS2_NS=y
5063# CONFIG_NCPFS_SMALLDOS is not set
5064CONFIG_NCPFS_NLS=y
5065CONFIG_NCPFS_EXTRAS=y
5066CONFIG_CODA_FS=m
5067CONFIG_AFS_FS=m
5068# CONFIG_AFS_DEBUG is not set
5069# CONFIG_AFS_FSCACHE is not set
5070CONFIG_9P_FS=m
5071# CONFIG_9P_FSCACHE is not set
5072CONFIG_9P_FS_POSIX_ACL=y
5073CONFIG_9P_FS_SECURITY=y
5074CONFIG_NLS=y
5075CONFIG_NLS_DEFAULT="utf8"
5076CONFIG_NLS_CODEPAGE_437=y
5077CONFIG_NLS_CODEPAGE_737=m
5078CONFIG_NLS_CODEPAGE_775=m
5079CONFIG_NLS_CODEPAGE_850=m
5080CONFIG_NLS_CODEPAGE_852=m
5081CONFIG_NLS_CODEPAGE_855=m
5082CONFIG_NLS_CODEPAGE_857=m
5083CONFIG_NLS_CODEPAGE_860=m
5084CONFIG_NLS_CODEPAGE_861=m
5085CONFIG_NLS_CODEPAGE_862=m
5086CONFIG_NLS_CODEPAGE_863=m
5087CONFIG_NLS_CODEPAGE_864=m
5088CONFIG_NLS_CODEPAGE_865=m
5089CONFIG_NLS_CODEPAGE_866=m
5090CONFIG_NLS_CODEPAGE_869=m
5091CONFIG_NLS_CODEPAGE_936=m
5092CONFIG_NLS_CODEPAGE_950=m
5093CONFIG_NLS_CODEPAGE_932=m
5094CONFIG_NLS_CODEPAGE_949=m
5095CONFIG_NLS_CODEPAGE_874=m
5096CONFIG_NLS_ISO8859_8=m
5097CONFIG_NLS_CODEPAGE_1250=m
5098CONFIG_NLS_CODEPAGE_1251=m
5099CONFIG_NLS_ASCII=m
5100CONFIG_NLS_ISO8859_1=m
5101CONFIG_NLS_ISO8859_2=m
5102CONFIG_NLS_ISO8859_3=m
5103CONFIG_NLS_ISO8859_4=m
5104CONFIG_NLS_ISO8859_5=m
5105CONFIG_NLS_ISO8859_6=m
5106CONFIG_NLS_ISO8859_7=m
5107CONFIG_NLS_ISO8859_9=m
5108CONFIG_NLS_ISO8859_13=m
5109CONFIG_NLS_ISO8859_14=m
5110CONFIG_NLS_ISO8859_15=m
5111CONFIG_NLS_KOI8_R=m
5112CONFIG_NLS_KOI8_U=m
5113CONFIG_NLS_MAC_ROMAN=m
5114CONFIG_NLS_MAC_CELTIC=m
5115CONFIG_NLS_MAC_CENTEURO=m
5116CONFIG_NLS_MAC_CROATIAN=m
5117CONFIG_NLS_MAC_CYRILLIC=m
5118CONFIG_NLS_MAC_GAELIC=m
5119CONFIG_NLS_MAC_GREEK=m
5120CONFIG_NLS_MAC_ICELAND=m
5121CONFIG_NLS_MAC_INUIT=m
5122CONFIG_NLS_MAC_ROMANIAN=m
5123CONFIG_NLS_MAC_TURKISH=m
5124CONFIG_NLS_UTF8=m
5125CONFIG_DLM=m
5126# CONFIG_DLM_DEBUG is not set
5127CONFIG_HAVE_KVM_IRQCHIP=y
5128CONFIG_KVM_MMIO=y
5129CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
5130CONFIG_VIRTUALIZATION=y
5131CONFIG_KVM=y
5132CONFIG_KVM_ARM_HOST=y
5133CONFIG_KVM_ARM_MAX_VCPUS=4
5134CONFIG_KVM_ARM_VGIC=y
5135CONFIG_KVM_ARM_TIMER=y
5136
5137#
5138# Kernel hacking
5139#
5140
5141#
5142# printk and dmesg options
5143#
5144CONFIG_PRINTK_TIME=y
5145CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
5146CONFIG_BOOT_PRINTK_DELAY=y
5147CONFIG_DYNAMIC_DEBUG=y
5148
5149#
5150# Compile-time checks and compiler options
5151#
5152CONFIG_DEBUG_INFO=y
5153# CONFIG_DEBUG_INFO_REDUCED is not set
5154# CONFIG_ENABLE_WARN_DEPRECATED is not set
5155# CONFIG_ENABLE_MUST_CHECK is not set
5156CONFIG_FRAME_WARN=1024
5157# CONFIG_STRIP_ASM_SYMS is not set
5158# CONFIG_READABLE_ASM is not set
5159CONFIG_UNUSED_SYMBOLS=y
5160CONFIG_DEBUG_FS=y
5161# CONFIG_HEADERS_CHECK is not set
5162# CONFIG_DEBUG_SECTION_MISMATCH is not set
5163CONFIG_ARCH_WANT_FRAME_POINTERS=y
5164CONFIG_FRAME_POINTER=y
5165# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
5166CONFIG_MAGIC_SYSRQ=y
5167CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
5168CONFIG_DEBUG_KERNEL=y
5169
5170#
5171# Memory Debugging
5172#
5173# CONFIG_DEBUG_PAGEALLOC is not set
5174# CONFIG_DEBUG_OBJECTS is not set
5175# CONFIG_SLUB_DEBUG_ON is not set
5176# CONFIG_SLUB_STATS is not set
5177CONFIG_HAVE_DEBUG_KMEMLEAK=y
5178# CONFIG_DEBUG_KMEMLEAK is not set
5179# CONFIG_DEBUG_STACK_USAGE is not set
5180# CONFIG_DEBUG_VM is not set
5181# CONFIG_DEBUG_MEMORY_INIT is not set
5182# CONFIG_DEBUG_PER_CPU_MAPS is not set
5183# CONFIG_DEBUG_SHIRQ is not set
5184
5185#
5186# Debug Lockups and Hangs
5187#
5188CONFIG_LOCKUP_DETECTOR=y
5189# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
5190CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
5191CONFIG_DETECT_HUNG_TASK=y
5192CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
5193# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
5194CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
5195# CONFIG_PANIC_ON_OOPS is not set
5196CONFIG_PANIC_ON_OOPS_VALUE=0
5197CONFIG_SCHED_DEBUG=y
5198CONFIG_SCHEDSTATS=y
5199CONFIG_TIMER_STATS=y
5200
5201#
5202# Lock Debugging (spinlocks, mutexes, etc...)
5203#
5204# CONFIG_DEBUG_RT_MUTEXES is not set
5205# CONFIG_RT_MUTEX_TESTER is not set
5206# CONFIG_DEBUG_SPINLOCK is not set
5207# CONFIG_DEBUG_MUTEXES is not set
5208# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
5209# CONFIG_DEBUG_LOCK_ALLOC is not set
5210# CONFIG_PROVE_LOCKING is not set
5211# CONFIG_LOCK_STAT is not set
5212# CONFIG_DEBUG_ATOMIC_SLEEP is not set
5213# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
5214CONFIG_STACKTRACE=y
5215# CONFIG_DEBUG_KOBJECT is not set
5216CONFIG_HAVE_DEBUG_BUGVERBOSE=y
5217CONFIG_DEBUG_BUGVERBOSE=y
5218# CONFIG_DEBUG_WRITECOUNT is not set
5219# CONFIG_DEBUG_LIST is not set
5220# CONFIG_DEBUG_SG is not set
5221# CONFIG_DEBUG_NOTIFIERS is not set
5222# CONFIG_DEBUG_CREDENTIALS is not set
5223
5224#
5225# RCU Debugging
5226#
5227# CONFIG_SPARSE_RCU_POINTER is not set
5228# CONFIG_RCU_TORTURE_TEST is not set
5229CONFIG_RCU_CPU_STALL_TIMEOUT=60
5230# CONFIG_RCU_CPU_STALL_INFO is not set
5231# CONFIG_RCU_TRACE is not set
5232# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
5233CONFIG_NOTIFIER_ERROR_INJECTION=m
5234CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
5235# CONFIG_FAULT_INJECTION is not set
5236CONFIG_NOP_TRACER=y
5237CONFIG_TRACER_MAX_TRACE=y
5238CONFIG_TRACE_CLOCK=y
5239CONFIG_RING_BUFFER=y
5240CONFIG_EVENT_TRACING=y
5241CONFIG_CONTEXT_SWITCH_TRACER=y
5242CONFIG_TRACING=y
5243CONFIG_GENERIC_TRACER=y
5244CONFIG_TRACING_SUPPORT=y
5245CONFIG_FTRACE=y
5246# CONFIG_IRQSOFF_TRACER is not set
5247CONFIG_SCHED_TRACER=y
5248CONFIG_TRACER_SNAPSHOT=y
5249# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
5250CONFIG_BRANCH_PROFILE_NONE=y
5251# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
5252# CONFIG_PROFILE_ALL_BRANCHES is not set
5253CONFIG_BLK_DEV_IO_TRACE=y
5254# CONFIG_PROBE_EVENTS is not set
5255# CONFIG_FTRACE_STARTUP_TEST is not set
5256# CONFIG_RING_BUFFER_BENCHMARK is not set
5257# CONFIG_RING_BUFFER_STARTUP_TEST is not set
5258
5259#
5260# Runtime Testing
5261#
5262# CONFIG_LKDTM is not set
5263# CONFIG_TEST_LIST_SORT is not set
5264# CONFIG_BACKTRACE_SELF_TEST is not set
5265CONFIG_RBTREE_TEST=m
5266CONFIG_INTERVAL_TREE_TEST=m
5267CONFIG_PERCPU_TEST=m
5268CONFIG_ATOMIC64_SELFTEST=y
5269CONFIG_ASYNC_RAID6_TEST=m
5270CONFIG_TEST_STRING_HELPERS=m
5271CONFIG_TEST_KSTRTOX=m
5272# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
5273# CONFIG_DMA_API_DEBUG is not set
5274# CONFIG_SAMPLES is not set
5275CONFIG_EARLY_PRINTK=y
5276# CONFIG_PID_IN_CONTEXTIDR is not set
5277
5278#
5279# Security options
5280#
5281CONFIG_KEYS=y
5282CONFIG_PERSISTENT_KEYRINGS=y
5283CONFIG_BIG_KEYS=y
5284CONFIG_TRUSTED_KEYS=y
5285CONFIG_ENCRYPTED_KEYS=y
5286# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
5287# CONFIG_SECURITY_DMESG_RESTRICT is not set
5288CONFIG_SECURITY=y
5289CONFIG_SECURITYFS=y
5290CONFIG_SECURITY_NETWORK=y
5291# CONFIG_SECURITY_NETWORK_XFRM is not set
5292CONFIG_SECURITY_PATH=y
5293CONFIG_LSM_MMAP_MIN_ADDR=0
5294CONFIG_SECURITY_SELINUX=y
5295CONFIG_SECURITY_SELINUX_BOOTPARAM=y
5296CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
5297CONFIG_SECURITY_SELINUX_DISABLE=y
5298CONFIG_SECURITY_SELINUX_DEVELOP=y
5299CONFIG_SECURITY_SELINUX_AVC_STATS=y
5300CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
5301# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
5302CONFIG_SECURITY_SMACK=y
5303CONFIG_SECURITY_TOMOYO=y
5304CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
5305CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
5306# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
5307CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
5308CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
5309CONFIG_SECURITY_APPARMOR=y
5310CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
5311# CONFIG_SECURITY_APPARMOR_STATS is not set
5312CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT=y
5313CONFIG_SECURITY_APPARMOR_HASH=y
5314CONFIG_SECURITY_YAMA=y
5315CONFIG_SECURITY_YAMA_STACKED=y
5316CONFIG_INTEGRITY=y
5317CONFIG_INTEGRITY_SIGNATURE=y
5318CONFIG_INTEGRITY_AUDIT=y
5319CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
5320CONFIG_IMA=y
5321CONFIG_IMA_MEASURE_PCR_IDX=10
5322CONFIG_IMA_LSM_RULES=y
5323# CONFIG_IMA_TEMPLATE is not set
5324CONFIG_IMA_NG_TEMPLATE=y
5325# CONFIG_IMA_SIG_TEMPLATE is not set
5326CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
5327CONFIG_IMA_DEFAULT_HASH_SHA1=y
5328# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
5329# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
5330# CONFIG_IMA_DEFAULT_HASH_WP512 is not set
5331CONFIG_IMA_DEFAULT_HASH="sha1"
5332CONFIG_IMA_APPRAISE=y
5333CONFIG_EVM=y
5334CONFIG_EVM_HMAC_VERSION=2
5335# CONFIG_DEFAULT_SECURITY_SELINUX is not set
5336# CONFIG_DEFAULT_SECURITY_SMACK is not set
5337# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
5338CONFIG_DEFAULT_SECURITY_APPARMOR=y
5339# CONFIG_DEFAULT_SECURITY_YAMA is not set
5340# CONFIG_DEFAULT_SECURITY_DAC is not set
5341CONFIG_DEFAULT_SECURITY="apparmor"
5342CONFIG_XOR_BLOCKS=m
5343CONFIG_ASYNC_CORE=m
5344CONFIG_ASYNC_MEMCPY=m
5345CONFIG_ASYNC_XOR=m
5346CONFIG_ASYNC_PQ=m
5347CONFIG_ASYNC_RAID6_RECOV=m
5348CONFIG_CRYPTO=y
5349
5350#
5351# Crypto core or helper
5352#
5353CONFIG_CRYPTO_ALGAPI=y
5354CONFIG_CRYPTO_ALGAPI2=y
5355CONFIG_CRYPTO_AEAD=m
5356CONFIG_CRYPTO_AEAD2=y
5357CONFIG_CRYPTO_BLKCIPHER=y
5358CONFIG_CRYPTO_BLKCIPHER2=y
5359CONFIG_CRYPTO_HASH=y
5360CONFIG_CRYPTO_HASH2=y
5361CONFIG_CRYPTO_RNG=y
5362CONFIG_CRYPTO_RNG2=y
5363CONFIG_CRYPTO_PCOMP=m
5364CONFIG_CRYPTO_PCOMP2=y
5365CONFIG_CRYPTO_MANAGER=y
5366CONFIG_CRYPTO_MANAGER2=y
5367CONFIG_CRYPTO_USER=m
5368CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
5369CONFIG_CRYPTO_GF128MUL=m
5370CONFIG_CRYPTO_NULL=m
5371CONFIG_CRYPTO_PCRYPT=m
5372CONFIG_CRYPTO_WORKQUEUE=y
5373CONFIG_CRYPTO_CRYPTD=m
5374CONFIG_CRYPTO_AUTHENC=m
5375CONFIG_CRYPTO_TEST=m
5376
5377#
5378# Authenticated Encryption with Associated Data
5379#
5380CONFIG_CRYPTO_CCM=m
5381CONFIG_CRYPTO_GCM=m
5382CONFIG_CRYPTO_SEQIV=m
5383
5384#
5385# Block modes
5386#
5387CONFIG_CRYPTO_CBC=y
5388CONFIG_CRYPTO_CTR=m
5389CONFIG_CRYPTO_CTS=m
5390CONFIG_CRYPTO_ECB=y
5391CONFIG_CRYPTO_LRW=m
5392CONFIG_CRYPTO_PCBC=m
5393CONFIG_CRYPTO_XTS=m
5394
5395#
5396# Hash modes
5397#
5398CONFIG_CRYPTO_CMAC=m
5399CONFIG_CRYPTO_HMAC=y
5400CONFIG_CRYPTO_XCBC=m
5401CONFIG_CRYPTO_VMAC=m
5402
5403#
5404# Digest
5405#
5406CONFIG_CRYPTO_CRC32C=y
5407CONFIG_CRYPTO_CRC32=m
5408CONFIG_CRYPTO_CRCT10DIF=y
5409CONFIG_CRYPTO_GHASH=m
5410CONFIG_CRYPTO_MD4=m
5411CONFIG_CRYPTO_MD5=y
5412CONFIG_CRYPTO_MICHAEL_MIC=m
5413CONFIG_CRYPTO_RMD128=m
5414CONFIG_CRYPTO_RMD160=m
5415CONFIG_CRYPTO_RMD256=m
5416CONFIG_CRYPTO_RMD320=m
5417CONFIG_CRYPTO_SHA1=y
5418CONFIG_CRYPTO_SHA256=y
5419CONFIG_CRYPTO_SHA512=y
5420CONFIG_CRYPTO_TGR192=m
5421CONFIG_CRYPTO_WP512=m
5422
5423#
5424# Ciphers
5425#
5426CONFIG_CRYPTO_AES=y
5427CONFIG_CRYPTO_ANUBIS=m
5428CONFIG_CRYPTO_ARC4=m
5429CONFIG_CRYPTO_BLOWFISH=m
5430CONFIG_CRYPTO_BLOWFISH_COMMON=m
5431CONFIG_CRYPTO_CAMELLIA=m
5432CONFIG_CRYPTO_CAST_COMMON=m
5433CONFIG_CRYPTO_CAST5=m
5434CONFIG_CRYPTO_CAST6=m
5435CONFIG_CRYPTO_DES=m
5436CONFIG_CRYPTO_FCRYPT=m
5437CONFIG_CRYPTO_KHAZAD=m
5438CONFIG_CRYPTO_SALSA20=m
5439CONFIG_CRYPTO_SEED=m
5440CONFIG_CRYPTO_SERPENT=m
5441CONFIG_CRYPTO_TEA=m
5442CONFIG_CRYPTO_TWOFISH=m
5443CONFIG_CRYPTO_TWOFISH_COMMON=m
5444
5445#
5446# Compression
5447#
5448CONFIG_CRYPTO_DEFLATE=m
5449CONFIG_CRYPTO_ZLIB=m
5450CONFIG_CRYPTO_LZO=y
5451CONFIG_CRYPTO_LZ4=m
5452CONFIG_CRYPTO_LZ4HC=m
5453
5454#
5455# Random Number Generation
5456#
5457CONFIG_CRYPTO_ANSI_CPRNG=m
5458CONFIG_CRYPTO_USER_API=m
5459CONFIG_CRYPTO_USER_API_HASH=m
5460CONFIG_CRYPTO_USER_API_SKCIPHER=m
5461CONFIG_CRYPTO_HASH_INFO=y
5462CONFIG_CRYPTO_HW=y
5463CONFIG_ASYMMETRIC_KEY_TYPE=y
5464CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
5465CONFIG_PUBLIC_KEY_ALGO_RSA=y
5466CONFIG_X509_CERTIFICATE_PARSER=y
5467CONFIG_BINARY_PRINTF=y
5468
5469#
5470# Library routines
5471#
5472CONFIG_RAID6_PQ=m
5473CONFIG_BITREVERSE=y
5474CONFIG_RATIONAL=y
5475CONFIG_GENERIC_NET_UTILS=y
5476CONFIG_GENERIC_PCI_IOMAP=y
5477CONFIG_GENERIC_IOMAP=y
5478CONFIG_GENERIC_IO=y
5479CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
5480CONFIG_CRC_CCITT=m
5481CONFIG_CRC16=y
5482CONFIG_CRC_T10DIF=y
5483CONFIG_CRC_ITU_T=m
5484CONFIG_CRC32=y
5485# CONFIG_CRC32_SELFTEST is not set
5486CONFIG_CRC32_SLICEBY8=y
5487# CONFIG_CRC32_SLICEBY4 is not set
5488# CONFIG_CRC32_SARWATE is not set
5489# CONFIG_CRC32_BIT is not set
5490CONFIG_CRC7=m
5491CONFIG_LIBCRC32C=m
5492CONFIG_CRC8=m
5493CONFIG_AUDIT_GENERIC=y
5494# CONFIG_RANDOM32_SELFTEST is not set
5495CONFIG_ZLIB_INFLATE=y
5496CONFIG_ZLIB_DEFLATE=y
5497CONFIG_LZO_COMPRESS=y
5498CONFIG_LZO_DECOMPRESS=y
5499CONFIG_LZ4_COMPRESS=m
5500CONFIG_LZ4HC_COMPRESS=m
5501CONFIG_LZ4_DECOMPRESS=y
5502CONFIG_XZ_DEC=y
5503CONFIG_XZ_DEC_X86=y
5504CONFIG_XZ_DEC_POWERPC=y
5505CONFIG_XZ_DEC_IA64=y
5506CONFIG_XZ_DEC_ARM=y
5507CONFIG_XZ_DEC_ARMTHUMB=y
5508CONFIG_XZ_DEC_SPARC=y
5509CONFIG_XZ_DEC_BCJ=y
5510CONFIG_XZ_DEC_TEST=m
5511CONFIG_DECOMPRESS_GZIP=y
5512CONFIG_DECOMPRESS_BZIP2=y
5513CONFIG_DECOMPRESS_LZMA=y
5514CONFIG_DECOMPRESS_XZ=y
5515CONFIG_DECOMPRESS_LZO=y
5516CONFIG_DECOMPRESS_LZ4=y
5517CONFIG_GENERIC_ALLOCATOR=y
5518CONFIG_REED_SOLOMON=m
5519CONFIG_REED_SOLOMON_ENC8=y
5520CONFIG_REED_SOLOMON_DEC8=y
5521CONFIG_REED_SOLOMON_DEC16=y
5522CONFIG_BCH=m
5523CONFIG_BCH_CONST_PARAMS=y
5524CONFIG_TEXTSEARCH=y
5525CONFIG_TEXTSEARCH_KMP=m
5526CONFIG_TEXTSEARCH_BM=m
5527CONFIG_TEXTSEARCH_FSM=m
5528CONFIG_BTREE=y
5529CONFIG_ASSOCIATIVE_ARRAY=y
5530CONFIG_HAS_IOMEM=y
5531CONFIG_HAS_DMA=y
5532CONFIG_CHECK_SIGNATURE=y
5533CONFIG_CPU_RMAP=y
5534CONFIG_DQL=y
5535CONFIG_NLATTR=y
5536CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
5537CONFIG_LRU_CACHE=m
5538CONFIG_AVERAGE=y
5539CONFIG_CLZ_TAB=y
5540CONFIG_CORDIC=m
5541CONFIG_DDR=y
5542CONFIG_MPILIB=y
5543CONFIG_SIGNATURE=y
5544CONFIG_OID_REGISTRY=y
5545CONFIG_FONT_SUPPORT=y
5546# CONFIG_FONTS is not set
5547CONFIG_FONT_8x8=y
5548CONFIG_FONT_8x16=y
diff --git a/recipes-kernel/linux/linux-proliant-m400/proliant-m400.dts b/recipes-kernel/linux/linux-proliant-m400/proliant-m400.dts
new file mode 100644
index 0000000..efc8157
--- /dev/null
+++ b/recipes-kernel/linux/linux-proliant-m400/proliant-m400.dts
@@ -0,0 +1,775 @@
1/dts-v1/;
2
3/ {
4 #size-cells = <0x2>;
5 #address-cells = <0x2>;
6 interrupt-parent = <0x1>;
7 compatible = "apm,mustang", "apm,xgene-storm";
8 model = "HP ProLiant m400 Server Cartridge";
9 copyright = "Hewlett-Packard Development Company, L.P.";
10 serial-number = "CN7416V02J";
11
12 memory {
13 reg = <0x40 0x0 0x8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
14 device_type = "memory";
15 };
16
17 chosen {
18 bootargs = "console=ttyS0,115200n8 ro";
19 linux,initrd-start = <0x47 0xeef28000>;
20 linux,initrd-end = <0x47 0xeffffaf6>;
21 };
22
23 soc {
24 ranges;
25 #size-cells = <0x2>;
26 #address-cells = <0x2>;
27 compatible = "simple-bus";
28
29 crypto@1f250000 {
30 interrupts = <0x0 0x85 0x4>;
31 slave_info = <0x1 0x0 0x2 0x20 0x8>;
32 slave_name = "SEC";
33 clocks = <0x10 0x0>;
34 #clock-cells = <0x1>;
35 reg = <0x0 0x1f250000 0x0 0x10000>;
36 compatible = "apm,xgene-crypto";
37 device_type = "crypto";
38 };
39
40 gpio_keys_polled {
41 autorepeat;
42 poll-interval = <0x64>;
43 #size-cells = <0x0>;
44 #address-cells = <0x1>;
45 compatible = "gpio-keys-polled";
46
47 button@1 {
48 gpios = <0x18 0x17 0x1>;
49 linux,input-type = <0x1>;
50 linux,code = <0x74>;
51 label = "Power button";
52 };
53 };
54
55 gpio_poweroff {
56 gpios = <0x18 0x18 0x0>;
57 compatible = "gpio-poweroff";
58 };
59
60 dwgpio@1c024000 {
61 reg-io-width = <0x4>;
62 #size-cells = <0x0>;
63 #address-cells = <0x1>;
64 reg = <0x0 0x1c024000 0x0 0x1000>;
65 compatible = "snps,dw-apb-gpio";
66
67 gpio-controller@0 {
68 phandle = <0x18>;
69 linux,phandle = <0x18>;
70 reg = <0x0>;
71 snps,nr-gpios = <0x20>;
72 #gpio-cells = <0x2>;
73 gpio-controller;
74 compatible = "snps,dw-apb-gpio-port";
75 };
76 };
77
78 ethernet@17020000 {
79 phy-mode = "rgmii";
80 phyid = <0x3>;
81 max-frame-size = <0x233a>;
82 local-mac-address = <0x0 0x11 0x3a 0x8a 0x5a 0x78>;
83 clocks = <0x17 0x0>;
84 #clock-cells = <0x1>;
85 interrupts = <0x0 0x38 0x4 0x0 0x39 0x4 0x0 0x3a 0x4>;
86 slave-name = "RGMII";
87 reg = <0x0 0x17020000 0x0 0x30 0x0 0x17020000 0x0 0x10000 0x0 0x17020000 0x0 0x20>;
88 status = "na";
89 compatible = "apm,xgene-enet";
90 };
91
92 qmtm@17030000 {
93 clocks = <0x16 0x0>;
94 #clock-cells = <0x1>;
95 status = "ok";
96 interrupts = <0x0 0x40 0x4 0x0 0x3c 0x4>;
97 slave-name = "CPU_QMTM3";
98 reg = <0x0 0x17030000 0x0 0x10000 0x0 0x10000000 0x0 0x400000>;
99 compatible = "apm,xgene-qmtm-lite";
100 };
101
102 sata@1a800000 {
103 phy-names = "sata-phy";
104 phys = <0x15 0x0>;
105 clocks = <0x14 0x0>;
106 status = "ok";
107 interrupts = <0x0 0x88 0x4>;
108 reg = <0x0 0x1a800000 0x0 0x1000 0x0 0x1f230000 0x0 0x1000 0x0 0x1f23d000 0x0 0x1000 0x0 0x1f23e000 0x0 0x1000 0x0 0x1c000200 0x0 0x100>;
109 compatible = "apm,xgene-ahci";
110 };
111
112 sata@1a400000 {
113 phy-names = "sata-phy";
114 phys = <0x13 0x0>;
115 clocks = <0x12 0x0>;
116 status = "disabled";
117 interrupts = <0x0 0x87 0x4>;
118 reg = <0x0 0x1a400000 0x0 0x1000 0x0 0x1f220000 0x0 0x1000 0x0 0x1f22d000 0x0 0x1000 0x0 0x1f22e000 0x0 0x1000 0x0 0x1c000200 0x0 0x100 0x0 0x1f227000 0x0 0x1000>;
119 compatible = "apm,xgene-ahci";
120 };
121
122 sata@1a000000 {
123 phy-names = "sata-phy";
124 phys = <0x11 0x0>;
125 clocks = <0x10 0x0>;
126 status = "disabled";
127 interrupts = <0x0 0x86 0x4>;
128 reg = <0x0 0x1a000000 0x0 0x1000 0x0 0x1f210000 0x0 0x1000 0x0 0x1f21d000 0x0 0x1000 0x0 0x1f21e000 0x0 0x1000 0x0 0x1f217000 0x0 0x1000>;
129 compatible = "apm,xgene-ahci";
130 };
131
132 phy@1f23a000 {
133 phandle = <0x15>;
134 linux,phandle = <0x15>;
135 apm,tx-amplitude-A3 = <0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0>;
136 apm,tx-post-cursor-A3 = <0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0>;
137 apm,tx-pre-cursor2-A3 = <0x0 0x0 0x0 0x0 0x0 0x0>;
138 apm,tx-pre-cursor1-A3 = <0x8e30 0x8e30 0x8e30 0x8e30 0x8e30 0x8e30>;
139 apm,tx-equalizer-A3 = <0x1 0x1 0x1 0x1 0x1 0x1>;
140 apm,tx-eye-tuning-A3 = <0x1 0xa 0xa 0x2 0xa 0xa>;
141 apm,tx-boost-gain-A3 = <0x1e 0x1e 0x1e 0x1e 0x1e 0x1e>;
142 apm,tx-boost-gain-ssd-A3 = <0x2 0x2 0x2 0x2 0x2 0x2>;
143 status = "ok";
144 clocks = <0xf 0x0>;
145 #phy-cells = <0x1>;
146 reg = <0x0 0x1f23a000 0x0 0x100>;
147 compatible = "apm,xgene-phy";
148 };
149
150 phy@1f22a000 {
151 phandle = <0x13>;
152 linux,phandle = <0x13>;
153 apm,tx-amplitude-A3 = <0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0>;
154 apm,tx-post-cursor-A3 = <0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0>;
155 apm,tx-pre-cursor2-A3 = <0x0 0x0 0x0 0x0 0x0 0x0>;
156 apm,tx-pre-cursor1-A3 = <0x8e30 0x8e30 0x8e30 0x8e30 0x8e30 0x8e30>;
157 apm,tx-equalizer-A3 = <0x1 0x1 0x1 0x1 0x1 0x1>;
158 apm,tx-eye-tuning-A3 = <0x1 0xa 0xa 0x2 0xa 0xa>;
159 apm,tx-boost-gain-A3 = <0x1e 0x1e 0x1e 0x1e 0x1e 0x1e>;
160 apm,tx-boost-gain-ssd-A3 = <0x2 0x2 0x2 0x2 0x2 0x2>;
161 status = "disabled";
162 clocks = <0xe 0x0>;
163 #phy-cells = <0x1>;
164 reg = <0x0 0x1f22a000 0x0 0x100>;
165 compatible = "apm,xgene-phy";
166 };
167
168 phy@1f21a000 {
169 phandle = <0x11>;
170 linux,phandle = <0x11>;
171 apm,tx-amplitude-A3 = <0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0 0x19fa0>;
172 apm,tx-post-cursor-A3 = <0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0 0x2c6f0>;
173 apm,tx-pre-cursor2-A3 = <0x0 0x0 0x0 0x0 0x0 0x0>;
174 apm,tx-pre-cursor1-A3 = <0x8e30 0x8e30 0x8e30 0x8e30 0x8e30 0x8e30>;
175 apm,tx-equalizer-A3 = <0x1 0x1 0x1 0x1 0x1 0x1>;
176 apm,tx-eye-tuning-A3 = <0xa 0xa 0xa 0xa 0xa 0xa>;
177 apm,tx-boost-gain-A3 = <0x1e 0x1e 0x1e 0x1e 0x1e 0x1e>;
178 apm,tx-boost-gain-ssd-A3 = <0x2 0x2 0x2 0x2 0x2 0x2>;
179 status = "disabled";
180 clocks = <0xd 0x0>;
181 #phy-cells = <0x1>;
182 reg = <0x0 0x1f21a000 0x0 0x100>;
183 compatible = "apm,xgene-phy";
184 };
185
186 reboot@17000014 {
187 mask = <0x1>;
188 offset = <0x14>;
189 regmap = <0xc>;
190 compatible = "syscon-reboot";
191 };
192
193 slimpro@10540000 {
194 interrupts = <0x0 0x0 0x4 0x0 0x1 0x4 0x0 0x2 0x4 0x0 0x3 0x4 0x0 0x4 0x4 0x0 0x5 0x4 0x0 0x6 0x4 0x0 0x7 0x4 0x0 0x8 0x4 0x0 0x9 0x4>;
195 reg = <0x0 0x10540000 0x0 0xa000>;
196 compatible = "apm,xgene-slimpro-mbox";
197 };
198
199 serial@1c021000 {
200 status = "ok";
201 interrupts = <0x0 0x4d 0x4>;
202 interrupt-parent = <0x1>;
203 clock-frequency = <0x2faf080>;
204 reg-shift = <0x2>;
205 reg = <0x0 0x1c021000 0x0 0x1000>;
206 hw-flow-control;
207 auto-flow-control;
208 fifo-size = <0x10>;
209 compatible = "snps,dw-apb-uart", "ns16550a";
210 device_type = "serial";
211 };
212
213 serial@1c020000 {
214 status = "disabled";
215 interrupts = <0x0 0x4c 0x4>;
216 interrupt-parent = <0x1>;
217 clock-frequency = <0x2faf080>;
218 reg-shift = <0x2>;
219 reg = <0x0 0x1c020000 0x0 0x1000>;
220 auto-flow-control;
221 fifo-size = <0x10>;
222 compatible = "snps,dw-apb-uart", "ns16550a";
223 device_type = "serial";
224 };
225
226 rtc@10510000 {
227 clocks = <0xb 0x0>;
228 #clock-cells = <0x1>;
229 interrupts = <0x0 0x46 0x4>;
230 reg = <0x0 0x10510000 0x0 0x400>;
231 compatible = "apm,xgene-rtc";
232 device_type = "rtc";
233 };
234
235 pcie@1f510000 {
236 clocks = <0xa 0x0>;
237 interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0xda 0x1 0x0 0x0 0x0 0x2 0x1 0x0 0xdb 0x1 0x0 0x0 0x0 0x3 0x1 0x0 0xdc 0x1 0x0 0x0 0x0 0x4 0x1 0x0 0xdd 0x1>;
238 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
239 interrupts = <0x0 0x10 0x4>;
240 ib-ranges-ep = <0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x79000000 0x0 0x79000000 0x0 0x100000>;
241 ib-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
242 dma-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
243 ranges = <0x1000000 0x0 0x0 0xc0 0x0 0x0 0x10000 0x2000000 0x0 0x10000000 0xc0 0x10000000 0x0 0x80000000>;
244 reg-names = "csr", "cfg";
245 reg = <0x0 0x1f510000 0x0 0x10000 0xc0 0xd0000000 0x0 0x200000>;
246 serdes-diff-clk = <0x0>;
247 link_speed = <0x2>;
248 link_width = <0x4>;
249 port = <0x4>;
250 #address-cells = <0x3>;
251 #size-cells = <0x2>;
252 #interrupt-cells = <0x1>;
253 compatible = "apm,xgene-pcie";
254 device_type = "pci";
255 status = "na";
256 };
257
258 pcie@1f500000 {
259 clocks = <0x9 0x0>;
260 interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0xd4 0x1 0x0 0x0 0x0 0x2 0x1 0x0 0xd5 0x1 0x0 0x0 0x0 0x3 0x1 0x0 0xd6 0x1 0x0 0x0 0x0 0x4 0x1 0x0 0xd7 0x1>;
261 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
262 interrupts = <0x0 0x10 0x4>;
263 ib-ranges-ep = <0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x79000000 0x0 0x79000000 0x0 0x100000>;
264 ib-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
265 dma-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
266 ranges = <0x1000000 0x0 0x0 0xa0 0x0 0x0 0x10000 0x2000000 0x0 0x10000000 0xa0 0x10000000 0x0 0x80000000>;
267 reg-names = "csr", "cfg";
268 reg = <0x0 0x1f500000 0x0 0x10000 0xa0 0xd0000000 0x0 0x200000>;
269 serdes-diff-clk = <0x0>;
270 link_speed = <0x2>;
271 link_width = <0x8>;
272 port = <0x3>;
273 #address-cells = <0x3>;
274 #size-cells = <0x2>;
275 #interrupt-cells = <0x1>;
276 compatible = "apm,xgene-pcie";
277 device_type = "pci";
278 status = "ok";
279 reset_gpio = <0xffffffff>;
280 };
281
282 pcie@1f2d0000 {
283 clocks = <0x8 0x0>;
284 interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0xce 0x1 0x0 0x0 0x0 0x2 0x1 0x0 0xcf 0x1 0x0 0x0 0x0 0x3 0x1 0x0 0xd0 0x1 0x0 0x0 0x0 0x4 0x1 0x0 0xd1 0x1>;
285 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
286 interrupts = <0x0 0x10 0x4>;
287 ib-ranges-ep = <0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x79000000 0x0 0x79000000 0x0 0x100000>;
288 ib-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
289 dma-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
290 ranges = <0x1000000 0x0 0x0 0x90 0x0 0x0 0x10000 0x2000000 0x0 0x10000000 0x90 0x10000000 0x0 0x80000000>;
291 reg-names = "csr", "cfg";
292 reg = <0x0 0x1f2d0000 0x0 0x10000 0x90 0xd0000000 0x0 0x200000>;
293 serdes-diff-clk = <0x0>;
294 link_speed = <0x2>;
295 link_width = <0x1>;
296 port = <0x2>;
297 #address-cells = <0x3>;
298 #size-cells = <0x2>;
299 #interrupt-cells = <0x1>;
300 compatible = "apm,xgene-pcie";
301 device_type = "pci";
302 status = "na";
303 };
304
305 pcie@1f2c0000 {
306 clocks = <0x7 0x0>;
307 interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0xc8 0x1 0x0 0x0 0x0 0x2 0x1 0x0 0xc9 0x1 0x0 0x0 0x0 0x3 0x1 0x0 0xca 0x1 0x0 0x0 0x0 0x4 0x1 0x0 0xcb 0x1>;
308 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
309 interrupts = <0x0 0x10 0x4>;
310 ib-ranges-ep = <0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x79000000 0x0 0x79000000 0x0 0x100000>;
311 ib-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
312 dma-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
313 ranges = <0x1000000 0x0 0x0 0xd0 0x0 0x0 0x10000 0x2000000 0x0 0x10000000 0xd0 0x10000000 0x0 0x80000000>;
314 reg-names = "csr", "cfg";
315 reg = <0x0 0x1f2c0000 0x0 0x10000 0xd0 0xd0000000 0x0 0x200000>;
316 serdes-diff-clk = <0x0>;
317 link_speed = <0x3>;
318 link_width = <0x4>;
319 port = <0x1>;
320 #address-cells = <0x3>;
321 #size-cells = <0x2>;
322 #interrupt-cells = <0x1>;
323 compatible = "apm,xgene-pcie";
324 device_type = "pci";
325 status = "na";
326 };
327
328 pcie@1f2b0000 {
329 clocks = <0x6 0x0>;
330 interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0xc2 0x1 0x0 0x0 0x0 0x2 0x1 0x0 0xc3 0x1 0x0 0x0 0x0 0x3 0x1 0x0 0xc4 0x1 0x0 0x0 0x0 0x4 0x1 0x0 0xc5 0x1>;
331 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
332 interrupts = <0x0 0x10 0x4>;
333 ib-ranges-ep = <0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x0 0x0 0x0 0x0 0x400000 0x2000000 0x0 0x79000000 0x0 0x79000000 0x0 0x100000>;
334 ib-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
335 dma-ranges = <0x42000000 0x40 0x0 0x40 0x0 0x40 0x0 0x0 0x0 0x79000000 0x0 0x79000000 0x0 0x800000>;
336 ranges = <0x1000000 0x0 0x0 0xe0 0x0 0x0 0x10000 0x2000000 0x0 0x10000000 0xe0 0x10000000 0x0 0x80000000>;
337 reg-names = "csr", "cfg";
338 reg = <0x0 0x1f2b0000 0x0 0x10000 0xe0 0xd0000000 0x0 0x200000>;
339 serdes-diff-clk = <0x0>;
340 link_speed = <0x3>;
341 link_width = <0x4>;
342 reset_gpio = <0x19>;
343 port = <0x0>;
344 #address-cells = <0x3>;
345 #size-cells = <0x2>;
346 #interrupt-cells = <0x1>;
347 compatible = "apm,xgene-pcie";
348 device_type = "pci";
349 status = "na";
350 };
351
352 msi@79000000 {
353 interrupts = <0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x12 0x4 0x0 0x13 0x4 0x0 0x14 0x4 0x0 0x15 0x4 0x0 0x16 0x4 0x0 0x17 0x4 0x0 0x18 0x4 0x0 0x19 0x4 0x0 0x1a 0x4 0x0 0x1b 0x4 0x0 0x1c 0x4 0x0 0x1d 0x4 0x0 0x1e 0x4 0x0 0x1f 0x4>;
354 msi-available-ranges = <0x0 0x1000>;
355 reg = <0x0 0x79000000 0x0 0x900000>;
356 compatible = "xgene,gic-msi";
357 };
358
359 clocks {
360 ranges;
361 #size-cells = <0x2>;
362 #address-cells = <0x2>;
363
364 gpioclk@1f2ac000 {
365 phandle = <0x27>;
366 linux,phandle = <0x27>;
367 clock-output-names = "gpioclk";
368 enable-mask = <0x4>;
369 enable-offset = <0x8>;
370 csr-mask = <0x4>;
371 csr-offset = <0x0>;
372 reg-names = "csr-reg";
373 reg = <0x0 0x1f2ac000 0x0 0x1000>;
374 clock-names = "ahbclk";
375 clocks = <0x6 0x0>;
376 #clock-cells = <0x1>;
377 compatible = "apm,xgene-device-clock";
378 };
379
380 pcie4clk@1f51c000 {
381 phandle = <0xa>;
382 linux,phandle = <0xa>;
383 clock-output-names = "pcie4clk";
384 reg-names = "csr-reg";
385 reg = <0x0 0x1f51c000 0x0 0x1000>;
386 clocks = <0x4 0x0>;
387 #clock-cells = <0x1>;
388 compatible = "apm,xgene-device-clock";
389 status = "disabled";
390 };
391
392 pcie3clk@1f50c000 {
393 phandle = <0x9>;
394 linux,phandle = <0x9>;
395 clock-output-names = "pcie3clk";
396 reg-names = "csr-reg";
397 reg = <0x0 0x1f50c000 0x0 0x1000>;
398 clocks = <0x4 0x0>;
399 #clock-cells = <0x1>;
400 compatible = "apm,xgene-device-clock";
401 status = "ok";
402 };
403
404 pcie2clk@1f2dc000 {
405 phandle = <0x8>;
406 linux,phandle = <0x8>;
407 clock-output-names = "pcie2clk";
408 reg-names = "csr-reg";
409 reg = <0x0 0x1f2dc000 0x0 0x1000>;
410 clocks = <0x4 0x0>;
411 #clock-cells = <0x1>;
412 compatible = "apm,xgene-device-clock";
413 status = "disabled";
414 };
415
416 pcie1clk@1f2cc000 {
417 phandle = <0x7>;
418 linux,phandle = <0x7>;
419 clock-output-names = "pcie1clk";
420 reg-names = "csr-reg";
421 reg = <0x0 0x1f2cc000 0x0 0x1000>;
422 clocks = <0x4 0x0>;
423 #clock-cells = <0x1>;
424 compatible = "apm,xgene-device-clock";
425 status = "ok";
426 };
427
428 pcie0clk@1f2bc000 {
429 phandle = <0x6>;
430 linux,phandle = <0x6>;
431 clock-output-names = "pcie0clk";
432 reg-names = "csr-reg";
433 reg = <0x0 0x1f2bc000 0x0 0x1000>;
434 clocks = <0x4 0x0>;
435 #clock-cells = <0x1>;
436 compatible = "apm,xgene-device-clock";
437 status = "ok";
438 };
439
440 rtcclk@17000000 {
441 phandle = <0xb>;
442 linux,phandle = <0xb>;
443 clock-output-names = "rtcclk";
444 enable-mask = <0x2>;
445 enable-offset = <0x10>;
446 csr-mask = <0x2>;
447 csr-offset = <0xc>;
448 reg-names = "csr-reg";
449 reg = <0x0 0x17000000 0x0 0x2000>;
450 clock-names = "socplldiv2";
451 clocks = <0x4 0x0>;
452 #clock-cells = <0x1>;
453 compatible = "apm,xgene-device-clock";
454 };
455
456 sata45clk@1f23c000 {
457 phandle = <0x14>;
458 linux,phandle = <0x14>;
459 enable-mask = <0x39>;
460 enable-offset = <0x0>;
461 csr-mask = <0x5>;
462 csr-offset = <0x4>;
463 clock-output-names = "sata45clk";
464 reg-names = "csr-reg";
465 reg = <0x0 0x1f23c000 0x0 0x1000>;
466 clocks = <0x4 0x0>;
467 #clock-cells = <0x1>;
468 compatible = "apm,xgene-device-clock";
469 };
470
471 sata23clk@1f22c000 {
472 phandle = <0x12>;
473 linux,phandle = <0x12>;
474 enable-mask = <0x39>;
475 enable-offset = <0x0>;
476 csr-mask = <0x5>;
477 csr-offset = <0x4>;
478 clock-output-names = "sata23clk";
479 reg-names = "csr-reg";
480 reg = <0x0 0x1f22c000 0x0 0x1000>;
481 clocks = <0x4 0x0>;
482 #clock-cells = <0x1>;
483 compatible = "apm,xgene-device-clock";
484 };
485
486 sata01clk@1f21c000 {
487 phandle = <0x10>;
488 linux,phandle = <0x10>;
489 enable-mask = <0x39>;
490 enable-offset = <0x0>;
491 csr-mask = <0x5>;
492 csr-offset = <0x4>;
493 clock-output-names = "sata01clk";
494 reg-names = "csr-reg";
495 reg = <0x0 0x1f21c000 0x0 0x1000>;
496 clocks = <0x4 0x0>;
497 #clock-cells = <0x1>;
498 compatible = "apm,xgene-device-clock";
499 };
500
501 sataphy1clk@1f23c000 {
502 phandle = <0xf>;
503 linux,phandle = <0xf>;
504 enable-mask = <0x6>;
505 enable-offset = <0x0>;
506 csr-mask = <0x3a>;
507 csr-offset = <0x4>;
508 status = "ok";
509 clock-output-names = "sataphy3clk";
510 reg-names = "csr-reg";
511 reg = <0x0 0x1f23c000 0x0 0x1000>;
512 clocks = <0x4 0x0>;
513 #clock-cells = <0x1>;
514 compatible = "apm,xgene-device-clock";
515 };
516
517 sataphy1clk@1f22c000 {
518 phandle = <0xe>;
519 linux,phandle = <0xe>;
520 enable-mask = <0x6>;
521 enable-offset = <0x0>;
522 csr-mask = <0x3a>;
523 csr-offset = <0x4>;
524 status = "ok";
525 clock-output-names = "sataphy2clk";
526 reg-names = "csr-reg";
527 reg = <0x0 0x1f22c000 0x0 0x1000>;
528 clocks = <0x4 0x0>;
529 #clock-cells = <0x1>;
530 compatible = "apm,xgene-device-clock";
531 };
532
533 sataphy1clk@1f21c000 {
534 phandle = <0xd>;
535 linux,phandle = <0xd>;
536 enable-mask = <0x6>;
537 enable-offset = <0x0>;
538 csr-mask = <0x0>;
539 csr-offset = <0x4>;
540 status = "disabled";
541 clock-output-names = "sataphy1clk";
542 reg-names = "csr-reg";
543 reg = <0x0 0x1f21c000 0x0 0x1000>;
544 clocks = <0x4 0x0>;
545 #clock-cells = <0x1>;
546 compatible = "apm,xgene-device-clock";
547 };
548
549 eth8clk {
550 phandle = <0x17>;
551 linux,phandle = <0x17>;
552 clock-output-names = "eth8clk";
553 reg-names = "csr-reg";
554 reg = <0x0 0x1702c000 0x0 0x1000>;
555 clock-names = "eth8clk";
556 clocks = <0x5 0x0>;
557 #clock-cells = <0x1>;
558 compatible = "apm,xgene-device-clock";
559 };
560
561 ethclk {
562 phandle = <0x5>;
563 linux,phandle = <0x5>;
564 clock-output-names = "ethclk";
565 divider-shift = <0x0>;
566 divider-width = <0x9>;
567 divider-offset = <0x238>;
568 reg-names = "div-reg";
569 reg = <0x0 0x17000000 0x0 0x1000>;
570 clock-names = "ethclk";
571 clocks = <0x4 0x0>;
572 #clock-cells = <0x1>;
573 compatible = "apm,xgene-device-clock";
574 };
575
576 qmlclk {
577 phandle = <0x16>;
578 linux,phandle = <0x16>;
579 enable-mask = <0x3>;
580 enable-offset = <0x8>;
581 csr-mask = <0x3>;
582 csr-offset = <0x0>;
583 status = "ok";
584 clock-output-names = "qmlclk";
585 reg-names = "csr-reg";
586 reg = <0x0 0x1703c000 0x0 0x1000>;
587 clock-names = "socplldiv2";
588 clocks = <0x4 0x0>;
589 #clock-cells = <0x1>;
590 compatible = "apm,xgene-device-clock";
591 };
592
593 socplldiv2 {
594 phandle = <0x4>;
595 linux,phandle = <0x4>;
596 clock-output-names = "socpll";
597 clock-div = <0x2>;
598 clock-mult = <0x1>;
599 clock-names = "socplldiv2";
600 clocks = <0x3 0x0>;
601 #clock-cells = <0x1>;
602 compatible = "fixed-factor-clock";
603 };
604
605 socpll@17000120 {
606 phandle = <0x3>;
607 linux,phandle = <0x3>;
608 type = <0x1>;
609 clock-output-names = "socpll";
610 reg = <0x0 0x17000120 0x0 0x1000>;
611 clock-names = "refclk";
612 clocks = <0x2 0x0>;
613 #clock-cells = <0x1>;
614 compatible = "apm,xgene-socpll-clock";
615 };
616
617 pcppll@17000100 {
618 type = <0x0>;
619 clock-output-names = "pcppll";
620 reg = <0x0 0x17000100 0x0 0x1000>;
621 clock-names = "refclk";
622 clocks = <0x2 0x0>;
623 #clock-cells = <0x1>;
624 compatible = "apm,xgene-pcppll-clock";
625 };
626
627 refclk {
628 phandle = <0x2>;
629 linux,phandle = <0x2>;
630 clock-output-names = "refclk";
631 clock-frequency = <0x5f5e100>;
632 #clock-cells = <0x1>;
633 compatible = "fixed-clock";
634 };
635 };
636
637 system-clk-controller@17000000 {
638 phandle = <0xc>;
639 linux,phandle = <0xc>;
640 reg = <0x0 0x17000000 0x0 0x400>;
641 compatible = "apm,xgene-scu", "syscon";
642 };
643 };
644
645 timer {
646 clock-frequency = <0x2faf080>;
647 interrupts = <0x1 0x0 0xff04 0x1 0xd 0xff04 0x1 0xe 0xff04 0x1 0xf 0xff04>;
648 compatible = "arm,armv8-timer";
649 };
650
651 pmu {
652 interrupts = <0x1 0xc 0xff04>;
653 compatible = "arm,armv8-pmuv3";
654 };
655
656 interrupt-controller@78010000 {
657 phandle = <0x1>;
658 linux,phandle = <0x1>;
659 interrupts = <0x1 0x9 0xf04>;
660 reg = <0x0 0x78010000 0x0 0x1000 0x0 0x78020000 0x0 0x1000 0x0 0x78040000 0x0 0x2000 0x0 0x78060000 0x0 0x2000>;
661 interrupt-controller;
662 #interrupt-cells = <0x3>;
663 compatible = "arm,cortex-a15-gic";
664 };
665
666 cpus {
667 #size-cells = <0x0>;
668 #address-cells = <0x2>;
669
670 cpu@301 {
671 cpu-release-addr = <0x40 0xfff8>;
672 enable-method = "spin-table";
673 reg = <0x0 0x301>;
674 compatible = "apm,potenza", "arm,armv8";
675 device_type = "cpu";
676 };
677
678 cpu@300 {
679 cpu-release-addr = <0x40 0xfff8>;
680 enable-method = "spin-table";
681 reg = <0x0 0x300>;
682 compatible = "apm,potenza", "arm,armv8";
683 device_type = "cpu";
684 };
685
686 cpu@201 {
687 cpu-release-addr = <0x40 0xfff8>;
688 enable-method = "spin-table";
689 reg = <0x0 0x201>;
690 compatible = "apm,potenza", "arm,armv8";
691 device_type = "cpu";
692 };
693
694 cpu@200 {
695 cpu-release-addr = <0x40 0xfff8>;
696 enable-method = "spin-table";
697 reg = <0x0 0x200>;
698 compatible = "apm,potenza", "arm,armv8";
699 device_type = "cpu";
700 };
701
702 cpu@101 {
703 cpu-release-addr = <0x40 0xfff8>;
704 enable-method = "spin-table";
705 reg = <0x0 0x101>;
706 compatible = "apm,potenza", "arm,armv8";
707 device_type = "cpu";
708 };
709
710 cpu@100 {
711 cpu-release-addr = <0x40 0xfff8>;
712 enable-method = "spin-table";
713 reg = <0x0 0x100>;
714 compatible = "apm,potenza", "arm,armv8";
715 device_type = "cpu";
716 };
717
718 cpu@001 {
719 cpu-release-addr = <0x40 0xfff8>;
720 enable-method = "spin-table";
721 reg = <0x0 0x1>;
722 compatible = "apm,potenza", "arm,armv8";
723 device_type = "cpu";
724 };
725
726 cpu@000 {
727 cpu-release-addr = <0x40 0xfff8>;
728 enable-method = "spin-table";
729 reg = <0x0 0x0>;
730 compatible = "apm,potenza", "arm,armv8";
731 device_type = "cpu";
732 };
733 };
734
735 rom {
736
737 boot-rom {
738 BootROM-version = "U02";
739 };
740 };
741
742 sl1500 {
743 compatible = "hp,moonshot";
744
745 node {
746 device_type = "hp,sl1500-node";
747 id = [31 00];
748 serial-number = "CN7416V02J";
749 uuid = "C69C5311-CB25-594A-9D73-56064A71BF4C";
750 boot-time = "2014-11-13T06:03:45";
751 boot-adjust = "47";
752 };
753
754 cartridge {
755 device_type = "hp,sl1500-cartridge";
756 id = "37";
757 serial-number = "CN7416V02J";
758 product-name = "ProLiant m400 Server Cartridge";
759 product-id = "721717-B21";
760 asset-tag = [00];
761 cpld = "04";
762 rom-sysid = "U02";
763 rom-date = "07/14/2014";
764 };
765
766 chassis {
767 device_type = "hp,sl1500-chassis";
768 serial-number = "MX241200GX";
769 asset-tag = [00];
770 timezone-gmtoff = [30 00];
771 timezone = "Europe/London";
772 timezone-data = "GMT-0:00BST-01:00:00,M3.5.0/01:00:00,M10.5.0/01:00:00";
773 };
774 };
775};
diff --git a/recipes-kernel/linux/linux-qoriq-cgl-prt_3.12.bbappend b/recipes-kernel/linux/linux-qoriq-cgl-prt_3.12.bbappend
new file mode 100644
index 0000000..f9311e9
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-cgl-prt_3.12.bbappend
@@ -0,0 +1 @@
require recipes-kernel/linux/linux-qoriq-common.inc
diff --git a/recipes-kernel/linux/linux-qoriq-common.inc b/recipes-kernel/linux/linux-qoriq-common.inc
new file mode 100644
index 0000000..cbf16e3
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-common.inc
@@ -0,0 +1,57 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://b4860-hard_irq_disable-bug.patch \
4 file://0001-sdhci-fix-Timeout-error-messages.patch \
5 file://powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch \
6 file://cfg/00013-localversion.cfg \
7 file://cfg/00006-with_modules.cfg \
8 file://cfg/00001-embedded.cfg \
9 file://cfg/00012-preempt.cfg \
10 file://cfg/00002-root_nfs.cfg \
11 file://cfg/00029-devtmpfs.cfg \
12 file://cfg/00021-bootlogd.cfg \
13 file://cfg/00022-mtd_tests.cfg \
14 file://cfg/00030-latencytop.cfg \
15 file://cfg/00026-ltp.cfg \
16 file://cfg/00003-fuse.cfg \
17 file://cfg/00034-cpusets.cfg \
18 file://cfg/00032-dpa.cfg \
19 file://cfg/00033-kprobes.cfg \
20 file://cfg/00019-i2c.cfg \
21 file://cfg/00027-lttng.cfg \
22 file://cfg/00025-powertop.cfg \
23 file://cfg/00004-systemtap.cfg \
24 file://cfg/00014-kgdb.cfg \
25 file://cfg/00049-gpio.cfg \
26 "
27
28STAGING_KERNEL_FEATURES="\
29 cfg/00013-localversion.cfg \
30 cfg/00006-with_modules.cfg \
31 cfg/00001-embedded.cfg \
32 cfg/00012-preempt.cfg \
33 cfg/00002-root_nfs.cfg \
34 cfg/00029-devtmpfs.cfg \
35 cfg/00021-bootlogd.cfg \
36 cfg/00022-mtd_tests.cfg \
37 cfg/00030-latencytop.cfg \
38 cfg/00026-ltp.cfg \
39 cfg/00003-fuse.cfg \
40 cfg/00034-cpusets.cfg \
41 "
42
43STAGING_KERNEL_FEATURES_append_p2020rdb="cfg/00015-uio.cfg"
44
45DELTA_KERNEL_DEFCONFIG += " ${STAGING_KERNEL_FEATURES} \
46 cfg/00032-dpa.cfg \
47 cfg/00033-kprobes.cfg \
48 cfg/00019-i2c.cfg \
49 cfg/00027-lttng.cfg \
50 cfg/00025-powertop.cfg \
51 cfg/00004-systemtap.cfg \
52 cfg/00014-kgdb.cfg \
53 cfg/00049-gpio.cfg \
54 "
55
56require recipes-kernel/linux/staging-kernel.inc
57require recipes-kernel/linux/pramfs-3.12.inc
diff --git a/recipes-kernel/linux/linux-qoriq-prt_3.12.bbappend b/recipes-kernel/linux/linux-qoriq-prt_3.12.bbappend
new file mode 100644
index 0000000..f9311e9
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq-prt_3.12.bbappend
@@ -0,0 +1 @@
require recipes-kernel/linux/linux-qoriq-common.inc
diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bbappend b/recipes-kernel/linux/linux-qoriq_3.12.bbappend
new file mode 100644
index 0000000..f9311e9
--- /dev/null
+++ b/recipes-kernel/linux/linux-qoriq_3.12.bbappend
@@ -0,0 +1 @@
require recipes-kernel/linux/linux-qoriq-common.inc
diff --git a/recipes-kernel/linux/linux-xlnx_3.8.bbappend b/recipes-kernel/linux/linux-xlnx_3.8.bbappend
new file mode 100644
index 0000000..02ff3e4
--- /dev/null
+++ b/recipes-kernel/linux/linux-xlnx_3.8.bbappend
@@ -0,0 +1,23 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI_append = "file://cfg/00014-kgdb.cfg \
4 file://cfg/00027-lttng.cfg \
5 file://cfg/00028-perf.cfg \
6 file://cfg/00025-powertop.cfg \
7 file://cfg/00004-systemtap.cfg \
8 file://cfg/00003-fuse.cfg \
9 file://cfg/00034-cpusets.cfg \
10 file://Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch \
11 file://HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch \
12 file://HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch \
13 file://HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch \
14 file://HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch \
15 file://HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch \
16 file://HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch \
17 file://HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch \
18 file://HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch \
19 file://HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch \
20 file://HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch \
21 file://HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch \
22 "
23
diff --git a/recipes-kernel/linux/linux-yocto_3.10.bbappend b/recipes-kernel/linux/linux-yocto_3.10.bbappend
new file mode 100644
index 0000000..88d0885
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_3.10.bbappend
@@ -0,0 +1,9 @@
1require linux-enea.inc
2
3SRC_URI += "file://cfg/00031-igb_drv.cfg \
4 file://cfg/00014-kgdb.cfg \
5 file://cfg/00003-fuse.cfg \
6 file://cfg/00024-preempt_romley-ivb.cfg \
7 file://HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch \
8 file://HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch \
9 "
diff --git a/recipes-kernel/linux/linux-yocto_3.14.bbappend b/recipes-kernel/linux/linux-yocto_3.14.bbappend
new file mode 100644
index 0000000..d06f299
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_3.14.bbappend
@@ -0,0 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch \
4 "
diff --git a/recipes-kernel/linux/linux-yocto_3.8.bbappend b/recipes-kernel/linux/linux-yocto_3.8.bbappend
new file mode 100644
index 0000000..cce31ab
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_3.8.bbappend
@@ -0,0 +1,21 @@
1require linux-enea.inc
2
3SRC_URI += "file://cfg/00031-igb_drv.cfg \
4 file://cfg/00014-kgdb.cfg \
5 file://cfg/00003-fuse.cfg \
6 file://Check_correct_namespace_when_spoofing_pid_over_SCM_RIGHTS.patch \
7 file://HID_CVE_patches/0001-HID-validate-HID-report-id-size.patch \
8 file://HID_CVE_patches/0002-HID-provide-a-helper-for-validating-hid-reports.patch \
9 file://HID_CVE_patches/0003-HID-zeroplus-validate-output-report-details.patch \
10 file://HID_CVE_patches/0004-HID-sony-validate-HID-output-report-details.patch \
11 file://HID_CVE_patches/0005-HID-steelseries-validate-output-report-details.patch \
12 file://HID_CVE_patches/0006-HID-pantherlord-validate-output-report-details.patch \
13 file://HID_CVE_patches/0007-HID-LG-validate-HID-output-report-details.patch \
14 file://HID_CVE_patches/0008-HID-lenovo-tpkbd-validate-output-report-details.patch \
15 file://HID_CVE_patches/0009-HID-logitech-dj-validate-output-report-details.patch \
16 file://HID_CVE_patches/0010-HID-ntrig-validate-feature-report-details.patch \
17 file://HID_CVE_patches/0011-HID-multitouch-validate-indexes-details.patch \
18 file://HID_CVE_patches/0012-HID-sensor-hub-validate-feature-report-details.patch \
19 file://HID_CVE_patches/0013-HID-picolcd_core-validate-output-report-details.patch \
20 file://HID_CVE_patches/0014-HID-check-for-NULL-field-when-setting-values.patch \
21 "
diff --git a/recipes-kernel/linux/pramfs-3.12.inc b/recipes-kernel/linux/pramfs-3.12.inc
new file mode 100644
index 0000000..ec5775d
--- /dev/null
+++ b/recipes-kernel/linux/pramfs-3.12.inc
@@ -0,0 +1,21 @@
1RRECOMMENDS_${PN} += "pramfs-init"
2
3PRAMFS_VERSION = '1.5.1-3.12'
4
5SRC_URI += "file://pramfs-${PRAMFS_VERSION}.tar.gz \
6 file://cfg/00005-pramfs.cfg"
7
8STAGING_KERNEL_FEATURES_append = " cfg/00005-pramfs.cfg"
9
10do_apply_pramfs() {
11 # Apply PRAMFS patch
12
13 # Already done by bitbake ->
14 # tar xvf ${WORKDIR}/pramfs-${PRAMFS_VERSION}.tar.gz -C ${WORKDIR}
15 cd ${WORKDIR}/pramfs-${PRAMFS_VERSION}/
16 ./patch-ker.sh ${S}
17 cd -
18}
19
20do_apply_pramfs[deptask] = "do_unpack"
21addtask apply_pramfs after do_unpack before do_patch
diff --git a/recipes-kernel/linux/scripts/proliant-m400-setup.sh b/recipes-kernel/linux/scripts/proliant-m400-setup.sh
new file mode 100755
index 0000000..7edaf54
--- /dev/null
+++ b/recipes-kernel/linux/scripts/proliant-m400-setup.sh
@@ -0,0 +1,8 @@
1#!/bin/bash
2echo '*** Info: Customizing for proliant m400, Linaro build environment'
3echo 'BBMASK = "meta-enea/recipes-test/stress/"' >> conf/local.conf
4echo 'GCCVERSION ?= "linaro-4.8"' >> conf/local.conf
5echo 'SDKGCCVERSION ?= "linaro-4.8"' >> conf/local.conf
6echo 'BINUVERSION ?= "linaro-2.24"' >> conf/local.conf
7# Some options needed for Linaro images
8echo 'PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"' >> conf/local.conf
diff --git a/recipes-kernel/linux/staging-kernel.inc b/recipes-kernel/linux/staging-kernel.inc
new file mode 100644
index 0000000..3ef802d
--- /dev/null
+++ b/recipes-kernel/linux/staging-kernel.inc
@@ -0,0 +1,133 @@
1# This .inc file allows building and deploying staging kernel + modules
2# with defconfig + fragment cfgs
3
4require kernel-configure.inc
5
6STAGING_NAME ?= "RELEASE"
7STAGING_KERNEL_FEATURES ?= ""
8KERNEL_FEATURES ?= ""
9MODULES_IMAGE_BASE_NAME = "modules-${PV}-${PR}-${MACHINE}"
10EXTRA_OEMAKE_prepend_task-stagingkernel = "${PARALLEL_MAKE} "
11
12do_stagingkernel () {
13 stagingkernel "${STAGING_KERNEL_FEATURES}" ${STAGING_NAME}
14}
15
16stagingkernel () {
17
18 configure_kernel "${KERNEL_DEFCONFIG}" "${1}"
19
20 # Copy defconfig to .config if .config does not exist. This allows
21 # recipes to manage the .config themselves in do_configure_prepend().
22 if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
23 cp "${WORKDIR}/defconfig" "${B}/.config"
24 fi
25 yes '' | oe_runmake oldconfig
26
27 if [ ! -z "${INITRAMFS_IMAGE}" ]; then
28 for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do
29 if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then
30 cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img
31 fi
32 done
33 fi
34
35 #
36 # Build this alternative kernel
37 #
38
39 kernel_do_compile
40 do_compile_kernelmodules
41
42 #
43 # First install the modules to deploy dir
44 #
45 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
46 if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
47 oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install
48 else
49 bbnote "no modules to install"
50 fi
51 if [ -d "${D}/lib" ]; then
52 tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}-${2}.tgz -C ${D} lib
53 fi
54 rm -fr ${D}/lib
55
56 #
57 # Dont build any dtb:s for the staging kernel
58 #
59
60 #
61 # Drop the resulting images in the deploy dir
62 #
63 cd ${S}
64 install -d ${DEPLOY_DIR_IMAGE}
65 install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}-${2}.bin
66 mv ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}-${2}
67
68 #
69 # Install the final config alongside the images
70 #
71 cd ${S}
72 cp .config ${DEPLOY_DIR_IMAGE}/config-${PV}-${PR}-${MACHINE}-${2}.config
73 rm -f .config
74
75 #
76 # Create symlinks
77 #
78 cd ${DEPLOY_DIR_IMAGE}
79 rm -f ${KERNEL_IMAGE_SYMLINK_NAME}-${2}.bin
80 ln -sf ${KERNEL_IMAGE_BASE_NAME}-${2}.bin ${KERNEL_IMAGE_SYMLINK_NAME}-${2}.bin
81
82 rm -f config-${MACHINE}-${2}.config
83 ln -sf config-${PV}-${PR}-${MACHINE}-${2}.config config-${MACHINE}-${2}.config
84
85}
86
87do_stagingkernel[dirs] = "${DEPLOY_DIR_IMAGE} ${B}"
88
89do_stagingkernel[depends] += "u-boot-mkimage-native:do_populate_sysroot virtual/${TARGET_PREFIX}gcc:do_populate_sysroot virtual/${TARGET_PREFIX}gcc:do_populate_sysroot libgcc:do_populate_sysroot"
90
91addtask stagingkernel after do_patch before do_configure
92
93#
94# For reference, copy .config to deploy image
95#
96do_deploy_append () {
97
98 install -d ${DEPLOY_DIR_IMAGE}
99
100 #
101 # Drop the regular defconfig along side the others for consistency
102 #
103 cd ${S}
104 cp .config ${DEPLOY_DIR_IMAGE}/config-${PV}-${PR}-${MACHINE}.config
105
106 #
107 # add symlink
108 #
109 cd ${DEPLOY_DIR_IMAGE}
110 rm -f config-${MACHINE}.config
111 ln -s config-${PV}-${PR}-${MACHINE}.config config-${MACHINE}.config
112
113}
114
115#
116# Clean staging kernel related files in deploy dir
117#
118do_cleanstagingkernel () {
119
120 cd ${DEPLOY_DIR_IMAGE}
121 rm -f *-${STAGING_NAME}.*
122
123 rm -f config-${PV}-${PR}-${MACHINE}.config
124 rm -f config-${MACHINE}.config
125
126}
127
128LDFLAGS=""
129
130do_cleanstagingkernel[nostamp] = "1"
131
132addtask cleanstagingkernel after do_cleansstate
133
diff --git a/recipes-kernel/pramfs-init/files/pramfs_init b/recipes-kernel/pramfs-init/files/pramfs_init
new file mode 100644
index 0000000..64c7bc2
--- /dev/null
+++ b/recipes-kernel/pramfs-init/files/pramfs_init
@@ -0,0 +1,80 @@
1#!/bin/sh
2#set -e
3
4echo "Setting up pramfs"
5
6# ensure the required binaries are present
7#[ -x /sbin/modprobe ] || exit 1
8[ -x /bin/mount ] || exit 1
9[ -x /bin/grep ] || exit 1
10[ -x /bin/cat ] || exit 1
11[ -x /bin/sed ] || exit 1
12
13#modprobe pramfs
14mkdir -p /mnt/pram
15
16case "$1" in
17 start)
18 # Figure out RAM for pramfs
19 # This requires a kernel cmdline resevation of PRAMFS physmem
20 # in format memmap=16M$0x7000000
21 grep memmap /proc/cmdline > /dev/null
22 if [ $? -eq 0 ]; then
23 addr=$(sed 's/.*memmap=\([^ ]*\)\$\([^ ]*\).*/\2/' < /proc/cmdline)
24 size=$(sed 's/.*memmap=\([^ ]*\)\$\([^ ]*\).*/\1/' < /proc/cmdline)
25
26 if [ -d /seed ]; then
27 echo "Init new pramfs"
28 mount -t pramfs -o physaddr=$addr,init=$size,bs=1k none /mnt/pram > /dev/null 2>&1
29 cp /seed/* /mnt/pram
30 echo "0" > /mnt/pram/kcount
31 else
32 echo "Mounting old pramfs"
33 mount -t pramfs -o physaddr=$addr,bs=1k none /mnt/pram > /dev/null 2>&1
34 if [ $? -ne 0 ]; then
35 echo "Mounting old pramfs failed, zeroing"
36 mount -t pramfs -o physaddr=$addr,init=$size,bs=1k none /mnt/pram > /dev/null 2>&1
37 if [ $? -ne 0 ]; then
38 echo "All attempts to mount pramfs has failed, exiting"
39 rm -fr /mnt/pram
40 exit 1
41 fi
42 echo "0" > /mnt/pram/kcount
43 fi
44 fi
45
46# echo "* Setting up kexec"
47# kexec -l --reuse-cmdline --initrd=/mnt/pram/initramfs.cpio.gz /mnt/pram/vmlinuz
48
49 # Calculate number of boots
50 export KCOUNT=$(expr $(cat /mnt/pram/kcount) + 1)
51 echo $KCOUNT > /mnt/pram/kcount
52 else
53 KCOUNT="no-mem"
54 echo "Can't find memory area for pram fs"
55 rm -fr /mnt/pram
56 fi
57
58 echo "PRAMFS boot count: $KCOUNT"
59# echo "kexec -e to kexec and keep persistent files in /mnt/pram"
60 ;;
61 stop)
62 echo
63 ;;
64 restart)
65 $0 stop
66 $0 start
67 ;;
68 *)
69 echo "usage: $0 { start | stop | restart }" >&2
70 exit 1
71 ;;
72esac
73
74exit 0
75
76
77
78
79
80
diff --git a/recipes-kernel/pramfs-init/pramfs-init_1.0.bb b/recipes-kernel/pramfs-init/pramfs-init_1.0.bb
new file mode 100644
index 0000000..d9b36a7
--- /dev/null
+++ b/recipes-kernel/pramfs-init/pramfs-init_1.0.bb
@@ -0,0 +1,20 @@
1DESCRIPTION = "Pramfs init scripts"
2SECTION = "init"
3LICENSE = "BSD"
4SRC_URI = "file://pramfs_init"
5PR = "r0"
6
7LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
8 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
9
10PACKAGE_ARCH = "all"
11
12do_install() {
13 install -d ${D}${sysconfdir}/init.d/
14 install -m 0755 ${WORKDIR}/pramfs_init ${D}${sysconfdir}/init.d/pramfs_init
15}
16
17inherit update-rc.d
18
19INITSCRIPT_NAME = "pramfs_init"
20INITSCRIPT_PARAMS = "start 99 5 2 . stop 19 0 1 6 ."
diff --git a/recipes-test/benchtest-runner/benchtest-runner.bb b/recipes-test/benchtest-runner/benchtest-runner.bb
new file mode 100644
index 0000000..864fb94
--- /dev/null
+++ b/recipes-test/benchtest-runner/benchtest-runner.bb
@@ -0,0 +1,23 @@
1
2LICENSE = "BSD"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
4DESCRIPTION = "Execute all benchmark scripts in current directory"
5INHIBIT_DEFAULT_DEPS = "1"
6
7SRC_URI = "file://benchtest-runner \
8 "
9
10BTEST_PATH = "${libdir}/${PN}"
11
12FILES_${PN} = "${bindir}/benchtest-runner \
13 ${BTEST_PATH}"
14
15do_install () {
16 install -D ${WORKDIR}/benchtest-runner ${D}${bindir}/benchtest-runner
17 install -d ${D}${BTEST_PATH}/tests
18}
19
20do_patch[noexec] = "1"
21do_configure[noexec] = "1"
22do_compile[noexec] = "1"
23do_build[noexec] = "1"
diff --git a/recipes-test/benchtest-runner/files/benchtest-runner b/recipes-test/benchtest-runner/files/benchtest-runner
new file mode 100644
index 0000000..5681d58
--- /dev/null
+++ b/recipes-test/benchtest-runner/files/benchtest-runner
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if [ -d /usr/lib/benchtest-runner/tests ]; then
4 cd /usr/lib/benchtest-runner/tests
5elif [ -d /usr/lib32/benchtest-runner/tests ]; then
6 cd /usr/lib32/benchtest-runner/tests
7elif [ -d /usr/lib64/benchtest-runner/tests ]; then
8 cd /usr/lib64/benchtest-runner/tests
9else
10 echo "ERROR: Could not find directory containing benchmark tests"
11 exit 1
12fi
13
14for x in `ls`
15do
16 echo $x
17 if [[ -f $x ]]; then
18 date +%Y-%m-%dT%H:%M
19 echo "BEGIN: $x"
20 ./$x
21 echo "END: $x"
22 date +%Y-%m-%dT%H:%M
23 fi
24done
diff --git a/recipes-test/ddt-runner/ddt-runner.bb b/recipes-test/ddt-runner/ddt-runner.bb
new file mode 100644
index 0000000..85abb4f
--- /dev/null
+++ b/recipes-test/ddt-runner/ddt-runner.bb
@@ -0,0 +1,25 @@
1LICENSE = "BSD"
2LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
3DESCRIPTION = "Script to automatize Device Driver Tests"
4INHIBIT_DEFAULT_DEPS = "1"
5
6SRC_URI = "file://ddt-runner \
7 file://scripts"
8
9FILES_${PN} += "${libdir}/${PN}"
10FILES_${PN} += "${bindir}/ddt-runner"
11
12do_install () {
13 install -D ${WORKDIR}/ddt-runner ${D}${bindir}/ddt-runner
14 if [ -d "${WORKDIR}/scripts/${MACHINE}" ]; then
15 install -d ${D}${libdir}/${PN}/scripts
16 for file in ${WORKDIR}/scripts/${MACHINE}/* ; do
17 install $file ${D}${libdir}/${PN}/scripts
18 done
19 fi
20}
21
22do_patch[noexec] = "1"
23do_configure[noexec] = "1"
24do_compile[noexec] = "1"
25do_build[noexec] = "1"
diff --git a/recipes-test/ddt-runner/files/ddt-runner b/recipes-test/ddt-runner/files/ddt-runner
new file mode 100644
index 0000000..4cf14f6
--- /dev/null
+++ b/recipes-test/ddt-runner/files/ddt-runner
@@ -0,0 +1,51 @@
1#!/bin/sh
2
3if [[ ! -d "/usr/lib/ddt-runner/scripts" ]]; then
4 echo "SKIP: No available driver testcase"
5 exit
6fi
7
8cd /usr/lib/ddt-runner/scripts
9# 10 minutes until timeout
10timeout=600
11
12# check once "check_freq" second(s) if script ended, in order to
13# start new script, or kill the current if it timedout
14check_freq=1
15
16killrunning () {
17 # get all pids
18 list_of_pids=$(ls /proc | grep [1-9][0-9]*)
19
20 # kill all processes with this process id as process group id, skip this process
21 for proc_id in ${list_of_pids[@]}; do
22 if [ $((proc_id)) -ne $$ ]; then
23 group_id=`cat "/proc/${proc_id}/stat" 2>/dev/null | sed -n '$s/.*) [^ ]* [^ ]* \([^ ]*\).*/\1/p'`
24 if [ $((group_id)) -eq $$ ]; then
25 kill -KILL $proc_id &> /dev/null
26 fi
27 fi
28 done
29}
30
31for x in *
32do
33 if [[ -f $x ]]; then
34 date +%Y-%m-%dT%H:%M
35 echo "BEGIN: $x"
36 ./$x &
37 timer_count=0
38 while [ $? -eq 0 ]; do
39 timer_count=$((timer_count + check_freq))
40 if [ $timer_count -gt $timeout ]; then
41 killrunning
42 echo "FAIL: $x timed out, and it was killed"
43 break
44 fi
45 sleep $check_freq
46 kill -0 $! 2> /dev/null
47 done
48 echo "END: $x"
49 date +%Y-%m-%dT%H:%M
50 fi
51done
diff --git a/recipes-test/ddt-runner/files/scripts/acp3448v2/ethernet b/recipes-test/ddt-runner/files/scripts/acp3448v2/ethernet
new file mode 100755
index 0000000..10a16b4
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/acp3448v2/ethernet
@@ -0,0 +1,97 @@
1#!/bin/sh
2#
3# This script is used to test ethernet functionality for acp3448v2.
4#
5
6ethernet_interface="eth0"
7ethernet_ping_ipaddr="172.21.3.22"
8ethernet_ipaddr=$1
9
10IFCONFIG=`which ifconfig`
11
12for((num=0; num<16; num++));
13do
14 ethernet_interface=eth$num
15 $IFCONFIG $ethernet_interface up
16 $IFCONFIG | grep $ethernet_interface
17 if [ $? -eq 0 ]; then
18 echo "PASS: $ethernet_interface is up"
19 break
20 fi
21done
22
23if [ $num -eq 16 ]; then
24 echo "FAIL: $ethernet_interface is not up"
25 exit 1
26fi
27
28if [ "x$ethernet_ipaddr" != "x" ]; then
29 $IFCONFIG $ethernet_interface $ethernet_ipaddr
30fi
31
32$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
33if [ $? -ne 0 ]; then
34 echo "FAIL: ipaddr of $ethernet_interface setup failed"
35 exit 1
36else
37 echo "PASS: ipaddr of $ethernet_interface setup success"
38fi
39
40mindatasize=56
41maxdatasize=650
42stepsize=100
43iteration=1
44datasize=$mindatasize
45logfile=`/bin/mktemp`
46statistics=`/bin/mktemp`
47error=0
48
49trap cleanup SIGHUP SIGINT SIGTERM
50
51clean_tasks() {
52 echo "Executing clean up tasks"
53 rm -f $logfile $statistics
54}
55
56cleanup() {
57 echo "Aborting script execution"
58 clean_tasks
59 exit 0
60}
61
62echo "start ping test for $ethernet_interface..."
63
64while [ $datasize -le $maxdatasize ]; do
65 for i in `seq 1 $iteration`; do
66 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
67 ping_err=`echo $?`
68 echo "" && cat $statistics | grep -r "PING"
69 cat $statistics | grep -r "received"
70 [ `echo $?` -eq 0 ] || packets_received=0 && \
71 packets_received=`cat $statistics | \
72 grep -r "received" | awk '{print$4}'`
73
74 # Evaluate possible errors on the ping operation
75 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
76 error=1
77 echo -e `cat $statistics | grep -r PING` >> $logfile
78 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
79 fi
80 done
81 let datasize=$datasize+$stepsize
82done
83
84# Report failures
85if [ $error -eq 1 ]; then
86 echo -e "=================== error report ===================\n"
87 cat $logfile
88 echo -e "====================================================\n"
89 clean_tasks
90 echo -e "FAIL: ping test for $ethernet_interface failed\n"
91 exit 1
92else
93 clean_tasks
94 echo -e "PASS: ping test for $ethernet_interface success\n"
95fi
96
97echo "PASS: $ethernet_interface test passed" exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/acp3448v2/flash b/recipes-test/ddt-runner/files/scripts/acp3448v2/flash
new file mode 100755
index 0000000..30c5d06
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/acp3448v2/flash
@@ -0,0 +1,45 @@
1#!/bin/sh
2#
3# This script is used to test flash driver function.
4
5if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
6 echo "PASS: show $part_num partitions"
7else
8 echo "FAIL: show $part_num partitions"
9fi
10
11for((part=0; part<$part_num-1; part++));
12do
13 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
14 echo "PASS: show partition $part debug info"
15 else
16 echo "FAIL: show partition $part debug info"
17 fi
18done
19
20let "test_part=part_num-2"
21
22if [ $(flash_erase -j /dev/mtd${test_part} 0 0 | grep -c '100 % complete') ]; then
23 echo "PASS: erase and format partition ${test_part}"
24else
25 echo "FAIL: erase and format partition ${test_part}"
26fi
27
28mkdir -p /mnt/flash
29mount -t jffs2 /dev/mtdblock${test_part} /mnt/flash
30if [ $? -eq 0 ]; then
31 echo "PASS: mount partition ${test_part} as /mnt/flash"
32else
33 echo "FAIL: mount partition ${test_part} as /mnt/flash"
34fi
35
36cd /mnt/flash
37touch test
38if [ $(ls | grep -c 'test') ]; then
39 echo "PASS: touch a file on partition ${test_part}"
40else
41 echo "FAIL: touch a file on partition ${test_part}"
42fi
43
44cd ~
45umount /mnt/flash
diff --git a/recipes-test/ddt-runner/files/scripts/acp3448v2/pci-express b/recipes-test/ddt-runner/files/scripts/acp3448v2/pci-express
new file mode 100755
index 0000000..b04485f
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/acp3448v2/pci-express
@@ -0,0 +1,109 @@
1#!/bin/sh
2
3ethernet_interface="eth0"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7#Intel Corporation 82574L Gigabit Network Card (intel e1000e)
8vendor_id="8086"
9product_id="10d3"
10
11#find vendor id & product id
12lspci -nn |grep $vendor_id:$product_id
13if [ $? -ne 0 ]; then
14 echo "FAIL: pci-e ethernet card device does not exist"
15 exit 1
16else
17 echo "PASS: got pci-e ethernet card device"
18fi
19
20setpci -v -d $vendor_id:$product_id latency_timer=b0
21if [ $? -ne 0 ]; then
22 echo "FAIL: parameter changes to pci config space failed"
23 exit 1
24else
25 echo "PASS: parameter changes to pci config space success"
26fi
27
28IFCONFIG=`which ifconfig`
29
30$IFCONFIG $ethernet_interface up
31$IFCONFIG | grep $ethernet_interface
32if [ $? -ne 0 ]; then
33 echo "FAIL: pci-e ethernet card device $ethernet_interface is not up"
34 exit 1
35else
36 echo "PASS: pci-e ethernet card device $ethernet_interface is up"
37fi
38
39if [ "x$ethernet_ipaddr" != "x" ]; then
40 $IFCONFIG $ethernet_interface $ethernet_ipaddr
41fi
42
43$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
44if [ $? -ne 0 ]; then
45 echo "FAIL: ipaddr of pci-e ethernet card device $ethernet_interface setup failed"
46 exit 1
47else
48 echo "PASS: ipaddr of pci-e ethernet card device $ethernet_interface setup success"
49fi
50
51mindatasize=56
52maxdatasize=650
53stepsize=100
54iteration=1
55datasize=$mindatasize
56logfile=`/bin/mktemp`
57statistics=`/bin/mktemp`
58error=0
59
60trap cleanup SIGHUP SIGINT SIGTERM
61
62clean_tasks() {
63 echo "Executing clean up tasks"
64 rm -f $logfile $statistics
65}
66
67cleanup() {
68 echo "Aborting script execution"
69 clean_tasks
70 exit 0
71}
72
73echo "start ping test for pci-e ethernet card device $ethernet_interface..."
74
75while [ $datasize -le $maxdatasize ]; do
76 for i in `seq 1 $iteration`; do
77 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
78 ping_err=`echo $?`
79 echo "" && cat $statistics | grep -r "PING"
80 cat $statistics | grep -r "received"
81 [ `echo $?` -eq 0 ] || packets_received=0 && \
82 packets_received=`cat $statistics | \
83 grep -r "received" | awk '{print$4}'`
84
85 # Evaluate possible errors on the ping operation
86 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
87 error=1
88 echo -e `cat $statistics | grep -r PING` >> $logfile
89 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
90 fi
91 done
92 let datasize=$datasize+$stepsize
93done
94
95# Report failures
96if [ $error -eq 1 ]; then
97 echo -e "=================== error report ===================\n"
98 cat $logfile
99 echo -e "====================================================\n"
100 clean_tasks
101 echo -e "FAIL: ping test for pci-e ethernet card device $ethernet_interface failed\n"
102 exit 1
103else
104 clean_tasks
105 echo -e "PASS: ping test for pci-e ethernet card device $ethernet_interface success\n"
106fi
107
108echo "PASS: pci express test passed"
109exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/acp3448v2/usb b/recipes-test/ddt-runner/files/scripts/acp3448v2/usb
new file mode 100755
index 0000000..aad0226
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/acp3448v2/usb
@@ -0,0 +1,100 @@
1#!/bin/sh
2#
3# This script is used to test usb functionality for acp3448v2.
4#
5
6result=0
7devpath=""
8usbinfo=""
9
10usbutils_is_installed=`which lsusb`
11if [ -z $usbutils_is_installed ]; then
12 echo "FAIL: Cannot find lsusb"
13 exit 1
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "$usbdev_num USB device(s) connected"
22fi
23
24sd=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
25if [ -z "$sd" ]; then
26 echo "FAIL: find sd device"
27 exit 1
28else
29 echo "PASS: find sd device"
30fi
31
32HDPARM=`which hdparm`
33if [ -z $HDPARM ]; then
34 result=$?
35 echo "FAIL: find hdparm"
36fi
37 echo "PASS: find hdparm"
38
39for s in $sd
40do
41 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
42 usbinfo=`ls -l $devpath | grep usb`
43
44 if [ -z "$usbinfo" ] ; then
45 continue
46 fi
47
48 s=`echo "$s" | awk -F "," '{print $3}'`
49
50 echo "Testing $s"
51 $HDPARM -I $s
52 if [ $? -ne 0 ]; then
53 result=$?
54 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
55 else
56 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
57 fi
58
59 $HDPARM -tT $s
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
63 else
64 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
65 fi
66
67 mkdir -p /mnt/usb_tmp
68 for partition in `ls "$s"[1-9]`
69 do
70 echo "Testing $partition"
71
72 mount "$partition" /mnt/usb_tmp
73 if [ $? -ne 0 ]; then
74 result=$?
75 echo "FAIL: mount $s"
76 else
77 echo "PASS: mount $s"
78 dd if=/dev/urandom of=/mnt/usb_tmp/writefile bs=1M count=50
79 if [ $? -ne 0 ]; then
80 result=$?
81 echo "FAIL: write test on $s"
82 else
83 echo "PASS: write test on $s"
84 rm -f /mnt/usb_tmp/writefile
85 fi
86 dd if=$s of=/mnt/usb_tmp/readfile bs=1M count=10
87 if [ $? -ne 0 ]; then
88 result=$?
89 echo "FAIL: read test on $s"
90 else
91 echo "PASS: read test on $s"
92 rm -f /mnt/usb_tmp/readfile
93 fi
94 umount /mnt/usb_tmp
95 fi
96 done
97
98 rm -fr /mnt/usb_tmp
99done
100exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/b4860qds-64b/ethernet b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/b4860qds-64b/flash b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/flash
new file mode 100755
index 0000000..5728b73
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/flash
@@ -0,0 +1,20 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in b4860qds-64b and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11fi
12
13for((part=0; part<$part_num-1; part++));
14do
15 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
16 echo "PASS: show partition $part debug info"
17 else
18 echo "FAIL: show partition $part debug info"
19 fi
20done
diff --git a/recipes-test/ddt-runner/files/scripts/b4860qds-64b/i2c b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/i2c
new file mode 100755
index 0000000..5b312b9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/b4860qds-64b/rtc b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/b4860qds-64b/spi b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/spi
new file mode 100755
index 0000000..b03431e
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/b4860qds-64b/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to b4860qds-64b cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd4"
8MTD_BLOCK_DEVICE="/dev/mtdblock4"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/ethernet b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/ethernet
new file mode 100755
index 0000000..df64e08
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/ethernet
@@ -0,0 +1,89 @@
1#!/bin/sh
2# This script is used to test ethernet interface for bsc9131rdb.
3
4ethernet_interface="eth0"
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8IFCONFIG=`which ifconfig`
9
10$IFCONFIG $ethernet_interface up
11$IFCONFIG | grep $ethernet_interface
12if [ $? -ne 0 ]; then
13 echo "FAIL: $ethernet_interface is not up"
14 exit 1
15else
16 echo "PASS: $ethernet_interface is up"
17fi
18
19if [ "x$ethernet_ipaddr" != "x" ]; then
20 $IFCONFIG $ethernet_interface $ethernet_ipaddr
21fi
22
23$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
24if [ $? -ne 0 ]; then
25 echo "FAIL: ipaddr of $ethernet_interface setup failed"
26 exit 1
27else
28 echo "PASS: ipaddr of $ethernet_interface setup success"
29fi
30
31mindatasize=56
32maxdatasize=650
33stepsize=100
34iteration=1
35datasize=$mindatasize
36logfile=`/bin/mktemp`
37statistics=`/bin/mktemp`
38error=0
39
40trap cleanup SIGHUP SIGINT SIGTERM
41
42clean_tasks() {
43 echo "Executing clean up tasks"
44 rm -f $logfile $statistics
45}
46
47cleanup() {
48 echo "Aborting script execution"
49 clean_tasks
50 exit 0
51}
52
53echo "start ping test for $ethernet_interface..."
54
55while [ $datasize -le $maxdatasize ]; do
56 for i in `seq 1 $iteration`; do
57 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
58 ping_err=`echo $?`
59 echo "" && cat $statistics | grep -r "PING"
60 cat $statistics | grep -r "received"
61 [ `echo $?` -eq 0 ] || packets_received=0 && \
62 packets_received=`cat $statistics | \
63 grep -r "received" | awk '{print$4}'`
64
65 # Evaluate possible errors on the ping operation
66 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
67 error=1
68 echo -e `cat $statistics | grep -r PING` >> $logfile
69 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
70 fi
71 done
72 let datasize=$datasize+$stepsize
73done
74
75# Report failures
76if [ $error -eq 1 ]; then
77 echo -e "=================== error report ===================\n"
78 cat $logfile
79 echo -e "====================================================\n"
80 clean_tasks
81 echo -e "FAIL: ping test for $ethernet_interface failed\n"
82 exit 1
83else
84 clean_tasks
85 echo -e "PASS: ping test for $ethernet_interface success\n"
86fi
87
88echo "PASS: $ethernet_interface test passed"
89exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/flash b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/flash
new file mode 100755
index 0000000..66631ba
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/flash
@@ -0,0 +1,48 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the tests
4# which include write operations since all partition are in use in bsc9131rdb
5# and there might be possibility of corrupting data even if we backup in test
6# script.
7
8if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
9 echo "PASS: $part_num partitions found"
10else
11 echo "FAIL: $part_num partitions found"
12 exit 1
13fi
14
15for((part=0; part<$part_num; part++));
16do
17 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
18 echo "PASS: show partition $part debug info"
19 else
20 echo "FAIL: show partition $part debug info"
21 exit 1
22 fi
23done
24
25READ_TEST=`find / -name mtd_readtest.ko -print`
26
27if [ ! -e $READ_TEST ]; then
28 echo "FAIL: $READ_TEST does not exist"
29 exit 1
30else
31 echo "PASS: $READ_TEST exists"
32fi
33
34for((part=0; part<$part_num; part++));
35do
36 dmesg -c > NULL
37
38 modprobe $READ_TEST dev=$part
39
40 bad_num=`dmesg | grep -c 'bad'`
41 if [ $bad_num -eq 0 ]; then
42 echo "PASS: read test for partition $part"
43 else
44 echo "FAIL: read test for partition $part"
45 fi
46
47 rmmod $READ_TEST
48done
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/i2c b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/i2c
new file mode 100755
index 0000000..c4acd8e
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/i2c
@@ -0,0 +1,75 @@
1#!/bin/sh
2# This script is used to test i2c interface for bsc9131rdb
3
4I2C_DETECT=`which i2cdetect`
5if [ "x$I2C_DETECT" != "x" ]; then
6 echo "PASS: i2cdetect found"
7else
8 echo "FAIL: i2cdetect not found"
9 exit 1
10fi
11
12I2C_SET=`which i2cset`
13if [ "x$I2C_SET" != "x" ]; then
14 echo "PASS: i2cset found"
15else
16 echo "FAIL: i2cset not found"
17 exit 1
18fi
19
20I2C_GET=`which i2cget`
21if [ "x$I2C_GET" != "x" ]; then
22 echo "PASS: i2cget found"
23else
24 echo "FAIL: i2cget not found"
25 exit 1
26fi
27
28if I2C_ADAPTERS=`$I2C_DETECT -l |wc -l`; then
29 echo "PASS: $I2C_ADAPTERS i2c adapters found"
30else
31 echo "FAIL: no i2c adapters found"
32 exit 1
33fi
34
35adapters=0
36while [ $adapters -lt $I2C_ADAPTERS ]
37do
38 $I2C_DETECT -y $adapters
39 if [ $? -ne 0 ]; then
40 echo "FAIL: detect i2c adapter $adapters fail"
41 else
42 echo "PASS: detect i2c adapter $adapters success"
43 fi
44 adapters=`expr $adapters + 1`
45 sleep 1
46done
47
48# Area of bus:i2c-0 addr:0x52 is free to read and write
49$I2C_SET -y 0 0x52 0 0x55
50if [ $? -eq 0 ]; then
51 echo "PASS: i2c_set -y 0 0x52 0 0x55 success"
52else
53 echo "FAIL: i2c_set -y 0 0x52 0 0x55 fail"
54fi
55
56num=`$I2C_GET -y 0 0x52 0 | grep -c '0x55'`
57if [ $num -eq 1 ]; then
58 echo "PASS: i2c_get -y 0 0x52 0 success"
59else
60 echo "FAIL: i2c_get -y 0 0x52 0 fail"
61fi
62
63$I2C_SET -y 0 0x52 0 0xaa
64if [ $? -eq 0 ]; then
65 echo "PASS: i2c_set -y 0 0x52 0 0xaa success"
66else
67 echo "FAIL: i2c_set -y 0 0x52 0 0xaa fail"
68fi
69
70num=`$I2C_GET -y 0 0x52 0 | grep -c '0xaa'`
71if [ $num -eq 1 ]; then
72 echo "PASS: i2c_get -y 0 0x52 0 success"
73else
74 echo "FAIL: i2c_get -y 0 0x52 0 fail"
75fi
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/preempt_rt b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/preempt_rt
new file mode 100755
index 0000000..111cfa2
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/preempt_rt
@@ -0,0 +1,33 @@
1#!/bin/sh
2#
3#This script is to test PREEMPT RT on target
4#
5
6uname -a | grep "PREEMPT RT"
7if [ $? -ne 0 ]; then
8 echo "FAIL: The kernel include real-time patch"
9 echo 1
10fi
11 echo "PASS: The kernel include real-time patch"
12
13ps | grep '\(\[irq/\)'
14if [ $? -ne 0 ]; then
15 echo "FAIL: The IRQ handlers are treated by a patched kernel in kernel thread context."
16 exit 1
17fi
18 echo "PASS: The IRQ handlers are treated by a patched kernel in kernel thread context."
19
20cyclictest -t5 -p 80 -i 10000 -l 100
21if [ $? -ne 0 ]; then
22 echo "FAIL: Test case: POSIX interval timer, Interval 10000 micro seconds,. 100 loops."
23 exit 1
24fi
25 echo "PASS: Test case: POSIX interval timer, Interval 10000 micro seconds,. 100 loops."
26
27cyclictest -t5 -p 80 -n -i 10000 -l 100
28if [ $? -ne 0 ]; then
29 echo "FAIL: Test case: clock_nanosleep(TIME_ABSTIME), Interval 10000 micro seconds,. 100 loops."
30 exit 1
31fi
32 echo "PASS: Test case: clock_nanosleep(TIME_ABSTIME), Interval 10000 micro seconds,. 100 loops."
33
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/spi b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/spi
new file mode 100755
index 0000000..3386d6c
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/spi
@@ -0,0 +1,56 @@
1#!/bin/sh
2# This script is used to test spi flash functionality for bsc9131rdb. An spi
3# flash M25P80 connect to bsc9131 cpu by spi bus, so the method is to read/write
4# spi flash to verify whether the spi bus driver worked or not.
5
6MTD_CHAR_DEVICE="/dev/mtd8"
7MTD_BLOCK_DEVICE="/dev/mtdblock8"
8
9FLASH_ERASE=`which flash_erase`
10if [ "x$FLASH_ERASE" != "x" ]; then
11 echo "PASS: flash_erase found"
12else
13 echo "FAIL: flash_erase not found"
14 exit 1
15fi
16
17if [ ! -e $MTD_CHAR_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
22fi
23
24if [ ! -e $MTD_BLOCK_DEVICE ]; then
25 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
26 exit 1
27else
28 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
29fi
30
31$FLASH_ERASE -j $MTD_CHAR_DEVICE 0 0
32if [ $? -ne 0 ]; then
33 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
34 exit 1
35else
36 mkdir -p /mnt/spi
37 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
38 if [ $? -ne 0 ]; then
39 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
40 exit 1
41 else
42 cp /bin/busybox /mnt/spi
43 file_num=`ls /mnt/spi |grep -c 'busybox'`
44 if [ $file_num -eq 1 ]; then
45 rm /mnt/spi/busybox
46 umount $MTD_BLOCK_DEVICE
47 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
48 else
49 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
50 exit 1
51 fi
52 fi
53fi
54
55echo "PASS: spi bus test passed"
56exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9131rdb/watchdog b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/watchdog
new file mode 100755
index 0000000..71429fc
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9131rdb/watchdog
@@ -0,0 +1,64 @@
1#!/bin/sh
2#
3# This script is used to test watchdog functionality for bsc9131rdb.
4
5WATCHDOG=`which watchdog`
6if [ "x$WATCHDOG" != "x" ]; then
7 echo "PASS: watchdog found"
8else
9 echo "FAIL: watchdog not found"
10 exit 1
11fi
12
13WATCHDOG_CONF=/etc/watchdog.conf
14if [ -f $WATCHDOG_CONF ]; then
15 echo "PASS: watchdog config file found"
16 sed -i '23,23 s/#//' $WATCHDOG_CONF
17else
18 echo "FAIL: watchdog config file not found"
19 exit 1
20fi
21
22$WATCHDOG -v /dev/watchdog
23watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
24if [ $watchdog_thread -eq 2 ]; then
25 echo "PASS: Watchdog daemon started successfully"
26else
27 echo "FAIL: Failed to start watchdog daemon"
28 exit 1
29fi
30
31sleep 5s
32
33killall watchdog
34
35retry=0
36while [ $retry -lt 10 ]
37do
38 watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
39 if [ $watchdog_thread -eq 1 ]; then
40 echo "PASS: Watchdog daemon stopped successfully"
41 break;
42 fi
43 sleep 1s
44 retry=`expr $retry + 1`
45done
46
47if [ $retry -eq 10 ]; then
48 echo "FAIL: Failed to stop watchdog daemon"
49fi
50
51found=0
52while read line
53do
54 result=`echo $line | grep -c 'still alive after 1 interval'`
55 if [ $result -eq 1 ]; then
56 echo "PASS: Watchdog is still alive after 1 interval"
57 found=1
58 fi
59done < /var/log/messages
60
61if [ $found -eq 0 ]; then
62 echo "FAIL: Watchdog is not alive after 1 interval"
63fi
64
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/ethernet b/recipes-test/ddt-runner/files/scripts/bsc9132qds/ethernet
new file mode 100755
index 0000000..df64e08
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/ethernet
@@ -0,0 +1,89 @@
1#!/bin/sh
2# This script is used to test ethernet interface for bsc9131rdb.
3
4ethernet_interface="eth0"
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8IFCONFIG=`which ifconfig`
9
10$IFCONFIG $ethernet_interface up
11$IFCONFIG | grep $ethernet_interface
12if [ $? -ne 0 ]; then
13 echo "FAIL: $ethernet_interface is not up"
14 exit 1
15else
16 echo "PASS: $ethernet_interface is up"
17fi
18
19if [ "x$ethernet_ipaddr" != "x" ]; then
20 $IFCONFIG $ethernet_interface $ethernet_ipaddr
21fi
22
23$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
24if [ $? -ne 0 ]; then
25 echo "FAIL: ipaddr of $ethernet_interface setup failed"
26 exit 1
27else
28 echo "PASS: ipaddr of $ethernet_interface setup success"
29fi
30
31mindatasize=56
32maxdatasize=650
33stepsize=100
34iteration=1
35datasize=$mindatasize
36logfile=`/bin/mktemp`
37statistics=`/bin/mktemp`
38error=0
39
40trap cleanup SIGHUP SIGINT SIGTERM
41
42clean_tasks() {
43 echo "Executing clean up tasks"
44 rm -f $logfile $statistics
45}
46
47cleanup() {
48 echo "Aborting script execution"
49 clean_tasks
50 exit 0
51}
52
53echo "start ping test for $ethernet_interface..."
54
55while [ $datasize -le $maxdatasize ]; do
56 for i in `seq 1 $iteration`; do
57 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
58 ping_err=`echo $?`
59 echo "" && cat $statistics | grep -r "PING"
60 cat $statistics | grep -r "received"
61 [ `echo $?` -eq 0 ] || packets_received=0 && \
62 packets_received=`cat $statistics | \
63 grep -r "received" | awk '{print$4}'`
64
65 # Evaluate possible errors on the ping operation
66 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
67 error=1
68 echo -e `cat $statistics | grep -r PING` >> $logfile
69 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
70 fi
71 done
72 let datasize=$datasize+$stepsize
73done
74
75# Report failures
76if [ $error -eq 1 ]; then
77 echo -e "=================== error report ===================\n"
78 cat $logfile
79 echo -e "====================================================\n"
80 clean_tasks
81 echo -e "FAIL: ping test for $ethernet_interface failed\n"
82 exit 1
83else
84 clean_tasks
85 echo -e "PASS: ping test for $ethernet_interface success\n"
86fi
87
88echo "PASS: $ethernet_interface test passed"
89exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/flash b/recipes-test/ddt-runner/files/scripts/bsc9132qds/flash
new file mode 100755
index 0000000..66631ba
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/flash
@@ -0,0 +1,48 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the tests
4# which include write operations since all partition are in use in bsc9131rdb
5# and there might be possibility of corrupting data even if we backup in test
6# script.
7
8if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
9 echo "PASS: $part_num partitions found"
10else
11 echo "FAIL: $part_num partitions found"
12 exit 1
13fi
14
15for((part=0; part<$part_num; part++));
16do
17 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
18 echo "PASS: show partition $part debug info"
19 else
20 echo "FAIL: show partition $part debug info"
21 exit 1
22 fi
23done
24
25READ_TEST=`find / -name mtd_readtest.ko -print`
26
27if [ ! -e $READ_TEST ]; then
28 echo "FAIL: $READ_TEST does not exist"
29 exit 1
30else
31 echo "PASS: $READ_TEST exists"
32fi
33
34for((part=0; part<$part_num; part++));
35do
36 dmesg -c > NULL
37
38 modprobe $READ_TEST dev=$part
39
40 bad_num=`dmesg | grep -c 'bad'`
41 if [ $bad_num -eq 0 ]; then
42 echo "PASS: read test for partition $part"
43 else
44 echo "FAIL: read test for partition $part"
45 fi
46
47 rmmod $READ_TEST
48done
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/i2c b/recipes-test/ddt-runner/files/scripts/bsc9132qds/i2c
new file mode 100755
index 0000000..c4acd8e
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/i2c
@@ -0,0 +1,75 @@
1#!/bin/sh
2# This script is used to test i2c interface for bsc9131rdb
3
4I2C_DETECT=`which i2cdetect`
5if [ "x$I2C_DETECT" != "x" ]; then
6 echo "PASS: i2cdetect found"
7else
8 echo "FAIL: i2cdetect not found"
9 exit 1
10fi
11
12I2C_SET=`which i2cset`
13if [ "x$I2C_SET" != "x" ]; then
14 echo "PASS: i2cset found"
15else
16 echo "FAIL: i2cset not found"
17 exit 1
18fi
19
20I2C_GET=`which i2cget`
21if [ "x$I2C_GET" != "x" ]; then
22 echo "PASS: i2cget found"
23else
24 echo "FAIL: i2cget not found"
25 exit 1
26fi
27
28if I2C_ADAPTERS=`$I2C_DETECT -l |wc -l`; then
29 echo "PASS: $I2C_ADAPTERS i2c adapters found"
30else
31 echo "FAIL: no i2c adapters found"
32 exit 1
33fi
34
35adapters=0
36while [ $adapters -lt $I2C_ADAPTERS ]
37do
38 $I2C_DETECT -y $adapters
39 if [ $? -ne 0 ]; then
40 echo "FAIL: detect i2c adapter $adapters fail"
41 else
42 echo "PASS: detect i2c adapter $adapters success"
43 fi
44 adapters=`expr $adapters + 1`
45 sleep 1
46done
47
48# Area of bus:i2c-0 addr:0x52 is free to read and write
49$I2C_SET -y 0 0x52 0 0x55
50if [ $? -eq 0 ]; then
51 echo "PASS: i2c_set -y 0 0x52 0 0x55 success"
52else
53 echo "FAIL: i2c_set -y 0 0x52 0 0x55 fail"
54fi
55
56num=`$I2C_GET -y 0 0x52 0 | grep -c '0x55'`
57if [ $num -eq 1 ]; then
58 echo "PASS: i2c_get -y 0 0x52 0 success"
59else
60 echo "FAIL: i2c_get -y 0 0x52 0 fail"
61fi
62
63$I2C_SET -y 0 0x52 0 0xaa
64if [ $? -eq 0 ]; then
65 echo "PASS: i2c_set -y 0 0x52 0 0xaa success"
66else
67 echo "FAIL: i2c_set -y 0 0x52 0 0xaa fail"
68fi
69
70num=`$I2C_GET -y 0 0x52 0 | grep -c '0xaa'`
71if [ $num -eq 1 ]; then
72 echo "PASS: i2c_get -y 0 0x52 0 success"
73else
74 echo "FAIL: i2c_get -y 0 0x52 0 fail"
75fi
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/preempt_rt b/recipes-test/ddt-runner/files/scripts/bsc9132qds/preempt_rt
new file mode 100755
index 0000000..111cfa2
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/preempt_rt
@@ -0,0 +1,33 @@
1#!/bin/sh
2#
3#This script is to test PREEMPT RT on target
4#
5
6uname -a | grep "PREEMPT RT"
7if [ $? -ne 0 ]; then
8 echo "FAIL: The kernel include real-time patch"
9 echo 1
10fi
11 echo "PASS: The kernel include real-time patch"
12
13ps | grep '\(\[irq/\)'
14if [ $? -ne 0 ]; then
15 echo "FAIL: The IRQ handlers are treated by a patched kernel in kernel thread context."
16 exit 1
17fi
18 echo "PASS: The IRQ handlers are treated by a patched kernel in kernel thread context."
19
20cyclictest -t5 -p 80 -i 10000 -l 100
21if [ $? -ne 0 ]; then
22 echo "FAIL: Test case: POSIX interval timer, Interval 10000 micro seconds,. 100 loops."
23 exit 1
24fi
25 echo "PASS: Test case: POSIX interval timer, Interval 10000 micro seconds,. 100 loops."
26
27cyclictest -t5 -p 80 -n -i 10000 -l 100
28if [ $? -ne 0 ]; then
29 echo "FAIL: Test case: clock_nanosleep(TIME_ABSTIME), Interval 10000 micro seconds,. 100 loops."
30 exit 1
31fi
32 echo "PASS: Test case: clock_nanosleep(TIME_ABSTIME), Interval 10000 micro seconds,. 100 loops."
33
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/sdhc b/recipes-test/ddt-runner/files/scripts/bsc9132qds/sdhc
new file mode 100644
index 0000000..1530c64
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/sdhc
@@ -0,0 +1,77 @@
1#!/bin/sh
2# This script is used to test SDHC card functionality for bsc9132rdb
3
4DEV="mmc0:e624"
5
6if [ -f /sys/bus/mmc/drivers/mmcblk/bind ]; then
7 echo "PASS: /sys/bus/mmc/drivers/mmcblk/bind found"
8else
9 echo "FAIL: /sys/bus/mmc/drivers/mmcblk/bind not found"
10 exit 1
11fi
12
13if [ -f /sys/bus/mmc/drivers/mmcblk/unbind ]; then
14 echo "PASS: /sys/bus/mmc/drivers/mmcblk/unbind found"
15else
16 echo "FAIL: /sys/bus/mmc/drivers/mmcblk/unbind not found"
17 exit 1
18fi
19
20if [ -f /sys/bus/mmc/drivers/mmc_test/bind ]; then
21 echo "PASS: /sys/bus/mmc/drivers/mmc_test/bind found"
22else
23 echo "FAIL: /sys/bus/mmc/drivers/mmc_test/bind not found"
24 exit 1
25fi
26
27if [ -f /sys/bus/mmc/drivers/mmc_test/unbind ]; then
28 echo "PASS: /sys/bus/mmc/drivers/mmc_test/unbind found"
29else
30 echo "FAIL: /sys/bus/mmc/drivers/mmc_test/unbind not found"
31 exit 1
32fi
33
34mount -t debugfs none /sys/kernel/debug
35if [ $? -eq 0 ]; then
36 echo "PASS: successfully mount /sys/kernel/debug"
37else
38 echo "FAIL: failed to mount /sys/kernel/debug"
39fi
40
41echo $DEV > /sys/bus/mmc/drivers/mmcblk/unbind
42if [ $? -eq 0 ]; then
43 echo "PASS: successfully unbind mmcblk driver"
44else
45 echo "FAIL: failed to unbind mmcblk driver"
46fi
47
48echo $DEV > /sys/bus/mmc/drivers/mmc_test/bind
49if [ $? -eq 0 ]; then
50 echo "PASS: successfully bind mmc_test driver"
51else
52 echo "FAIL: failed to bind mmc_test driver"
53fi
54
55# echo 0 means test all supported test cases
56fail_num=`echo 0 > /sys/kernel/debug/mmc0/mmc0\:e624/test | grep -E -c 'FAILED|ERROR'`
57if [ $fail_num -eq 0 ]; then
58 echo "PASS: all test cases passed"
59else
60 echo "FAIL: some test cases failed"
61fi
62
63cat /sys/kernel/debug/mmc0/mmc0\:e624/test
64
65echo $DEV > /sys/bus/mmc/drivers/mmc_test/unbind
66if [ $? -eq 0 ]; then
67 echo "PASS: successfully unbind mmc_test driver"
68else
69 echo "FAIL: failed to unbind mmc_test driver"
70fi
71
72echo $DEV > /sys/bus/mmc/drivers/mmcblk/bind
73if [ $? -eq 0 ]; then
74 echo "PASS: successfully bind mmcblk driver"
75else
76 echo "FAIL: failed to bind mmcblk driver"
77fi
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/spi b/recipes-test/ddt-runner/files/scripts/bsc9132qds/spi
new file mode 100755
index 0000000..3386d6c
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/spi
@@ -0,0 +1,56 @@
1#!/bin/sh
2# This script is used to test spi flash functionality for bsc9131rdb. An spi
3# flash M25P80 connect to bsc9131 cpu by spi bus, so the method is to read/write
4# spi flash to verify whether the spi bus driver worked or not.
5
6MTD_CHAR_DEVICE="/dev/mtd8"
7MTD_BLOCK_DEVICE="/dev/mtdblock8"
8
9FLASH_ERASE=`which flash_erase`
10if [ "x$FLASH_ERASE" != "x" ]; then
11 echo "PASS: flash_erase found"
12else
13 echo "FAIL: flash_erase not found"
14 exit 1
15fi
16
17if [ ! -e $MTD_CHAR_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
22fi
23
24if [ ! -e $MTD_BLOCK_DEVICE ]; then
25 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
26 exit 1
27else
28 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
29fi
30
31$FLASH_ERASE -j $MTD_CHAR_DEVICE 0 0
32if [ $? -ne 0 ]; then
33 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
34 exit 1
35else
36 mkdir -p /mnt/spi
37 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
38 if [ $? -ne 0 ]; then
39 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
40 exit 1
41 else
42 cp /bin/busybox /mnt/spi
43 file_num=`ls /mnt/spi |grep -c 'busybox'`
44 if [ $file_num -eq 1 ]; then
45 rm /mnt/spi/busybox
46 umount $MTD_BLOCK_DEVICE
47 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
48 else
49 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
50 exit 1
51 fi
52 fi
53fi
54
55echo "PASS: spi bus test passed"
56exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/bsc9132qds/watchdog b/recipes-test/ddt-runner/files/scripts/bsc9132qds/watchdog
new file mode 100755
index 0000000..2beb8a6
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/bsc9132qds/watchdog
@@ -0,0 +1,64 @@
1#!/bin/sh
2#
3# This script is used to test watchdog functionality for bsc9132qds.
4
5WATCHDOG=`which watchdog`
6if [ "x$WATCHDOG" != "x" ]; then
7 echo "PASS: watchdog found"
8else
9 echo "FAIL: watchdog not found"
10 exit 1
11fi
12
13WATCHDOG_CONF=/etc/watchdog.conf
14if [ -f $WATCHDOG_CONF ]; then
15 echo "PASS: watchdog config file found"
16 sed -i '23,23 s/#//' $WATCHDOG_CONF
17else
18 echo "FAIL: watchdog config file not found"
19 exit 1
20fi
21
22$WATCHDOG -v /dev/watchdog
23watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
24if [ $watchdog_thread -eq 2 ]; then
25 echo "PASS: Watchdog daemon started successfully"
26else
27 echo "FAIL: Failed to start watchdog daemon"
28 exit 1
29fi
30
31sleep 5s
32
33killall watchdog
34
35retry=0
36while [ $retry -lt 10 ]
37do
38 watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
39 if [ $watchdog_thread -eq 1 ]; then
40 echo "PASS: Watchdog daemon stopped successfully"
41 break;
42 fi
43 sleep 1s
44 retry=`expr $retry + 1`
45done
46
47if [ $retry -eq 10 ]; then
48 echo "FAIL: Failed to stop watchdog daemon"
49fi
50
51found=0
52while read line
53do
54 result=`echo $line | grep -c 'still alive after 1 interval'`
55 if [ $result -eq 1 ]; then
56 echo "PASS: Watchdog is still alive after 1 interval"
57 found=1
58 fi
59done < /var/log/messages
60
61if [ $found -eq 0 ]; then
62 echo "FAIL: Watchdog is not alive after 1 interval"
63fi
64
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/ethernet b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/ethernet
new file mode 100755
index 0000000..de1d427
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth0"
4#sestord02 ip address
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8IFCONFIG=`which ifconfig`
9
10$IFCONFIG $ethernet_interface up
11$IFCONFIG | grep $ethernet_interface
12if [ $? -ne 0 ]; then
13 echo "FAIL: $ethernet_interface is not up"
14 exit 1
15else
16 echo "PASS: $ethernet_interface is up"
17fi
18
19if [ "x$ethernet_ipaddr" != "x" ]; then
20 $IFCONFIG $ethernet_interface $ethernet_ipaddr
21fi
22
23$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
24if [ $? -ne 0 ]; then
25 echo "FAIL: ipaddr of $ethernet_interface setup failed"
26 exit 1
27else
28 echo "PASS: ipaddr of $ethernet_interface setup success"
29fi
30
31mindatasize=56
32maxdatasize=650
33stepsize=100
34iteration=1
35datasize=$mindatasize
36logfile=`/bin/mktemp`
37statistics=`/bin/mktemp`
38error=0
39
40trap cleanup SIGHUP SIGINT SIGTERM
41
42clean_tasks() {
43 echo "Executing clean up tasks"
44 rm -f $logfile $statistics
45}
46
47cleanup() {
48 echo "Aborting script execution"
49 clean_tasks
50 exit 0
51}
52
53echo "start ping test for $ethernet_interface..."
54
55while [ $datasize -le $maxdatasize ]; do
56 for i in `seq 1 $iteration`; do
57 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
58 ping_err=`echo $?`
59 echo "" && cat $statistics | grep -r "PING"
60 cat $statistics | grep -r "received"
61 [ `echo $?` -eq 0 ] || packets_received=0 && \
62 packets_received=`cat $statistics | \
63 grep -r "received" | awk '{print$4}'`
64
65 # Evaluate possible errors on the ping operation
66 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
67 error=1
68 echo -e `cat $statistics | grep -r PING` >> $logfile
69 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
70 fi
71 done
72 let datasize=$datasize+$stepsize
73done
74
75# Report failures
76if [ $error -eq 1 ]; then
77 echo -e "=================== error report ===================\n"
78 cat $logfile
79 echo -e "====================================================\n"
80 clean_tasks
81 echo -e "FAIL: ping test for $ethernet_interface failed\n"
82 exit 1
83else
84 clean_tasks
85 echo -e "PASS: ping test for $ethernet_interface success\n"
86fi
87
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/flash b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/flash
new file mode 100755
index 0000000..e108168
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/flash
@@ -0,0 +1,49 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in p2041rdb and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11 exit 1
12fi
13
14for((part=0; part<$part_num; part++));
15do
16 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
17 echo "PASS: show partition $part debug info"
18 else
19 echo "FAIL: show partition $part debug info"
20 exit 1
21 fi
22done
23
24READ_TEST=`find / -name mtd_readtest.ko -print`
25
26if [ ! -e "$READ_TEST" ]; then
27 echo "FAIL: mtd_readtest.ko does not exist"
28 exit 1
29else
30 echo "PASS: mtd_readtest.ko exists"
31fi
32
33for((part=0; part<$part_num; part++));
34do
35 dmesg -c
36
37 insmod $READ_TEST dev=$part
38
39 finish=`dmesg | grep -c 'mtd_readtest: finished'`
40 if [ $finish -eq 1 ]; then
41 echo "PASS: read test $part"
42 else
43 echo "FAIL: read test $part"
44 rmmod $READ_TEST
45 exit 1
46 fi
47
48 rmmod $READ_TEST
49done
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/i2c b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/i2c
new file mode 100755
index 0000000..3801e9e
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/i2c
@@ -0,0 +1,42 @@
1#!/bin/sh
2# This script is used to test i2c bus functionality for p2041rdb board.
3
4if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
5 echo "PASS: found $I2C_ADAPTERS i2c adapters"
6else
7 echo "FAIL: no i2c adapters found"
8 exit 1
9fi
10
11if [ -z "$adapters" ]; then
12 adapters=0
13fi
14
15while [ $adapters -lt $I2C_ADAPTERS ]
16do
17 i2cdetect -y $adapters
18 if [ $? -ne 0 ]; then
19 echo "FAIL: detect i2c adapter $adapters failed"
20 else
21 echo "PASS: detect i2c adapter $adapters success"
22 fi
23 adapters=`expr $adapters + 1`
24 sleep 1
25done
26
27i2cdetect -y 0
28if [ $? -ne 0 ]; then
29 echo "FAIL: detect i2c bus 0 fail"
30 exit 1
31else
32 echo "PASS: detect i2c bus 0 success"
33fi
34
35#i2c bus 0, device address 0x52, DDR3 DIMM Socket 1, SPD EEPROM
36i2cdump -f -y 0 0x52 |grep UG51U6400N8SU
37if [ $? -ne 0 ]; then
38 echo "FAIL: read SPD EEPROM on i2c bus 0 fail"
39 exit 1
40else
41 echo "PASS: read SPD EEPROM on i2c bus 0 success"
42fi
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/pci-express b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/pci-express
new file mode 100755
index 0000000..33189f9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/pci-express
@@ -0,0 +1,109 @@
1#!/bin/sh
2
3ethernet_interface="eth0"
4#sestord02 ip address
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8#Intel Corporation 82574L Gigabit Network Card (intel e1000e)
9vendor_id="8086"
10product_id="10d3"
11
12#find vendor id & product id
13lspci -nn |grep $vendor_id:$product_id
14if [ $? -ne 0 ]; then
15 echo "FAIL: pci-e ethernet card device does not exist"
16 exit 1
17else
18 echo "PASS: got pci-e ethernet card device"
19fi
20
21setpci -v -d $vendor_id:$product_id latency_timer=b0
22if [ $? -ne 0 ]; then
23 echo "FAIL: parameter changes to pci config space failed"
24 exit 1
25else
26 echo "PASS: parameter changes to pci config space success"
27fi
28
29IFCONFIG=`which ifconfig`
30
31$IFCONFIG $ethernet_interface up
32$IFCONFIG | grep $ethernet_interface
33if [ $? -ne 0 ]; then
34 echo "FAIL: pci-e ethernet card device $ethernet_interface is not up"
35 exit 1
36else
37 echo "PASS: pci-e ethernet card device $ethernet_interface is up"
38fi
39
40if [ "x$ethernet_ipaddr" != "x" ]; then
41 $IFCONFIG $ethernet_interface $ethernet_ipaddr
42fi
43
44$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
45if [ $? -ne 0 ]; then
46 echo "FAIL: ipaddr of pci-e ethernet card device $ethernet_interface setup failed"
47 exit 1
48else
49 echo "PASS: ipaddr of pci-e ethernet card device $ethernet_interface setup success"
50fi
51
52mindatasize=56
53maxdatasize=650
54stepsize=100
55iteration=1
56datasize=$mindatasize
57logfile=`/bin/mktemp`
58statistics=`/bin/mktemp`
59error=0
60
61trap cleanup SIGHUP SIGINT SIGTERM
62
63clean_tasks() {
64 echo "Executing clean up tasks"
65 rm -f $logfile $statistics
66}
67
68cleanup() {
69 echo "Aborting script execution"
70 clean_tasks
71 exit 0
72}
73
74echo "start ping test for pci-e ethernet card device $ethernet_interface..."
75
76while [ $datasize -le $maxdatasize ]; do
77 for i in `seq 1 $iteration`; do
78 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
79 ping_err=`echo $?`
80 echo "" && cat $statistics | grep -r "PING"
81 cat $statistics | grep -r "received"
82 [ `echo $?` -eq 0 ] || packets_received=0 && \
83 packets_received=`cat $statistics | \
84 grep -r "received" | awk '{print$4}'`
85
86 # Evaluate possible errors on the ping operation
87 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
88 error=1
89 echo -e `cat $statistics | grep -r PING` >> $logfile
90 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
91 fi
92 done
93 let datasize=$datasize+$stepsize
94done
95
96# Report failures
97if [ $error -eq 1 ]; then
98 echo -e "=================== error report ===================\n"
99 cat $logfile
100 echo -e "====================================================\n"
101 clean_tasks
102 echo -e "FAIL: ping test for pci-e ethernet card device $ethernet_interface failed\n"
103 exit 1
104else
105 clean_tasks
106 echo -e "PASS: ping test for pci-e ethernet card device $ethernet_interface success\n"
107fi
108
109exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/rtc b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sata b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sata
new file mode 100755
index 0000000..43a4932
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sata
@@ -0,0 +1,81 @@
1#!/bin/sh
2#
3#This script is to test sata devices on target
4#
5result=0
6devpath=""
7satainfo=""
8SD=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
9if [ -z "$SD" ]; then
10 echo "FAIL: find sata device"
11 exit 1
12else
13 echo "PASS: find sata device"
14fi
15HDPARM=`which hdparm`
16if [ -z $HDPARM ]; then
17 result=$?
18 echo "FAIL: find hdparm"
19fi
20 echo "PASS: find hdparm"
21
22
23for s in $SD
24 do
25 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
26 satainfo=`ls -l $devpath | grep sata`
27
28 if [ -z "$satainfo" ] ; then
29 continue
30 fi
31 s=`echo "$s" | awk -F "," '{print $3}'`
32
33 echo "testing $s"
34 $HDPARM -I $s
35 if [ $? -ne 0 ]; then
36 result=$?
37 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
38 else
39 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
40 fi
41 $HDPARM -tT $s
42 if [ $? -ne 0 ]; then
43 result=$?
44 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
45 else
46 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
47 fi
48
49
50 mkdir -p /mnt/sata_tmp
51 for partition in `ls "$s"[1-9]`
52 do
53 mount "$partition" /mnt/sata_tmp
54 if [ $? -ne 0 ]; then
55 result=$?
56 echo "FAIL: Mount $s"
57 else
58 echo "PASS: Mount $s"
59 dd if=/dev/urandom of=/mnt/sata_tmp/writefile bs=1M count=50
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: write test on $s"
63 else
64 echo "PASS: write test on $s"
65 rm -f /mnt/sata_tmp/writefile
66 fi
67 dd if=$s of=/mnt/sata_tmp/readfile bs=1M count=10
68 if [ $? -ne 0 ]; then
69 result=$?
70 echo "FAIL: read test on $s"
71 else
72 echo "PASS: read test on $s"
73 rm -f /mnt/sata_tmp/readfile
74 fi
75 umount /mnt/sata_tmp
76 fi
77 done
78
79 rm -fr /mnt/sata_tmp
80done
81exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sdhc b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sdhc
new file mode 100755
index 0000000..b1bdab2
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/sdhc
@@ -0,0 +1,40 @@
1#!/bin/sh
2
3#the content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0p1"
6
7if [ ! -e $SDHC_DEVICE ]; then
8 echo "FAIL: $SDHC_DEVICE does not exist"
9 exit 1
10else
11 echo "PASS: $SDHC_DEVICE device exists"
12fi
13
14mount |grep mmcblk0p1
15if [ $? -eq 0 ]; then
16 umount $SDHC_DEVICE
17fi
18
19/sbin/mkfs.ext2 $SDHC_DEVICE
20if [ $? -ne 0 ]; then
21 echo "FAIL: format $SDHC_DEVICE fail"
22 exit 1
23else
24 mkdir -p /mnt/sdhc
25 mount $SDHC_DEVICE /mnt/sdhc
26 if [ $? -ne 0 ]; then
27 echo "FAIL: mount $SDHC_DEVICE fail"
28 exit 1
29 else
30 cp /bin/busybox /mnt/sdhc
31 ls /mnt/sdhc |grep busybox
32 if [ $? -ne 0 ]; then
33 echo "FAIL: read or write $SDHC_DEVICE fail"
34 exit 1
35 else
36 umount $SDHC_DEVICE
37 echo "PASS: read or write $SDHC_DEVICE success"
38 fi
39 fi
40fi
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/spi b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/spi
new file mode 100755
index 0000000..a601517
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to b4860qds-64b cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd2"
8MTD_BLOCK_DEVICE="/dev/mtdblock2"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/usb b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/usb
new file mode 100755
index 0000000..017287f
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/usb
@@ -0,0 +1,48 @@
1#!/bin/sh
2#
3#This script is to test usb devices on p2041rdb target
4#
5
6USB_DISK=`ls /dev/sd*[1-9] | sort | tail -n 1`
7
8usbutils_is_installed=`which lsusb`
9if [ -z $usbutils_is_installed ]; then
10 echo "FAIL: Cannot find lsusb"
11 exit 1
12else
13 echo "PASS: usbutils found"
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "PASS: $usbdev_num USB device(s) connected"
22fi
23
24lsusb | grep -v root\ hub
25mkdir -p /mnt/usb_ehci
26mount $USB_DISK /mnt/usb_ehci
27if [ $? -ne 0 ]; then
28 echo "FAIL: Mount USB device failed"
29 exit 1
30else
31 echo "PASS: Mount USB device succeed"
32fi
33
34echo "Begin test usb device..."
35dd if=/dev/urandom of=/mnt/usb_ehci/testfile bs=1M count=50
36if [ $? -ne 0 ]; then
37 echo "FAIL: test failed"
38 rm -f /mnt/usb_ehci_testfile
39 umount /mnt/usb_ehci
40 rm -fr /mnt/usb_ehci
41 exit 1
42fi
43
44echo "PASS: test succeed"
45rm -f /mnt/usb_ehci_testfile
46umount /mnt/usb_ehci
47rm -fr /mnt/usb_ehci
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/watchdog b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/watchdog
new file mode 100755
index 0000000..165bc12
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/imx6qsabrelite/watchdog
@@ -0,0 +1,63 @@
1#!/bin/sh
2#
3# This script is used to test watchdog functionality for bsc9131rdb.
4
5WATCHDOG=`which watchdog`
6if [ "x$WATCHDOG" != "x" ]; then
7 echo "PASS: watchdog found"
8else
9 echo "FAIL: watchdog not found"
10 exit 1
11fi
12
13WATCHDOG_CONF=/etc/watchdog.conf
14if [ -f $WATCHDOG_CONF ]; then
15 echo "PASS: watchdog config file found"
16 sed -i '23,23 s/#//' $WATCHDOG_CONF
17else
18 echo "FAIL: watchdog config file not found"
19 exit 1
20fi
21
22$WATCHDOG -v /dev/watchdog
23watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
24if [ $watchdog_thread -eq 2 ]; then
25 echo "PASS: Watchdog daemon started successfully"
26else
27 echo "FAIL: Failed to start watchdog daemon"
28 exit 1
29fi
30
31sleep 5s
32
33killall watchdog
34
35retry=0
36while [ $retry -lt 10 ]
37do
38 watchdog_thread=`ps | grep -c 'watchdog -v /dev/watchdog'`
39 if [ $watchdog_thread -eq 1 ]; then
40 echo "PASS: Watchdog daemon stopped successfully"
41 break;
42 fi
43 sleep 1s
44 retry=`expr $retry + 1`
45done
46
47if [ $retry -eq 10 ]; then
48 echo "FAIL: Failed to stop watchdog daemon"
49fi
50
51found=0
52while read line
53do
54 result=`echo $line | grep -c 'still alive after 1 interval'`
55 if [ $result -eq 1 ]; then
56 echo "PASS: Watchdog is still alive after 1 interval"
57 found=1
58 fi
59done < /var/log/messages
60
61if [ $found -eq 0 ]; then
62 echo "FAIL: Watchdog is not alive after 1 interval"
63fi
diff --git a/recipes-test/ddt-runner/files/scripts/k2hk-evm/ethernet b/recipes-test/ddt-runner/files/scripts/k2hk-evm/ethernet
new file mode 100755
index 0000000..08296e5
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/k2hk-evm/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4#sestord02 ip address
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8IFCONFIG=`which ifconfig`
9
10$IFCONFIG $ethernet_interface up
11$IFCONFIG | grep $ethernet_interface
12if [ $? -ne 0 ]; then
13 echo "FAIL: $ethernet_interface is not up"
14 exit 1
15else
16 echo "PASS: $ethernet_interface is up"
17fi
18
19if [ "x$ethernet_ipaddr" != "x" ]; then
20 $IFCONFIG $ethernet_interface $ethernet_ipaddr
21fi
22
23$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
24if [ $? -ne 0 ]; then
25 echo "FAIL: ipaddr of $ethernet_interface setup failed"
26 exit 1
27else
28 echo "PASS: ipaddr of $ethernet_interface setup success"
29fi
30
31mindatasize=56
32maxdatasize=650
33stepsize=100
34iteration=1
35datasize=$mindatasize
36logfile=`/bin/mktemp`
37statistics=`/bin/mktemp`
38error=0
39
40trap cleanup SIGHUP SIGINT SIGTERM
41
42clean_tasks() {
43 echo "Executing clean up tasks"
44 rm -f $logfile $statistics
45}
46
47cleanup() {
48 echo "Aborting script execution"
49 clean_tasks
50 exit 0
51}
52
53echo "start ping test for $ethernet_interface..."
54
55while [ $datasize -le $maxdatasize ]; do
56 for i in `seq 1 $iteration`; do
57 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
58 ping_err=`echo $?`
59 echo "" && cat $statistics | grep -r "PING"
60 cat $statistics | grep -r "received"
61 [ `echo $?` -eq 0 ] || packets_received=0 && \
62 packets_received=`cat $statistics | \
63 grep -r "received" | awk '{print$4}'`
64
65 # Evaluate possible errors on the ping operation
66 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
67 error=1
68 echo -e `cat $statistics | grep -r PING` >> $logfile
69 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
70 fi
71 done
72 let datasize=$datasize+$stepsize
73done
74
75# Report failures
76if [ $error -eq 1 ]; then
77 echo -e "=================== error report ===================\n"
78 cat $logfile
79 echo -e "====================================================\n"
80 clean_tasks
81 echo -e "FAIL: ping test for $ethernet_interface failed\n"
82 exit 1
83else
84 clean_tasks
85 echo -e "PASS: ping test for $ethernet_interface success\n"
86fi
87
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/k2hk-evm/flash b/recipes-test/ddt-runner/files/scripts/k2hk-evm/flash
new file mode 100755
index 0000000..2bc0513
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/k2hk-evm/flash
@@ -0,0 +1,49 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in k2hk-evm and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11 exit 1
12fi
13
14for((part=0; part<$part_num; part++));
15do
16 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
17 echo "PASS: show partition $part debug info"
18 else
19 echo "FAIL: show partition $part debug info"
20 exit 1
21 fi
22done
23
24READ_TEST=`find / -name mtd_readtest.ko -print`
25
26if [ ! -e $READ_TEST ]; then
27 echo "FAIL: $READ_TEST does not exist"
28 exit 1
29else
30 echo "PASS: $READ_TEST exists"
31fi
32
33for((part=0; part<$part_num; part++));
34do
35 dmesg -c
36
37 insmod $READ_TEST dev=$part
38
39 finish=`dmesg | grep -c 'mtd_readtest: finished'`
40 if [ $finish -eq 1 ]; then
41 echo "PASS: read test $part"
42 else
43 echo "FAIL: read test $part"
44 rmmod $READ_TEST
45 exit 1
46 fi
47
48 rmmod $READ_TEST
49done
diff --git a/recipes-test/ddt-runner/files/scripts/k2hk-evm/i2c b/recipes-test/ddt-runner/files/scripts/k2hk-evm/i2c
new file mode 100755
index 0000000..03af421
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/k2hk-evm/i2c
@@ -0,0 +1,42 @@
1#!/bin/sh
2# This script is used to test i2c bus functionality for k2hk-evm board.
3
4if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
5 echo "PASS: found $I2C_ADAPTERS i2c adapters"
6else
7 echo "FAIL: no i2c adapters found"
8 exit 1
9fi
10
11if [ -z "$adapters" ]; then
12 adapters=0
13fi
14
15while [ $adapters -lt $I2C_ADAPTERS ]
16do
17 i2cdetect -y $adapters
18 if [ $? -ne 0 ]; then
19 echo "FAIL: detect i2c adapter $adapters failed"
20 else
21 echo "PASS: detect i2c adapter $adapters success"
22 fi
23 adapters=`expr $adapters + 1`
24 sleep 1
25done
26
27i2cdetect -y 0
28if [ $? -ne 0 ]; then
29 echo "FAIL: detect i2c bus 0 fail"
30 exit 1
31else
32 echo "PASS: detect i2c bus 0 success"
33fi
34
35#i2c bus 0, device address 0x52, DDR3 DIMM Socket 1, SPD EEPROM
36i2cdump -f -y 0 0x52 |grep UG51U6400N8SU
37if [ $? -ne 0 ]; then
38 echo "FAIL: read SPD EEPROM on i2c bus 0 fail"
39 exit 1
40else
41 echo "PASS: read SPD EEPROM on i2c bus 0 success"
42fi
diff --git a/recipes-test/ddt-runner/files/scripts/k2hk-evm/spi b/recipes-test/ddt-runner/files/scripts/k2hk-evm/spi
new file mode 100755
index 0000000..a2bb9c7
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/k2hk-evm/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to k2hk-evm cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd4"
8MTD_BLOCK_DEVICE="/dev/mtdblock4"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p2020rdb/ethernet b/recipes-test/ddt-runner/files/scripts/p2020rdb/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2020rdb/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p2020rdb/flash b/recipes-test/ddt-runner/files/scripts/p2020rdb/flash
new file mode 100755
index 0000000..302e328
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2020rdb/flash
@@ -0,0 +1,20 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in p2020rdb and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11fi
12
13for((part=0; part<$part_num-1; part++));
14do
15 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
16 echo "PASS: show partition $part debug info"
17 else
18 echo "FAIL: show partition $part debug info"
19 fi
20done
diff --git a/recipes-test/ddt-runner/files/scripts/p2020rdb/i2c b/recipes-test/ddt-runner/files/scripts/p2020rdb/i2c
new file mode 100755
index 0000000..5b312b9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2020rdb/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/p2020rdb/spi b/recipes-test/ddt-runner/files/scripts/p2020rdb/spi
new file mode 100755
index 0000000..fc673ad
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2020rdb/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to p2020 cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd4"
8MTD_BLOCK_DEVICE="/dev/mtdblock4"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p2020rdb/usb b/recipes-test/ddt-runner/files/scripts/p2020rdb/usb
new file mode 100755
index 0000000..970e913
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2020rdb/usb
@@ -0,0 +1,100 @@
1#!/bin/sh
2#
3# This script is used to test usb functionality for p4080ds.
4#
5
6result=0
7devpath=""
8usbinfo=""
9
10usbutils_is_installed=`which lsusb`
11if [ -z $usbutils_is_installed ]; then
12 echo "FAIL: Cannot find lsusb"
13 exit 1
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "$usbdev_num USB device(s) connected"
22fi
23
24sd=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
25if [ -z "$sd" ]; then
26 echo "FAIL: find sd device"
27 exit 1
28else
29 echo "PASS: find sd device"
30fi
31
32HDPARM=`which hdparm`
33if [ -z $HDPARM ]; then
34 result=$?
35 echo "FAIL: find hdparm"
36fi
37 echo "PASS: find hdparm"
38
39for s in $sd
40do
41 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
42 usbinfo=`ls -l $devpath | grep usb`
43
44 if [ -z "$usbinfo" ] ; then
45 continue
46 fi
47
48 s=`echo "$s" | awk -F "," '{print $3}'`
49
50 echo "Testing $s"
51 $HDPARM -I $s
52 if [ $? -ne 0 ]; then
53 result=$?
54 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
55 else
56 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
57 fi
58
59 $HDPARM -tT $s
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
63 else
64 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
65 fi
66
67 mkdir -p /mnt/usb_tmp
68 for partition in `ls "$s"[1-9]`
69 do
70 echo "Testing $partition"
71
72 mount "$partition" /mnt/usb_tmp
73 if [ $? -ne 0 ]; then
74 result=$?
75 echo "FAIL: mount $s"
76 else
77 echo "PASS: mount $s"
78 dd if=/dev/urandom of=/mnt/usb_tmp/writefile bs=1M count=50
79 if [ $? -ne 0 ]; then
80 result=$?
81 echo "FAIL: write test on $s"
82 else
83 echo "PASS: write test on $s"
84 rm -f /mnt/usb_tmp/writefile
85 fi
86 dd if=$s of=/mnt/usb_tmp/readfile bs=1M count=10
87 if [ $? -ne 0 ]; then
88 result=$?
89 echo "FAIL: read test on $s"
90 else
91 echo "PASS: read test on $s"
92 rm -f /mnt/usb_tmp/readfile
93 fi
94 umount /mnt/usb_tmp
95 fi
96 done
97
98 rm -fr /mnt/usb_tmp
99done
100exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/ethernet b/recipes-test/ddt-runner/files/scripts/p2041rdb/ethernet
new file mode 100755
index 0000000..0f2b4cf
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/ethernet
@@ -0,0 +1,111 @@
1#!/bin/sh
2
3
4exit1() {
5 echo $@ >&2
6 exit 1
7}
8
9
10err() {
11 echo $@ >&2
12 exit_status=1
13}
14
15
16get_default_gw() {
17 echo $(route | grep default | awk '{ print $2 }')
18}
19
20
21test_eth_device() {
22 local readonly dev=$1
23 local readonly ethernet_ping_ipaddr=$2
24 local readonly MINDATASIZE=56
25 local readonly MAXDATASIZE=650
26 local readonly STEPSIZE=100
27 local readonly ITERATION=2
28 local datasize
29 local i
30 local ping_err
31 for i in `seq 1 $ITERATION`; do
32 datasize=$MINDATASIZE
33 while [ $datasize -le $MAXDATASIZE ]; do
34 ping -I $dev -c 1 -s $datasize $ethernet_ping_ipaddr > $STATISTICS
35 ping_err=$?
36 packets_received=`cat $STATISTICS | grep "received" |
37 awk '{print$4}'`
38
39 # Evaluate possible errors on the ping operation
40 if [ $ping_err -ne 0 ] || [ -z "$packets_received" ] ||
41 [ $packets_received -eq 0 ]; then
42 err "FAIL: ping $ethernet_ping_ipaddr through $dev"
43 cat $STATISTICS >> $LOGFILE
44 echo "Size: $datasize Iteration: $i" >> $LOGFILE
45 fi
46 datasize=$((datasize+STEPSIZE))
47 done
48 done
49}
50
51
52clean_tasks() {
53 echo "Executing clean up tasks"
54 rm -f $LOGFILE $STATISTICS
55}
56
57
58cleanup() {
59 echo "Aborting script execution"
60 clean_tasks
61 exit 1
62}
63
64
65
66readonly LOGFILE=`/bin/mktemp`
67readonly STATISTICS=`/bin/mktemp`
68exit_status=0
69
70trap cleanup SIGHUP SIGINT SIGTERM
71
72
73
74readonly DEF_GW=$(get_default_gw)
75
76[ -n "$DEF_GW" ] && echo "Found default gw $DEF_GW" ||
77 exit1 "FAIL: no default gw"
78
79readonly S=:
80readonly DEVS="$(route -n | tail -n +3 | sort -k8 -u | awk '{print $8"'$S'"$2}')"
81
82if [ -n "$DEVS" ]; then
83 echo "Will test: $DEVS"
84else
85 exit1 "FAIL: no ethernet devices to test"
86fi
87
88for iface_gw in $DEVS; do
89 iface=$(echo "$iface_gw" | sed -n 's/\(.*\)'$S'.*/\1/p')
90 gw=$(echo "$iface_gw" | sed -n 's/.*'$S'\(.*\)/\1/p')
91 if [ -z "$gw" ]; then
92 err "FAIL: no ethernet gateway for $iface"
93 else
94 [ "$gw" = 0.0.0.0 ] && gw="$DEF_GW"
95 echo "Testing $iface:$gw"
96 test_eth_device $iface $gw
97 fi
98done
99
100# Report failures
101if [ $exit_status -ne 0 ]; then
102 echo "=================== error report ==================="
103 cat $LOGFILE
104 echo "===================================================="
105 echo "FAIL: ping test"
106else
107 echo "PASS: ping test success"
108fi
109
110clean_tasks
111exit $exit_status
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/flash b/recipes-test/ddt-runner/files/scripts/p2041rdb/flash
new file mode 100755
index 0000000..2d10600
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/flash
@@ -0,0 +1,49 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in p2041rdb and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11 exit 1
12fi
13
14for((part=0; part<$part_num; part++));
15do
16 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
17 echo "PASS: show partition $part debug info"
18 else
19 echo "FAIL: show partition $part debug info"
20 exit 1
21 fi
22done
23
24READ_TEST=`find / -name mtd_readtest.ko -print`
25
26if [ ! -e $READ_TEST ]; then
27 echo "FAIL: $READ_TEST does not exist"
28 exit 1
29else
30 echo "PASS: $READ_TEST exists"
31fi
32
33for((part=0; part<$part_num; part++));
34do
35 dmesg -c
36
37 insmod $READ_TEST dev=$part
38
39 finish=`dmesg | grep -c 'mtd_readtest: finished'`
40 if [ $finish -eq 1 ]; then
41 echo "PASS: read test $part"
42 else
43 echo "FAIL: read test $part"
44 rmmod $READ_TEST
45 exit 1
46 fi
47
48 rmmod $READ_TEST
49done
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/i2c b/recipes-test/ddt-runner/files/scripts/p2041rdb/i2c
new file mode 100755
index 0000000..58800ce
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/i2c
@@ -0,0 +1,44 @@
1#!/bin/sh
2# This script is used to test i2c bus functionality for p2041rdb board.
3
4if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
5 echo "PASS: found $I2C_ADAPTERS i2c adapters"
6else
7 echo "FAIL: no i2c adapters found"
8 exit 1
9fi
10
11if [ -z "$adapters" ]; then
12 adapters=0
13fi
14
15while [ $adapters -lt $I2C_ADAPTERS ]
16do
17 i2cdetect -y $adapters
18 if [ $? -ne 0 ]; then
19 echo "FAIL: detect i2c adapter $adapters failed"
20 else
21 echo "PASS: detect i2c adapter $adapters success"
22 fi
23 adapters=`expr $adapters + 1`
24 sleep 1
25done
26
27i2cdetect -y 0
28if [ $? -ne 0 ]; then
29 echo "FAIL: detect i2c bus 0 fail"
30 exit 1
31else
32 echo "PASS: detect i2c bus 0 success"
33fi
34
35#i2c bus 0, device address 0x52, DDR3 DIMM Socket 1, SPD EEPROM
36i2cdump -f -y 0 0x52 |grep UG51U6400N8SU
37if [ $? -ne 0 ]; then
38 echo "FAIL: read SPD EEPROM on i2c bus 0 fail"
39 exit 1
40else
41 echo "PASS: read SPD EEPROM on i2c bus 0 success"
42fi
43
44
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/pci-express b/recipes-test/ddt-runner/files/scripts/p2041rdb/pci-express
new file mode 100755
index 0000000..91db286
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/pci-express
@@ -0,0 +1,109 @@
1#!/bin/sh
2
3ethernet_interface="eth0"
4#sestord02 ip address
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8#Intel Corporation 82574L Gigabit Network Card (intel e1000e)
9vendor_id="8086"
10product_id="10d3"
11
12#find vendor id & product id
13lspci -nn |grep $vendor_id:$product_id
14if [ $? -ne 0 ]; then
15 echo "FAIL: pci-e ethernet card device does not exist"
16 exit 1
17else
18 echo "PASS: got pci-e ethernet card device"
19fi
20
21setpci -v -d $vendor_id:$product_id latency_timer=b0
22if [ $? -ne 0 ]; then
23 echo "FAIL: parameter changes to pci config space failed"
24 exit 1
25else
26 echo "PASS: parameter changes to pci config space success"
27fi
28
29IFCONFIG=`which ifconfig`
30
31$IFCONFIG $ethernet_interface up
32$IFCONFIG | grep $ethernet_interface
33if [ $? -ne 0 ]; then
34 echo "FAIL: pci-e ethernet card device $ethernet_interface is not up"
35 exit 1
36else
37 echo "PASS: pci-e ethernet card device $ethernet_interface is up"
38fi
39
40if [ "x$ethernet_ipaddr" != "x" ]; then
41 $IFCONFIG $ethernet_interface $ethernet_ipaddr
42fi
43
44$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
45if [ $? -ne 0 ]; then
46 echo "FAIL: ipaddr of pci-e ethernet card device $ethernet_interface setup failed"
47 exit 1
48else
49 echo "PASS: ipaddr of pci-e ethernet card device $ethernet_interface setup success"
50fi
51
52mindatasize=56
53maxdatasize=650
54stepsize=100
55iteration=1
56datasize=$mindatasize
57logfile=`/bin/mktemp`
58statistics=`/bin/mktemp`
59error=0
60
61trap cleanup SIGHUP SIGINT SIGTERM
62
63clean_tasks() {
64 echo "Executing clean up tasks"
65 rm -f $logfile $statistics
66}
67
68cleanup() {
69 echo "Aborting script execution"
70 clean_tasks
71 exit 0
72}
73
74echo "start ping test for pci-e ethernet card device $ethernet_interface..."
75
76while [ $datasize -le $maxdatasize ]; do
77 for i in `seq 1 $iteration`; do
78 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
79 ping_err=`echo $?`
80 echo "" && cat $statistics | grep -r "PING"
81 cat $statistics | grep -r "received"
82 [ `echo $?` -eq 0 ] || packets_received=0 && \
83 packets_received=`cat $statistics | \
84 grep -r "received" | awk '{print$4}'`
85
86 # Evaluate possible errors on the ping operation
87 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
88 error=1
89 echo -e `cat $statistics | grep -r PING` >> $logfile
90 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
91 fi
92 done
93 let datasize=$datasize+$stepsize
94done
95
96# Report failures
97if [ $error -eq 1 ]; then
98 echo -e "=================== error report ===================\n"
99 cat $logfile
100 echo -e "====================================================\n"
101 clean_tasks
102 echo -e "FAIL: ping test for pci-e ethernet card device $ethernet_interface failed\n"
103 exit 1
104else
105 clean_tasks
106 echo -e "PASS: ping test for pci-e ethernet card device $ethernet_interface success\n"
107fi
108
109exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/sata b/recipes-test/ddt-runner/files/scripts/p2041rdb/sata
new file mode 100755
index 0000000..b7f1fab
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/sata
@@ -0,0 +1,81 @@
1#!/bin/sh
2#
3#This script is to test sata devices on target
4#
5result=0
6devpath=""
7satainfo=""
8SD=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
9if [ -z "$SD" ]; then
10 echo "FAIL: find sata device"
11 exit 1
12else
13 echo "PASS: find sata device"
14fi
15HDPARM=`which hdparm`
16if [ -z $HDPARM ]; then
17 result=$?
18 echo "FAIL: find hdparm"
19fi
20 echo "PASS: find hdparm"
21
22
23for s in $SD
24 do
25 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
26 satainfo=`ls -l $devpath | grep sata`
27
28 if [ -z "$satainfo" ] ; then
29 continue
30 fi
31 s=`echo "$s" | awk -F "," '{print $3}'`
32
33 echo "testing $s"
34 $HDPARM -I $s
35 if [ $? -ne 0 ]; then
36 result=$?
37 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
38 else
39 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
40 fi
41 $HDPARM -tT $s
42 if [ $? -ne 0 ]; then
43 result=$?
44 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
45 else
46 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
47 fi
48
49
50 mkdir -p /mnt/sata_tmp
51 for partition in `ls "$s"[1-9]`
52 do
53 mount "$partition" /mnt/sata_tmp
54 if [ $? -ne 0 ]; then
55 result=$?
56 echo "FAIL: Mount $s"
57 else
58 echo "PASS: Mount $s"
59 dd if=/dev/urandom of=/mnt/sata_tmp/writefile bs=1M count=50
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: write test on $s"
63 else
64 echo "PASS: write test on $s"
65 rm -f /mnt/sata_tmp/writefile
66 fi
67 dd if=$s of=/mnt/sata_tmp/readfile bs=1M count=10
68 if [ $? -ne 0 ]; then
69 result=$?
70 echo "FAIL: read test on $s"
71 else
72 echo "PASS: read test on $s"
73 rm -f /mnt/sata_tmp/readfile
74 fi
75 umount /mnt/sata_tmp
76 fi
77 done
78
79 rm -fr /mnt/sata_tmp
80done
81exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/sdhc b/recipes-test/ddt-runner/files/scripts/p2041rdb/sdhc
new file mode 100755
index 0000000..bc3026b
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/sdhc
@@ -0,0 +1,41 @@
1#!/bin/sh
2
3#the content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0p1"
6
7if [ ! -e $SDHC_DEVICE ]; then
8 echo "FAIL: $SDHC_DEVICE does not exist"
9 exit 1
10else
11 echo "PASS: $SDHC_DEVICE device exists"
12fi
13
14mount |grep mmcblk0p1
15if [ $? -eq 0 ]; then
16 umount $SDHC_DEVICE
17fi
18
19/sbin/mkfs.ext2 $SDHC_DEVICE
20if [ $? -ne 0 ]; then
21 echo "FAIL: format $SDHC_DEVICE fail"
22 exit 1
23else
24 mkdir -p /mnt/sdhc
25 mount $SDHC_DEVICE /mnt/sdhc
26 if [ $? -ne 0 ]; then
27 echo "FAIL: mount $SDHC_DEVICE fail"
28 exit 1
29 else
30 cp /bin/busybox /mnt/sdhc
31 ls /mnt/sdhc |grep busybox
32 if [ $? -ne 0 ]; then
33 echo "FAIL: read or write $SDHC_DEVICE fail"
34 exit 1
35 else
36 umount $SDHC_DEVICE
37 echo "PASS: read or write $SDHC_DEVICE success"
38 fi
39 fi
40fi
41
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/tempsensors b/recipes-test/ddt-runner/files/scripts/p2041rdb/tempsensors
new file mode 100755
index 0000000..036ccfa
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/tempsensors
@@ -0,0 +1,60 @@
1#!/bin/sh
2#
3# This script checks that expected temperature sensors are available on pd2901,
4# and that their reported values fall within a reasonable range.
5
6# Expected available sensors
7SENSORS="adt7461-i2c-0-4c"
8
9# Default accepted temperature range
10tempmin=20
11tempmax=80
12
13usage="Usage: $0 min max"
14
15SENSORS_CMD=`which sensors`
16if [ -z $SENSORS_CMD ]; then
17 echo "FAIL: Cannot find sensors command"
18 exit 1
19fi
20
21if [ -n "$1" ]; then
22 if [ -z "$2" ]; then
23 echo $usage
24 echo "FAIL: No max value provided."
25 exit 1
26 fi
27 tempmin=$1
28 tempmax=$2
29 if [ "$tempmin" -gt "$tempmax" ]; then
30 echo $usage
31 echo "FAIL: Invalid range provided (min > max)."
32 exit 1
33 fi
34fi
35
36echo "Checking temperature sensor readings (valid range: $tempmin C - $tempmax C)"
37
38for sensor in $SENSORS
39do
40 sensorinfo=$($SENSORS_CMD $sensor)
41 if [ $? -ne 0 ]; then
42 echo "FAIL: Sensor $sensor not found"
43 exit 1
44 fi
45
46 # Get temperature readings for each sensor (ignore decimals)
47 for temp in $($SENSORS_CMD $sensor | grep temp | awk -F'[+|.]' {'print $2'})
48 do
49 if [ "$temp" -ge $tempmin ] && [ "$temp" -le $tempmax ]; then
50 echo $sensor ": " $temp " OK"
51 else
52 echo $sensor ": " $temp " NOK"
53 echo "FAIL: Temperature outside valid range."
54 exit 1
55 fi
56 done
57done
58
59echo "PASS: temperature sensors"
60exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p2041rdb/usb b/recipes-test/ddt-runner/files/scripts/p2041rdb/usb
new file mode 100755
index 0000000..017287f
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p2041rdb/usb
@@ -0,0 +1,48 @@
1#!/bin/sh
2#
3#This script is to test usb devices on p2041rdb target
4#
5
6USB_DISK=`ls /dev/sd*[1-9] | sort | tail -n 1`
7
8usbutils_is_installed=`which lsusb`
9if [ -z $usbutils_is_installed ]; then
10 echo "FAIL: Cannot find lsusb"
11 exit 1
12else
13 echo "PASS: usbutils found"
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "PASS: $usbdev_num USB device(s) connected"
22fi
23
24lsusb | grep -v root\ hub
25mkdir -p /mnt/usb_ehci
26mount $USB_DISK /mnt/usb_ehci
27if [ $? -ne 0 ]; then
28 echo "FAIL: Mount USB device failed"
29 exit 1
30else
31 echo "PASS: Mount USB device succeed"
32fi
33
34echo "Begin test usb device..."
35dd if=/dev/urandom of=/mnt/usb_ehci/testfile bs=1M count=50
36if [ $? -ne 0 ]; then
37 echo "FAIL: test failed"
38 rm -f /mnt/usb_ehci_testfile
39 umount /mnt/usb_ehci
40 rm -fr /mnt/usb_ehci
41 exit 1
42fi
43
44echo "PASS: test succeed"
45rm -f /mnt/usb_ehci_testfile
46umount /mnt/usb_ehci
47rm -fr /mnt/usb_ehci
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/ethernet b/recipes-test/ddt-runner/files/scripts/p3041ds/ethernet
new file mode 100755
index 0000000..b350ddc
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/ethernet
@@ -0,0 +1,111 @@
1#!/bin/sh
2
3
4exit1() {
5 echo $@ >&2
6 exit 1
7}
8
9
10err() {
11 echo $@ >&2
12 exit_status=1
13}
14
15
16get_default_gw() {
17 echo $(route | grep default | awk '{ print $2 }')
18}
19
20
21test_eth_device() {
22 local readonly dev=$1
23 local readonly ethernet_ping_ipaddr=$2
24 local readonly MINDATASIZE=56
25 local readonly MAXDATASIZE=650
26 local readonly STEPSIZE=100
27 local readonly ITERATION=2
28 local datasize
29 local i
30 local ping_err
31 for i in `seq 1 $ITERATION`; do
32 datasize=$MINDATASIZE
33 while [ $datasize -le $MAXDATASIZE ]; do
34 ping -I $dev -c 1 -s $datasize $ethernet_ping_ipaddr > $STATISTICS
35 ping_err=$?
36 packets_received=`cat $STATISTICS | grep "received" |
37 awk '{print$4}'`
38
39 # Evaluate possible errors on the ping operation
40 if [ $ping_err -ne 0 ] || [ -z "$packets_received" ] ||
41 [ $packets_received -eq 0 ]; then
42 err "FAIL: ping $ethernet_ping_ipaddr through $dev"
43 cat $STATISTICS >> $LOGFILE
44 echo "Size: $datasize Iteration: $i" >> $LOGFILE
45 fi
46 datasize=$((datasize+STEPSIZE))
47 done
48 done
49}
50
51
52clean_tasks() {
53 echo "Executing clean up tasks"
54 rm -f $LOGFILE $STATISTICS
55}
56
57
58cleanup() {
59 echo "Aborting script execution"
60 clean_tasks
61 exit 1
62}
63
64
65
66readonly LOGFILE=`/bin/mktemp`
67readonly STATISTICS=`/bin/mktemp`
68exit_status=0
69
70trap cleanup SIGHUP SIGINT SIGTERM
71
72
73
74readonly DEF_GW=$(get_default_gw)
75
76[ -n "$DEF_GW" ] && echo "Found default gw $DEF_GW" ||
77 exit1 "FAIL: no default gw"
78
79readonly S=:
80readonly DEVS="$(route -n | tail -n +3 | sort -k8 -u | awk '{print $8"'$S'"$2}')"
81
82if [ -n "$DEVS" ]; then
83 echo "Will test: $DEVS"
84else
85 exit1 "FAIL: no ethernet devices to test"
86fi
87
88for iface_gw in $DEVS; do
89 iface=$(echo "$iface_gw" | sed -n 's/\(.*\)'$S'.*/\1/p')
90 gw=$(echo "$iface_gw" | sed -n 's/.*'$S'\(.*\)/\1/p')
91 if [ -z "$gw" ]; then
92 err "FAIL: no ethernet gateway for $iface"
93 else
94 [ "$gw" = 0.0.0.0 ] && gw="$DEF_GW"
95 echo "Testing $iface:$gw"
96 test_eth_device $iface $gw
97 fi
98done
99
100# Report failures
101if [ $exit_status -ne 0 ]; then
102 echo "=================== error report ==================="
103 cat $LOGFILE
104 echo "===================================================="
105 echo "FAIL: ping test"
106else
107 echo "PASS: ping test success"
108fi
109
110clean_tasks
111exit $exit_status
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/flash b/recipes-test/ddt-runner/files/scripts/p3041ds/flash
new file mode 100755
index 0000000..12fe9b0
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/flash
@@ -0,0 +1,47 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality.
4
5if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
6 echo "PASS: show $part_num partitions"
7else
8 echo "FAIL: show $part_num partitions"
9 exit 1
10fi
11
12for((part=0; part<$part_num; part++));
13do
14 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
15 echo "PASS: show partition $part debug info"
16 else
17 echo "FAIL: show partition $part debug info"
18 exit 1
19 fi
20done
21
22READ_TEST=`find / -name mtd_readtest.ko -print`
23
24if [ ! -e $READ_TEST ]; then
25 echo "FAIL: $READ_TEST does not exist"
26 exit 1
27else
28 echo "PASS: $READ_TEST exists"
29fi
30
31for((part=0; part<$part_num; part++));
32do
33 dmesg -c
34
35 insmod $READ_TEST dev=$part
36
37 finish=`dmesg | grep -c 'mtd_readtest: finished'`
38 if [ $finish -eq 1 ]; then
39 echo "PASS: read test $part"
40 else
41 echo "FAIL: read test $part"
42 rmmod $READ_TEST
43 exit 1
44 fi
45
46 rmmod $READ_TEST
47done
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/i2c b/recipes-test/ddt-runner/files/scripts/p3041ds/i2c
new file mode 100755
index 0000000..8ee6d21
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/i2c
@@ -0,0 +1,42 @@
1#!/bin/sh
2# This script is used to test i2c bus functionality for p3041ds board.
3
4if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
5 echo "PASS: found $I2C_ADAPTERS i2c adapters"
6else
7 echo "FAIL: no i2c adapters found"
8 exit 1
9fi
10
11if [ -z "$adapters" ]; then
12 adapters=0
13fi
14
15while [ $adapters -lt $I2C_ADAPTERS ]
16do
17 i2cdetect -y $adapters
18 if [ $? -ne 0 ]; then
19 echo "FAIL: detect i2c adapter $adapters failed"
20 else
21 echo "PASS: detect i2c adapter $adapters success"
22 fi
23 adapters=`expr $adapters + 1`
24 sleep 1
25done
26
27i2cdetect -y 0
28if [ $? -ne 0 ]; then
29 echo "FAIL: detect i2c bus 0 fail"
30 exit 1
31else
32 echo "PASS: detect i2c bus 0 success"
33fi
34
35#i2c bus 0, device address 0x51, EEPROM
36i2cdump -f -y 0 0x51 | grep DCA1-13112
37if [ $? -ne 0 ]; then
38 echo "FAIL: read SPD EEPROM on i2c bus 0 fail"
39 exit 1
40else
41 echo "PASS: read SPD EEPROM on i2c bus 0 success"
42fi
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/pci-express b/recipes-test/ddt-runner/files/scripts/p3041ds/pci-express
new file mode 100755
index 0000000..6648668
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/pci-express
@@ -0,0 +1,109 @@
1#!/bin/sh
2
3ethernet_interface="eth5"
4#sestord02 ip address
5ethernet_ping_ipaddr="172.21.3.22"
6ethernet_ipaddr=$1
7
8#Intel Corporation 82574L Gigabit Network Card (intel e1000e)
9vendor_id="8086"
10product_id="10d3"
11
12#find vendor id & product id
13lspci -nn |grep $vendor_id:$product_id
14if [ $? -ne 0 ]; then
15 echo "FAIL: pci-e ethernet card device does not exist"
16 exit 1
17else
18 echo "PASS: got pci-e ethernet card device"
19fi
20
21setpci -v -d $vendor_id:$product_id latency_timer=b0
22if [ $? -ne 0 ]; then
23 echo "FAIL: parameter changes to pci config space failed"
24 exit 1
25else
26 echo "PASS: parameter changes to pci config space success"
27fi
28
29IFCONFIG=`which ifconfig`
30
31$IFCONFIG $ethernet_interface up
32$IFCONFIG | grep $ethernet_interface
33if [ $? -ne 0 ]; then
34 echo "FAIL: pci-e ethernet card device $ethernet_interface is not up"
35 exit 1
36else
37 echo "PASS: pci-e ethernet card device $ethernet_interface is up"
38fi
39
40if [ "x$ethernet_ipaddr" != "x" ]; then
41 $IFCONFIG $ethernet_interface $ethernet_ipaddr
42fi
43
44$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
45if [ $? -ne 0 ]; then
46 echo "FAIL: ipaddr of pci-e ethernet card device $ethernet_interface setup failed"
47 exit 1
48else
49 echo "PASS: ipaddr of pci-e ethernet card device $ethernet_interface setup success"
50fi
51
52mindatasize=56
53maxdatasize=650
54stepsize=100
55iteration=1
56datasize=$mindatasize
57logfile=`/bin/mktemp`
58statistics=`/bin/mktemp`
59error=0
60
61trap cleanup SIGHUP SIGINT SIGTERM
62
63clean_tasks() {
64 echo "Executing clean up tasks"
65 rm -f $logfile $statistics
66}
67
68cleanup() {
69 echo "Aborting script execution"
70 clean_tasks
71 exit 0
72}
73
74echo "start ping test for pci-e ethernet card device $ethernet_interface..."
75
76while [ $datasize -le $maxdatasize ]; do
77 for i in `seq 1 $iteration`; do
78 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
79 ping_err=`echo $?`
80 echo "" && cat $statistics | grep -r "PING"
81 cat $statistics | grep -r "received"
82 [ `echo $?` -eq 0 ] || packets_received=0 && \
83 packets_received=`cat $statistics | \
84 grep -r "received" | awk '{print$4}'`
85
86 # Evaluate possible errors on the ping operation
87 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
88 error=1
89 echo -e `cat $statistics | grep -r PING` >> $logfile
90 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
91 fi
92 done
93 let datasize=$datasize+$stepsize
94done
95
96# Report failures
97if [ $error -eq 1 ]; then
98 echo -e "=================== error report ===================\n"
99 cat $logfile
100 echo -e "====================================================\n"
101 clean_tasks
102 echo -e "FAIL: ping test for pci-e ethernet card device $ethernet_interface failed\n"
103 exit 1
104else
105 clean_tasks
106 echo -e "PASS: ping test for pci-e ethernet card device $ethernet_interface success\n"
107fi
108
109exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/sata b/recipes-test/ddt-runner/files/scripts/p3041ds/sata
new file mode 100755
index 0000000..e996b41
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/sata
@@ -0,0 +1,80 @@
1#!/bin/sh
2#
3#This script is to test sata devices on target
4#
5result=0
6devpath=""
7satainfo=""
8SD=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
9if [ -z "$SD" ]; then
10 echo "FAIL: find sata device"
11 exit 1
12else
13 echo "PASS: find sata device"
14fi
15HDPARM=`which hdparm`
16if [ -z $HDPARM ]; then
17 result=$?
18 echo "FAIL: find hdparm"
19fi
20 echo "PASS: find hdparm"
21
22
23for s in $SD
24 do
25 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
26 satainfo=`ls -l $devpath | grep sata`
27
28 if [ -z "$satainfo" ] ; then
29 continue
30 fi
31 s=`echo "$s" | awk -F "," '{print $3}'`
32
33 echo "testing $s"
34 $HDPARM -I $s
35 if [ $? -ne 0 ]; then
36 result=$?
37 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
38 else
39 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
40 fi
41 $HDPARM -tT $s
42 if [ $? -ne 0 ]; then
43 result=$?
44 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
45 else
46 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
47 fi
48
49 mkdir -p /mnt/sata_tmp
50 for partition in `ls "$s"[1-9]`
51 do
52 mount "$partition" /mnt/sata_tmp
53 if [ $? -ne 0 ]; then
54 result=$?
55 echo "FAIL: Mount $s"
56 else
57 echo "PASS: Mount $s"
58 dd if=/dev/urandom of=/mnt/sata_tmp/writefile bs=1M count=50
59 if [ $? -ne 0 ]; then
60 result=$?
61 echo "FAIL: write test on $s"
62 else
63 echo "PASS: write test on $s"
64 rm -f /mnt/sata_tmp/writefile
65 fi
66 dd if=$s of=/mnt/sata_tmp/readfile bs=1M count=10
67 if [ $? -ne 0 ]; then
68 result=$?
69 echo "FAIL: read test on $s"
70 else
71 echo "PASS: read test on $s"
72 rm -f /mnt/sata_tmp/readfile
73 fi
74 umount /mnt/sata_tmp
75 fi
76 done
77
78 rm -fr /mnt/sata_tmp
79done
80exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/sdhc b/recipes-test/ddt-runner/files/scripts/p3041ds/sdhc
new file mode 100755
index 0000000..b1bdab2
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/sdhc
@@ -0,0 +1,40 @@
1#!/bin/sh
2
3#the content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0p1"
6
7if [ ! -e $SDHC_DEVICE ]; then
8 echo "FAIL: $SDHC_DEVICE does not exist"
9 exit 1
10else
11 echo "PASS: $SDHC_DEVICE device exists"
12fi
13
14mount |grep mmcblk0p1
15if [ $? -eq 0 ]; then
16 umount $SDHC_DEVICE
17fi
18
19/sbin/mkfs.ext2 $SDHC_DEVICE
20if [ $? -ne 0 ]; then
21 echo "FAIL: format $SDHC_DEVICE fail"
22 exit 1
23else
24 mkdir -p /mnt/sdhc
25 mount $SDHC_DEVICE /mnt/sdhc
26 if [ $? -ne 0 ]; then
27 echo "FAIL: mount $SDHC_DEVICE fail"
28 exit 1
29 else
30 cp /bin/busybox /mnt/sdhc
31 ls /mnt/sdhc |grep busybox
32 if [ $? -ne 0 ]; then
33 echo "FAIL: read or write $SDHC_DEVICE fail"
34 exit 1
35 else
36 umount $SDHC_DEVICE
37 echo "PASS: read or write $SDHC_DEVICE success"
38 fi
39 fi
40fi
diff --git a/recipes-test/ddt-runner/files/scripts/p3041ds/usb b/recipes-test/ddt-runner/files/scripts/p3041ds/usb
new file mode 100755
index 0000000..e515ed5
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p3041ds/usb
@@ -0,0 +1,48 @@
1#!/bin/sh
2#
3#This script is to test usb devices on p3041rdb target
4#
5
6USB_DISK=`ls /dev/sd*[1-9] | sort | tail -n 1`
7
8usbutils_is_installed=`which lsusb`
9if [ -z $usbutils_is_installed ]; then
10 echo "FAIL: Cannot find lsusb"
11 exit 1
12else
13 echo "PASS: usbutils found"
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "PASS: $usbdev_num USB device(s) connected"
22fi
23
24lsusb | grep -v root\ hub
25mkdir -p /mnt/usb_ehci
26mount $USB_DISK /mnt/usb_ehci
27if [ $? -ne 0 ]; then
28 echo "FAIL: Mount USB device failed"
29 exit 1
30else
31 echo "PASS: Mount USB device succeed"
32fi
33
34echo "Begin test usb device..."
35dd if=/dev/urandom of=/mnt/usb_ehci/testfile bs=1M count=50
36if [ $? -ne 0 ]; then
37 echo "FAIL: test failed"
38 rm -f /mnt/usb_ehci_testfile
39 umount /mnt/usb_ehci
40 rm -fr /mnt/usb_ehci
41 exit 1
42fi
43
44echo "PASS: test succeed"
45rm -f /mnt/usb_ehci_testfile
46umount /mnt/usb_ehci
47rm -fr /mnt/usb_ehci
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/ethernet b/recipes-test/ddt-runner/files/scripts/p4080ds/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/flash b/recipes-test/ddt-runner/files/scripts/p4080ds/flash
new file mode 100755
index 0000000..19f95aa
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/flash
@@ -0,0 +1,20 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in p4080ds and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11fi
12
13for((part=0; part<$part_num-1; part++));
14do
15 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
16 echo "PASS: show partition $part debug info"
17 else
18 echo "FAIL: show partition $part debug info"
19 fi
20done
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/i2c b/recipes-test/ddt-runner/files/scripts/p4080ds/i2c
new file mode 100755
index 0000000..5b312b9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/rtc b/recipes-test/ddt-runner/files/scripts/p4080ds/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/sdhc b/recipes-test/ddt-runner/files/scripts/p4080ds/sdhc
new file mode 100755
index 0000000..31a7c2f
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/sdhc
@@ -0,0 +1,65 @@
1#!/bin/sh
2# This script is used to test sdhc functionality for p4080ds.
3# The content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0"
6SDHC_DEVICE_PART="/dev/mmcblk0p1"
7SFDISK=`which sfdisk`
8
9if [ -e $SDHC_DEVICE ]; then
10 echo "PASS: $SDHC_DEVICE device exists"
11else
12 echo "FAIL: $SDHC_DEVICE does not exist"
13 exit 1
14fi
15
16if [ -e $SDHC_DEVICE_PART ]; then
17 echo "PASS: $SDHC_DEVICE_PART device exists"
18elif [ ! -z $SFDISK ]; then
19
20 echo "Try to create a partition"
21
22$SFDISK $SDHC_DEVICE << EOF
23,,L
24EOF
25
26 if [ -e $SDHC_DEVICE_PART ]; then
27 echo "PASS: $SDHC_DEVICE_PART device exists"
28 else
29 echo "FAIL: $SDHC_DEVICE_PART does not exist"
30 exit 1
31 fi
32
33else
34 echo "FAIL: $SDHC_DEVICE_PART does not exist"
35 exit 1
36fi
37
38mount |grep mmcblk0p1
39if [ $? -eq 0 ]; then
40 umount $SDHC_DEVICE_PART
41fi
42
43/sbin/mkfs.ext2 $SDHC_DEVICE_PART
44if [ $? -ne 0 ]; then
45 echo "FAIL: format $SDHC_DEVICE_PART fail"
46 exit 1
47else
48 mkdir -p /mnt/sdhc
49 mount $SDHC_DEVICE_PART /mnt/sdhc
50 if [ $? -ne 0 ]; then
51 echo "FAIL: mount $SDHC_DEVICE_PART fail"
52 exit 1
53 else
54 cp /bin/busybox /mnt/sdhc
55 ls /mnt/sdhc |grep busybox
56 if [ $? -ne 0 ]; then
57 echo "FAIL: read or write $SDHC_DEVICE_PART fail"
58 exit 1
59 else
60 umount $SDHC_DEVICE_PART
61 echo "PASS: read or write $SDHC_DEVICE_PART success"
62 fi
63 fi
64fi
65
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/spi b/recipes-test/ddt-runner/files/scripts/p4080ds/spi
new file mode 100755
index 0000000..b4df851
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to p4080 cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd4"
8MTD_BLOCK_DEVICE="/dev/mtdblock4"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/p4080ds/usb b/recipes-test/ddt-runner/files/scripts/p4080ds/usb
new file mode 100755
index 0000000..970e913
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/p4080ds/usb
@@ -0,0 +1,100 @@
1#!/bin/sh
2#
3# This script is used to test usb functionality for p4080ds.
4#
5
6result=0
7devpath=""
8usbinfo=""
9
10usbutils_is_installed=`which lsusb`
11if [ -z $usbutils_is_installed ]; then
12 echo "FAIL: Cannot find lsusb"
13 exit 1
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "$usbdev_num USB device(s) connected"
22fi
23
24sd=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
25if [ -z "$sd" ]; then
26 echo "FAIL: find sd device"
27 exit 1
28else
29 echo "PASS: find sd device"
30fi
31
32HDPARM=`which hdparm`
33if [ -z $HDPARM ]; then
34 result=$?
35 echo "FAIL: find hdparm"
36fi
37 echo "PASS: find hdparm"
38
39for s in $sd
40do
41 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
42 usbinfo=`ls -l $devpath | grep usb`
43
44 if [ -z "$usbinfo" ] ; then
45 continue
46 fi
47
48 s=`echo "$s" | awk -F "," '{print $3}'`
49
50 echo "Testing $s"
51 $HDPARM -I $s
52 if [ $? -ne 0 ]; then
53 result=$?
54 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
55 else
56 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
57 fi
58
59 $HDPARM -tT $s
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
63 else
64 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
65 fi
66
67 mkdir -p /mnt/usb_tmp
68 for partition in `ls "$s"[1-9]`
69 do
70 echo "Testing $partition"
71
72 mount "$partition" /mnt/usb_tmp
73 if [ $? -ne 0 ]; then
74 result=$?
75 echo "FAIL: mount $s"
76 else
77 echo "PASS: mount $s"
78 dd if=/dev/urandom of=/mnt/usb_tmp/writefile bs=1M count=50
79 if [ $? -ne 0 ]; then
80 result=$?
81 echo "FAIL: write test on $s"
82 else
83 echo "PASS: write test on $s"
84 rm -f /mnt/usb_tmp/writefile
85 fi
86 dd if=$s of=/mnt/usb_tmp/readfile bs=1M count=10
87 if [ $? -ne 0 ]; then
88 result=$?
89 echo "FAIL: read test on $s"
90 else
91 echo "PASS: read test on $s"
92 rm -f /mnt/usb_tmp/readfile
93 fi
94 umount /mnt/usb_tmp
95 fi
96 done
97
98 rm -fr /mnt/usb_tmp
99done
100exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/pandaboard/ethernet b/recipes-test/ddt-runner/files/scripts/pandaboard/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/pandaboard/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/pandaboard/i2c b/recipes-test/ddt-runner/files/scripts/pandaboard/i2c
new file mode 100755
index 0000000..5b312b9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/pandaboard/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/pandaboard/rtc b/recipes-test/ddt-runner/files/scripts/pandaboard/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/pandaboard/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/pandaboard/sdhc b/recipes-test/ddt-runner/files/scripts/pandaboard/sdhc
new file mode 100755
index 0000000..e341ebc
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/pandaboard/sdhc
@@ -0,0 +1,65 @@
1#!/bin/sh
2# This script is used to test sdhc functionality for pandaboard.
3# The content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0"
6SDHC_DEVICE_PART="/dev/mmcblk0p1"
7SFDISK=`which sfdisk`
8
9if [ -e $SDHC_DEVICE ]; then
10 echo "PASS: $SDHC_DEVICE device exists"
11else
12 echo "FAIL: $SDHC_DEVICE does not exist"
13 exit 1
14fi
15
16if [ -e $SDHC_DEVICE_PART ]; then
17 echo "PASS: $SDHC_DEVICE_PART device exists"
18elif [ ! -z $SFDISK ]; then
19
20 echo "Try to create a partition"
21
22$SFDISK $SDHC_DEVICE << EOF
23,,L
24EOF
25
26 if [ -e $SDHC_DEVICE_PART ]; then
27 echo "PASS: $SDHC_DEVICE_PART device exists"
28 else
29 echo "FAIL: $SDHC_DEVICE_PART does not exist"
30 exit 1
31 fi
32
33else
34 echo "FAIL: $SDHC_DEVICE_PART does not exist"
35 exit 1
36fi
37
38mount |grep mmcblk0p1
39if [ $? -eq 0 ]; then
40 umount $SDHC_DEVICE_PART
41fi
42
43/sbin/mkfs.ext2 $SDHC_DEVICE_PART
44if [ $? -ne 0 ]; then
45 echo "FAIL: format $SDHC_DEVICE_PART fail"
46 exit 1
47else
48 mkdir -p /mnt/sdhc
49 mount $SDHC_DEVICE_PART /mnt/sdhc
50 if [ $? -ne 0 ]; then
51 echo "FAIL: mount $SDHC_DEVICE_PART fail"
52 exit 1
53 else
54 cp /bin/busybox /mnt/sdhc
55 ls /mnt/sdhc |grep busybox
56 if [ $? -ne 0 ]; then
57 echo "FAIL: read or write $SDHC_DEVICE_PART fail"
58 exit 1
59 else
60 umount $SDHC_DEVICE_PART
61 echo "PASS: read or write $SDHC_DEVICE_PART success"
62 fi
63 fi
64fi
65
diff --git a/recipes-test/ddt-runner/files/scripts/pandaboard/usb b/recipes-test/ddt-runner/files/scripts/pandaboard/usb
new file mode 100755
index 0000000..15c417a
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/pandaboard/usb
@@ -0,0 +1,100 @@
1#!/bin/sh
2#
3# This script is used to test usb functionality for romley-ivb.
4#
5
6result=0
7devpath=""
8usbinfo=""
9
10usbutils_is_installed=`which lsusb`
11if [ -z $usbutils_is_installed ]; then
12 echo "FAIL: Cannot find lsusb"
13 exit 1
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "$usbdev_num USB device(s) connected"
22fi
23
24sd=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
25if [ -z "$sd" ]; then
26 echo "FAIL: find sd device"
27 exit 1
28else
29 echo "PASS: find sd device"
30fi
31
32HDPARM=`which hdparm`
33if [ -z $HDPARM ]; then
34 result=$?
35 echo "FAIL: find hdparm"
36fi
37 echo "PASS: find hdparm"
38
39for s in $sd
40do
41 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
42 usbinfo=`ls -l $devpath | grep usb`
43
44 if [ -z "$usbinfo" ] ; then
45 continue
46 fi
47
48 s=`echo "$s" | awk -F "," '{print $3}'`
49
50 echo "Testing $s"
51 $HDPARM -I $s
52 if [ $? -ne 0 ]; then
53 result=$?
54 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
55 else
56 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
57 fi
58
59 $HDPARM -tT $s
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
63 else
64 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
65 fi
66
67 mkdir -p /mnt/usb_tmp
68 for partition in `ls "$s"[1-9]`
69 do
70 echo "Testing $partition"
71
72 mount "$partition" /mnt/usb_tmp
73 if [ $? -ne 0 ]; then
74 result=$?
75 echo "FAIL: mount $s"
76 else
77 echo "PASS: mount $s"
78 dd if=/dev/urandom of=/mnt/usb_tmp/writefile bs=1M count=50
79 if [ $? -ne 0 ]; then
80 result=$?
81 echo "FAIL: write test on $s"
82 else
83 echo "PASS: write test on $s"
84 rm -f /mnt/usb_tmp/writefile
85 fi
86 dd if=$s of=/mnt/usb_tmp/readfile bs=1M count=10
87 if [ $? -ne 0 ]; then
88 result=$?
89 echo "FAIL: read test on $s"
90 else
91 echo "PASS: read test on $s"
92 rm -f /mnt/usb_tmp/readfile
93 fi
94 umount /mnt/usb_tmp
95 fi
96 done
97
98 rm -fr /mnt/usb_tmp
99done
100exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/proliant-m800/ethernet b/recipes-test/ddt-runner/files/scripts/proliant-m800/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/proliant-m800/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/proliant-m800/i2c b/recipes-test/ddt-runner/files/scripts/proliant-m800/i2c
new file mode 100755
index 0000000..5202950
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/proliant-m800/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/proliant-m800/sata b/recipes-test/ddt-runner/files/scripts/proliant-m800/sata
new file mode 100755
index 0000000..25bf15a
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/proliant-m800/sata
@@ -0,0 +1,81 @@
1#!/bin/sh
2#
3#This script is to test sata devices on target
4#
5result=0
6devpath=""
7satainfo=""
8SD=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
9if [ -z "$SD" ]; then
10 echo "FAIL: find sata device"
11 exit 1
12else
13 echo "PASS: find sata device"
14fi
15HDPARM=`which hdparm`
16if [ -z $HDPARM ]; then
17 result=$?
18 echo "FAIL: find hdparm"
19fi
20 echo "PASS: find hdparm"
21
22
23for s in $SD
24 do
25 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
26 satainfo=`ls -l $devpath | grep sata`
27
28 if [ -z "$satainfo" ] ; then
29 continue
30 fi
31 s=`echo "$s" | awk -F "," '{print $3}'`
32
33 echo "testing $s"
34 $HDPARM -I $s
35 if [ $? -ne 0 ]; then
36 result=$?
37 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
38 else
39 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
40 fi
41 $HDPARM -tT $s
42 if [ $? -ne 0 ]; then
43 result=$?
44 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
45 else
46 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
47 fi
48
49
50 mkdir -p /mnt/sata_tmp
51 for partition in `ls "$s"[1-9]`
52 do
53 mount "$partition" /mnt/sata_tmp
54 if [ $? -ne 0 ]; then
55 result=$?
56 echo "FAIL: Mount $s"
57 else
58 echo "PASS: Mount $s"
59 dd if=/dev/urandom of=/mnt/sata_tmp/writefile bs=1M count=50
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: write test on $s"
63 else
64 echo "PASS: write test on $s"
65 rm -f /mnt/sata_tmp/writefile
66 fi
67 dd if=$s of=/mnt/sata_tmp/readfile bs=1M count=10
68 if [ $? -ne 0 ]; then
69 result=$?
70 echo "FAIL: read test on $s"
71 else
72 echo "PASS: read test on $s"
73 rm -f /mnt/sata_tmp/readfile
74 fi
75 umount /mnt/sata_tmp
76 fi
77 done
78
79 rm -fr /mnt/sata_tmp
80done
81exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/romley-ivb/ethernet b/recipes-test/ddt-runner/files/scripts/romley-ivb/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/romley-ivb/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/romley-ivb/rtc b/recipes-test/ddt-runner/files/scripts/romley-ivb/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/romley-ivb/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/romley-ivb/sata b/recipes-test/ddt-runner/files/scripts/romley-ivb/sata
new file mode 100755
index 0000000..25bf15a
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/romley-ivb/sata
@@ -0,0 +1,81 @@
1#!/bin/sh
2#
3#This script is to test sata devices on target
4#
5result=0
6devpath=""
7satainfo=""
8SD=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
9if [ -z "$SD" ]; then
10 echo "FAIL: find sata device"
11 exit 1
12else
13 echo "PASS: find sata device"
14fi
15HDPARM=`which hdparm`
16if [ -z $HDPARM ]; then
17 result=$?
18 echo "FAIL: find hdparm"
19fi
20 echo "PASS: find hdparm"
21
22
23for s in $SD
24 do
25 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
26 satainfo=`ls -l $devpath | grep sata`
27
28 if [ -z "$satainfo" ] ; then
29 continue
30 fi
31 s=`echo "$s" | awk -F "," '{print $3}'`
32
33 echo "testing $s"
34 $HDPARM -I $s
35 if [ $? -ne 0 ]; then
36 result=$?
37 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
38 else
39 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
40 fi
41 $HDPARM -tT $s
42 if [ $? -ne 0 ]; then
43 result=$?
44 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
45 else
46 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
47 fi
48
49
50 mkdir -p /mnt/sata_tmp
51 for partition in `ls "$s"[1-9]`
52 do
53 mount "$partition" /mnt/sata_tmp
54 if [ $? -ne 0 ]; then
55 result=$?
56 echo "FAIL: Mount $s"
57 else
58 echo "PASS: Mount $s"
59 dd if=/dev/urandom of=/mnt/sata_tmp/writefile bs=1M count=50
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: write test on $s"
63 else
64 echo "PASS: write test on $s"
65 rm -f /mnt/sata_tmp/writefile
66 fi
67 dd if=$s of=/mnt/sata_tmp/readfile bs=1M count=10
68 if [ $? -ne 0 ]; then
69 result=$?
70 echo "FAIL: read test on $s"
71 else
72 echo "PASS: read test on $s"
73 rm -f /mnt/sata_tmp/readfile
74 fi
75 umount /mnt/sata_tmp
76 fi
77 done
78
79 rm -fr /mnt/sata_tmp
80done
81exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/romley-ivb/usb b/recipes-test/ddt-runner/files/scripts/romley-ivb/usb
new file mode 100755
index 0000000..15c417a
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/romley-ivb/usb
@@ -0,0 +1,100 @@
1#!/bin/sh
2#
3# This script is used to test usb functionality for romley-ivb.
4#
5
6result=0
7devpath=""
8usbinfo=""
9
10usbutils_is_installed=`which lsusb`
11if [ -z $usbutils_is_installed ]; then
12 echo "FAIL: Cannot find lsusb"
13 exit 1
14fi
15
16usbdev_num=`lsusb | grep -v root\ hub | wc -l`
17if [ $usbdev_num -eq 0 ]; then
18 echo "FAIL: USB device is not connected"
19 exit 1
20else
21 echo "$usbdev_num USB device(s) connected"
22fi
23
24sd=`ls -l /dev/sd[^0-9] | awk '{print $5 $6 "," $10}'`
25if [ -z "$sd" ]; then
26 echo "FAIL: find sd device"
27 exit 1
28else
29 echo "PASS: find sd device"
30fi
31
32HDPARM=`which hdparm`
33if [ -z $HDPARM ]; then
34 result=$?
35 echo "FAIL: find hdparm"
36fi
37 echo "PASS: find hdparm"
38
39for s in $sd
40do
41 devpath=`echo "$s" | awk -F "," '{print "/sys/dev/block/" $1 ":" $2}'`
42 usbinfo=`ls -l $devpath | grep usb`
43
44 if [ -z "$usbinfo" ] ; then
45 continue
46 fi
47
48 s=`echo "$s" | awk -F "," '{print $3}'`
49
50 echo "Testing $s"
51 $HDPARM -I $s
52 if [ $? -ne 0 ]; then
53 result=$?
54 echo "FAIL: $HDPARM -I $s Detailed/current information directly from $s"
55 else
56 echo "PASS: $HDPARM -I $s Detailed/current information directly from $s"
57 fi
58
59 $HDPARM -tT $s
60 if [ $? -ne 0 ]; then
61 result=$?
62 echo "FAIL: $HDPARM -tT $s Perform device/cache read timings on $s"
63 else
64 echo "PASS: $HDPARM -tT $s Perform device/cache read timings on $s"
65 fi
66
67 mkdir -p /mnt/usb_tmp
68 for partition in `ls "$s"[1-9]`
69 do
70 echo "Testing $partition"
71
72 mount "$partition" /mnt/usb_tmp
73 if [ $? -ne 0 ]; then
74 result=$?
75 echo "FAIL: mount $s"
76 else
77 echo "PASS: mount $s"
78 dd if=/dev/urandom of=/mnt/usb_tmp/writefile bs=1M count=50
79 if [ $? -ne 0 ]; then
80 result=$?
81 echo "FAIL: write test on $s"
82 else
83 echo "PASS: write test on $s"
84 rm -f /mnt/usb_tmp/writefile
85 fi
86 dd if=$s of=/mnt/usb_tmp/readfile bs=1M count=10
87 if [ $? -ne 0 ]; then
88 result=$?
89 echo "FAIL: read test on $s"
90 else
91 echo "PASS: read test on $s"
92 rm -f /mnt/usb_tmp/readfile
93 fi
94 umount /mnt/usb_tmp
95 fi
96 done
97
98 rm -fr /mnt/usb_tmp
99done
100exit $result
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/ethernet b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/ethernet
new file mode 100755
index 0000000..5355f10
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/ethernet
@@ -0,0 +1,88 @@
1#!/bin/sh
2
3ethernet_interface="eth1"
4ethernet_ping_ipaddr="172.21.3.22"
5ethernet_ipaddr=$1
6
7IFCONFIG=`which ifconfig`
8
9$IFCONFIG $ethernet_interface up
10$IFCONFIG | grep $ethernet_interface
11if [ $? -ne 0 ]; then
12 echo "FAIL: $ethernet_interface is not up"
13 exit 1
14else
15 echo "PASS: $ethernet_interface is up"
16fi
17
18if [ "x$ethernet_ipaddr" != "x" ]; then
19 $IFCONFIG $ethernet_interface $ethernet_ipaddr
20fi
21
22$IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}'
23if [ $? -ne 0 ]; then
24 echo "FAIL: ipaddr of $ethernet_interface setup failed"
25 exit 1
26else
27 echo "PASS: ipaddr of $ethernet_interface setup success"
28fi
29
30mindatasize=56
31maxdatasize=650
32stepsize=100
33iteration=1
34datasize=$mindatasize
35logfile=`/bin/mktemp`
36statistics=`/bin/mktemp`
37error=0
38
39trap cleanup SIGHUP SIGINT SIGTERM
40
41clean_tasks() {
42 echo "Executing clean up tasks"
43 rm -f $logfile $statistics
44}
45
46cleanup() {
47 echo "Aborting script execution"
48 clean_tasks
49 exit 0
50}
51
52echo "start ping test for $ethernet_interface..."
53
54while [ $datasize -le $maxdatasize ]; do
55 for i in `seq 1 $iteration`; do
56 ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics
57 ping_err=`echo $?`
58 echo "" && cat $statistics | grep -r "PING"
59 cat $statistics | grep -r "received"
60 [ `echo $?` -eq 0 ] || packets_received=0 && \
61 packets_received=`cat $statistics | \
62 grep -r "received" | awk '{print$4}'`
63
64 # Evaluate possible errors on the ping operation
65 if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then
66 error=1
67 echo -e `cat $statistics | grep -r PING` >> $logfile
68 echo -e "Size: $datasize Iteration: $i\n" >> $logfile
69 fi
70 done
71 let datasize=$datasize+$stepsize
72done
73
74# Report failures
75if [ $error -eq 1 ]; then
76 echo -e "=================== error report ===================\n"
77 cat $logfile
78 echo -e "====================================================\n"
79 clean_tasks
80 echo -e "FAIL: ping test for $ethernet_interface failed\n"
81 exit 1
82else
83 clean_tasks
84 echo -e "PASS: ping test for $ethernet_interface success\n"
85fi
86
87echo "PASS: $ethernet_interface test passed"
88exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/flash b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/flash
new file mode 100755
index 0000000..7fa897c
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/flash
@@ -0,0 +1,20 @@
1#!/bin/sh
2#
3# This script is used to test flash driver functionality. I removed the write
4# operations since all partition are in use in zc702-zynq7 and there might be
5# possibility of corrupting data even if we backup in test script.
6
7if part_num=`cat /proc/mtd | grep -c 'mtd'`; then
8 echo "PASS: show $part_num partitions"
9else
10 echo "FAIL: show $part_num partitions"
11fi
12
13for((part=0; part<$part_num-1; part++));
14do
15 if [ $(mtd_debug info /dev/mtd$part | grep -c 'mtd.type') ]; then
16 echo "PASS: show partition $part debug info"
17 else
18 echo "FAIL: show partition $part debug info"
19 fi
20done
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/i2c b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/i2c
new file mode 100755
index 0000000..5b312b9
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/i2c
@@ -0,0 +1,24 @@
1#!/bin/sh
2
3if I2C_ADAPTERS=$(i2cdetect -l |wc -l); then
4 echo "PASS: found $I2C_ADAPTERS i2c adapters"
5else
6 echo "FAIL: no i2c adapters found"
7 exit 1
8fi
9
10if [ -z "$adapters" ]; then
11 adapters=0
12fi
13
14while [ $adapters -lt $I2C_ADAPTERS ]
15do
16 i2cdetect -y $adapters
17 if [ $? -ne 0 ]; then
18 echo "FAIL: detect i2c adapter $adapters failed"
19 else
20 echo "PASS: detect i2c adapter $adapters success"
21 fi
22 adapters=`expr $adapters + 1`
23 sleep 1
24done
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/rtc b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/rtc
new file mode 100755
index 0000000..0d38293
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/rtc
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3RTC_DEVICE="/dev/rtc"
4
5if [ ! -e $RTC_DEVICE ]; then
6 echo "FAIL: rtc device does not exist"
7 exit 1
8else
9 echo "PASS: rtc device exists"
10fi
11
12/sbin/hwclock -f $RTC_DEVICE
13if [ $? -ne 0 ]; then
14 echo "FAIL: rtc device open failed"
15 exit 1
16else
17 echo "PASS: rtc device open success"
18fi
19
20
21/sbin/hwclock --systohc
22if [ $? -ne 0 ]; then
23 echo "FAIL: sync system clock and hardware clock failed"
24 exit 1
25else
26 echo "PASS: sync system clock and hardware clock success"
27fi
28
29RTC_TIME=$(/sbin/hwclock -r |awk '{print $4}')
30echo $RTC_TIME
31SYS_TIME=$(date +%m/%d/%Y-%X |awk '{print $1}' |awk -F- '{print $2}')
32echo $SYS_TIME
33
34if [ "$RTC_TIME" = "$SYS_TIME" ] ; then
35 echo "PASS: system time same with hardware time"
36else
37 echo "FAIL: system time different with hardware time"
38 exit 1
39fi
40
41echo "PASS: rtc test successful"
42exit 0
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/sdhc b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/sdhc
new file mode 100755
index 0000000..e341ebc
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/sdhc
@@ -0,0 +1,65 @@
1#!/bin/sh
2# This script is used to test sdhc functionality for pandaboard.
3# The content of SD will be lost by running this test case.
4
5SDHC_DEVICE="/dev/mmcblk0"
6SDHC_DEVICE_PART="/dev/mmcblk0p1"
7SFDISK=`which sfdisk`
8
9if [ -e $SDHC_DEVICE ]; then
10 echo "PASS: $SDHC_DEVICE device exists"
11else
12 echo "FAIL: $SDHC_DEVICE does not exist"
13 exit 1
14fi
15
16if [ -e $SDHC_DEVICE_PART ]; then
17 echo "PASS: $SDHC_DEVICE_PART device exists"
18elif [ ! -z $SFDISK ]; then
19
20 echo "Try to create a partition"
21
22$SFDISK $SDHC_DEVICE << EOF
23,,L
24EOF
25
26 if [ -e $SDHC_DEVICE_PART ]; then
27 echo "PASS: $SDHC_DEVICE_PART device exists"
28 else
29 echo "FAIL: $SDHC_DEVICE_PART does not exist"
30 exit 1
31 fi
32
33else
34 echo "FAIL: $SDHC_DEVICE_PART does not exist"
35 exit 1
36fi
37
38mount |grep mmcblk0p1
39if [ $? -eq 0 ]; then
40 umount $SDHC_DEVICE_PART
41fi
42
43/sbin/mkfs.ext2 $SDHC_DEVICE_PART
44if [ $? -ne 0 ]; then
45 echo "FAIL: format $SDHC_DEVICE_PART fail"
46 exit 1
47else
48 mkdir -p /mnt/sdhc
49 mount $SDHC_DEVICE_PART /mnt/sdhc
50 if [ $? -ne 0 ]; then
51 echo "FAIL: mount $SDHC_DEVICE_PART fail"
52 exit 1
53 else
54 cp /bin/busybox /mnt/sdhc
55 ls /mnt/sdhc |grep busybox
56 if [ $? -ne 0 ]; then
57 echo "FAIL: read or write $SDHC_DEVICE_PART fail"
58 exit 1
59 else
60 umount $SDHC_DEVICE_PART
61 echo "PASS: read or write $SDHC_DEVICE_PART success"
62 fi
63 fi
64fi
65
diff --git a/recipes-test/ddt-runner/files/scripts/zc702-zynq7/spi b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/spi
new file mode 100755
index 0000000..15df9bc
--- /dev/null
+++ b/recipes-test/ddt-runner/files/scripts/zc702-zynq7/spi
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3#An spi flash M25P80 connect to pandaboard cpu by spi bus, so the method
4#is to read/write spi flash to verify whether the spi bus driver worked
5#or not.
6
7MTD_CHAR_DEVICE="/dev/mtd4"
8MTD_BLOCK_DEVICE="/dev/mtdblock4"
9
10if [ ! -e $MTD_CHAR_DEVICE ]; then
11 echo "FAIL: spi flash device $MTD_CHAR_DEVICE does not exist"
12 exit 1
13else
14 echo "PASS: spi flash device $MTD_CHAR_DEVICE exists"
15fi
16
17if [ ! -e $MTD_BLOCK_DEVICE ]; then
18 echo "FAIL: spi flash device $MTD_BLOCK_DEVICE does not exist"
19 exit 1
20else
21 echo "PASS: spi flash device $MTD_BLOCK_DEVICE exists"
22fi
23
24/usr/sbin/flash_erase -j $MTD_CHAR_DEVICE 0 0
25if [ $? -ne 0 ]; then
26 echo "FAIL: format spi flash device $MTD_BLOCK_DEVICE fail"
27 exit 1
28else
29 mkdir -p /mnt/spi
30 mount -t jffs2 $MTD_BLOCK_DEVICE /mnt/spi
31 if [ $? -ne 0 ]; then
32 echo "FAIL: mount spi flash device $MTD_BLOCK_DEVICE fail"
33 exit 1
34 else
35 cp /bin/busybox /mnt/spi
36 ls /mnt/spi |grep busybox
37 if [ $? -ne 0 ]; then
38 echo "FAIL: read or write spi flash device $MTD_BLOCK_DEVICE fail"
39 exit 1
40 else
41 umount $MTD_BLOCK_DEVICE
42 echo "PASS: read or write spi flash device $MTD_BLOCK_DEVICE success"
43 fi
44 fi
45fi
46
47echo "PASS: spi bus test passed"
48exit 0
diff --git a/recipes-test/perf-networking/files/perf-networking b/recipes-test/perf-networking/files/perf-networking
new file mode 100755
index 0000000..f865374
--- /dev/null
+++ b/recipes-test/perf-networking/files/perf-networking
@@ -0,0 +1,14 @@
1#!/bin/sh
2server_ip="172.24.0.50"
3
4if ping -c1 $server_ip > /dev/null
5then
6netperf -H $server_ip -t TCP_STREAM
7netperf -H $server_ip -t TCP_MAERTS
8netperf -H $server_ip -t TCP_RR
9netperf -H $server_ip -t TCP_CRR
10netperf -H $server_ip -t UDP_STREAM
11netperf -H $server_ip -t UDP_RR
12else
13echo "Error: Server is down!"
14fi
diff --git a/recipes-test/perf-networking/perf-networking_1.0.bb b/recipes-test/perf-networking/perf-networking_1.0.bb
new file mode 100644
index 0000000..aa32a7d
--- /dev/null
+++ b/recipes-test/perf-networking/perf-networking_1.0.bb
@@ -0,0 +1,19 @@
1SUMMARY = "A simple shell script to run network performance tests"
2DESCRIPTION = "The perf-networking package installs the perf-networking \
3shell script which runs tests using the netperf package"
4SRC_URI += "file://perf-networking"
5
6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
8 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
9
10RDEPENDS_${PN}= "netperf"
11
12do_install () {
13 install -D ${WORKDIR}/perf-networking ${D}${bindir}/perf-networking
14}
15
16do_patch[noexec] = "1"
17do_configure[noexec] = "1"
18do_compile[noexec] = "1"
19do_build[noexec] = "1"
diff --git a/recipes-test/rt-bmark/rt-bmark.bb b/recipes-test/rt-bmark/rt-bmark.bb
new file mode 100644
index 0000000..efd56a2
--- /dev/null
+++ b/recipes-test/rt-bmark/rt-bmark.bb
@@ -0,0 +1,23 @@
1LICENSE = "BSD"
2LIC_FILES_CHKSUM = "file://README;md5=0db98e009b4bd9c1d6e074f701c9f9dd"
3DESCRIPTION = "RT Benachmarks"
4INHIBIT_DEFAULT_DEPS = "1"
5
6SRCREV = "189a84fc3112afba2f7bee28dcec3ea75c86e34a"
7SRC_URI = "git://gitlab.enea.se/thomas.lundstrom/rt-benchmarks.git;protocol=http"
8
9TEST_SCRIPT_DIR = "${libdir}/benchtest-runner/tests"
10
11FILES_${PN} += " ${TEST_SCRIPT_DIR}"
12
13RDEPENDS_${PN} += " stress rt-tests python"
14
15do_install () {
16 mkdir -p ${D}${TEST_SCRIPT_DIR}
17 install ${WORKDIR}/git/rt_bmark ${D}${TEST_SCRIPT_DIR}
18}
19
20do_patch[noexec] = "1"
21do_configure[noexec] = "1"
22do_compile[noexec] = "1"
23do_build[noexec] = "1"
diff --git a/recipes-test/stress/files/stress-itemx-after-item-only.patch b/recipes-test/stress/files/stress-itemx-after-item-only.patch
new file mode 100644
index 0000000..5ef40bb
--- /dev/null
+++ b/recipes-test/stress/files/stress-itemx-after-item-only.patch
@@ -0,0 +1,55 @@
1stress: fix documentation build failure on Fedora
2
3Building the documentation for stress failed due to errors like this
4one:
5 stress.texi:68: @itemx must follow @item
6
7Upstream-Status: Submitted [Amos Waterland <apw@debian.org>]
8
9Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
10--- a/doc/stress.texi 2005-03-10 02:16:02.000000000 +0100
11+++ b/doc/stress.texi 2014-04-17 17:10:25.826749256 +0200
12@@ -65,7 +65,7 @@
13 @itemx --help
14 Show help information.
15
16-@itemx --version
17+@item --version
18 Show version information.
19
20 @item -v
21@@ -84,7 +84,7 @@
22 @itemx --timeout @var{secs}
23 Time out after @var{secs} seconds.
24
25-@itemx --backoff @var{usecs}
26+@item --backoff @var{usecs}
27 Wait for factor of @var{usecs} microseconds before starting work.
28
29 @item -c @var{forks}
30@@ -99,10 +99,10 @@
31 @itemx --vm @var{forks}
32 Spawn @var{forks} processes each spinning on @samp{malloc()}.
33
34-@itemx --vm-bytes @var{bytes}
35+@item --vm-bytes @var{bytes}
36 Allocate @var{bytes} number of bytes. The default is 1.
37
38-@itemx --vm-hang
39+@item --vm-hang
40 Instruct each vm hog process to go to sleep after allocating memory. This
41 contrasts with their normal behavior, which is to free the memory and
42 reallocate @emph{ad infinitum}. This is useful for simulating low memory
43@@ -117,10 +117,10 @@
44 @itemx --hdd @var{forks}
45 Spawn @var{forks} processes each spinning on @samp{write()}.
46
47-@itemx --hdd-bytes @var{bytes}
48+@item --hdd-bytes @var{bytes}
49 Write @var{bytes} number of bytes. The default is 1GB.
50
51-@itemx --hdd-noclean
52+@item --hdd-noclean
53 Do not unlink file(s) to which random ASCII data is written.
54
55 @end table
diff --git a/recipes-test/stress/stress_1.0.4.bb b/recipes-test/stress/stress_1.0.4.bb
new file mode 100644
index 0000000..af69de4
--- /dev/null
+++ b/recipes-test/stress/stress_1.0.4.bb
@@ -0,0 +1,13 @@
1inherit autotools
2
3HOMEPAGE = "http://people.seas.harvard.edu/~apw/stress/"
4DESCRIPTION = "stress is a deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. It is written in C, and is free software licensed under the GPLv2."
5
6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
8
9SRC_URI="http://people.seas.harvard.edu/~apw/stress/stress-${PV}.tar.gz;name=tar \
10 file://stress-itemx-after-item-only.patch"
11
12SRC_URI[tar.md5sum] = "890a4236dd1656792f3ef9a190cf99ef"
13SRC_URI[tar.sha256sum] = "057e4fc2a7706411e1014bf172e4f94b63a12f18412378fca8684ca92408825b"
diff --git a/recipes-test/systest-runner/files/systest-runner b/recipes-test/systest-runner/files/systest-runner
new file mode 100644
index 0000000..13ad005
--- /dev/null
+++ b/recipes-test/systest-runner/files/systest-runner
@@ -0,0 +1,30 @@
1#!/bin/sh
2
3while true; do
4 if [ -d /usr/lib/systest-runner/tests ]; then
5 cd /usr/lib/systest-runner/tests >/dev/null
6 break
7 fi
8 if [ -d /usr/lib32/systest-runner/tests ]; then
9 cd /usr/lib32/systest-runner/tests >/dev/null
10 break
11 fi
12 if [ -d /usr/lib64/systest-runner/tests ]; then
13 cd /usr/lib64/systest-runner/tests >/dev/null
14 break
15 fi
16 break
17done
18
19for x in *
20do
21 echo $x
22 if [[ -f $x ]]; then
23 date +%Y-%m-%dT%H:%M
24 echo "BEGIN: $x"
25 ./$x
26 echo "END: $x"
27 date +%Y-%m-%dT%H:%M
28 fi
29done
30
diff --git a/recipes-test/systest-runner/files/tests/ltp b/recipes-test/systest-runner/files/tests/ltp
new file mode 100755
index 0000000..ebdc32f
--- /dev/null
+++ b/recipes-test/systest-runner/files/tests/ltp
@@ -0,0 +1,23 @@
1#!/bin/sh
2
3cd /opt/ltp >/dev/null
4addgroup nobody
5sed -i -e "/mounts | sort -b$/s/$/ | grep -v deleted/" ./testscripts/test_fs_bind.sh
6
7logname=`date +"%Y_%m_%d_%H_%M_%S"`".log"
8./runltp -p -d /tmp -l $logname
9
10if [ ! -d ./results ]; then
11 echo "FAIL: no result found"
12 exit 1
13fi
14
15cat ./results/$logname | while read line
16do
17 resultLine=`echo $line | grep -c -E "PASS|FAIL"`
18 if [ $resultLine -eq 1 ]; then
19 testcase=`echo $line | awk '{print $1}'`
20 result=`echo $line | awk '{print $2}'`
21 echo "$result: $testcase"
22 fi
23done
diff --git a/recipes-test/systest-runner/files/tests/perf-network b/recipes-test/systest-runner/files/tests/perf-network
new file mode 100755
index 0000000..28d88d5
--- /dev/null
+++ b/recipes-test/systest-runner/files/tests/perf-network
@@ -0,0 +1,13 @@
1#!/bin/sh
2
3logname=`date +"%Y_%m_%d_%H_%M_%S"`".log"
4perf-networking |tee /tmp/$logname
5
6if grep -Fq "Error:" /tmp/$logname
7then
8 echo "FAIL: Test failed"
9 exit 1
10else
11 echo "PASS: Performed the netperf tests"
12 exit 0
13fi
diff --git a/recipes-test/systest-runner/files/tests/posixtest b/recipes-test/systest-runner/files/tests/posixtest
new file mode 100755
index 0000000..cf92261
--- /dev/null
+++ b/recipes-test/systest-runner/files/tests/posixtest
@@ -0,0 +1,40 @@
1#!/bin/sh
2
3printit() {
4 echo ""
5 sed -i -e "s|FAILED:|FAIL:|g" -e "s|UNRESOLVED:|FAIL:|g" -e "s|UNSUPPORTED:|SKIP:|g" -e "s|UNTESTED:|SKIP:|g" $1
6 cat $1 | while read line
7 do
8 resultLine=`echo $line | grep -c -E "PASS|FAIL"`
9 if [ $resultLine -eq 1 ]; then
10 testcase=`echo $line | awk -F: '{print $1}'`
11 result=`echo $line | awk -F: '{print $3}'`
12 if [ -n "$testcase" ] && [ -n "$result" ]; then
13 echo "$result: $testcase"
14 fi
15 fi
16 done
17}
18
19cd /opt/ltp/testcases/open_posix_testsuite >/dev/null
20
21make test
22
23FILES=$(find . -name "logfile.*-test")
24for f in $FILES
25do
26 printit $f
27done
28
29printf "\n\nRunning POSIX Option Group Feature Tests"
30printf "\n========================================\n"
31
32./bin/run-all-posix-option-group-tests.sh
33
34FILES=$(find . -name "logfile")
35for f in $FILES
36do
37 printit $f
38done
39
40
diff --git a/recipes-test/systest-runner/systest-runner.bb b/recipes-test/systest-runner/systest-runner.bb
new file mode 100644
index 0000000..2ae040e
--- /dev/null
+++ b/recipes-test/systest-runner/systest-runner.bb
@@ -0,0 +1,29 @@
1
2LICENSE = "BSD"
3LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
4DESCRIPTION = "Execute all scripts under systest-runner/tests folder"
5INHIBIT_DEFAULT_DEPS = "1"
6
7SRC_URI = "file://systest-runner \
8 file://tests/ltp \
9 file://tests/perf-network \
10 file://tests/posixtest \
11 "
12
13STEST_PATH="${libdir}/${PN}"
14
15FILES_${PN} +="${STEST_PATH}"
16FILES_${PN} += "${bindir}/systest-runner"
17
18do_install () {
19 install -D ${WORKDIR}/systest-runner ${D}${bindir}/systest-runner
20 install -d ${D}${STEST_PATH}/tests
21 for file in ${WORKDIR}/tests/* ; do
22 install $file ${D}${STEST_PATH}/tests
23 done
24}
25
26do_patch[noexec] = "1"
27do_configure[noexec] = "1"
28do_compile[noexec] = "1"
29do_build[noexec] = "1"