From 73e6130e90850d07570541027699e260a8beda90 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Tue, 24 Feb 2026 12:55:03 +1100 Subject: [PATCH] tests/mmu: Add a test to verify that tlbie by PID works Signed-off-by: Paul Mackerras --- tests/mmu/mmu.c | 31 +++++++++++++++++++++++++++++++ tests/test_mmu.bin | Bin 24616 -> 24616 bytes tests/test_mmu.console_out | 1 + 3 files changed, 32 insertions(+) diff --git a/tests/mmu/mmu.c b/tests/mmu/mmu.c index 80477df..68495d7 100644 --- a/tests/mmu/mmu.c +++ b/tests/mmu/mmu.c @@ -659,6 +659,36 @@ int mmu_test_20(void) return 0; } +int mmu_test_21(void) +{ + long *mem = (long *) 0x9000; + long *mem2 = (long *) 0xa000; + long *ptr = (long *) 0x14a000; + long val; + + /* create PTE */ + map(ptr, mem, DFLT_PERM); + /* initialize the memory content */ + mem[45] = 0xfee1800d4ea; + mem2[45] = 0xabad78323c14; + /* this should succeed and be a cache miss */ + if (test_read(&ptr[45], &val, 0xdeadbeefd0d0)) + return 1; + /* dest reg of load should have the value from 0x9000 */ + if (val != 0xfee1800d4ea) + return 2; + /* change the mapping to point to 0xa000 (without tlbie) */ + map(ptr, mem2, DFLT_PERM); + /* flush the whole PID */ + do_tlbie(0x400ul, 1ul << 32); + /* this should succeed and return the value from 0xa000 */ + if (test_read(&ptr[45], &val, 0xdeadbeefd0d0)) + return 3; + if (val != 0xabad78323c14) + return 4; + return 0; +} + int fail = 0; void do_test(int num, int (*test)(void)) @@ -719,6 +749,7 @@ int main(void) do_test(18, mmu_test_18); do_test(19, mmu_test_19); do_test(20, mmu_test_20); + do_test(21, mmu_test_21); return fail; } diff --git a/tests/test_mmu.bin b/tests/test_mmu.bin index a91fef91e48563b360f14f7c6aca3e243965ce22..42a0813dc798e341e18423ce092244ff1c733890 100755 GIT binary patch delta 1508 zcmZ`&ZA_b06u$3m`BbrNP@y0c#$fFT0mh_-0&Qub@=?HuHuz&N6cVzGg(*MEQr3dR zK%xuFaX+?1ED0=RW@e=PP(DoYhfxy~O!%?+1GmAp!ZyBw+5y}3+_uCR<4sQPxzBUX zdCq(8eJ6dwq)!-eQ;%h8;8A|$xm03lPKNUZ@5x^z5ep$iJYea$ci4bFpJZqPDezlC z3AJ^Byf7{Avv5S?mdlw>?3(E)yR$cpl@L+W74~^%cZ#>I&?wMc1-vX#fbUc^{UsTG zKJ`7#N`}itYWgtAJ5wYVsQ(Sv)24a1PUj2KX*scg&z$7d75fA_mH;m`d(?N-yQifB zT{?o5^5}&lkXO1#N8-I|9irnhZ(i9=sr2BLP%7*idf;}x)V0MH_5;0Fc<;nKtK~BlFqjZY z?jRY^D~Vx^@^e7#?7{QD8uWx3yt>6|1)|pysZvWxO>cWmWnZv4F1j3QkT=IQ4x7@3 zwIo5UEJ{sE)UjSuEDlr-oyKnYa160b;UG|>LLk1< z#l?C1)lJwime7JZP*;}I?O8Zm`HtX&`N~Q~{|2i~rXEcZaqH;42?w96fDhpQEGSHQ z3hn>U*Jh#3WEK1{Why>>?b&~8P^|HMCNwfWt_1u7UY9>8Pn6x^gg4E#^5k%)V}I4f z)p=Im3|um|2*YsKTr8Y}_^Ju3K=oDy5|xBjS<0K|gXf;m)%hh`sQ0 z>_cZ+7#l&XhoQp$ic5vqH2OT&jrgy@*o#hHhhsyC&HKSxt&UBUg#N*@br`5t(_K4! zT|G)=9bmPT(}NDUYER7G?E95P2!2v z#p&Y>m)?&fm5~NKrlM)khLHapcTy9lME>1FJ_{im+Q9?ZsmrFRE1;-XQ*i~V>a*q3 zD~!33^I;5%@Fvb2itr}B5eRAY zGxjvZ^Cr$7@+T0xgM8{5{9w(Flu~rpVbq!}1mJ=-C&Gq60KTxMgRCK%ED3G^R)FqNjuo^pfxrqG1?W3wnC^ zwlOEM2R+lDIB~9K4o;lf;E%>*s`0-V8{~y?aXnr?A@I+b`6%>gZZI^ROq@oBBYg2_ ZH`v?`g4ll*mQ8>1^)VhqvR89(L{O-x!fCc$;~0~U-MB5}x8!H#T+ z;>(1M%IU@)*5bofg7`4``%t^4ggwd_Zdj19K|yO<+s3rWXw%WVb2YLHhjZ@l_d8$r zCQ>|+;+Nwv=vkQDv>iNhn0X7z@Z-8O%0emgGR8vxigL@Em~_}!g*{=wKkJ$yKY~iV z(dx`8{FzwP#=`c+L*Zy`4r^v1dqpmmnI?leP~XnsuQGhqY{1lseE7T!mrwixtEKpL zgBiXlRc|&Z9KKU9+hkNTCv6-C^_X@W)Yirnhd>FwvS(rR4K>>Y9Hxq?juk43(b|#) zhfX!O6598=YJF!e59SMHBJMaZ;tw68%2)yOE{KZf+qY-mK>2Rv6p6-MNL=+&;dFPuz`$J89ANCd}F!SiBYP z{y5GqPlbRsK6wkG10PkXgzin_I|05 z87*2i;V2>RVv`P;XQI3w%DE1oM!zC2vEzg_?P8xqFXb=?VHXAUeYsv8`;fpzx=68& zh}U+-pG9RMiP;Hz@errI=0eSZz227|;cc%OZVcd-_ZqB*ar#snqy};M)Z41=^aajC z>PXjpj{QA}cK^B%30jPG7deWZU%X$$Iu1JNdW6hQwnqFF^6YexiTJ*K{un|1WZfIs z?yG{x1`hko@Y4o<>#I`o?gd-@mz0}lRXq7 zMH*@%hxlN>i5%hvXKa@E$9udSVtAiFPS_gp5!CyuHF+Q-r@tJv{(SI0M#XOi?-NY- z8Zku3u`~|*jj));X>yTmoFlihjmzXx8Qdage~N{HO3*$-Yd|@wqw<3X$esxyca_IN zHcnUqzYNr95)@s*r9ipnSBfs+-xOsiav=}aXiRyGMX@eet?#BN{*Mq-G%R!Pz9jVF zNboJbf-}Jqz2o`+4*#u%`AdF%pqS&J!owA