mikan
2022年11月20日 17時34分
OP-TEEのメモリを多く使うTAのプログラムを実行したところ、以下のようなエラーが発生しました。
E/TC:? 0 alloc_pgt:147 10 page tables not available E/LD: populate_segments:829 sys_map_zi E/TC:? 0 ldelf_init_with_ldelf:126 ldelf failed with res: 0xffff000c Error: System ran out of resources. (error code 0xffff000c)
おそらくTAに割り当てるメモリが足りないということなので、imx-optee-core/core/arch/arm/plat-imx/conf.mk の CFG_TZDRAM_SIZE ?= 0x01c00000 を 0x1c000000に増やしてビルドしました。swuアップデートイメージを作成し、armadilloでアップデートをしましたが、以下のようなエラーがでました。
U-Boot SPL 2020.04-localv1.00 (Nov 19 2022 - 18:20:28 +0900) DDRINFO: start DRAM init DDRINFO: DRAM rate 4000MTS DDRINFO:ddrphy calibration done DDRINFO: ddrmix config done Normal Boot Trying to boot from BOOTROM image offset 0x0, pagesize 0x200, ivt offset 0x0 NOTICE: BL31: v2.4(release): NOTICE: BL31: Built : 12:16:12, Nov 11 2022 E/TC:0 0 Panic at core/arch/arm/mm/core_mmu.c:299 <carve_out_phys_mem> E/TC:0 0 TEE load address @ 0x56000000 E/TC:0 0 Call stack: E/TC:0 0 0x0000000056008cb0
TAに割り当てるためのメモリを増やすには何を変更すればいいのかわからず、質問させていただきました。
よろしくお願いいたします。
コメント
mikan
> mikanさん
>
> 私は実際に試してませんので、とりあえず読んだことを報告します。
>
> * https://optee.readthedocs.io/en/latest/faq/faq.html#q-whats-the-maximum…
> 32KB~1MBのメモリサイズの場合は、user_ta_header_defines.h の TA_DATA_SIZE の変更だけでよさそうです。
>
> * https://github.com/OP-TEE/optee_os/issues/3109
> FAQに1MB以上のサイズが必要な場合は「you also must adjust TA’s MMU L1 table accordingly」って書いてますが、説明がないためにもう少ししらべたらこの issue で PGT_CACHE_SIZE の変更でできるのではないかと思います。
>
> optee に渡されてるメモリはすでに 0x200_0000 (32MB) ありますので、optee OSが使う2MBを引けば 30MB まではこの設定だけでできそうだと思います。
>
> * 30MB 以上の場合は恐らく optee だけではなく、imx-atf でも変更が必要だと思います
>
> 申し訳ありませんが、この場合はもう少ししらべないと何ともいえませんので、mikanさんの目的を少し説明いただければ助かります。
>
> よろしくお願いします。
解決しました。ありがとうございます。
at_dominique.m…
2022年11月21日 12時58分
mikanさん
私は実際に試してませんので、とりあえず読んだことを報告します。
* https://optee.readthedocs.io/en/latest/faq/faq.html#q-whats-the-maximum…
32KB~1MBのメモリサイズの場合は、user_ta_header_defines.h の TA_DATA_SIZE の変更だけでよさそうです。
* https://github.com/OP-TEE/optee_os/issues/3109
FAQに1MB以上のサイズが必要な場合は「you also must adjust TA’s MMU L1 table accordingly」って書いてますが、説明がないためにもう少ししらべたらこの issue で PGT_CACHE_SIZE の変更でできるのではないかと思います。
optee に渡されてるメモリはすでに 0x200_0000 (32MB) ありますので、optee OSが使う2MBを引けば 30MB まではこの設定だけでできそうだと思います。
* 30MB 以上の場合は恐らく optee だけではなく、imx-atf でも変更が必要だと思います
申し訳ありませんが、この場合はもう少ししらべないと何ともいえませんので、mikanさんの目的を少し説明いただければ助かります。
よろしくお願いします。