1

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 が見つかると思います。

4

0 に答える 0