mirror of
https://github.com/apache/nuttx.git
synced 2026-05-21 04:52:02 +08:00
6b13940797
Add open-amp patch 0019 to extend fw_rsc_config with h2r_buf_addr and r2h_buf_addr fields, allowing the host and remote sides to specify buffer physical addresses through the resource table. This enables splitting the shared memory pool into separate regions. Also update open-amp.defs and open-amp.cmake to apply the new patch during the open-amp build process. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
111 lines
4.4 KiB
Plaintext
111 lines
4.4 KiB
Plaintext
############################################################################
|
|
# openamp/open-amp.defs
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership. The
|
|
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance with the
|
|
# License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
############################################################################
|
|
|
|
ifeq ($(CONFIG_OPENAMP),y)
|
|
|
|
ifeq ($(CONFIG_OPENAMP_CACHE),y)
|
|
CFLAGS += -DVIRTIO_USE_DCACHE
|
|
endif
|
|
|
|
ifeq ($(CONFIG_OPENAMP_DEBUG),y)
|
|
CFLAGS += -DRPMSG_DEBUG -DVQUEUE_DEBUG
|
|
endif
|
|
|
|
CFLAGS += -Delf_load=remoteproc_elf_load
|
|
|
|
ifeq ($(CONFIG_OPENAMP_VIRTIO_DEVICE_SUPPORT),y)
|
|
CFLAGS += -DVIRTIO_DEVICE_SUPPORT=1
|
|
else
|
|
CFLAGS += -DVIRTIO_DEVICE_SUPPORT=0
|
|
endif
|
|
|
|
ifeq ($(CONFIG_OPENAMP_VIRTIO_DRIVER_SUPPORT),y)
|
|
CFLAGS += -DVIRTIO_DRIVER_SUPPORT=1
|
|
else
|
|
CFLAGS += -DVIRTIO_DRIVER_SUPPORT=0
|
|
endif
|
|
|
|
CFLAGS += -DVQ_RX_EMPTY_NOTIFY=1
|
|
CFLAGS += -Iopen-amp/lib/include
|
|
|
|
# avoid multiple definitions in other file
|
|
CFLAGS += -Dsafe_strcpy=openamp_safe_strcpy
|
|
|
|
CSRCS += open-amp/lib/remoteproc/elf_loader.c
|
|
CSRCS += open-amp/lib/remoteproc/remoteproc.c
|
|
CSRCS += open-amp/lib/remoteproc/remoteproc_virtio.c
|
|
CSRCS += open-amp/lib/remoteproc/rsc_table_parser.c
|
|
CSRCS += open-amp/lib/rpmsg/rpmsg.c
|
|
CSRCS += open-amp/lib/rpmsg/rpmsg_virtio.c
|
|
CSRCS += open-amp/lib/utils/utilities.c
|
|
CSRCS += open-amp/lib/virtio/virtio.c
|
|
CSRCS += open-amp/lib/virtio/virtqueue.c
|
|
|
|
# Download and unpack tarball if no git repo found
|
|
ifeq ($(wildcard open-amp/.git),)
|
|
open-amp.zip:
|
|
$(call DOWNLOAD,https://github.com/OpenAMP/open-amp/archive,v$(OPENAMP_VERSION).zip,open-amp.zip)
|
|
$(Q) unzip -o open-amp.zip
|
|
mv open-amp-$(OPENAMP_VERSION) open-amp
|
|
$(Q) patch -p0 < 0001-ns-acknowledge-the-received-creation-message.patch
|
|
$(Q) patch -p0 < 0002-Negotiate-individual-buffer-size-dynamically.patch
|
|
$(Q) patch -p0 < 0003-rpmsg-notify-the-user-when-the-remote-address-is-rec.patch
|
|
$(Q) patch -p0 < 0004-rpmsg-wait-ept-ready-in-rpmsg_send.patch
|
|
$(Q) patch -p0 < 0005-openamp-add-VIRTIO_RING_F_MUST_NOTIFY-event.patch
|
|
$(Q) patch -p0 < 0006-rpmsg_virtio-don-t-need-check-status-when-get_tx_pay.patch
|
|
$(Q) patch -p0 < 0007-virtqueue-move-virtqueue_nused-and-virtqueue_navail-.patch
|
|
$(Q) patch -p0 < 0008-lib-rpmsg-rpmsg_virtio-add-last-buffer-check-to-fix-.patch
|
|
$(Q) patch -p0 < 0009-virtio-change-feature-to-64-bit-in-all-virtio_dispat.patch
|
|
$(Q) patch -p0 < 0010-openamp-add-assert-when-get-tx-buffer-failed.patch
|
|
$(Q) patch -p0 < 0011-remoteproc_virtio-add-shm_io-for-remoteproc-virtio-a.patch
|
|
$(Q) patch -p0 < 0012-remoteproc-sync-the-virtio-rpmsg-config-with-linux-s.patch
|
|
$(Q) patch -p0 < 0013-virtio.h-add-mm_priv-to-struct-virtio_deivce.patch
|
|
$(Q) patch -p0 < 0014-lib-rpmsg_virtio-use-virtio_alloc_buf-to-alloc-share.patch
|
|
$(Q) patch -p0 < 0015-lib-remoteproc_virtio-optimize-virtqueue_notificatio.patch
|
|
$(Q) patch -p0 < 0016-lib-rpmsg_virtio-support-release-the-name-service-me.patch
|
|
$(Q) patch -p0 < 0017-lib-virtio-virtqueue-change-the-virtqueue-dump-log-l.patch
|
|
$(Q) patch -p0 < 0018-lib-rpmsg-add-priority-support-for-rpmsg-endpoint.patch
|
|
$(Q) patch -p0 < 0019-rpmsg-Add-VIRTIO_RPMSG_F_BUFADDR-to-support-specify-.patch
|
|
|
|
.openamp_headers: open-amp.zip
|
|
else
|
|
.openamp_headers:
|
|
endif
|
|
$(eval headers := $(wildcard open-amp/lib/include/openamp/*.h))
|
|
$(eval headers += open-amp/lib/remoteproc/rsc_table_parser.h)
|
|
$(eval headers += open-amp/lib/rpmsg/rpmsg_internal.h)
|
|
$(shell mkdir -p $(TOPDIR)$(DELIM)include$(DELIM)openamp$(DELIM))
|
|
$(foreach header,$(headers),$(shell cp -rf $(header) $(TOPDIR)$(DELIM)include$(DELIM)openamp$(DELIM)))
|
|
touch $@
|
|
|
|
context:: .openamp_headers
|
|
|
|
distclean::
|
|
$(call DELDIR, $(TOPDIR)$(DELIM)include$(DELIM)openamp$(DELIM))
|
|
ifeq ($(wildcard open-amp/.git),)
|
|
$(call DELDIR, open-amp)
|
|
$(call DELFILE, open-amp.zip)
|
|
endif
|
|
$(call DELFILE, .openamp_headers)
|
|
|
|
endif
|