'a geçtikten sonra nasıl çalışır? QEMU üzerinde OP-TEE'yi başarıyla çalıştırıyorum ve programlayıcının nasıl çalıştığını anlamak istiyorum. Güvenli Dünya'ya girmeden ve Normal Dünya'ya dönmeden önce jiffies değişkenini almak için kaynak kodunu değiştirdim. İşte bir kod parçası.OP-TEE'nin Linux zamanlayıcısı, Secure world
i=jiffies;
tee_smc_call(¶m);
j=jiffies
İşte tee_smc_callSMC çağrıyı veren asm fonksiyonudur. Zamanlayıcı kesmesi, SW'den çıkmayla sonuçlanırsa, j l i'dan daha büyük olacaktır. Bence zamanlayıcı kesmesi bir yere taşınmış demektir. Eğer kesinti doğru değilse lütfen beni düzeltin.
https://lists.linaro.org/pipermail/tee-dev/2015-August/000160.html ve https://github.com/OP-TEE/optee_os/issues/332 numaralı bağlantılara gidiyorum. OP-TEE geliştiricisi, zamanlayıcı kesintisinin NW'ye geri döndüğü anda NW tarafından servis edileceğini söylüyor.
SW'nin IRQ işleyicisinin kaynak kodunu okudum. SW işleyicisinin NW'nin VBAR'ını bulacağını ve dönüş adresini NW işleyicisine değiştireceğini düşündüm. Ancak böyle bir kod bulunamadı.
Bu sitede bazı yayınları okudum TrustZone: Scheduling processes from the two worlds ve ARM TrustZone - Behaviour of the scheduler in Secure and Non-Secure OS. İkincisi benimkine benzer, fakat cevap OP-TEE uygulamasında ne olduğunu söylemez.
Bu yüzden, SW'de bir kez hizmet verildiğinden, zamanlayıcı kesintisinin NW'ye döndükten sonra tekrar işlenmesini sağlayan sihrin ne olduğunu merak ediyorum.
OP-TEE'ye aşina değilim. Ve bu benim ilk sorum. Açık veya aptal değilse lütfen beni affet. Teşekkürler.
Sorunuz için bir çözüm buldunuz, eğer paylaşabilseydiniz? – shunty