All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
@ 2013-01-12 17:21 mfornero
  2013-01-14 10:27 ` Stefan Roese
  0 siblings, 1 reply; 21+ messages in thread
From: mfornero @ 2013-01-12 17:21 UTC (permalink / raw)
  To: Xenomai

   Hi All,

   I'm looking for recommendations on how to best port ipipe support to a
   new ARM SoC. The SoC has started to show up in mainline, but many of
   the features haven't made it over yet. Xilinx maintains a git repo
   here:

   git://git.xilinx.com/linux-xlnx.git

   And it look like they've synced with mainline 3.6

   The two approaches I've considered were either trying to port ipipe to
   stock 3.6 (or at least the generic and ARM bits) or trying to backport
   the Xilinx code to 3.5.3. I started with the later approach, but some
   changes to the common clock architecture between 3.5 and 3.6 make this
   somewhat difficult.

   Any thoughts on which approach would be better?

   Best Regards,

   Matthew Fornero
   This email transmission may contain information that is confidential or
   legally privileged. If you are not the intended recipient, you are
   hereby notified that any disclosure, copying, printing, distribution or
   use of this transmission is strictly prohibited. If you have received
   this transmission in error, please notify the sender immediately and
   delete the original transmission and its attachments without reading or
   saving in any manner.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-12 17:21 [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq) mfornero
@ 2013-01-14 10:27 ` Stefan Roese
  2013-01-22  0:00   ` mfornero
  2013-02-10 14:23   ` Gilles Chanteperdrix
  0 siblings, 2 replies; 21+ messages in thread
From: Stefan Roese @ 2013-01-14 10:27 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

Hi Matthew,

On 01/12/2013 06:21 PM, mfornero@aanddtech.com wrote:
>    I'm looking for recommendations on how to best port ipipe support to a
>    new ARM SoC. The SoC has started to show up in mainline, but many of
>    the features haven't made it over yet. Xilinx maintains a git repo
>    here:
> 
>    git://git.xilinx.com/linux-xlnx.git
> 
>    And it look like they've synced with mainline 3.6
> 
>    The two approaches I've considered were either trying to port ipipe to
>    stock 3.6 (or at least the generic and ARM bits) or trying to backport
>    the Xilinx code to 3.5.3. I started with the later approach, but some
>    changes to the common clock architecture between 3.5 and 3.6 make this
>    somewhat difficult.
> 
>    Any thoughts on which approach would be better?

I'm also working on supporting Zynq in I-pipe. My approach was to use
the Xilinx 3.5.0 code version (git tag "xilinx-14.3-build2"). And port
the I-pipe version from Gilles git repository to it. I still need to do
some cleanup then I can send you the latest version.

Best regards,
Stefan




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-14 10:27 ` Stefan Roese
@ 2013-01-22  0:00   ` mfornero
  2013-01-22  7:55     ` Gilles Chanteperdrix
  2013-02-10 14:23   ` Gilles Chanteperdrix
  1 sibling, 1 reply; 21+ messages in thread
From: mfornero @ 2013-01-22  0:00 UTC (permalink / raw)
  To: Xenomai

Stefan Roese <stefan.roese@gmail.com> wrote on 01/14/2013 05:27:38 AM:

> From: Stefan Roese <stefan.roese@gmail.com>
> To: mfornero@aanddtech.com, 
> Cc: Xenomai@xenomai.org
> Date: 01/14/2013 05:27 AM
> Subject: Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
> 
> Hi Matthew,
> 
> On 01/12/2013 06:21 PM, mfornero@aanddtech.com wrote:
> >    I'm looking for recommendations on how to best port ipipe support 
to a
> >    new ARM SoC. The SoC has started to show up in mainline, but many 
of
> >    the features haven't made it over yet. Xilinx maintains a git repo
> >    here:
> > 
> >    git://git.xilinx.com/linux-xlnx.git
> > 
> >    And it look like they've synced with mainline 3.6
> > 
> >    The two approaches I've considered were either trying to port ipipe 
to
> >    stock 3.6 (or at least the generic and ARM bits) or trying to 
backport
> >    the Xilinx code to 3.5.3. I started with the later approach, but 
some
> >    changes to the common clock architecture between 3.5 and 3.6 make 
this
> >    somewhat difficult.
> > 
> >    Any thoughts on which approach would be better?
> 
> I'm also working on supporting Zynq in I-pipe. My approach was to use
> the Xilinx 3.5.0 code version (git tag "xilinx-14.3-build2"). And port
> the I-pipe version from Gilles git repository to it. I still need to do
> some cleanup then I can send you the latest version.
> 
> Best regards,
> Stefan
> 
> 

Hello All,

I've followed a similar approach to Stefan since my previous email, and 
have a somewhat working port of Xenomai now running on the Zynq Board. We 
are currently using a ZedBoard, instead of the Xilinx ZC702 eval board, 
but the processor core section should be almost identical.

My build is mostly working, but I am running into issues with the SDHC 
controller shortly after booting. It appears that controller stops getting 
interrupts and eventually locks up the system. If I turn off Xenomai in 
the kernel config, the issue goes away. Haven't tried Xenomai as a 
loadable module yet.

The issue seems to be somewhat erratic, as I was able to run the latency 
test for a couple of hours this morning without observing it. Now however, 
it seems to show up on every boot (I don't believe I changed anything, but 
it's possible).

For reference, I'm booting from a SDHC partitioned as such:
        1) vfat         256 MB <-- This partition holds the first stage 
bootloader, uboot, the device tree and the Kernel zImage
        2) ext4         768 MB <-- This partition is the rootfs (busybox + 
xenomai)

The kernel boot command line is:
        bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw 
earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";

And I'm using the uboot compilation shipped with the ZedBoard.

My ipipe port can be found here:
git://github.com/mfornero/ipipe.git

Best Regards,

Matthew Fornero

===================
Warning before hang
===================

mmc0: Timeout waiting for hardware interrupt.
------------[ cut here ]------------
WARNING: at drivers/mmc/host/sdhci.c:963 sdhci_send_command+0x28/0xbb8()
Modules linked in:
[<c0013ea8>] (unwind_backtrace+0x0/0x11c) from [<c0021524>] 
(warn_slowpath_common+0x4c/0x64)
[<c0021524>] (warn_slowpath_common+0x4c/0x64) from [<c0021554>] 
(warn_slowpath_null+0x18/0x1c)
[<c0021554>] (warn_slowpath_null+0x18/0x1c) from [<c0318150>] 
(sdhci_send_command+0x28/0xbb8)
[<c0318150>] (sdhci_send_command+0x28/0xbb8) from [<c0319574>] 
(sdhci_finish_data+0x2b4/0x2e8)
[<c0319574>] (sdhci_finish_data+0x2b4/0x2e8) from [<c0319608>] 
(sdhci_timeout_timer+0x60/0xac)
[<c0319608>] (sdhci_timeout_timer+0x60/0xac) from [<c002d0e8>] 
(run_timer_softirq+0x17c/0x234)
[<c002d0e8>] (run_timer_softirq+0x17c/0x234) from [<c00279dc>] 
(__do_softirq+0xb4/0x160)
[<c00279dc>] (__do_softirq+0xb4/0x160) from [<c0027ee4>] 
(irq_exit+0x48/0xa0)
[<c0027ee4>] (irq_exit+0x48/0xa0) from [<c000edd0>] (handle_IRQ+0x8c/0xd0)
[<c000edd0>] (handle_IRQ+0x8c/0xd0) from [<c0067ca4>] 
(__ipipe_do_sync_stage+0x1c8/0x214)
[<c0067ca4>] (__ipipe_do_sync_stage+0x1c8/0x214) from [<c000840c>] 
(__ipipe_grab_irq+0x70/0x88)
[<c000840c>] (__ipipe_grab_irq+0x70/0x88) from [<c00085bc>] 
(gic_handle_irq+0x38/0x5c)
Exception stack(0xde867f90 to 0xde867fd8)
7f80:                                     c000f0ec c001bdc8 60000013 
c000e000
7fa0: 00000000 00543000 00000001 00000000 1e85c06a 00000015 10c0387d 
c05a6b64
7fc0: 0000406a 413fc090 00000000 00000000 00000000 de867fe8
[<c00085bc>] (gic_handle_irq+0x38/0x5c) from [<c000e000>] 
(__irq_svc+0x40/0x6c)
Exception stack(0xde867fa0 to 0xde867fe8)
7fa0: 00000000 00543000 00000001 00000000 1e85c06a 00000015 10c0387d 
c05a6b64
7fc0: 0000406a 413fc090 00000000 00000000 00000000 de867fe8 c000f0ec 
c001bdc8
7fe0: 60000013 ffffffff
[<c000e000>] (__irq_svc+0x40/0x6c) from [<c001bdc8>] 
(cpu_v7_do_idle+0x8/0xc)
---[ end trace 321451b5cef4ef74 ]---


===================
Software Versions
===================
Xenomai: git://git.xenomai.org/xenomai-head.git
                commit c6a53047d1ba3182d8d93d892adf80efbb02932c
                Author: Jan Kiszka <jan.kiszka@siemens.com>
                Date:   Fri Jan 18 19:01:04 2013 +0100

Ipipe: git://git.denx.de/ipipe.git [The commit I rebased the xilinx work 
against]
        commit 1048e16bca4d22f7f14adfcc9ea5103d774d8595
        Author: Jan Kiszka <jan.kiszka@siemens.com>
        Date:   Fri Jan 18 16:38:00 2013 +0100

===================
Boot Log
===================

Xilinx First Stage Boot Loader
Release 14.3 Jan  4 2013-14:54:20
Devcfg driver initialized
Silicon Version 1.0
Boot mode is SD
SD Init Done
Flash BaseAddress E0100000
Reboot status register 0x60000000
ImageStartAddress = 00000000
PartitionNumber = 00000000
flash read base addr E0100000, image base 0
FSBL main: Skip partition
Reboot status register 0x61000000
ImageStartAddress = 00000000
PartitionNumber = 00000001
flash read base addr E0100000, image base 0
Reset USB...
SUCCESSFUL_HANDOFF
  FSBLStatus = 0x1


U-Boot 2012.04.01 (Jan 07 2013 - 13:42:00)

DRAM:  512 MiB
WARNING: Caches not enabled
MMC:   SDHCI: 0
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   zynq_gem
Hit any key to stop autoboot:  0
Copying Linux from SD to RAM...
Device: SDHCI
Manufacturer ID: 1b
OEM: 534d
Name: 00000
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 7.6 GiB
Bus Width: 4-bit
reading zImage

2992664 bytes read
reading devicetree.dtb

9652 bytes read

## Starting application at 0x00008000 ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.5.7-14.3-build2-00291-gd1b9d48-dirty 
(mfornero@hwbuild.andt.local) (gcc version 4.6.1 (Sourcery CodeBench Lite 
2011.09-70) ) #1 SMP PREEMPT Mon Jan 21 18:34:31 EST 2013
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZED
bootconsole [earlycon0] enabled
cma: CMA: reserved 16 MiB at 1f000000
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 9 pages/cpu @c0a8b000 s13248 r8192 d15424 u36864
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 
129920
Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw 
earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 496564k/496564k available, 27724k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc052352c   (5230 kB)
      .init : 0xc0524000 - 0xc05543c0   ( 193 kB)
      .data : 0xc0556000 - 0xc05a6720   ( 322 kB)
       .bss : 0xc05a6744 - 0xc0602284   ( 367 kB)
Preemptible hierarchical RCU implementation.
        Dump stacks of tasks blocking RCU-preempt GP.
