arm-64 ビット アーキテクチャ (Cortex-A53) で実行される Linux モジュールをコンパイルしようとしています。機能の一部は、ある時点でキャッシュをフラッシュすることです。これは、以前は arm-32 ビット アーキテクチャで機能していました。cache.h や cacheflush.h などの関連するヘッダーを含むカーネル ヘッダーを構築するにはどうすればよいですか?
ザイリンクス ツールチェーン (Vivado & SDK、PetaLinux ツール) を使用して、ブートローダー、カーネル イメージ、デバイス ツリーなどの必要な組み込み Linux コンポーネントをすべて生成しています。さらに、Xilinx-Linux-Repository のクローンを作成し、現在のブランチに切り替え、特定の Xilinx-Linux-Repo を使用してリポジトリを使用してコンポーネントを生成するように PetaLinux ツールを設定しました。私のプラットフォームは Avnet-UltraZed-EG-IOCC Board で、開発には Debian-10 ルート ファイルシステムを使用しています。コンパイルしようとしているモジュールは、他の Zynq-7000 Dev で動作しました。ボードは、outercache.h を使用してキャッシュをフラッシュします。
1) PetaLinux を使用してブート ファイル、カーネル イメージ、およびデバイス ツリーをビルドする
Host $ petalinux-config <hw-desc>
Host $ petalinux-build
Host $ petalinux-package ...
2) Xilinx-Linux-Repo のクローン作成とヘッダー ファイルのビルド
Host $ git clone <xlnx-lnx-repo>; cd <xlnx-lnx-repo>
Host $ make xilinx_zynqmp_defconfig
Host $ make deb-pkg
Host $ make headers_install
Host $ ls usr/include/*
Host $ find usr/include/ -name "outercache.h" # Header not found
Host $ find <xlnx-lnx-repo>/ -name "outercache.h" # Header found under arch/arm/include/asm/outercache.h
3) Debian でシステムを起動する
UZ3EG $ find /usr/include/ -name "outercache.h" # Header not found
UZ3EG $ sudo dpkg -I linux-header* linux-image* linux-libc*
UZ3EG $ cd /lib/modules/<uname -r>/build
UZ3EG $ make headers_install
UZ3EG $ make modules
UZ3EG $ find usr/include/ -name "outercache.h" # Header not found
どのヘッダーが機能するかはわかりませんが、ヘッダーを /usr/include/asm/*.h にビルドした後、cache.h と cacheflush.h が見つかると思います。