From 8d9233531b9e7b78ffb8581d1f7925e79a1092d2 Mon Sep 17 00:00:00 2001 From: "fisher.yu" Date: Thu, 12 Oct 2023 03:45:53 +0000 Subject: [PATCH] Fix SNOW3G functional error on SVE256. Change-Id: I9a68c1df9adca8cc97a42426ee00d39ce65514d3 --- lib/aarch64/mb_mgr_aarch64_sve256.c | 4 ++-- lib/x86_64/ooo_mgr_reset.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/aarch64/mb_mgr_aarch64_sve256.c b/lib/aarch64/mb_mgr_aarch64_sve256.c index 39154077..19dc6bb2 100644 --- a/lib/aarch64/mb_mgr_aarch64_sve256.c +++ b/lib/aarch64/mb_mgr_aarch64_sve256.c @@ -82,10 +82,10 @@ static void reset_ooo_mgrs(IMB_MGR *state) ooo_mgr_zuc_reset(state->zuc256_eia3_ooo, 4); /* Init SNOW3G-UEA out-of-order fields */ - ooo_mgr_snow3g_reset(state->snow3g_uea2_ooo, 4); + ooo_mgr_snow3g_reset(state->snow3g_uea2_ooo, 8); /* Init SNOW3G-UIA out-of-order fields */ - ooo_mgr_snow3g_reset(state->snow3g_uia2_ooo, 4); + ooo_mgr_snow3g_reset(state->snow3g_uia2_ooo, 8); } IMB_DLL_LOCAL void diff --git a/lib/x86_64/ooo_mgr_reset.c b/lib/x86_64/ooo_mgr_reset.c index a582d778..4f19a2e9 100644 --- a/lib/x86_64/ooo_mgr_reset.c +++ b/lib/x86_64/ooo_mgr_reset.c @@ -416,6 +416,10 @@ void ooo_mgr_snow3g_reset(void *p_ooo_mgr, const unsigned num_lanes) p_mgr->lens[10] = 0xffffffff; p_mgr->lens[11] = 0xffffffff; p_mgr->unused_lanes = 0x3210; +#ifdef __aarch64__ + } else if (num_lanes == 8) { + p_mgr->unused_lanes = 0x76543210; +#endif } else if (num_lanes == 16) p_mgr->unused_lanes = 0xFEDCBA9876543210; } -- GitLab