NR_IRQS:512
Zynq clock init
xlnx,ps7-ttc-1.00.a #0 at 0xe0800000, irq=43
I-pipe, 333.333 MHz clocksource
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 
4294967286ms
Interrupt pipeline (release #2)
Console: colour dummy device 80x30
Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
I-pipe, 333.333 MHz timer
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters 
available
Setting up static identity map for 0x3d3080 - 0x3d30b4
L310 cache controller enabled
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72360000, Cache size: 524288 
B
Map SLCR registers
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
I-pipe, 333.333 MHz timer
Brought up 2 CPUs
SMP: Total of 2 processors activated (2664.03 BogoMIPS).
devtmpfs: initialized
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
xgpiops e000a000.ps7-gpio: gpio at 0xe000a000 mapped to 0xe0808000
registering platform device 'pl330' id 0
registering platform device 'arm-pmu' id 0
registering platform device 'zynq-dvfs' id 0
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint 
registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
xslcr xslcr.0: at 0xF8000000 mapped to 0xF8000000
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Linux video capture interface: v2.00
Switching to clocksource ipipe_tsc
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 5, 196608 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
pl330 dev 0 probe success
I-pipe: head domain Xenomai registered.
Xenomai: scheduling class idle registered.
Xenomai: scheduling class rt registered.
Xenomai: real-time nucleus v2.6.2 (Day At The Beach) loaded.
Xenomai: debug mode enabled.
Xenomai: starting native API services.
Xenomai: starting POSIX services.
Xenomai: starting RTDM services.
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
msgmni has been set to 1001
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
e0001¬Ë½±[ttyPS0] enabled, bootconsole disabled
console [ttyPS0] enabled, bootconsole disabled
xdevcfg f8007000.ps7-dev-cfg: ioremap f8007000 to e08a2000 with size 1000
brd: module loaded
loop: module loaded
xqspips e000d000.ps7-qspi: master is unqueued, this is deprecated
xqspips e000d000.ps7-qspi: at 0xE000D000 mapped to 0xE08A4000, irq=51
XEMACPS mii bus: probed
xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller
xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1
xusbps-ehci xusbps-ehci.0: irq 53, io mem 0x00000000
xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
Xilinx PS USB Device Controller driver (Apr 01, 2011)
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
gspca_main: v2.14.0 registered
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: Invalid maximum block size, assuming 512 bytes
mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP: cubic registered
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Registering SWP/SWPB emulation handler
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed SDHC card at address 0001
mmcblk0: mmc0:0001 00000 7.60 GiB
 mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: 
(null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing init memory: 192K
Starting rcS...
++ Mounting filesystem
++ Setting up mdev
++ Starting network
++ Starting telnet daemon
++ Starting http daemon
++ Starting ftp daemon
++ Starting dropbear (ssh) daemon
rcS Complete
xemacps e000b000.ps7-ethernet: Set clk to 124999998 Hz
xemacps e000b000.ps7-ethernet: link up (1000/FULL)
mmc0: Timeout waiting for hardware interrupt.
------------[ cut here ]------------
WARNING: at drivers/mmc/host/sdhci.c:963 sdhci_send_command+0x28/0xbb8()
Modules linked in:
[<c0013ea8>] (unwind_backtrace+0x0/0x11c) from [<c0021524>] 
(warn_slowpath_common+0x4c/0x64)
[<c0021524>] (warn_slowpath_common+0x4c/0x64) from [<c0021554>] 
(warn_slowpath_null+0x18/0x1c)
[<c0021554>] (warn_slowpath_null+0x18/0x1c) from [<c0318150>] 
(sdhci_send_command+0x28/0xbb8)
[<c0318150>] (sdhci_send_command+0x28/0xbb8) from [<c0319574>] 
(sdhci_finish_data+0x2b4/0x2e8)
[<c0319574>] (sdhci_finish_data+0x2b4/0x2e8) from [<c0319608>] 
(sdhci_timeout_timer+0x60/0xac)
[<c0319608>] (sdhci_timeout_timer+0x60/0xac) from [<c002d0e8>] 
(run_timer_softirq+0x17c/0x234)
[<c002d0e8>] (run_timer_softirq+0x17c/0x234) from [<c00279dc>] 
(__do_softirq+0xb4/0x160)
[<c00279dc>] (__do_softirq+0xb4/0x160) from [<c0027ee4>] 
(irq_exit+0x48/0xa0)
[<c0027ee4>] (irq_exit+0x48/0xa0) from [<c000edd0>] (handle_IRQ+0x8c/0xd0)
[<c000edd0>] (handle_IRQ+0x8c/0xd0) from [<c0067ca4>] 
(__ipipe_do_sync_stage+0x1c8/0x214)
[<c0067ca4>] (__ipipe_do_sync_stage+0x1c8/0x214) from [<c000840c>] 
(__ipipe_grab_irq+0x70/0x88)
[<c000840c>] (__ipipe_grab_irq+0x70/0x88) from [<c00085bc>] 
(gic_handle_irq+0x38/0x5c)
Exception stack(0xde867f90 to 0xde867fd8)
7f80:                                     c000f0ec c001bdc8 60000013 
c000e000
7fa0: 00000000 00543000 00000001 00000000 1e85c06a 00000015 10c0387d 
c05a6b64
7fc0: 0000406a 413fc090 00000000 00000000 00000000 de867fe8
[<c00085bc>] (gic_handle_irq+0x38/0x5c) from [<c000e000>] 
(__irq_svc+0x40/0x6c)
Exception stack(0xde867fa0 to 0xde867fe8)
7fa0: 00000000 00543000 00000001 00000000 1e85c06a 00000015 10c0387d 
c05a6b64
7fc0: 0000406a 413fc090 00000000 00000000 00000000 de867fe8 c000f0ec 
c001bdc8
7fe0: 60000013 ffffffff
[<c000e000>] (__irq_svc+0x40/0x6c) from [<c001bdc8>] 
(cpu_v7_do_idle+0x8/0xc)
---[ end trace 321451b5cef4ef74 ]---
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmcblk0: error -110 sending status command, retrying

===================
Kernel Config
===================
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 3.5.7-14.3-build2 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_MIGHT_HAVE_PCI=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_GENERIC_LOCKBREAK=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ARCH_HAS_CPUFREQ=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_VECTORS_BASE=0xffff0000
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
CONFIG_PHYS_OFFSET=0x0
CONFIG_GENERIC_BUG=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE="-xeno-2.6"
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_DEBUG=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_KTIME_SCALAR=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y

#
# RCU Subsystem
#
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
# CONFIG_NAMESPACES is not set
# CONFIG_SCHED_AUTOGROUP is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_COMPAT_BRK=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
CONFIG_UNINLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y

#
# Real-time sub-system
#
CONFIG_XENOMAI=y
CONFIG_XENO_GENERIC_STACKPOOL=y
CONFIG_XENO_FASTSYNCH_DEP=y
CONFIG_XENO_FASTSYNCH=y
CONFIG_XENO_OPT_NUCLEUS=y
CONFIG_XENO_OPT_PERVASIVE=y
# CONFIG_XENO_OPT_PRIOCPL is not set
CONFIG_XENO_OPT_PIPELINE_HEAD=y
# CONFIG_XENO_OPT_SCHED_CLASSES is not set
CONFIG_XENO_OPT_PIPE=y
CONFIG_XENO_OPT_VFILE=y
CONFIG_XENO_OPT_PIPE_NRDEV=32
CONFIG_XENO_OPT_REGISTRY_NRSLOTS=512
CONFIG_XENO_OPT_SYS_HEAPSZ=256
CONFIG_XENO_OPT_SYS_STACKPOOLSZ=128
CONFIG_XENO_OPT_SEM_HEAPSZ=12
CONFIG_XENO_OPT_GLOBAL_SEM_HEAPSZ=12
CONFIG_XENO_OPT_STATS=y
CONFIG_XENO_OPT_DEBUG=y
# CONFIG_XENO_OPT_DEBUG_NUCLEUS is not set
CONFIG_XENO_OPT_DEBUG_XNLOCK=y
# CONFIG_XENO_OPT_DEBUG_QUEUES is not set
# CONFIG_XENO_OPT_DEBUG_REGISTRY is not set
# CONFIG_XENO_OPT_DEBUG_TIMERS is not set
CONFIG_XENO_OPT_DEBUG_SYNCH_RELAX=y
CONFIG_XENO_OPT_WATCHDOG=y
CONFIG_XENO_OPT_WATCHDOG_TIMEOUT=4
# CONFIG_XENO_OPT_SHIRQ is not set
CONFIG_XENO_OPT_SELECT=y
CONFIG_XENO_OPT_HOSTRT=y

#
# Timing
#
# CONFIG_XENO_OPT_TIMING_PERIODIC is not set
CONFIG_XENO_OPT_TIMING_VIRTICK=1000
CONFIG_XENO_OPT_TIMING_SCHEDLAT=0

#
# Scalability
#
# CONFIG_XENO_OPT_SCALABLE_SCHED is not set
CONFIG_XENO_OPT_TIMER_LIST=y
# CONFIG_XENO_OPT_TIMER_HEAP is not set
# CONFIG_XENO_OPT_TIMER_WHEEL is not set

#
# Machine
#
CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH=y
CONFIG_IPIPE_WANT_ACTIVE_MM=y
CONFIG_SELECT_HW_UNLOCKED_SWITCH_ON_SMP=y
CONFIG_XENO_HW_FPU=y
CONFIG_XENO_HW_UNLOCKED_SWITCH=y

#
# Interfaces
#
CONFIG_XENO_SKIN_NATIVE=y
CONFIG_XENO_OPT_NATIVE_PERIOD=0
CONFIG_XENO_OPT_NATIVE_PIPE=y
CONFIG_XENO_OPT_NATIVE_PIPE_BUFSZ=1024
CONFIG_XENO_OPT_NATIVE_SEM=y
CONFIG_XENO_OPT_NATIVE_EVENT=y
CONFIG_XENO_OPT_NATIVE_MUTEX=y
CONFIG_XENO_OPT_NATIVE_COND=y
CONFIG_XENO_OPT_NATIVE_QUEUE=y
CONFIG_XENO_OPT_NATIVE_BUFFER=y
CONFIG_XENO_OPT_NATIVE_HEAP=y
CONFIG_XENO_OPT_NATIVE_ALARM=y
CONFIG_XENO_OPT_NATIVE_MPS=y
# CONFIG_XENO_OPT_NATIVE_INTR is not set
CONFIG_XENO_OPT_DEBUG_NATIVE=y
CONFIG_XENO_SKIN_POSIX=y
CONFIG_XENO_OPT_POSIX_PERIOD=0
# CONFIG_XENO_OPT_POSIX_SHM is not set
# CONFIG_XENO_OPT_POSIX_INTR is not set
CONFIG_XENO_OPT_POSIX_SELECT=y
CONFIG_XENO_OPT_DEBUG_POSIX=y
# CONFIG_XENO_SKIN_PSOS is not set
# CONFIG_XENO_SKIN_UITRON is not set
# CONFIG_XENO_SKIN_VRTX is not set
# CONFIG_XENO_SKIN_VXWORKS is not set
# CONFIG_XENO_OPT_NOWARN_DEPRECATED is not set
CONFIG_XENO_SKIN_RTDM=y
CONFIG_XENO_OPT_RTDM_PERIOD=0
CONFIG_XENO_OPT_RTDM_FILDES=128
CONFIG_XENO_OPT_RTDM_SELECT=y
# CONFIG_XENO_OPT_DEBUG_RTDM is not set
CONFIG_XENO_OPT_DEBUG_RTDM_APPL=y

#
# Drivers
#

#
# Serial drivers
#
# CONFIG_XENO_DRIVERS_16550A is not set

#
# Testing drivers
#
CONFIG_XENO_DRIVERS_TIMERBENCH=y
# CONFIG_XENO_DRIVERS_KLATENCY is not set
# CONFIG_XENO_DRIVERS_IRQBENCH is not set
CONFIG_XENO_DRIVERS_SWITCHTEST=y
# CONFIG_XENO_DRIVERS_RTDMTEST is not set

#
# CAN drivers
#
# CONFIG_XENO_DRIVERS_CAN is not set

#
# ANALOGY drivers
#
# CONFIG_XENO_DRIVERS_ANALOGY is not set

#
# Real-time IPC drivers
#
# CONFIG_XENO_DRIVERS_RTIPC is not set
# CONFIG_FREEZER is not set

#
# System Type
#
CONFIG_MMU=y
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_VEXPRESS is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCMRING is not set
# CONFIG_ARCH_HIGHBANK is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CNS3XXX is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_PRIMA2 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_MXS is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_TEGRA is not set
# CONFIG_ARCH_PICOXCELL is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_SHMOBILE is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_S5P64X0 is not set
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_PLAT_SPEAR is not set
# CONFIG_ARCH_VT8500 is not set
CONFIG_ARCH_ZYNQ=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set

#
# Xilinx Specific Options
#
CONFIG_ZYNQ_EARLY_UART1=y
# CONFIG_ZYNQ_EARLY_UART_EP107 is not set
CONFIG_XILINX_FIXED_DEVTREE_ADDR=y
CONFIG_XILINX_L1_PREFETCH=y
CONFIG_XILINX_L2_PREFETCH=y
# CONFIG_XILINX_TEST is not set
# CONFIG_XILINX_AXIPCIE is not set
CONFIG_IPIPE_ARM_KUSER_TSC=y

#
# Processor Type
#
CONFIG_CPU_V7=y
CONFIG_CPU_32v6K=y
CONFIG_CPU_32v7=y
CONFIG_CPU_ABRT_EV7=y
CONFIG_CPU_PABRT_V7=y
CONFIG_CPU_CACHE_V7=y
CONFIG_CPU_CACHE_VIPT=y
CONFIG_CPU_COPY_V6=y
CONFIG_CPU_TLB_V7=y
CONFIG_CPU_HAS_ASID=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y

#
# Processor Features
#
# CONFIG_ARM_LPAE is not set
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set
CONFIG_SWP_EMULATE=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_OUTER_CACHE=y
CONFIG_OUTER_CACHE_SYNC=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_PL310=y
CONFIG_ARM_L1_CACHE_SHIFT_6=y
CONFIG_ARM_L1_CACHE_SHIFT=6
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_ARM_NR_BANKS=8
CONFIG_CPU_HAS_PMU=y
CONFIG_MULTI_IRQ_HANDLER=y
# CONFIG_ARM_ERRATA_430973 is not set
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
# CONFIG_ARM_ERRATA_742230 is not set
# CONFIG_ARM_ERRATA_742231 is not set
CONFIG_PL310_ERRATA_588369=y
# CONFIG_ARM_ERRATA_720789 is not set
CONFIG_PL310_ERRATA_727915=y
# CONFIG_ARM_ERRATA_743622 is not set
# CONFIG_ARM_ERRATA_751472 is not set
CONFIG_PL310_ERRATA_753970=y
# CONFIG_ARM_ERRATA_754322 is not set
# CONFIG_ARM_ERRATA_754327 is not set
# CONFIG_ARM_ERRATA_764369 is not set
CONFIG_PL310_ERRATA_769419=y
CONFIG_ARM_GIC=y
CONFIG_ICST=y

#
# Bus support
#
CONFIG_ARM_AMBA=y
CONFIG_ISA_DMA_API=y
# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set

#
# Kernel Features
#
CONFIG_HAVE_SMP=y
CONFIG_SMP=y
CONFIG_SMP_ON_UP=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_HAVE_ARM_SCU=y
# CONFIG_ARM_ARCH_TIMER is not set
CONFIG_HAVE_ARM_TWD=y
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_NR_CPUS=4
CONFIG_HOTPLUG_CPU=y
CONFIG_LOCAL_TIMERS=y
CONFIG_ARCH_NR_GPIO=0
CONFIG_IPIPE=y
CONFIG_IPIPE_CORE=y
CONFIG_IPIPE_CORE_APIREV=2
CONFIG_IPIPE_WANT_APIREV_2=y
CONFIG_IPIPE_TARGET_APIREV=2
CONFIG_IPIPE_LEGACY=y
CONFIG_IPIPE_HAVE_HOSTRT=y
CONFIG_IPIPE_DELAYED_ATOMICSW=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_HZ=100
# CONFIG_THUMB2_KERNEL is not set
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
CONFIG_HAVE_ARCH_PFN_VALID=y
CONFIG_HIGHMEM=y
# CONFIG_HIGHPTE is not set
CONFIG_HW_PERF_EVENTS=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
CONFIG_MIGRATION=y
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set

#
# Boot options
#
CONFIG_USE_OF=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
# CONFIG_ARM_APPENDED_DTB is not set
CONFIG_CMDLINE="console=ttyPS0,115200n8 root=/dev/ram rw 
initrd=0x00800000,16M earlyprintk 
mtdparts=physmap-flash.0:512K(nor-fsbl),512K(nor-u-boot),5M(nor-linux),9M(nor-user),1M(nor-scratch),-(nor-rootfs)"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_CMDLINE_EXTEND is not set
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
# CONFIG_AUTO_ZRELADDR is not set

#
# CPU Power Management
#

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_IDLE is not set

#
# Floating point emulation
#

#
# At least one emulation must be selected
#
CONFIG_VFP=y
CONFIG_VFPv3=y
CONFIG_NEON=y

#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Power management options
#
# CONFIG_SUSPEND is not set
CONFIG_PM_RUNTIME=y
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_APM_EMULATION is not set
CONFIG_ARCH_HAS_OPP=y
CONFIG_PM_OPP=y
CONFIG_PM_CLK=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ARM_CPU_SUSPEND is not set
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_UNIX=y
# CONFIG_UNIX_DIAG is not set
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_NET_IPIP=m
# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_INET_UDP_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=m
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
CONFIG_BQL=y
# CONFIG_BPF_JIT is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
# CONFIG_CFG80211 is not set
# CONFIG_LIB80211 is not set

#
# CFG80211 needs to be enabled for MAC80211
#
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
CONFIG_HAVE_BPF_JIT=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
# CONFIG_DMA_SHARED_BUFFER is not set
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set

#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=16
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
CONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set
# CONFIG_MTD_SWAP is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_DATAFLASH is not set
CONFIG_MTD_M25P80=y
# CONFIG_M25PXX_USE_FAST_READ is not set
# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_DOCG3 is not set
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_SM_COMMON is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_DOCG4 is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
CONFIG_MTD_NAND_XILINX_PS=y
# CONFIG_MTD_ONENAND is not set

#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
# CONFIG_MTD_UBI is not set
CONFIG_DTC=y
CONFIG_OF=y

#
# Device Tree and Open Firmware support
#
CONFIG_PROC_DEVICETREE=y
# CONFIG_OF_SELFTEST is not set
CONFIG_OF_FLATTREE=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_DEVICE=y
CONFIG_OF_I2C=y
CONFIG_OF_NET=y
CONFIG_OF_MDIO=y
CONFIG_OF_MTD=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_MG_DISK is not set
# CONFIG_BLK_DEV_RBD is not set

#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_AD525X_DPOT is not set
# CONFIG_ATMEL_PWM is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1780 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_BMP085_I2C is not set
# CONFIG_BMP085_SPI is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
CONFIG_SI570=y
# CONFIG_C2PORT is not set

#
# EEPROM support
#
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_EEPROM_93XX46 is not set
# CONFIG_IWMC3200TOP is not set

#
# Texas Instruments shared transport line discipline
#
# CONFIG_TI_ST is not set
# CONFIG_SENSORS_LIS3_SPI is not set
# CONFIG_SENSORS_LIS3_I2C is not set

#
# Altera FPGA firmware download module
#
# CONFIG_ALTERA_STAPL is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_LIBFC is not set
# CONFIG_LIBFCOE is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_TARGET_CORE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_MII is not set
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set

#
# CAIF transport drivers
#
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
# CONFIG_NET_CALXEDA_XGMAC is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CIRRUS=y
# CONFIG_CS89x0 is not set
# CONFIG_DM9000 is not set
# CONFIG_DNET is not set
CONFIG_NET_VENDOR_FARADAY=y
# CONFIG_FTMAC100 is not set
# CONFIG_FTGMAC100 is not set
CONFIG_NET_VENDOR_INTEL=y
CONFIG_NET_VENDOR_I825XX=y
# CONFIG_ZNET is not set
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8851 is not set
# CONFIG_KS8851_MLL is not set
CONFIG_NET_VENDOR_MICROCHIP=y
# CONFIG_ENC28J60 is not set
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NET_VENDOR_8390=y
# CONFIG_AX88796 is not set
# CONFIG_ETHOC is not set
CONFIG_NET_VENDOR_SEEQ=y
# CONFIG_SEEQ8005 is not set
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_SMC91X is not set
# CONFIG_SMC911X is not set
# CONFIG_SMSC911X is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
CONFIG_NET_VENDOR_XILINX=y
CONFIG_XILINX_PS_EMAC=y
# CONFIG_XILINX_PS_EMAC_HWTSTAMP is not set
CONFIG_PHYLIB=y

#
# MII PHY device drivers
#
# CONFIG_AMD_PHY is not set
CONFIG_MARVELL_PHY=y
# CONFIG_DAVICOM_PHY is not set
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
CONFIG_VITESSE_PHY=y
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_MICREL_PHY is not set
# CONFIG_FIXED_PHY is not set
CONFIG_MDIO_BITBANG=y
# CONFIG_MDIO_GPIO is not set
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MICREL_KS8995MA is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_IPHETH is not set
CONFIG_WLAN=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_HOSTAP is not set
# CONFIG_WL_TI is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_ISDN is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
CONFIG_INPUT_SPARSEKMAP=y
# CONFIG_INPUT_MATRIXKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=y

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_MOUSE_SYNAPTICS_USB is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_AMBAKMI is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
# CONFIG_DEVKMEM is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_AMBA_PL010 is not set
# CONFIG_SERIAL_AMBA_PL011 is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX3107 is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
# CONFIG_TTY_PRINTK is not set
# CONFIG_HVC_DCC is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
CONFIG_XILINX_DEVCFG=y
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y

#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX_PCA9541 is not set
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_HELPER_AUTO=y

#
# I2C Hardware Bus support
#

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_SIMTEC is not set
CONFIG_I2C_XILINX_PS=y
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y

#
# SPI Master Controller Drivers
#
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_OC_TINY is not set
# CONFIG_SPI_PL022 is not set
# CONFIG_SPI_PXA2XX_PCI is not set
# CONFIG_SPI_XILINX is not set
CONFIG_SPI_XILINX_PS_QSPI=y
CONFIG_SPI_XILINX_PS_SPI=y
# CONFIG_SPI_DESIGNWARE is not set

#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_HSI is not set

#
# PPS support
#
# CONFIG_PPS is not set

#
# PPS generators support
#

#
# PTP clock support
#

#
# Enable Device Drivers -> PPS to see the PTP clock options.
#
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y

#
# Memory mapped GPIO drivers:
#
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_EM is not set
# CONFIG_GPIO_PL061 is not set
# CONFIG_GPIO_XILINX is not set
CONFIG_GPIO_XILINX_PS=y

#
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_SX150X is not set
# CONFIG_GPIO_ADP5588 is not set

#
# PCI GPIO expanders:
#

#
# SPI GPIO expanders:
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_74X164 is not set

#
# AC97 GPIO expanders:
#

#
# MODULbus GPIO expanders:
#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_ARM_SP805_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
CONFIG_MPCORE_WATCHDOG=y
CONFIG_XILINX_PS_WATCHDOG=y
# CONFIG_MAX63XX_WATCHDOG is not set

#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_ASIC3 is not set
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_STMPE is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_S5M_CORE is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_MFD_MC13XXX_SPI is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y

#
# Multimedia core support
#
# CONFIG_MEDIA_CONTROLLER is not set
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_MEDIA=y

#
# Multimedia drivers
#
# CONFIG_RC_CORE is not set
# CONFIG_MEDIA_ATTACH is not set
CONFIG_MEDIA_TUNER=y
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
CONFIG_MEDIA_TUNER_SIMPLE=y
CONFIG_MEDIA_TUNER_TDA8290=y
CONFIG_MEDIA_TUNER_TDA827X=y
CONFIG_MEDIA_TUNER_TDA18271=y
CONFIG_MEDIA_TUNER_TDA9887=y
CONFIG_MEDIA_TUNER_TEA5761=y
CONFIG_MEDIA_TUNER_TEA5767=y
CONFIG_MEDIA_TUNER_MT20XX=y
CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_XC4000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEOBUF2_CORE=y
CONFIG_VIDEOBUF2_MEMOPS=y
CONFIG_VIDEOBUF2_VMALLOC=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set

#
# Encoders, decoders, sensors and other helper chips
#

#
# Audio decoders, processors and mixers
#
# CONFIG_VIDEO_TVAUDIO is not set
# CONFIG_VIDEO_TDA7432 is not set
# CONFIG_VIDEO_TDA9840 is not set
# CONFIG_VIDEO_TEA6415C is not set
# CONFIG_VIDEO_TEA6420 is not set
# CONFIG_VIDEO_MSP3400 is not set
# CONFIG_VIDEO_CS5345 is not set
# CONFIG_VIDEO_CS53L32A is not set
# CONFIG_VIDEO_TLV320AIC23B is not set
# CONFIG_VIDEO_WM8775 is not set
# CONFIG_VIDEO_WM8739 is not set
# CONFIG_VIDEO_VP27SMPX is not set

#
# RDS decoders
#
# CONFIG_VIDEO_SAA6588 is not set

#
# Video decoders
#
# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_ADV7183 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
# CONFIG_VIDEO_KS0127 is not set
# CONFIG_VIDEO_SAA7110 is not set
# CONFIG_VIDEO_SAA711X is not set
# CONFIG_VIDEO_SAA7191 is not set
# CONFIG_VIDEO_TVP514X is not set
# CONFIG_VIDEO_TVP5150 is not set
# CONFIG_VIDEO_TVP7002 is not set
# CONFIG_VIDEO_VPX3220 is not set

#
# Video and audio decoders
#
# CONFIG_VIDEO_SAA717X is not set
# CONFIG_VIDEO_CX25840 is not set

#
# MPEG video encoders
#
# CONFIG_VIDEO_CX2341X is not set

#
# Video encoders
#
# CONFIG_VIDEO_SAA7127 is not set
# CONFIG_VIDEO_SAA7185 is not set
# CONFIG_VIDEO_ADV7170 is not set
# CONFIG_VIDEO_ADV7175 is not set
# CONFIG_VIDEO_ADV7343 is not set
# CONFIG_VIDEO_AK881X is not set

#
# Camera sensor devices
#
# CONFIG_VIDEO_OV7670 is not set
# CONFIG_VIDEO_VS6624 is not set
# CONFIG_VIDEO_MT9V011 is not set
# CONFIG_VIDEO_TCM825X is not set
# CONFIG_VIDEO_SR030PC30 is not set

#
# Flash devices
#

#
# Video improvement chips
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set

#
# Miscelaneous helper chips
#
# CONFIG_VIDEO_THS7303 is not set
# CONFIG_VIDEO_M52790 is not set
# CONFIG_VIDEO_VIVI is not set
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_GSPCA=y
# CONFIG_USB_M5602 is not set
# CONFIG_USB_STV06XX is not set
# CONFIG_USB_GL860 is not set
# CONFIG_USB_GSPCA_BENQ is not set
# CONFIG_USB_GSPCA_CONEX is not set
# CONFIG_USB_GSPCA_CPIA1 is not set
# CONFIG_USB_GSPCA_ETOMS is not set
# CONFIG_USB_GSPCA_FINEPIX is not set
# CONFIG_USB_GSPCA_JEILINJ is not set
# CONFIG_USB_GSPCA_JL2005BCD is not set
# CONFIG_USB_GSPCA_KINECT is not set
# CONFIG_USB_GSPCA_KONICA is not set
# CONFIG_USB_GSPCA_MARS is not set
# CONFIG_USB_GSPCA_MR97310A is not set
# CONFIG_USB_GSPCA_NW80X is not set
# CONFIG_USB_GSPCA_OV519 is not set
# CONFIG_USB_GSPCA_OV534 is not set
# CONFIG_USB_GSPCA_OV534_9 is not set
# CONFIG_USB_GSPCA_PAC207 is not set
# CONFIG_USB_GSPCA_PAC7302 is not set
# CONFIG_USB_GSPCA_PAC7311 is not set
# CONFIG_USB_GSPCA_SE401 is not set
# CONFIG_USB_GSPCA_SN9C2028 is not set
# CONFIG_USB_GSPCA_SN9C20X is not set
# CONFIG_USB_GSPCA_SONIXB is not set
# CONFIG_USB_GSPCA_SONIXJ is not set
# CONFIG_USB_GSPCA_SPCA500 is not set
# CONFIG_USB_GSPCA_SPCA501 is not set
# CONFIG_USB_GSPCA_SPCA505 is not set
# CONFIG_USB_GSPCA_SPCA506 is not set
# CONFIG_USB_GSPCA_SPCA508 is not set
# CONFIG_USB_GSPCA_SPCA561 is not set
# CONFIG_USB_GSPCA_SPCA1528 is not set
# CONFIG_USB_GSPCA_SQ905 is not set
# CONFIG_USB_GSPCA_SQ905C is not set
# CONFIG_USB_GSPCA_SQ930X is not set
# CONFIG_USB_GSPCA_STK014 is not set
# CONFIG_USB_GSPCA_STV0680 is not set
# CONFIG_USB_GSPCA_SUNPLUS is not set
# CONFIG_USB_GSPCA_T613 is not set
# CONFIG_USB_GSPCA_TOPRO is not set
# CONFIG_USB_GSPCA_TV8532 is not set
# CONFIG_USB_GSPCA_VC032X is not set
# CONFIG_USB_GSPCA_VICAM is not set
# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
# CONFIG_USB_GSPCA_ZC3XX is not set
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_HDPVR is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_USBVISION is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_PWC is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_MEM2MEM_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set

#
# Graphics support
#
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_WMT_GE_ROPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set

#
# Frame buffer hardware drivers
#
# CONFIG_FB_ARMCLCD is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_XILINX is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_AUO_K190X is not set
CONFIG_FB_XYLON=y
# CONFIG_FB_XYLON_PLATFORM is not set
CONFIG_FB_XYLON_OF=y
# CONFIG_FB_XYLON_EXT_PIXCLK is not set
# CONFIG_FB_XYLON_ZYNQ_PS_PIXCLK is not set
CONFIG_FB_XYLON_ZC702_PIXCLK=y
# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Console display driver support
#
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO is not set
# CONFIG_SOUND is not set

#
# HID support
#
CONFIG_HID=y
# CONFIG_HIDRAW is not set
CONFIG_HID_GENERIC=y

#
# Special HID drivers
#
# CONFIG_HID_A4TECH is not set
# CONFIG_HID_ACRUX is not set
# CONFIG_HID_APPLE is not set
# CONFIG_HID_AUREAL is not set
# CONFIG_HID_BELKIN is not set
# CONFIG_HID_CHERRY is not set
# CONFIG_HID_CHICONY is not set
# CONFIG_HID_CYPRESS is not set
# CONFIG_HID_DRAGONRISE is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_EZKEY is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LOGITECH is not set
CONFIG_HID_MICROSOFT=y
# CONFIG_HID_MONTEREY is not set
# CONFIG_HID_MULTITOUCH is not set
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
# CONFIG_HID_PANTHERLORD is not set
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
# CONFIG_HID_SAMSUNG is not set
# CONFIG_HID_SONY is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_SUNPLUS is not set
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
# CONFIG_HID_TOPSEED is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set

#
# USB HID support
#
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB_ARCH_HAS_XHCI is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set

#
# Miscellaneous USB options
#
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
CONFIG_USB_XUSBPS_DR_OF=y
CONFIG_USB_EHCI_XUSBPS=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_RENESAS_USBHS is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#

#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
# CONFIG_USB_UAS is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set

#
# USB Physical Layer drivers
#
# CONFIG_USB_ISP1301 is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2

#
# USB Peripheral Controller
#
CONFIG_USB_GADGET_XUSBPS=y
CONFIG_XUSBPS_ERRATA_DT654401=y
CONFIG_USB_XUSBPS=y
# CONFIG_USB_FUSB300 is not set
# CONFIG_USB_R8A66597 is not set
# CONFIG_USB_GADGET_XILINX is not set
# CONFIG_USB_MV_UDC is not set
# CONFIG_USB_M66592 is not set
# CONFIG_USB_NET2272 is not set
# CONFIG_USB_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
CONFIG_USB_ZERO=m
# CONFIG_USB_ZERO_HNPTEST is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_G_NCM is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
# CONFIG_USB_MASS_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
# CONFIG_USB_G_WEBCAM is not set

#
# OTG and related infrastructure
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ULPI is not set
# CONFIG_NOP_USB_XCEIV is not set
CONFIG_USB_XUSBPS_OTG=y
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_CLKGATE is not set

#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_ARMMMCI is not set
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_XILINX_PS=y
# CONFIG_MMC_SDHCI_PXAV3 is not set
# CONFIG_MMC_SDHCI_PXAV2 is not set
# CONFIG_MMC_WBSD is not set
# CONFIG_MMC_DW is not set
# CONFIG_MMC_VUB300 is not set
# CONFIG_MMC_USHC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_X1205 is not set
CONFIG_RTC_DRV_PCF8563=y
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set

#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_M41T93 is not set
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
# CONFIG_RTC_DRV_PCF2123 is not set

#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_PL030 is not set
# CONFIG_RTC_DRV_PL031 is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
CONFIG_UIO=y
CONFIG_UIO_PDRV=y
CONFIG_UIO_PDRV_GENIRQ=y

#
# Virtio drivers
#
# CONFIG_VIRTIO_BALLOON is not set
# CONFIG_VIRTIO_MMIO is not set

#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y

#
# Common Clock Framework
#
CONFIG_COMMON_CLK_DEBUG=y

#
# Hardware Spinlock drivers
#
CONFIG_IOMMU_SUPPORT=y

#
# Remoteproc drivers (EXPERIMENTAL)
#

#
# Rpmsg drivers (EXPERIMENTAL)
#
# CONFIG_VIRT_DRIVERS is not set
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
# CONFIG_EXT4_FS_POSIX_ACL is not set
# CONFIG_EXT4_FS_SECURITY is not set
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
# CONFIG_DNOTIFY is not set
CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_SUMMARY=y
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_LOGFS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_PSTORE is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
# CONFIG_NLS_UTF8 is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
# CONFIG_IPIPE_DEBUG is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_LKDTM is not set
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
CONFIG_DYNAMIC_DEBUG=y
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
CONFIG_ARM_UNWIND=y
# CONFIG_DEBUG_USER is not set
CONFIG_DEBUG_LL=y
CONFIG_DEBUG_LL_UART_NONE=y
# CONFIG_DEBUG_ICEDCC is not set
# CONFIG_DEBUG_SEMIHOSTING is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_OC_ETM is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=m
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_USER is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_PCRYPT is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_TEST is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
# CONFIG_CRYPTO_CBC is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set

#
# Ciphers
#
CONFIG_CRYPTO_AES=m
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set

#
# Compression
#
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
CONFIG_CRYPTO_HW=y
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IO=y
# CONFIG_CRC_CCITT is not set
CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
# CONFIG_CRC8 is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
# CONFIG_XZ_DEC is not set
# CONFIG_XZ_DEC_BCJ is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_NLATTR=y
# CONFIG_AVERAGE is not set
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-22  0:00   ` mfornero
@ 2013-01-22  7:55     ` Gilles Chanteperdrix
  2013-01-23  0:27       ` mfornero
  0 siblings, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-22  7:55 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 01/22/2013 01:00 AM, mfornero@aanddtech.com wrote:

> The issue seems to be somewhat erratic, as I was able to run the latency 
> test for a couple of hours this morning without observing it. Now however, 
> it seems to show up on every boot (I don't believe I changed anything, but 
> it's possible).
> 
> For reference, I'm booting from a SDHC partitioned as such:
>         1) vfat         256 MB <-- This partition holds the first stage 
> bootloader, uboot, the device tree and the Kernel zImage
>         2) ext4         768 MB <-- This partition is the rootfs (busybox + 
> xenomai)
> 
> The kernel boot command line is:
>         bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw 
> earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";
> 
> And I'm using the uboot compilation shipped with the ZedBoard.
> 
> My ipipe port can be found here:
> git://github.com/mfornero/ipipe.git


At a quick glance, you are missing this change:
http://xenomai.org/index.php/I-pipe-core:ArmPorting#GPIOs_as_interrupt_sources

In drivers/gpio/gpio-xilinxps.c

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-22  7:55     ` Gilles Chanteperdrix
@ 2013-01-23  0:27       ` mfornero
  2013-01-23  2:00         ` Gilles Chanteperdrix
  0 siblings, 1 reply; 21+ messages in thread
From: mfornero @ 2013-01-23  0:27 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Xenomai

Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on 
01/22/2013 02:55:21 AM:

> From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
> To: mfornero@aanddtech.com, 
> Cc: Xenomai@xenomai.org
> Date: 01/22/2013 02:55 AM
> Subject: Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
> 
> On 01/22/2013 01:00 AM, mfornero@aanddtech.com wrote:
> 
> > The issue seems to be somewhat erratic, as I was able to run the 
latency 
> > test for a couple of hours this morning without observing it. Now 
however, 
> > it seems to show up on every boot (I don't believe I changed anything, 
but 
> > it's possible).
> > 
> > For reference, I'm booting from a SDHC partitioned as such:
> >         1) vfat         256 MB <-- This partition holds the first 
stage 
> > bootloader, uboot, the device tree and the Kernel zImage
> >         2) ext4         768 MB <-- This partition is the rootfs 
(busybox + 
> > xenomai)
> > 
> > The kernel boot command line is:
> >         bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw 
> > earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";
> > 
> > And I'm using the uboot compilation shipped with the ZedBoard.
> > 
> > My ipipe port can be found here:
> > git://github.com/mfornero/ipipe.git
> 
> 
> At a quick glance, you are missing this change:
> 
http://xenomai.org/index.php/I-pipe-core:ArmPorting#GPIOs_as_interrupt_sources

> 
> In drivers/gpio/gpio-xilinxps.c

Thanks Gilles. I fixed the irq handler as follows (pushed to github):

--- a/drivers/gpio/gpio-xilinxps.c
+++ b/drivers/gpio/gpio-xilinxps.c
@@ -422,7 +422,7 @@ void xgpiops_irqhandler(unsigned int irq, struct 
irq_desc *desc)
                        chip->irq_ack(&gpio_irq_desc->irq_data);
 
                        /* call the pin specific handler */
-                       generic_handle_irq(gpio_irq);
+                       ipipe_handle_demuxed_irq(gpio_irq);
                }
                /* shift to first virtual irq of next bank */
                gpio_irq = (int)irq_get_handler_data(irq) +


