Skip to content

Align PFDI ACS With rule based design and minor updates#229

Merged
chetan-rathore merged 17 commits intoARM-software:mainfrom
gontumukkala-balaji:bet1-spec-alignment
Feb 4, 2026
Merged

Align PFDI ACS With rule based design and minor updates#229
chetan-rathore merged 17 commits intoARM-software:mainfrom
gontumukkala-balaji:bet1-spec-alignment

Conversation

@gontumukkala-balaji
Copy link
Contributor

New Features & Test Coverage

  • Added negative tests for all PFDI entry points (pfdi013–pfdi031), covering invalid parameters, reserved functions, and malformed ranges.
  • Extended FORCE_ERROR coverage to validate PE-local behavior, overwrite prevention, recovery, and invalid arguments.
  • Added regressions for unsupported and out-of-range functions, and for executing all or selected test parts via PFDI_PE_TEST_RUN.
  • Split combined scenarios into per-rule tests to enforce a one-rule-per-test structure and improve failure traceability.

Infrastructure & Enhancements

  • Integrated PFDI into the rule-based orchestrator with full support for rule filtering, skipping, and retries.

gontumukkala-balaji and others added 17 commits December 22, 2025 05:36
- Introduced pfdi021 to validate behavior with invalid input to PFDI version
- Updated Pfdi.inf and val_interface.h to include new test case
- Defined PFDI_INVALID_X1_VALUE macro for triggering invalid condition
- Ensures proper failure handling when incorrect x1-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I4626f95d5f23bce62c78206de741478897929945
- Introduced pfdi022 to validate behavior with invalid input to PFDI feature
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x2-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I5f2f313d29f2febdf4086c7b436a4c194d51376e
- Introduced pfdi023 to validate behavior with invalid input to PFDI PE Test ID
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x1-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I559854d3083abd16fb221a770c3f399ef73ac242
Change-Id: I614239f2ebbec89b406cd27e505bac519aaba77b
- Introduced pfdi024 to validate behavior with invalid input to Test Parts
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x1-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I887cdaca8beab12738400d5c5406b44a721cc08b
- Introduced pfdi025 to validate behavior with invalid input to Test Parts
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x1-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I245dfedefde55250314d6c96cce268d8dcd0b5a2
- Introduced pfdi026 to validate behavior with invalid input to Test Parts
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x1-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I4b4fbf9fefaea96a611722a5c8e7d93198e92aea
	•	Consolidated pfdi007.c (range execution) and pfdi013.c (all-parts execution) into one test file following R0076
	•	Stored val_pfdi_pe_test_part_count() failure return in buffer and printed explicit error for easier debugging
	•	Declared end variable at top per coding standards
	•	Introduced pfdi_avail_buffer to avoid variable reuse and improve clarity
	•	Differentiated log prints for range vs all-parts results to simplify triage

Signed-off-by: Ashish Sharma ashish.sharma2@arm.com
Change-Id: Iaf04121bda6f8320b6311c42f4728d9c0f0e1cbf
•	Split combined invalid-parameter test into five spec-compliant cases for clarity and isolation
•	Implemented individual tests: Start > End, Start beyond max index, End beyond max index, Start/End = –1, Start/End < –1
•	Unified code structure, validation flow, and PE synchronization across all new tests
•	Added cache maintenance and memory cleanup identical to combined test behavior
•	Ensured consistent x0 = –3 and x1–x4 = 0 validation for all invalid parameter conditions

Signed-off-by: Ashish Sharma ashish.sharma2@arm.com
Change-Id: Ic8d111cb5f6eb8d84ad64cbe0e063706e672e704
- Introduced pfdi029 to validate behavior with invalid input to PFDI test run
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x3-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I1381212a8b364376620a9eb97d09531bb539072d
- Introduced pfdi030 to validate behavior with invalid input to PFDI force err
- Updated Pfdi.inf and val_interface.h to include new test case
- Ensures proper failure handling when incorrect x3-x4 values are passed

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I7b36baedf05e677d5aa8fc338faa8678a46f480f
* Added alternate function validation to check that unrelated
  PFDI functions aren't affected by forced errors
* Ensured all recovery checks validate `x1–x4` return registers
  for correctness

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I1a2c12aba08bedc6628870bac8ec99f6badc3000
      •	Add PFDI027 (R0193) to verify a second PFDI_FORCE_ERROR overwrites the first across PEs/entry points
      •	Record per-PE inject/call results with cache maintenance for cross-PE visibility
      •	Mark SKIP on ACS_ERROR, FAIL if the call doesn’t return the second error

Signed-off-by: Ashish Sharma <ashish.sharma2@arm.com>
Change-Id: Id8af57b2a6151016c208d83f9fb4c2091393fe5f
• Add PFDI028 (R0194) to verify FORCE_ERROR is PE-local and not observable on
other PEs
• Implement 3-step cross-PE flow: inject on calling PE, verify normal behavior
on other PE, then consume injected errors on calling PE
• Record per-PE results for injected, cross-PE, and same-PE calls with cache
maintenance for coherent validation
• Provide function-specific diagnostics with PE indices and observed x0 values,
and SKIP when FORCE_ERROR is unsupported

Signed-off-by: Ashish Sharma <ashish.sharma2@arm.com>
Change-Id: I85e4f4681e8fb867d1da358c77d52ae341411139
- Adds test case to invoke Force Error with reserved and invalid function IDs
- Verifies return status is INVALID_PARAMETERS and all other outputs are zero

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I1372d78b1076b47e749022495f024040ecb5e9d3
Change-Id: Ifdfff9b60be2f88024bfc99439b8579766a2a22a
* Add PFDI architecture selection and CLI support to rule-based framework
* Introduce PFDI rule enums, metadata, lookup tables, and level filtering
* Refactor PFDI UEFI app to use rule-based orchestrator and unified CLI
* Replace legacy PFDI executor with implementation probe and rule-driven flow
* Fix PFDI assembly register save location and update build flags for DT builds

Signed-off-by: Balaji Gontumukkala <balaji.gontumukkala@arm.com>
Change-Id: I72cf99d7b3e58e6d17765d7bb6cd4224ce971440
@chetan-rathore chetan-rathore changed the title Align PFDI ACS With BET1 Spec Updates Align PFDI ACS With rule based design and minor updates Feb 4, 2026
@chetan-rathore chetan-rathore merged commit 2201242 into ARM-software:main Feb 4, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants