2019-05-19 15:07:45 +03:00
# SPDX-License-Identifier: GPL-2.0-only
2013-01-17 06:53:51 +04:00
menu "Remoteproc drivers"
2011-12-14 15:01:59 +04:00
2011-10-20 18:52:46 +04:00
config REMOTEPROC
2019-08-30 09:43:12 +03:00
bool "Support for Remote Processor subsystem"
2012-09-13 22:03:58 +04:00
depends on HAS_DMA
2013-04-07 15:06:07 +04:00
select CRC32
2013-03-29 05:41:43 +04:00
select FW_LOADER
2012-09-30 12:25:34 +04:00
select VIRTIO
2018-01-06 03:04:17 +03:00
select WANT_DEV_COREDUMP
2016-12-19 12:22:50 +03:00
help
Support for remote processors (such as DSP coprocessors). These
are mainly used on embedded systems.
2011-10-20 20:53:35 +04:00
2016-10-18 12:39:08 +03:00
if REMOTEPROC
2020-07-29 20:40:00 +03:00
config REMOTEPROC_CDEV
bool "Remoteproc character device interface"
help
Say y here to have a character device interface for the remoteproc
framework. Userspace can boot/shutdown remote processors through
this interface.
It's safe to say N if you don't want to use this interface.
2017-08-17 10:15:26 +03:00
config IMX_REMOTEPROC
2021-03-06 14:24:23 +03:00
tristate "i.MX remoteproc support"
2019-06-04 02:46:27 +03:00
depends on ARCH_MXC
2021-06-10 06:15:30 +03:00
depends on HAVE_ARM_SMCCC
2021-03-31 15:27:09 +03:00
select MAILBOX
2017-08-17 10:15:26 +03:00
help
2021-03-06 14:24:23 +03:00
Say y here to support iMX's remote processors via the remote
processor framework.
2017-08-17 10:15:26 +03:00
It's safe to say N here.
2021-10-11 12:20:14 +03:00
config IMX_DSP_REMOTEPROC
tristate "i.MX DSP remoteproc support"
depends on ARCH_MXC
depends on HAVE_ARM_SMCCC
select MAILBOX
help
Say y here to support iMX's DSP remote processors via the remote
processor framework.
It's safe to say N here.
2020-05-15 13:43:39 +03:00
config INGENIC_VPU_RPROC
tristate "Ingenic JZ47xx VPU remoteproc support"
depends on MIPS || COMPILE_TEST
help
Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
This can be either built-in or a loadable module.
If unsure say N.
2019-11-12 14:03:25 +03:00
config MTK_SCP
tristate "Mediatek SCP support"
2020-09-15 04:29:11 +03:00
depends on ARCH_MEDIATEK || COMPILE_TEST
2019-11-12 14:03:26 +03:00
select RPMSG_MTK_SCP
2019-11-12 14:03:25 +03:00
help
Say y here to support Mediatek's System Companion Processor (SCP) via
the remote processor framework.
It's safe to say N here.
2011-10-20 20:53:35 +04:00
config OMAP_REMOTEPROC
tristate "OMAP remoteproc support"
2020-03-24 14:00:27 +03:00
depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
2012-02-28 15:04:33 +04:00
depends on OMAP_IOMMU
2013-03-13 02:55:29 +04:00
select MAILBOX
select OMAP2PLUS_MBOX
2011-10-20 20:53:35 +04:00
help
Say y here to support OMAP's remote processors (dual M3
and DSP on OMAP4) via the remote processor framework.
Currently only supported on OMAP4.
2016-12-19 12:22:50 +03:00
Usually you want to say Y here, in order to enable multimedia
2011-10-20 20:53:35 +04:00
use-cases to run on your platform (multimedia codecs are
offloaded to remote DSP processors using this framework).
2016-12-19 12:22:50 +03:00
It's safe to say N here if you're not interested in multimedia
2011-10-20 20:53:35 +04:00
offloading or just want a bare minimum kernel.
2011-12-14 15:01:59 +04:00
2020-03-24 14:00:34 +03:00
config OMAP_REMOTEPROC_WATCHDOG
bool "OMAP remoteproc watchdog timer"
depends on OMAP_REMOTEPROC
default n
help
Say Y here to enable watchdog timer for remote processors.
This option controls the watchdog functionality for the remote
processors in OMAP. Dedicated OMAP DMTimers are used by the remote
processors and triggers the timer interrupt upon a watchdog
detection.
2015-05-22 23:45:30 +03:00
config WKUP_M3_RPROC
tristate "AMx3xx Wakeup M3 remoteproc support"
depends on SOC_AM33XX || SOC_AM43XX
help
Say y here to support Wakeup M3 remote processor on TI AM33xx
and AM43xx family of SoCs.
Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
firmware onto these remote processors.
If unsure say N.
2013-04-10 01:20:21 +04:00
config DA8XX_REMOTEPROC
tristate "DA8xx/OMAP-L13x remoteproc support"
depends on ARCH_DAVINCI_DA8XX
2017-05-19 01:08:59 +03:00
depends on DMA_CMA
2013-04-10 01:20:21 +04:00
help
Say y here to support DA8xx/OMAP-L13x remote processors via the
remote processor framework.
You want to say y here in order to enable AMP
use-cases to run on your platform (multimedia codecs are
offloaded to remote DSP processors using this framework).
This module controls the name of the firmware file that gets
loaded on the DSP. This file must reside in the /lib/firmware
directory. It can be specified via the module parameter
da8xx_fw_name=<filename>, and if not specified will default to
"rproc-dsp-fw".
It's safe to say n here if you're not interested in multimedia
offloading.
remoteproc/keystone: Add a remoteproc driver for Keystone 2 DSPs
The Texas Instrument's Keystone 2 family of SoCs has 1 or more
TMS320C66x DSP Core Subsystems (C66x CorePacs). Each subsystem has
a C66x Fixed/Floating-Point DSP Core, with 32KB of L1P and L1D SRAMs,
that can be configured and partitioned as either RAM and/or Cache,
and 1 MB of L2 SRAM. The CorePac also includes an Internal DMA (IDMA),
External Memory Controller (EMC), Extended Memory Controller (XMC)
with a Memory Protection and Address Extension (MPAX) unit, a Bandwidth
Management (BWM) unit, an Interrupt Controller (INTC) and a Powerdown
Controller (PDC).
A new remoteproc module is added to perform the device management of
these DSP devices. The driver expects the firmware names to be of the
form "keystone-dsp<X>-fw", where X is the corresponding DSP number, and
uses the standard remoteproc core ELF loader. The support is limited
to images only using the DSP internal memories at the moment. This
remoteproc driver is also designed to work with virtio, and uses the
IPC Generation registers for performing the virtio signalling and
getting notified of exceptions.
The driver currently supports the 66AK2H/66AK2K, 66AK2L and 66AK2E
SoCs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Sam Nelson <sam.nelson@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2017-06-14 02:45:12 +03:00
config KEYSTONE_REMOTEPROC
tristate "Keystone Remoteproc support"
depends on ARCH_KEYSTONE
help
Say Y here here to support Keystone remote processors (DSP)
via the remote processor framework.
It's safe to say N here if you're not interested in the Keystone
DSPs or just want to use a bare minimum kernel.
2021-09-21 22:25:57 +03:00
config MESON_MX_AO_ARC_REMOTEPROC
tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support"
depends on HAS_IOMEM
depends on (ARM && ARCH_MESON) || COMPILE_TEST
select GENERIC_ALLOCATOR
help
Say m or y here to have support for the AO ARC remote processor
on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is
typically used for system suspend.
If unsure say N.
2020-12-08 17:09:58 +03:00
config PRU_REMOTEPROC
tristate "TI PRU remoteproc support"
depends on TI_PRUSS
default TI_PRUSS
help
Support for TI PRU remote processors present within a PRU-ICSS
subsystem via the remote processor framework.
Say Y or M here to support the Programmable Realtime Unit (PRU)
processors on various TI SoCs. It's safe to say N here if you're
not interested in the PRU or if you are unsure.
2020-06-22 22:19:39 +03:00
config QCOM_PIL_INFO
tristate
2018-09-25 02:45:25 +03:00
config QCOM_RPROC_COMMON
tristate
config QCOM_Q6V5_COMMON
tristate
depends on ARCH_QCOM
depends on QCOM_SMEM
2018-09-24 14:07:50 +03:00
config QCOM_Q6V5_ADSP
tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2021-08-24 02:51:20 +03:00
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
2018-09-24 14:07:50 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
depends on QCOM_SYSMON || QCOM_SYSMON=n
2021-02-04 18:40:04 +03:00
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
2018-09-24 14:07:50 +03:00
select MFD_SYSCON
2020-06-22 22:19:40 +03:00
select QCOM_PIL_INFO
2018-09-24 14:07:50 +03:00
select QCOM_MDT_LOADER
select QCOM_Q6V5_COMMON
select QCOM_RPROC_COMMON
help
Say y here to support the Peripheral Image Loader
2020-12-17 06:04:00 +03:00
for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP
remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS
driver.
2018-09-24 14:07:50 +03:00
2018-09-25 02:45:26 +03:00
config QCOM_Q6V5_MSS
tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
2016-08-23 08:57:44 +03:00
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2021-08-24 02:51:20 +03:00
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
2017-08-30 02:13:35 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2021-02-04 18:40:04 +03:00
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
2016-08-23 08:57:44 +03:00
select MFD_SYSCON
2019-07-04 09:46:49 +03:00
select QCOM_MDT_LOADER
2020-06-22 22:19:40 +03:00
select QCOM_PIL_INFO
2018-06-04 23:30:37 +03:00
select QCOM_Q6V5_COMMON
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-12-09 14:47:02 +03:00
select QCOM_SCM
2016-08-23 08:57:44 +03:00
help
2018-09-25 02:45:26 +03:00
Say y here to support the Qualcomm self-authenticating modem
2020-12-17 06:04:00 +03:00
subsystem based on Hexagon V5. The TrustZone based system is
handled by QCOM_Q6V5_PAS driver.
2018-06-04 23:30:36 +03:00
2018-09-25 02:45:26 +03:00
config QCOM_Q6V5_PAS
tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
2016-06-21 00:28:41 +03:00
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2021-08-24 02:51:20 +03:00
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
2017-09-11 22:54:17 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2021-02-04 18:40:04 +03:00
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
2016-06-21 00:28:41 +03:00
select MFD_SYSCON
2020-06-22 22:19:40 +03:00
select QCOM_PIL_INFO
2018-09-25 02:45:26 +03:00
select QCOM_MDT_LOADER
2018-06-04 23:30:38 +03:00
select QCOM_Q6V5_COMMON
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-12-09 14:47:02 +03:00
select QCOM_SCM
2016-06-21 00:28:41 +03:00
help
2020-12-04 22:34:11 +03:00
Say y here to support the TrustZone based Peripheral Image Loader
2018-09-25 02:45:25 +03:00
for the Qualcomm Hexagon v5 based remote processors. This is commonly
2020-12-17 06:04:00 +03:00
used to control subsystems such as ADSP (Audio DSP),
CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and
SLPI (Sensor Low Power Island).
2016-06-21 00:28:41 +03:00
2018-06-07 20:27:11 +03:00
config QCOM_Q6V5_WCSS
tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2021-08-24 02:51:20 +03:00
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
2018-06-07 20:27:11 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
depends on QCOM_SYSMON || QCOM_SYSMON=n
2021-02-04 18:40:04 +03:00
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
2018-06-07 20:27:11 +03:00
select MFD_SYSCON
select QCOM_MDT_LOADER
2020-06-22 22:19:40 +03:00
select QCOM_PIL_INFO
2018-06-07 20:27:11 +03:00
select QCOM_Q6V5_COMMON
select QCOM_RPROC_COMMON
select QCOM_SCM
help
Say y here to support the Qualcomm Peripheral Image Loader for the
2020-12-17 06:04:00 +03:00
Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is
a non-TrustZone wireless subsystem.
2018-06-07 20:27:11 +03:00
2017-08-28 07:51:38 +03:00
config QCOM_SYSMON
tristate "Qualcomm sysmon driver"
depends on RPMSG
depends on ARCH_QCOM
2018-02-22 18:57:38 +03:00
depends on NET
2017-08-28 07:51:38 +03:00
select QCOM_QMI_HELPERS
help
The sysmon driver implements a sysmon QMI client and a handler for
the sys_mon SMD and GLINK channel, which are used for graceful
shutdown, retrieving failure information and propagating information
about other subsystems being shut down.
Say y here if your system runs firmware on any other subsystems, e.g.
modem or DSP.
2016-08-13 04:18:59 +03:00
config QCOM_WCNSS_PIL
tristate "Qualcomm WCNSS Peripheral Image Loader"
depends on OF && ARCH_QCOM
2021-08-24 02:51:20 +03:00
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
2017-09-11 22:54:17 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2016-08-13 04:18:59 +03:00
depends on QCOM_SMEM
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2021-02-04 18:40:04 +03:00
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
2016-08-13 04:18:59 +03:00
select QCOM_MDT_LOADER
2020-06-22 22:19:40 +03:00
select QCOM_PIL_INFO
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-08-13 04:18:59 +03:00
select QCOM_SCM
help
2020-12-17 06:04:00 +03:00
Say y here to support the Peripheral Image Loader for loading WCNSS
firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is
verified and booted with the help of the Peripheral Authentication
System (PAS) in TrustZone.
2016-08-13 04:18:59 +03:00
2016-01-12 15:46:18 +03:00
config ST_REMOTEPROC
tristate "ST remoteproc support"
depends on ARCH_STI
2017-01-31 15:35:54 +03:00
select MAILBOX
select STI_MBOX
2016-01-12 15:46:18 +03:00
help
Say y here to support ST's adjunct processors via the remote
processor framework.
This can be either built-in or a loadable module.
2016-10-18 12:39:06 +03:00
config ST_SLIM_REMOTEPROC
tristate
2016-10-18 12:39:08 +03:00
2019-05-14 11:26:58 +03:00
config STM32_RPROC
tristate "STM32 remoteproc support"
depends on ARCH_STM32
depends on REMOTEPROC
select MAILBOX
help
Say y here to support STM32 MCU processors via the
remote processor framework.
You want to say y here in order to enable AMP
use-cases to run on your platform (dedicated firmware could be
offloaded to remote MCU processors using this framework).
This can be either built-in or a loadable module.
remoteproc: k3-dsp: Add a remoteproc driver of K3 C66x DSPs
The Texas Instrument's K3 J721E SoCs have two C66x DSP Subsystems in MAIN
voltage domain that are based on the TI's standard TMS320C66x DSP CorePac
module. Each subsystem has a Fixed/Floating-Point DSP CPU, with 32 KB each
of L1P & L1D SRAMs that can be configured and partitioned as either RAM
and/or Cache, and 288 KB of L2 SRAM with 256 KB of memory configurable as
either RAM and/or Cache. The CorePac also includes an Internal DMA (IDMA),
External Memory Controller (EMC), Extended Memory Controller (XMC) with a
Region Address Translator (RAT) unit for 32-bit to 48-bit address
extension/translations, an Interrupt Controller (INTC) and a Powerdown
Controller (PDC).
A new remoteproc module is added to perform the device management of
these DSP devices. The support is limited to images using only external
DDR memory at the moment, the loading support to internal memories and
any on-chip RAM memories will be added in a subsequent patch. RAT support
is also left for a future patch, and as such the reserved memory carveout
regions are all expected to be using memory regions within the first 2 GB.
Error Recovery and Power Management features are not currently supported.
The C66x remote processors do not have an MMU, and so require fixed memory
carveout regions matching the firmware image addresses. Support for this
is provided by mandating multiple memory regions to be attached to the
remoteproc device. The first memory region will be used to serve as the
DMA pool for all dynamic allocations like the vrings and vring buffers.
The remaining memory regions are mapped into the kernel at device probe
time, and are used to provide address translations for firmware image
segments without the need for any RSC_CARVEOUT entries. Any firmware
image using memory outside of the supplied reserved memory carveout
regions will be errored out.
The driver uses various TI-SCI interfaces to talk to the System Controller
(DMSC) for managing configuration, power and reset management of these
cores. IPC between the A72 cores and the DSP cores is supported through
the virtio rpmsg stack using shared memory and OMAP Mailboxes.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20200721223617.20312-6-s-anna@ti.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2020-07-22 01:36:16 +03:00
config TI_K3_DSP_REMOTEPROC
tristate "TI K3 DSP remoteproc support"
depends on ARCH_K3
select MAILBOX
select OMAP2PLUS_MBOX
help
Say m here to support TI's C66x and C71x DSP remote processor
subsystems on various TI K3 family of SoCs through the remote
processor framework.
It's safe to say N here if you're not interested in utilizing
the DSP slave processors.
remoteproc: k3-r5: Add a remoteproc driver for R5F subsystem
The TI K3 family of SoCs typically have one or more dual-core Arm Cortex
R5F processor clusters/subsystems (R5FSS). This R5F subsystem/cluster
can be configured at boot time to be either run in a LockStep mode or in
an Asymmetric Multi Processing (AMP) fashion in Split-mode. This subsystem
has 64 KB each Tightly-Coupled Memory (TCM) internal memories for each
core split between two banks - TCMA and TCMB (further interleaved into
two banks). The subsystem does not have an MMU, but has a Region Address
Translater (RAT) module that is accessible only from the R5Fs for providing
translations between 32-bit CPU addresses into larger system bus addresses.
Add a remoteproc driver to support this subsystem to be able to load and
boot the R5F cores primarily in LockStep mode. The code also includes the
base support for Split mode. Error Recovery and Power Management features
are not currently supported. Loading support includes the internal TCMs
and DDR. RAT support is left for a future patch, and as such the reserved
memory carveout regions are all expected to be using memory regions within
the first 2 GB.
The R5F remote processors do not have an MMU, and so require fixed memory
carveout regions matching the firmware image addresses. Support for this
is provided by mandating multiple memory regions to be attached to the
remoteproc device. The first memory region will be used to serve as the
DMA pool for all dynamic allocations like the vrings and vring buffers.
The remaining memory regions are mapped into the kernel at device probe
time, and are used to provide address translations for firmware image
segments without the need for any RSC_CARVEOUT entries. Any firmware
image using memory outside of the supplied reserved memory carveout
regions will be errored out.
The R5F processors on TI K3 SoCs require a specific sequence for booting
and shutting down the processors. This sequence is also dependent on the
mode (LockStep or Split) the R5F cluster is configured for. The R5F cores
have a Memory Protection Unit (MPU) that has a default configuration that
does not allow the cores to run out of DDR out of reset. This is resolved
by using the TCMs for boot-strapping code that applies the appropriate
executable permissions on desired DDR memory. The loading into the TCMs
requires that the resets be released first with the cores in halted state.
The Power Sleep Controller (PSC) module on K3 SoCs requires that the cores
be in WFI/WFE states with no active bus transactions before the cores can
be put back into reset. Support for this is provided by using the newly
introduced .prepare() and .unprepare() ops in the remoteproc core. The
.prepare() ops is invoked before any loading, and the .unprepare() ops
is invoked after the remoteproc resource cleanup. The R5F core resets
are deasserted in .prepare() and asserted in .unprepare(), and the cores
themselves are started and halted in .start() and .stop() ops. This
ensures symmetric usage and allows the R5F cores state machine to be
maintained properly between using the sysfs 'state' variable, bind/unbind
and regular module load/unload flows.
The subsystem is represented as a single remoteproc in LockStep mode, and
as two remoteprocs in Split mode. The driver uses various TI-SCI interfaces
to talk to the System Controller (DMSC) for managing configuration, power
and reset management of these cores. IPC between the A53 cores and the R5
cores is supported through the virtio rpmsg stack using shared memory and
OMAP Mailboxes.
The AM65x SoCs typically have a single R5FSS in the MCU voltage domain. The
J721E SoCs uses a slightly revised IP and typically have three R5FSSs, with
one cluster present within the MCU voltage domain (MCU_R5FSS0), and the
remaining two clusters present in the MAIN voltage domain (MAIN_R5FSS0 and
MAIN_R5FSS1). The integration of these clusters on J721E SoC is also
slightly different in that these IPs do support an actual local reset line,
while they are a no-op on AM65x SoCs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20201002234234.20704-3-s-anna@ti.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2020-10-03 02:42:32 +03:00
config TI_K3_R5_REMOTEPROC
tristate "TI K3 R5 remoteproc support"
depends on ARCH_K3
select MAILBOX
select OMAP2PLUS_MBOX
help
Say m here to support TI's R5F remote processor subsystems
on various TI K3 family of SoCs through the remote processor
framework.
It's safe to say N here if you're not interested in utilizing
a slave processor.
2016-10-18 12:39:08 +03:00
endif # REMOTEPROC
2016-10-18 12:39:06 +03:00
2011-12-14 15:01:59 +04:00
endmenu