ID Artikel: 000086284 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 24/08/2017

Mengapa saya mungkin melihat masalah koherensi cache pada desain SoC saat menjalankan Altera kernel Linux?

Lingkungan

    Intel® Quartus® Prime Edisi Pro
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Deskripsi

Karena Linux BSP bawaan tidak mengaktifkan siaran pemeliharaan cache dan TLB (bit0 dari register ACTLR dibiarkan '0') dalam mode SMP, mungkin ada masalah koherensi cache.

Untuk deskripsi bit ini, lihat Bagian 1.7.3 Operasi pemeliharaan yang disiarkan dalam Manual Referensi Teknis ARM A9 MPCore[2]:

Semua prosesor yang bekerja dalam mode SMP pada domain koheren yang sama dapat mengirim dan menerima operasi Pemeliharaan TLB dan Cache. Manual Referensi Arsitektur ARM memberikan informasi terperinci tentang operasi siaran. Prosesor Cortex-A9 dalam klaster A9-MP menyiarkan operasi pemeliharaan yang dapat disiarkan ketika beroperasi dalam mode SMP (ACTLR. SMP=1) dan ketika operasi pemeliharaan penyiaran diaktifkan (ACTLR. FW=1). Prosesor Cortex-A9 dapat menerima dan menjalankan operasi pemeliharaan siaran saat beroperasi dalam mode SMP, ACTLR. SMP=1.

Resolusi

Disarankan untuk mengatur keduanya ACTLR. FW dan ACTLR. SMP ke 1. Kita dapat mengatur bit dengan memodifikasi kode Linux di proc-v7. File S seperti di bawah ini:

#ifdef CONFIG_SMP
ALT_SMP (mrc p15, 0, r0, c1, c0, 1)
ALT_UP(mov r0, #(1 << 6)) @ palsu untuk UP
tst r0, #(1 << 6) @ mode SMP/nAMP diaktifkan?
orreq r0, r0, #(1 << 6) @ Aktifkan mode SMP/nAMP
orreq r0, r0, r10 @ Aktifkan bit SMP khusus CPU
orr r0, r0, #(1) @Add baris ini mengaktifkan ACTLR[0]
mcreq p15, 0, r0, c1, c0, 1
#endif

Produk Terkait

Artikel ini berlaku untuk 2 produk

Cyclone® V FPGA dan SoC FPGA
Intel® Arria® 10 SX SoC FPGA

1

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.