Unfortunately, this does not seem to have any effect on the issue. I did a 
couple more tests today, and found the following:

=========================================

If I change the kernel command line to turn on debug outputs:

bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk 
rootfstype=ext4 rootwait debug loglevel=7 devtmpfs.mount=1";

and I #define DEBUG in driver/mmc/host/sdhci.c, I get a printk whenever 
the sdhc interrupt occurs. It seems to (usually) occur for a few seconds 
shortly after boot, stop occurring for ~300 seconds, occur for a few 
seconds, and repeat. During this time I usually get the bug previously 
described.

=========================================

If I boot with Xenomai off (CONFIG_XENOMAI = n) but IPIPE still on 
(CONFIG_IPIPE = y), I get a warning at boot. Haven't looked into the root 
cause of this-- but maybe it's related?

mmc0: new high speed SDHC card at address b368
mmcblk0: mmc0:b368 F0F0F 3.71 GiB
 mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: 
(null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing init memory: 160K
------------[ cut here ]------------
WARNING: at arch/arm/mm/context.c:182 __new_context+0x40/0x118()
Modules linked in:
[<c0013ea8>] (unwind_backtrace+0x0/0x11c) from [<c0021444>] 
(warn_slowpath_common+0x4c/0x64)
[<c0021444>] (warn_slowpath_common+0x4c/0x64) from [<c0021474>] 
(warn_slowpath_null+0x18/0x1c)
[<c0021474>] (warn_slowpath_null+0x18/0x1c) from [<c001bae4>] 
(__new_context+0x40/0x118)
[<c001bae4>] (__new_context+0x40/0x118) from [<c0017830>] 
(__switch_mm_inner+0x100/0x138)
[<c0017830>] (__switch_mm_inner+0x100/0x138) from [<c00a6940>] 
(flush_old_exec+0x390/0x4c4)
[<c00a6940>] (flush_old_exec+0x390/0x4c4) from [<c00dc344>] 
(load_elf_binary+0x2c4/0x1160)
[<c00dc344>] (load_elf_binary+0x2c4/0x1160) from [<c00a58c4>] 
(search_binary_handler+0x80/0x284)
[<c00a58c4>] (search_binary_handler+0x80/0x284) from [<c00a7120>] 
(do_execve+0x268/0x370)
[<c00a7120>] (do_execve+0x268/0x370) from [<c00115bc>] 
(kernel_execve+0x38/0x7c)
[<c00115bc>] (kernel_execve+0x38/0x7c) from [<c034ea40>] 
(init_post+0x80/0xc4)
[<c034ea40>] (init_post+0x80/0xc4) from [<c0492970>] 
(kernel_init+0x180/0x1bc)
---[ end trace 6ca5fe09ac15b646 ]---
xemacps e000b000.eth: Set clk to 124999998 Hz
xemacps e000b000.eth: link up (1000/FULL)

=========================================

If I boot with Xenomai on (CONFIG_XENOMAI = y) and Nucleus as a module 
(CONFIG_XENO_OPT_NUCLEUS = m), the system boots without issue (not even a 
warning at boot), but the Nucleus module fails to compile with the 
following error:

[mfornero@hwbuild linux]$ make -j8 modules
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  Building modules, stage 2.
  MODPOST 22 modules
ERROR: "current_mm" [kernel/xenomai/nucleus/xeno_nucleus.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

=========================================

Stefan-- are you seeing anything like this on your port?

Best Regards,

Matthew Fornero

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-23  0:27       ` mfornero
@ 2013-01-23  2:00         ` Gilles Chanteperdrix
  2013-01-23  3:43           ` Matthew Fornero
  0 siblings, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-23  2:00 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 01/23/2013 01:27 AM, mfornero@aanddtech.com wrote:

> Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on
> 01/22/2013 02:55:21 AM:
> 
>> From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
>> To: mfornero@aanddtech.com,
>> Cc: Xenomai@xenomai.org
>> Date: 01/22/2013 02:55 AM
>> Subject: Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
>>
>> On 01/22/2013 01:00 AM, mfornero@aanddtech.com wrote:
>>
>> > The issue seems to be somewhat erratic, as I was able to run the
> latency
>> > test for a couple of hours this morning without observing it. Now
> however,
>> > it seems to show up on every boot (I don't believe I changed
> anything, but
>> > it's possible).
>> >
>> > For reference, I'm booting from a SDHC partitioned as such:
>> >         1) vfat         256 MB <-- This partition holds the first stage
>> > bootloader, uboot, the device tree and the Kernel zImage
>> >         2) ext4         768 MB <-- This partition is the rootfs
> (busybox +
>> > xenomai)
>> >
>> > The kernel boot command line is:
>> >         bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw
>> > earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";
>> >
>> > And I'm using the uboot compilation shipped with the ZedBoard.
>> >
>> > My ipipe port can be found here:
>> > git://github.com/mfornero/ipipe.git
>>
>>
>> At a quick glance, you are missing this change:
>>
> http://xenomai.org/index.php/I-pipe-core:ArmPorting#GPIOs_as_interrupt_sources
>>
>> In drivers/gpio/gpio-xilinxps.c
> 
> Thanks Gilles. I fixed the irq handler as follows (pushed to github):
> 
> --- a/drivers/gpio/gpio-xilinxps.c
> +++ b/drivers/gpio/gpio-xilinxps.c
> @@ -422,7 +422,7 @@ void xgpiops_irqhandler(unsigned int irq, struct
> irq_desc *desc)
>                         chip->irq_ack(&gpio_irq_desc->irq_data);
>  
>                         /* call the pin specific handler */
> -                       generic_handle_irq(gpio_irq);
> +                       ipipe_handle_demuxed_irq(gpio_irq);
>                 }
>                 /* shift to first virtual irq of next bank */
>                 gpio_irq = (int)irq_get_handler_data(irq) +
> 
> 
> Unfortunately, this does not seem to have any effect on the issue. I did
> a couple more tests today, and found the following:


Could you run cat /proc/interrupts on the running kernel? Are there not
other multiplexed gpios you should modify? Have you read the porting
guide and applied everything (the fact that you missed that point makes
me think that maybe you did not)? Have you tried enabling I-pipe debugs?
Other than that, you have to trace starting from __ipipe_grab_irq to
understand what happens. Debugging such kind of issues by proxy is a bit
hard.


> If I boot with Xenomai off (CONFIG_XENOMAI = n) but IPIPE still on
> (CONFIG_IPIPE = y), I get a warning at boot. Haven't looked into the
> root cause of this-- but maybe it's related?
> 
> mmc0: new high speed SDHC card at address b368
> mmcblk0: mmc0:b368 F0F0F 3.71 GiB
>  mmcblk0: p1 p2
> EXT4-fs (mmcblk0p2): recovery complete
> EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts:
> (null)
> VFS: Mounted root (ext4 filesystem) on device 179:2.
> devtmpfs: mounted
> Freeing init memory: 160K
> ------------[ cut here ]------------
> WARNING: at arch/arm/mm/context.c:182 __new_context+0x40/0x118()


Known issue, which I thought was fixed, but maybe not. Try this patch:

diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
index 3ae015f..79de5dc 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -167,11 +167,12 @@ static inline void set_mm_context(struct mm_struct
*mm, unsigned int asid)

 void __new_context(struct mm_struct *mm)
 {
-	int cpu = ipipe_processor_id();
 	unsigned long flags;
 	unsigned int asid;
+	int cpu;

 	asid_lock(flags);
+	cpu = ipipe_processor_id();
 #ifdef CONFIG_SMP
 	/*
 	 * Check the ASID again, in case the change was broadcast from



> If I boot with Xenomai on (CONFIG_XENOMAI = y) and Nucleus as a module
> (CONFIG_XENO_OPT_NUCLEUS = m), the system boots without issue (not even
> a warning at boot), but the Nucleus module fails to compile with the
> following error:
> 
> [mfornero@hwbuild linux]$ make -j8 modules
>   CHK     include/linux/version.h
>   CHK     include/generated/utsrelease.h
> make[1]: `include/generated/mach-types.h' is up to date.
>   CALL    scripts/checksyscalls.sh
>   Building modules, stage 2.
>   MODPOST 22 modules
> ERROR: "current_mm" [kernel/xenomai/nucleus/xeno_nucleus.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2


It simply means EXPORT_SYMBOL_GPL(current_mm) is missing.

-- 
                                                                Gilles.


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-23  2:00         ` Gilles Chanteperdrix
@ 2013-01-23  3:43           ` Matthew Fornero
  2013-01-23  7:02             ` Gilles Chanteperdrix
  0 siblings, 1 reply; 21+ messages in thread
From: Matthew Fornero @ 2013-01-23  3:43 UTC (permalink / raw)
  To: Xenomai; +Cc: mfornero

On Tue, Jan 22, 2013 at 9:00 PM, Gilles Chanteperdrix
<gilles.chanteperdrix@xenomai.org> wrote:
>
> On 01/23/2013 01:27 AM, mfornero@aanddtech.com wrote:
>
> > Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on
> > 01/22/2013 02:55:21 AM:
> >
> >> From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
> >> To: mfornero@aanddtech.com,
> >> Cc: Xenomai@xenomai.org
> >> Date: 01/22/2013 02:55 AM
> >> Subject: Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
> >>
> >> On 01/22/2013 01:00 AM, mfornero@aanddtech.com wrote:
> >>
> >> > The issue seems to be somewhat erratic, as I was able to run the
> > latency
> >> > test for a couple of hours this morning without observing it. Now
> > however,
> >> > it seems to show up on every boot (I don't believe I changed
> > anything, but
> >> > it's possible).
> >> >
> >> > For reference, I'm booting from a SDHC partitioned as such:
> >> >         1) vfat         256 MB <-- This partition holds the first stage
> >> > bootloader, uboot, the device tree and the Kernel zImage
> >> >         2) ext4         768 MB <-- This partition is the rootfs
> > (busybox +
> >> > xenomai)
> >> >
> >> > The kernel boot command line is:
> >> >         bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw
> >> > earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";
> >> >
> >> > And I'm using the uboot compilation shipped with the ZedBoard.
> >> >
> >> > My ipipe port can be found here:
> >> > git://github.com/mfornero/ipipe.git
> >>
> >>
> >> At a quick glance, you are missing this change:
> >>
> > http://xenomai.org/index.php/I-pipe-core:ArmPorting#GPIOs_as_interrupt_sources
> >>
> >> In drivers/gpio/gpio-xilinxps.c
> >
> > Thanks Gilles. I fixed the irq handler as follows (pushed to github):
> >
> > --- a/drivers/gpio/gpio-xilinxps.c
> > +++ b/drivers/gpio/gpio-xilinxps.c
> > @@ -422,7 +422,7 @@ void xgpiops_irqhandler(unsigned int irq, struct
> > irq_desc *desc)
> >                         chip->irq_ack(&gpio_irq_desc->irq_data);
> >
> >                         /* call the pin specific handler */
> > -                       generic_handle_irq(gpio_irq);
> > +                       ipipe_handle_demuxed_irq(gpio_irq);
> >                 }
> >                 /* shift to first virtual irq of next bank */
> >                 gpio_irq = (int)irq_get_handler_data(irq) +
> >
> >
> > Unfortunately, this does not seem to have any effect on the issue. I did
> > a couple more tests today, and found the following:
>
>
> Could you run cat /proc/interrupts on the running kernel? Are there not
> other multiplexed gpios you should modify? Have you read the porting
> guide and applied everything (the fact that you missed that point makes
> me think that maybe you did not)? Have you tried enabling I-pipe debugs?
> Other than that, you have to trace starting from __ipipe_grab_irq to
> understand what happens. Debugging such kind of issues by proxy is a bit
> hard.

I'll cat out the proc/interrupts when I get to the office tomorrow. I
did read the porting guide, but stupidly missed that function call. On
this dev kit, we're not initially planning to use GPIO from our code
(real time or otherwise), but of course they could be used by various
peripherals.

I'm somewhat new to arm (mostly worked on x86 until now), so please
excuse my ignorance-- would there be another irq chip or something I
need to multiplex in other driver files (other than the
gpio-xilinxps.c file)? Is there an existing platform I can reference
for this? Maybe some code in the board level file as well?

I'll try the remainder of the above debug steps as well. Unfortunately
our JTAG environment isn't totally stable, but I should be able to get
something going.

> > If I boot with Xenomai off (CONFIG_XENOMAI = n) but IPIPE still on
> > (CONFIG_IPIPE = y), I get a warning at boot. Haven't looked into the
> > root cause of this-- but maybe it's related?
> >
> > mmc0: new high speed SDHC card at address b368
> > mmcblk0: mmc0:b368 F0F0F 3.71 GiB
> >  mmcblk0: p1 p2
> > EXT4-fs (mmcblk0p2): recovery complete
> > EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts:
> > (null)
> > VFS: Mounted root (ext4 filesystem) on device 179:2.
> > devtmpfs: mounted
> > Freeing init memory: 160K
> > ------------[ cut here ]------------
> > WARNING: at arch/arm/mm/context.c:182 __new_context+0x40/0x118()
>
>
> Known issue, which I thought was fixed, but maybe not. Try this patch:
>
> diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
> index 3ae015f..79de5dc 100644
> --- a/arch/arm/mm/context.c
> +++ b/arch/arm/mm/context.c
> @@ -167,11 +167,12 @@ static inline void set_mm_context(struct mm_struct
> *mm, unsigned int asid)
>
>  void __new_context(struct mm_struct *mm)
>  {
> -       int cpu = ipipe_processor_id();
>         unsigned long flags;
>         unsigned int asid;
> +       int cpu;
>
>         asid_lock(flags);
> +       cpu = ipipe_processor_id();
>  #ifdef CONFIG_SMP
>         /*
>          * Check the ASID again, in case the change was broadcast from

Will try tomorrow and report if it resolves it.

>
> > If I boot with Xenomai on (CONFIG_XENOMAI = y) and Nucleus as a module
> > (CONFIG_XENO_OPT_NUCLEUS = m), the system boots without issue (not even
> > a warning at boot), but the Nucleus module fails to compile with the
> > following error:
> >
> > [mfornero@hwbuild linux]$ make -j8 modules
> >   CHK     include/linux/version.h
> >   CHK     include/generated/utsrelease.h
> > make[1]: `include/generated/mach-types.h' is up to date.
> >   CALL    scripts/checksyscalls.sh
> >   Building modules, stage 2.
> >   MODPOST 22 modules
> > ERROR: "current_mm" [kernel/xenomai/nucleus/xeno_nucleus.ko] undefined!
> > make[1]: *** [__modpost] Error 1
> > make: *** [modules] Error 2
>
>
> It simply means EXPORT_SYMBOL_GPL(current_mm) is missing.

So this export should go in something like arch/arm/include/asm/mmu_context.h?

Do I need to do anything special for the export given that it's
defined via "DECLARE_PER_CPU"?

Thanks for the help.

Best Regards,

Matthew Fornero


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-23  3:43           ` Matthew Fornero
@ 2013-01-23  7:02             ` Gilles Chanteperdrix
  2013-01-23 23:51               ` mfornero
       [not found]               ` <OFC84FDBBF.88E9186F-ON85257AFC.007B4CC3-85257AFC.008309FB@LocalDomain>
  0 siblings, 2 replies; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-23  7:02 UTC (permalink / raw)
  To: Matthew Fornero; +Cc: mfornero, Xenomai

On 01/23/2013 04:43 AM, Matthew Fornero wrote:

> I'll cat out the proc/interrupts when I get to the office tomorrow. I
> did read the porting guide, but stupidly missed that function call. On
> this dev kit, we're not initially planning to use GPIO from our code
> (real time or otherwise), but of course they could be used by various
> peripherals.
> 
> I'm somewhat new to arm (mostly worked on x86 until now), so please
> excuse my ignorance-- would there be another irq chip or something I
> need to multiplex in other driver files (other than the
> gpio-xilinxps.c file)? Is there an existing platform I can reference
> for this? Maybe some code in the board level file as well?


Each platform defines its own irqchips for multiplexed GPIOs. If you
want to track all invalid GPIO demuxers, you can enable ipipe debugging
and add ipipe_root_only() inside "generic_handle_irq".

> 
> I'll try the remainder of the above debug steps as well. Unfortunately
> our JTAG environment isn't totally stable, but I should be able to get
> something going.
> 
>>> If I boot with Xenomai off (CONFIG_XENOMAI = n) but IPIPE still on
>>> (CONFIG_IPIPE = y), I get a warning at boot. Haven't looked into the
>>> root cause of this-- but maybe it's related?
>>>
>>> mmc0: new high speed SDHC card at address b368
>>> mmcblk0: mmc0:b368 F0F0F 3.71 GiB
>>>  mmcblk0: p1 p2
>>> EXT4-fs (mmcblk0p2): recovery complete
>>> EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts:
>>> (null)
>>> VFS: Mounted root (ext4 filesystem) on device 179:2.
>>> devtmpfs: mounted
>>> Freeing init memory: 160K
>>> ------------[ cut here ]------------
>>> WARNING: at arch/arm/mm/context.c:182 __new_context+0x40/0x118()
>>
>>
>> Known issue, which I thought was fixed, but maybe not. Try this patch:
>>
>> diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
>> index 3ae015f..79de5dc 100644
>> --- a/arch/arm/mm/context.c
>> +++ b/arch/arm/mm/context.c
>> @@ -167,11 +167,12 @@ static inline void set_mm_context(struct mm_struct
>> *mm, unsigned int asid)
>>
>>  void __new_context(struct mm_struct *mm)
>>  {
>> -       int cpu = ipipe_processor_id();
>>         unsigned long flags;
>>         unsigned int asid;
>> +       int cpu;
>>
>>         asid_lock(flags);
>> +       cpu = ipipe_processor_id();
>>  #ifdef CONFIG_SMP
>>         /*
>>          * Check the ASID again, in case the change was broadcast from
> 
> Will try tomorrow and report if it resolves it.


Forget it, it is purely a problem due to CONFIG_XENOMAI=n and
CONFIG_IPIPE=y, in that case preemptible context switches do not get
selected, __new_context gets called with irqs off, which can not work
with CONFIG_IPIPE. The fix is to select IPIPE_WANT_PREEMPTIBLE_SWITCH
with CONFIG_SMP, I thought I did it, but it probably got lost.

> 
>>
>>> If I boot with Xenomai on (CONFIG_XENOMAI = y) and Nucleus as a module
>>> (CONFIG_XENO_OPT_NUCLEUS = m), the system boots without issue (not even
>>> a warning at boot), but the Nucleus module fails to compile with the
>>> following error:
>>>
>>> [mfornero@hwbuild linux]$ make -j8 modules
>>>   CHK     include/linux/version.h
>>>   CHK     include/generated/utsrelease.h
>>> make[1]: `include/generated/mach-types.h' is up to date.
>>>   CALL    scripts/checksyscalls.sh
>>>   Building modules, stage 2.
>>>   MODPOST 22 modules
>>> ERROR: "current_mm" [kernel/xenomai/nucleus/xeno_nucleus.ko] undefined!
>>> make[1]: *** [__modpost] Error 1
>>> make: *** [modules] Error 2
>>
>>
>> It simply means EXPORT_SYMBOL_GPL(current_mm) is missing.
> 
> So this export should go in something like arch/arm/include/asm/mmu_context.h?
> 
> Do I need to do anything special for the export given that it's
> defined via "DECLARE_PER_CPU"?


Right, you need to use EXPORT_PER_CPU_SYMBOL_GPL(current_mm).

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-23  7:02             ` Gilles Chanteperdrix
@ 2013-01-23 23:51               ` mfornero
  2013-01-24  9:03                 ` Gilles Chanteperdrix
       [not found]               ` <OFC84FDBBF.88E9186F-ON85257AFC.007B4CC3-85257AFC.008309FB@LocalDomain>
  1 sibling, 1 reply; 21+ messages in thread
From: mfornero @ 2013-01-23 23:51 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Xenomai

Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on 
01/23/2013 02:02:46 AM:

> From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
> To: Matthew Fornero <matthew.fornero@gmail.com>, 
> Cc: Xenomai@xenomai.org, mfornero@aanddtech.com
> Date: 01/23/2013 02:02 AM
> Subject: Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
> 
> On 01/23/2013 04:43 AM, Matthew Fornero wrote:
> 
> > I'll cat out the proc/interrupts when I get to the office tomorrow. I
> > did read the porting guide, but stupidly missed that function call. On
> > this dev kit, we're not initially planning to use GPIO from our code
> > (real time or otherwise), but of course they could be used by various
> > peripherals.
> > 
> > I'm somewhat new to arm (mostly worked on x86 until now), so please
> > excuse my ignorance-- would there be another irq chip or something I
> > need to multiplex in other driver files (other than the
> > gpio-xilinxps.c file)? Is there an existing platform I can reference
> > for this? Maybe some code in the board level file as well?

Here's /proc/interrupts on the running system (before xeno_nucleus module 
is loaded)
/ # cat /proc/interrupts
           CPU0       CPU1
 29:        429        161       GIC  twd
 40:          0          0       GIC  xdevcfg
 43:          8          0       GIC  xttcpss clockevent
 45:          0          0       GIC  pl330
 46:          0          0       GIC  pl330
 47:          0          0       GIC  pl330
 48:          0          0       GIC  pl330
 49:          0          0       GIC  pl330
 51:          0          0       GIC  e000d000.ps7-qspi
 53:          0          0       GIC  ehci_hcd:usb1
 54:        815          0       GIC  eth0
 56:        465          0       GIC  mmc0
 72:          0          0       GIC  pl330
 73:          0          0       GIC  pl330
 74:          0          0       GIC  pl330
 75:          0          0       GIC  pl330
 82:         43          0       GIC  xuartps
IPI0:          0          0  Timer broadcast interrupts
IPI1:       1425       1551  Rescheduling interrupts
IPI2:          0          0  Function call interrupts
IPI3:         50         49  Single function call interrupts
IPI4:          0          0  CPU stop interrupts
Err:          0

Things of note:
twd is the (per cpu) timer used by the ipipe
xttcpss is a triple timer counter within the SoC, which appears to only be 
used until the twd timer is setup-- this timer is *not* ported to the 
Ipipe, which I assumed was okay because the twd is used-- is this 
assumption correct?

Here's /proc/interrupts after xeno_nucleus is loaded:
~ # cat /proc/interrupts
           CPU0       CPU1
 29:        922        331       GIC  twd
 40:          0          0       GIC  xdevcfg
 43:          8          0       GIC  xttcpss clockevent
 45:          0          0       GIC  pl330
 46:          0          0       GIC  pl330
 47:          0          0       GIC  pl330
 48:          0          0       GIC  pl330
 49:          0          0       GIC  pl330
 51:          0          0       GIC  e000d000.ps7-qspi
 53:          0          0       GIC  ehci_hcd:usb1
 54:       2237          0       GIC  eth0
 56:        620          0       GIC  mmc0
 72:          0          0       GIC  pl330
 73:          0          0       GIC  pl330
 74:          0          0       GIC  pl330
 75:          0          0       GIC  pl330
 82:        268          0       GIC  xuartps
IPI0:          0          0  Timer broadcast interrupts
IPI1:       1519       1762  Rescheduling interrupts
IPI2:          0          0  Function call interrupts
IPI3:         50         49  Single function call interrupts
IPI4:          0          0  CPU stop interrupts
Err:          0

Here's /proc/xenomai

~ # cat /proc/xenomai/irq
IRQ         CPU0        CPU1
520:           0           0         [sync]
523:           0           1         [virtual]
526:           0           0         [virtual]

~ # cat /proc/xenomai/timer
status=off:setup=417:clock=181689455350:timerdev=local_timer:clockdev=ipipe_tsc

> 
> 
> Each platform defines its own irqchips for multiplexed GPIOs. If you
> want to track all invalid GPIO demuxers, you can enable ipipe debugging
> and add ipipe_root_only() inside "generic_handle_irq".

I tested this, and never triggered the debug code-- I assume this means no 
calls to generic_handle_irq were made in the head domain?

> 
> > 
> > I'll try the remainder of the above debug steps as well. Unfortunately
> > our JTAG environment isn't totally stable, but I should be able to get
> > something going.
> > 
> >>> If I boot with Xenomai off (CONFIG_XENOMAI = n) but IPIPE still on
> >>> (CONFIG_IPIPE = y), I get a warning at boot. Haven't looked into the
> >>> root cause of this-- but maybe it's related?
> >>>
> >>> mmc0: new high speed SDHC card at address b368
> >>> mmcblk0: mmc0:b368 F0F0F 3.71 GiB
> >>>  mmcblk0: p1 p2
> >>> EXT4-fs (mmcblk0p2): recovery complete
> >>> EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. 
Opts:
> >>> (null)
> >>> VFS: Mounted root (ext4 filesystem) on device 179:2.
> >>> devtmpfs: mounted
> >>> Freeing init memory: 160K
> >>> ------------[ cut here ]------------
> >>> WARNING: at arch/arm/mm/context.c:182 __new_context+0x40/0x118()
> >>
> >>
> >> Known issue, which I thought was fixed, but maybe not. Try this 
patch:
> >>
> >> diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
> >> index 3ae015f..79de5dc 100644
> >> --- a/arch/arm/mm/context.c
> >> +++ b/arch/arm/mm/context.c
> >> @@ -167,11 +167,12 @@ static inline void set_mm_context(struct 
mm_struct
> >> *mm, unsigned int asid)
> >>
> >>  void __new_context(struct mm_struct *mm)
> >>  {
> >> -       int cpu = ipipe_processor_id();
> >>         unsigned long flags;
> >>         unsigned int asid;
> >> +       int cpu;
> >>
> >>         asid_lock(flags);
> >> +       cpu = ipipe_processor_id();
> >>  #ifdef CONFIG_SMP
> >>         /*
> >>          * Check the ASID again, in case the change was broadcast 
from
> > 
> > Will try tomorrow and report if it resolves it.
> 
> 
> Forget it, it is purely a problem due to CONFIG_XENOMAI=n and
> CONFIG_IPIPE=y, in that case preemptible context switches do not get
> selected, __new_context gets called with irqs off, which can not work
> with CONFIG_IPIPE. The fix is to select IPIPE_WANT_PREEMPTIBLE_SWITCH
> with CONFIG_SMP, I thought I did it, but it probably got lost.
> 
> > 
> >>
> >>> If I boot with Xenomai on (CONFIG_XENOMAI = y) and Nucleus as a 
module
> >>> (CONFIG_XENO_OPT_NUCLEUS = m), the system boots without issue (not 
even
> >>> a warning at boot), but the Nucleus module fails to compile with the
> >>> following error:
> >>>
> >>> [mfornero@hwbuild linux]$ make -j8 modules
> >>>   CHK     include/linux/version.h
> >>>   CHK     include/generated/utsrelease.h
> >>> make[1]: `include/generated/mach-types.h' is up to date.
> >>>   CALL    scripts/checksyscalls.sh
> >>>   Building modules, stage 2.
> >>>   MODPOST 22 modules
> >>> ERROR: "current_mm" [kernel/xenomai/nucleus/xeno_nucleus.ko] 
undefined!
> >>> make[1]: *** [__modpost] Error 1
> >>> make: *** [modules] Error 2
> >>
> >>
> >> It simply means EXPORT_SYMBOL_GPL(current_mm) is missing.
> > 
> > So this export should go in something like arch/arm/include/asm/
> mmu_context.h?
> > 
> > Do I need to do anything special for the export given that it's
> > defined via "DECLARE_PER_CPU"?
> 
> 
> Right, you need to use EXPORT_PER_CPU_SYMBOL_GPL(current_mm).

Thanks-- this let me compile Xenomai as a module, which may help with 
debugging.

I found that the hang seems to occur when a skin is loaded, not nucleus. 
Something seems to happen at this point that prevents further SDHC 
interrupts.
It's not clear, but it also may have some effect on the UART (maybe all?) 
interrupt as well-- I observed a printk stop partway through a string as 
the nucleus module was loaded [note-- I am running through a serial 
console, and have MMC_DEBUG turned on] -- see timestamp 151.49

~ # insmod xeno_native.ko && watch -n 1 "dmesg | tail -n 40"
[  151.520000] Xenomai: starting native API services.

Every 1s: dmesg | tail -n 40                                1970-01-01 
00:02:31

[  151.470000] mmc0: req done (CMD18): 0: 00000900 00000000 00000000 
00000000
[  151.470000] mmc0:     131072 bytes transferred: 0
[  151.470000] mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000
[  151.480000] mmc0: starting CMD18 arg 000ec822 flags 000000b5
[  151.480000] mmc0:     blksz 512 blocks 256 flags 00000200 tsac 100 ms 
nsac 0
[  151.480000] mmc0:     CMD12 arg 00000000 flags 0000049d
[  151.480000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[  151.480000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002
[  151.480000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000003
[  151.480000] mmc0: req done (CMD18): 0: 00000900 00000000 00000000 
00000000
[  151.480000] mmc0:     131072 bytes transferred: 0
[  151.480000] mmc0:     (CMD12): 0: 00000b00 00000000 00000000 00000000
[  151.480000] mmc0: starting CMD18 arg 000ec922 flags 000000b5
[  151.480000] mmc0:     blksz 512 blocks 256 flags 00000200 tsac 100 ms 
nsac 0
[  151.480000] mmc0:     CMD12 arg 00000000 flags 0000049d
[  151.480000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[  151.490000] sdhci [sdhci_irq()]: *** mmc0 got [  164.980000] mmc0: 
Timeout waiting for hardware interrupt.
[  164.980000] ------------[ cut here ]------------
[  164.990000] WARNING: at drivers/mmc/host/sdhci.c:963 
sdhci_send_command+0x28/0xbb8()
[  164.990000] Modules linked in: xeno_native xeno_nucleus
[  165.000000] [<c001423c>] (unwind_backtrace+0x0/0x11c) from [<c0021c68>] 
(warn_slowpath_common+0x4c/0x64)
[  165.010000] [<c0021c68>] (warn_slowpath_common+0x4c/0x64) from 
[<c0021c98>] (warn_slowpath_null+0x18/0x1c)
[  165.020000] [<c0021c98>] (warn_slowpath_null+0x18/0x1c) from 
[<c0294f60>] (sdhci_send_command+0x28/0xbb8)
[  165.030000] [<c0294f60>] (sdhci_send_command+0x28/0xbb8) from 
[<c0296370>] (sdhci_finish_data+0x2b4/0x2e8)
[  165.040000] [<c0296370>] (sdhci_finish_data+0x2b4/0x2e8) from 
[<c0296404>] (sdhci_timeout_timer+0x60/0xb4)
[  165.050000] [<c0296404>] (sdhci_timeout_timer+0x60/0xb4) from 
[<c002d8ec>] (run_timer_softirq+0x17c/0x234)
[  165.060000] [<c002d8ec>] (run_timer_softirq+0x17c/0x234) from 
[<c0028194>] (__do_softirq+0xb8/0x164)
[  165.070000] [<c0028194>] (__do_softirq+0xb8/0x164) from [<c00286c4>] 
(irq_exit+0x4c/0xa8)
[  165.070000] [<c00286c4>] (irq_exit+0x4c/0xa8) from [<c000f0d0>] 
(handle_IRQ+0x8c/0xd0)
[  165.080000] [<c000f0d0>] (handle_IRQ+0x8c/0xd0) from [<c0069794>] 
(__ipipe_do_sync_stage+0x1dc/0x260)
[  165.090000] [<c0069794>] (__ipipe_do_sync_stage+0x1dc/0x260) from 
[<c00084b0>] (__ipipe_grab_irq+0xc0/0xe4)
[  165.100000] [<c00084b0>] (__ipipe_grab_irq+0xc0/0xe4) from [<c00086dc>] 
(gic_handle_irq+0x38/0x5c)
[  165.110000] Exception stack(0xde867f88 to 0xde867fd0)
[  165.110000] 7f80:                   c000f41c c001c428 60000013 c000e300 
c09cfbdc 00000000
[  165.120000] 7fa0: 00524000 00000000 c04abbdc 00000015 10c0387d c04fc624 
0000406a 413fc090
[  165.130000] 7fc0: 00000000 00000000 c04fc308 de867fe0
[  165.140000] [<c00086dc>] (gic_handle_irq+0x38/0x5c) from [<c000e300>] 
(__irq_svc+0x40/0x6c)
[  165.140000] Exception stack(0xde867f98 to 0xde867fe0)
[  165.150000] 7f80: c09cfbdc 00000000
[  165.160000] 7fa0: 00524000 00000000 c04abbdc 00000015 10c0387d c04fc624 
0000406a 413fc090
[  165.170000] 7fc0: 00000000 00000000 c04fc308 de867fe0 c000f41c c001c428 
60000013 ffffffff
[  165.170000] [<c000e300>] (__irq_svc+0x40/0x6c) from [<c001c428>] 
(cpu_v7_do_idle+0x8/0xc)
[  165.180000] ---[ end trace 393701ba28551f74 ]---


I started to look into tracing the above warning-- but it appears to be 
the symptom rather than the root problem. I believe it occurs because the 
sdhc timeout has expired but the sdhc->cmd has not been cleared yet 
(normally cleared by the sdhc irq). 

Unfortunately, I also observed that the behavior is somewhat erratic-- 
sometimes loading the skin causes no issues, others it seems to prevent 
the above mentioned interrupts. Maybe some sort of timing has to line up 
between the skin loading and another interrupt to cause the issue?


> 
> -- 
>                                                                 Gilles.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
       [not found]               ` <OFC84FDBBF.88E9186F-ON85257AFC.007B4CC3-85257AFC.008309FB@LocalDomain>
@ 2013-01-24  0:12                 ` mfornero
  0 siblings, 0 replies; 21+ messages in thread
From: mfornero @ 2013-01-24  0:12 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Xenomai

Matthew Fornero/AandDTech wrote on 01/23/2013 06:51:17 PM:

> Here's /proc/interrupts on the running system (before xeno_nucleus 
> module is loaded)
> / # cat /proc/interrupts
>            CPU0       CPU1
>  29:        429        161       GIC  twd
>  40:          0          0       GIC  xdevcfg
>  43:          8          0       GIC  xttcpss clockevent
>  45:          0          0       GIC  pl330
>  46:          0          0       GIC  pl330
>  47:          0          0       GIC  pl330
>  48:          0          0       GIC  pl330
>  49:          0          0       GIC  pl330
>  51:          0          0       GIC  e000d000.ps7-qspi
>  53:          0          0       GIC  ehci_hcd:usb1
>  54:        815          0       GIC  eth0
>  56:        465          0       GIC  mmc0
>  72:          0          0       GIC  pl330
>  73:          0          0       GIC  pl330
>  74:          0          0       GIC  pl330
>  75:          0          0       GIC  pl330
>  82:         43          0       GIC  xuartps
> IPI0:          0          0  Timer broadcast interrupts
> IPI1:       1425       1551  Rescheduling interrupts
> IPI2:          0          0  Function call interrupts
> IPI3:         50         49  Single function call interrupts
> IPI4:          0          0  CPU stop interrupts
> Err:          0
> 
> Things of note:
> twd is the (per cpu) timer used by the ipipe
> xttcpss is a triple timer counter within the SoC, which appears to 
> only be used until the twd timer is setup-- this timer is *not* 
> ported to the Ipipe, which I assumed was okay because the twd is 
> used-- is this assumption correct?

Looking over the iMX6 ipipe code, I'm guessing maybe I need to do the 
ipipe porting for the xttcpss timer? The iMX6 is a Cortex-A9 processor 
that uses the twd timer in SMP mode, but it looks like the mxc timer is 
also registered with ipipe regardless of SMP mode.

Best Regards,

Matthew Fornero

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-23 23:51               ` mfornero
@ 2013-01-24  9:03                 ` Gilles Chanteperdrix
  2013-01-24 23:57                   ` mfornero
  0 siblings, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-24  9:03 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 01/24/2013 12:51 AM, mfornero@aanddtech.com wrote:>

> Things of note:
> twd is the (per cpu) timer used by the ipipe
> xttcpss is a triple timer counter within the SoC, which appears to only
> be used until the twd timer is setup-- this timer is *not* ported to the
> Ipipe, which I assumed was okay because the twd is used-- is this
> assumption correct?


You need to register this timer with the I-pipe if not compiling for
SMP, as in this case, Linux does not start the TWD.

>> Each platform defines its own irqchips for multiplexed GPIOs. If you
>> want to track all invalid GPIO demuxers, you can enable ipipe debugging
>> and add ipipe_root_only() inside "generic_handle_irq".
> 
> I tested this, and never triggered the debug code-- I assume this means
> no calls to generic_handle_irq were made in the head domain?


Indeed, as /proc/interrupts show, you are not using any GPIO multiplexed
interrupt.

>> Right, you need to use EXPORT_PER_CPU_SYMBOL_GPL(current_mm).
> 
> Thanks-- this let me compile Xenomai as a module, which may help with
> debugging.
> 
> I found that the hang seems to occur when a skin is loaded, not nucleus.
> Something seems to happen at this point that prevents further SDHC
> interrupts.
> It's not clear, but it also may have some effect on the UART (maybe
> all?) interrupt as well-- I observed a printk stop partway through a
> string as the nucleus module was loaded [note-- I am running through a
> serial console, and have MMC_DEBUG turned on] -- see timestamp 151.49


As said in the porting guide, it means that you have a timer issue. What
happens when you load a skin module is that Xenomai takes over the
control of the timer. So, that is where you should look. Do not assume
anything about the TWD code, it is not because it works on other
platforms that it works on this one.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-24  9:03                 ` Gilles Chanteperdrix
@ 2013-01-24 23:57                   ` mfornero
  2013-01-25  9:01                     ` Gilles Chanteperdrix
  0 siblings, 1 reply; 21+ messages in thread
From: mfornero @ 2013-01-24 23:57 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Xenomai

Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on 
01/24/2013 04:03:54 AM:
 
> As said in the porting guide, it means that you have a timer issue. What
> happens when you load a skin module is that Xenomai takes over the
> control of the timer. So, that is where you should look. Do not assume
> anything about the TWD code, it is not because it works on other
> platforms that it works on this one.

I modified the xttcpss code to support the ipipe_timer structure and got 
some interesting results:

If I simply register this device with ipipe, there is largely no 
difference-- this is because the twd timer has a higher rating, and is 
registered by the time xenomai loads

If I increase the rating of the xttcpss timer, the system is able to boot 
and run the xenomai sample applications
        CPU0 uses the xttcpss timer as it's timer
        CPU1 uses the twd timer as it's timer

        latency test is able to run on both cores (though CPU1 gets 
considerably better numbers-- likely because the twd timer runs at a much 
higher frequency)

This seems to indicate there is some problem on this platform with the twd 
code (maybe the sharing of the twd interrupt between linux and xenomai?).

Of note-- when both cores are using the twd (the still broken case), if I 
turn on CONFIG_IPIPE_DEBUG_INTERNAL and enable the __ipipe_serial_debug 
message in twd_hrtimer_debug, I see far more interrupts on CPU1 than on 
CPU0. Is this to be expected?

In general, do is there any advice for debugging where the twd_smp.c code 
is falling over on my platform?

Best Regards,

Matt Fornero

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-24 23:57                   ` mfornero
@ 2013-01-25  9:01                     ` Gilles Chanteperdrix
  0 siblings, 0 replies; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-25  9:01 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 01/25/2013 12:57 AM, mfornero@aanddtech.com wrote:

> Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on
> 01/24/2013 04:03:54 AM:
> 
>> As said in the porting guide, it means that you have a timer issue. What
>> happens when you load a skin module is that Xenomai takes over the
>> control of the timer. So, that is where you should look. Do not assume
>> anything about the TWD code, it is not because it works on other
>> platforms that it works on this one.
> 
> I modified the xttcpss code to support the ipipe_timer structure and got
> some interesting results:
> 
> If I simply register this device with ipipe, there is largely no
> difference-- this is because the twd timer has a higher rating, and is
> registered by the time xenomai loads
> 
> If I increase the rating of the xttcpss timer, the system is able to
> boot and run the xenomai sample applications
>         CPU0 uses the xttcpss timer as it's timer
>         CPU1 uses the twd timer as it's timer
> 
>         latency test is able to run on both cores (though CPU1 gets
> considerably better numbers-- likely because the twd timer runs at a
> much higher frequency)


I would say the difference is probably the timer programming latency.

> 
> This seems to indicate there is some problem on this platform with the
> twd code (maybe the sharing of the twd interrupt between linux and
> xenomai?).


The twd interrupt is not shared between linux and xenomai, only xenomai
sees it, the linux timer interrupt then become a sort of soft interrupt
triggered by Xenomai.

> 
> Of note-- when both cores are using the twd (the still broken case), if
> I turn on CONFIG_IPIPE_DEBUG_INTERNAL and enable the
> __ipipe_serial_debug message in twd_hrtimer_debug, I see far more
> interrupts on CPU1 than on CPU0. Is this to be expected?
> 
> In general, do is there any advice for debugging where the twd_smp.c
> code is falling over on my platform?


No, unfortunately there is no magic recipe, you have to add traces
around to understand what happens.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-01-14 10:27 ` Stefan Roese
  2013-01-22  0:00   ` mfornero
@ 2013-02-10 14:23   ` Gilles Chanteperdrix
  2013-02-13 17:57     ` mfornero
  1 sibling, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-02-10 14:23 UTC (permalink / raw)
  To: Stefan Roese; +Cc: mfornero, Xenomai

On 01/14/2013 11:27 AM, Stefan Roese wrote:

> Hi Matthew,
> 
> On 01/12/2013 06:21 PM, mfornero@aanddtech.com wrote:
>>    I'm looking for recommendations on how to best port ipipe support to a
>>    new ARM SoC. The SoC has started to show up in mainline, but many of
>>    the features haven't made it over yet. Xilinx maintains a git repo
>>    here:
>>
>>    git://git.xilinx.com/linux-xlnx.git
>>
>>    And it look like they've synced with mainline 3.6
>>
>>    The two approaches I've considered were either trying to port ipipe to
>>    stock 3.6 (or at least the generic and ARM bits) or trying to backport
>>    the Xilinx code to 3.5.3. I started with the later approach, but some
>>    changes to the common clock architecture between 3.5 and 3.6 make this
>>    somewhat difficult.
>>
>>    Any thoughts on which approach would be better?
> 
> I'm also working on supporting Zynq in I-pipe. My approach was to use
> the Xilinx 3.5.0 code version (git tag "xilinx-14.3-build2"). And port
> the I-pipe version from Gilles git repository to it. I still need to do
> some cleanup then I can send you the latest version.


Hi Stefan, Matthew,

I do not know if you managed to get the I-pipe working on Zynq. 
You may have missed it, but it may be very important for debugging the 
issues you encounter with the I-pipe port on Zynq, printk from primary 
domain in I-pipe patches for Linux 3.4 and 3.5 does not work. So, if 
you are debugging with printk, it may lead you to false conclusions. 
You should apply the following patch (it has been pushed in the 
for-core-3.5.7 branch of the ipipe-gch git):

diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 3b86167..f77ef11 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -440,7 +440,7 @@ void __ipipe_ipis_alloc(void)
 		return;
 
 	/* __ipipe_first_ipi is 0 here  */
-	ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI;
+	ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI + 1;
 
 	for (virq = IPIPE_IPI_BASE; virq < IPIPE_IPI_BASE + ipi_nr; virq++) {
 		_virq = ipipe_alloc_virq();



-- 
                                                                Gilles.


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-10 14:23   ` Gilles Chanteperdrix
@ 2013-02-13 17:57     ` mfornero
  2013-02-13 18:14       ` Stefan Roese
  2013-02-13 19:44       ` Gilles Chanteperdrix
  0 siblings, 2 replies; 21+ messages in thread
From: mfornero @ 2013-02-13 17:57 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Xenomai

Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on 
02/10/2013 09:23:22 AM:
> Hi Stefan, Matthew,
> 
> I do not know if you managed to get the I-pipe working on Zynq. 
> You may have missed it, but it may be very important for debugging the 
> issues you encounter with the I-pipe port on Zynq, printk from primary 
> domain in I-pipe patches for Linux 3.4 and 3.5 does not work. So, if 
> you are debugging with printk, it may lead you to false conclusions. 
> You should apply the following patch (it has been pushed in the 
> for-core-3.5.7 branch of the ipipe-gch git):
> 
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> index 3b86167..f77ef11 100644
> --- a/arch/arm/kernel/smp.c
> +++ b/arch/arm/kernel/smp.c
> @@ -440,7 +440,7 @@ void __ipipe_ipis_alloc(void)
>        return;
> 
>     /* __ipipe_first_ipi is 0 here  */
> -   ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI;
> +   ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI + 1;
> 
>     for (virq = IPIPE_IPI_BASE; virq < IPIPE_IPI_BASE + ipi_nr; virq++) 
{
>        _virq = ipipe_alloc_virq();
> 

Hi All,

It seems that the issues I was having with using the twd as a clockevent 
were related to my defconfig.
Comparing mine with Stefan's revealed a few key differences, some of which 
were likely fatal. After making the following changes,
I am able to run using the twd for the clockevent instead of the xttcps:

CONFIG_NO_HZ=n
CONFIG_HOTPLUG_CPU=n
CONFIG_CPU_FREQ=n
CONFIG_MPCORE_WATCHDOG=n

CPU_FREQ should definitely not have been set, and HOTPLUG_CPU is not 
really useful. Not sure if the other two would have had an impact.

My changes, which include reducing the rating of the xttcps clockevent to 
below twd, adding support for xttcps as the tsc in non-SMP mode (based on 
Stefan's code),
Gilles's printk patch (above), and an updated defconfig with sane values 
can be found on github:

https://github.com/mfornero/ipipe

I'm building against the xilinx_zynq_adt_defconfig file included in the 
tree. Note that I'm using an older version of uboot, so I need to use the 
fixed device tree address which is why it's set like this in the 
defconfig.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-13 17:57     ` mfornero
@ 2013-02-13 18:14       ` Stefan Roese
  2013-02-13 18:38         ` mfornero
  2013-02-13 19:44       ` Gilles Chanteperdrix
  1 sibling, 1 reply; 21+ messages in thread
From: Stefan Roese @ 2013-02-13 18:14 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

Hi Matthew,

On 13.02.2013 18:57, mfornero@aanddtech.com wrote:
> It seems that the issues I was having with using the twd as a clockevent
> were related to my defconfig.
> Comparing mine with Stefan's revealed a few key differences, some of
> which were likely fatal. After making the following changes,
> I am able to run using the twd for the clockevent instead of the xttcps:
> 
> CONFIG_NO_HZ=n
> CONFIG_HOTPLUG_CPU=n
> CONFIG_CPU_FREQ=n
> CONFIG_MPCORE_WATCHDOG=n
> 
> CPU_FREQ should definitely not have been set, and HOTPLUG_CPU is not
> really useful. Not sure if the other two would have had an impact.
> 
> My changes, which include reducing the rating of the xttcps clockevent
> to below twd, adding support for xttcps as the tsc in non-SMP mode
> (based on Stefan's code),
> Gilles's printk patch (above), and an updated defconfig with sane values
> can be found on github:
> 
> https://github.com/mfornero/ipipe
> 
> I'm building against the xilinx_zynq_adt_defconfig file included in the
> tree. Note that I'm using an older version of uboot, so I need to use
> the fixed device tree address which is why it's set like this in the
> defconfig.

Thanks for this update. This solves the twd issue (boot hangup) which
seems to be related to a defconfig misconfiguration.

BTW: Did you also add the Xilinx GPIO driver changes to your git
repository I made to support GPIO interrupts? If not I'll send the
patches again to the list tomorrow.

Thanks,
Stefan





^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-13 18:14       ` Stefan Roese
@ 2013-02-13 18:38         ` mfornero
  2013-02-14  8:19           ` Stefan Roese
  0 siblings, 1 reply; 21+ messages in thread
From: mfornero @ 2013-02-13 18:38 UTC (permalink / raw)
  To: Stefan Roese; +Cc: Xenomai

Stefan Roese <stefan.roese@gmail.com> wrote on 02/13/2013 01:14:25 PM:

> Thanks for this update. This solves the twd issue (boot hangup) which
> seems to be related to a defconfig misconfiguration.
> 
> BTW: Did you also add the Xilinx GPIO driver changes to your git
> repository I made to support GPIO interrupts? If not I'll send the
> patches again to the list tomorrow.
> 
> Thanks,
> Stefan

Hi Stefan,

No, I didn't grab your GPIO changes-- just modified my defconfig to get 
rid of the twd issues.

-Matt

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-13 17:57     ` mfornero
  2013-02-13 18:14       ` Stefan Roese
@ 2013-02-13 19:44       ` Gilles Chanteperdrix
  2013-02-14 19:41         ` Gilles Chanteperdrix
  1 sibling, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-02-13 19:44 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 02/13/2013 06:57 PM, mfornero@aanddtech.com wrote:

> Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote on
> 02/10/2013 09:23:22 AM:
>> Hi Stefan, Matthew,
>>
>> I do not know if you managed to get the I-pipe working on Zynq.
>> You may have missed it, but it may be very important for debugging the
>> issues you encounter with the I-pipe port on Zynq, printk from primary
>> domain in I-pipe patches for Linux 3.4 and 3.5 does not work. So, if
>> you are debugging with printk, it may lead you to false conclusions.
>> You should apply the following patch (it has been pushed in the
>> for-core-3.5.7 branch of the ipipe-gch git):
>>
>> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
>> index 3b86167..f77ef11 100644
>> --- a/arch/arm/kernel/smp.c
>> +++ b/arch/arm/kernel/smp.c
>> @@ -440,7 +440,7 @@ void __ipipe_ipis_alloc(void)
>>        return;
>>  
>>     /* __ipipe_first_ipi is 0 here  */
>> -   ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI;
>> +   ipi_nr = IPI_IPIPE_FIRST + IPIPE_LAST_IPI + 1;
>>  
>>     for (virq = IPIPE_IPI_BASE; virq < IPIPE_IPI_BASE + ipi_nr; virq++) {
>>        _virq = ipipe_alloc_virq();
>>
> 
> Hi All,
> 
> It seems that the issues I was having with using the twd as a clockevent
> were related to my defconfig.
> Comparing mine with Stefan's revealed a few key differences, some of
> which were likely fatal. After making the following changes,
> I am able to run using the twd for the clockevent instead of the xttcps:
> 
> CONFIG_NO_HZ=n
> CONFIG_HOTPLUG_CPU=n


These two ones should be harmless

> CONFIG_CPU_FREQ=n


This one is definitely not harmless is you select another cpufreq
governor than "performance".

> CONFIG_MPCORE_WATCHDOG=n


I do not know about this one.
-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-13 18:38         ` mfornero
@ 2013-02-14  8:19           ` Stefan Roese
  0 siblings, 0 replies; 21+ messages in thread
From: Stefan Roese @ 2013-02-14  8:19 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 13.02.2013 19:38, mfornero@aanddtech.com wrote:
> Stefan Roese <stefan.roese@gmail.com> wrote on 02/13/2013 01:14:25 PM:
> 
>> Thanks for this update. This solves the twd issue (boot hangup) which
>> seems to be related to a defconfig misconfiguration.
>>
>> BTW: Did you also add the Xilinx GPIO driver changes to your git
>> repository I made to support GPIO interrupts? If not I'll send the
>> patches again to the list tomorrow.
>>
>> Thanks,
>> Stefan
> 
> Hi Stefan,
> 
> No, I didn't grab your GPIO changes-- just modified my defconfig to get
> rid of the twd issues.

Okay. Attached the GPIO driver changes for completeness. The first one
introduces IRQ domain support so that the interrupts can be selected via
DT and the 2nd patch adds the i-pipe irq supports.

Hope this helps.

Thanks,
Stefan




-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0013-gpio-zynq-Add-interrupt-domain-support-to-xilinxps-G.patch
Type: text/x-patch
Size: 5725 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20130214/799c41f2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0014-gpio-ipipe-Iron-Xilinx-Zynq-GPIO-interrupt-handler.patch
Type: text/x-patch
Size: 1264 bytes
Desc: not available
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20130214/799c41f2/attachment-0001.bin>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-13 19:44       ` Gilles Chanteperdrix
@ 2013-02-14 19:41         ` Gilles Chanteperdrix
  2013-02-14 19:42           ` Gilles Chanteperdrix
  0 siblings, 1 reply; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-02-14 19:41 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 02/13/2013 08:44 PM, Gilles Chanteperdrix wrote:

> On 02/13/2013 06:57 PM, mfornero@aanddtech.com wrote:
>> CONFIG_CPU_FREQ=n
> 
> 
> This one is definitely not harmless is you select another cpufreq
> governor than "performance".


I meant: This one is definitely harmless if you select another cpufreq
governor than performance.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq)
  2013-02-14 19:41         ` Gilles Chanteperdrix
@ 2013-02-14 19:42           ` Gilles Chanteperdrix
  0 siblings, 0 replies; 21+ messages in thread
From: Gilles Chanteperdrix @ 2013-02-14 19:42 UTC (permalink / raw)
  To: mfornero; +Cc: Xenomai

On 02/14/2013 08:41 PM, Gilles Chanteperdrix wrote:

> On 02/13/2013 08:44 PM, Gilles Chanteperdrix wrote:
> 
>> On 02/13/2013 06:57 PM, mfornero@aanddtech.com wrote:
>>> CONFIG_CPU_FREQ=n
>>
>>
>> This one is definitely not harmless is you select another cpufreq
>> governor than "performance".
> 
> 
> I meant: This one is definitely harmless if you select another cpufreq
> governor than performance.
> 

definitely NOT harmless.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-02-14 19:42 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-12 17:21 [Xenomai] Porting Ipipe to new ARM SoC (Xilinx Zynq) mfornero
2013-01-14 10:27 ` Stefan Roese
2013-01-22  0:00   ` mfornero
2013-01-22  7:55     ` Gilles Chanteperdrix
2013-01-23  0:27       ` mfornero
2013-01-23  2:00         ` Gilles Chanteperdrix
2013-01-23  3:43           ` Matthew Fornero
2013-01-23  7:02             ` Gilles Chanteperdrix
2013-01-23 23:51               ` mfornero
2013-01-24  9:03                 ` Gilles Chanteperdrix
2013-01-24 23:57                   ` mfornero
2013-01-25  9:01                     ` Gilles Chanteperdrix
     [not found]               ` <OFC84FDBBF.88E9186F-ON85257AFC.007B4CC3-85257AFC.008309FB@LocalDomain>
2013-01-24  0:12                 ` mfornero
2013-02-10 14:23   ` Gilles Chanteperdrix
2013-02-13 17:57     ` mfornero
2013-02-13 18:14       ` Stefan Roese
2013-02-13 18:38         ` mfornero
2013-02-14  8:19           ` Stefan Roese
2013-02-13 19:44       ` Gilles Chanteperdrix
2013-02-14 19:41         ` Gilles Chanteperdrix
2013-02-14 19:42           ` Gilles Chanteperdrix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.