ppc64le: Adding PowerPC support for AES and GCM functions. #677

Open
dannytsen wants to merge 1 commit from dannytsen/ppc-dev into development
dannytsen commented 2026-01-28 17:24:06 -06:00 (Migrated from github.com)

ppc64le: Adding PowerPC support for AES and GCM functions.

The supporting functions are in aesppc.c which is PowerPC inline assembly for ppc64le.

  1. added aes-ecb encrypt and decrypt functions.
  2. added AES key scheduling functions.
  3. added GCM multiplication functions.
  4. Arch supports: p9 and above.

Signed-off-by: Danny Tsen dtsen@us.ibm.com

Description

Please write a few sentences describing the overall goals of the pull request's commits.

PR checklist

Please remove the segment/s on either side of the | symbol as appropriate, and add any relevant link/s to the end of the line.
If the provided content is part of the present PR remove the # symbol.

  • changelog provided | not required because:
  • framework PR provided Mbed-TLS/mbedtls-framework# | not required
  • mbedtls development PR provided Mbed-TLS/mbedtls# | not required because:
  • mbedtls 3.6 PR provided Mbed-TLS/mbedtls# | not required because:
  • tests provided | not required because:

Notes for the submitter

Please refer to the contributing guidelines, especially the
checklist for PR contributors.

Help make review efficient:

  • Multiple simple commits
    • please structure your PR into a series of small commits, each of which does one thing
  • Avoid force-push
    • please do not force-push to update your PR - just add new commit(s)
  • See our Guidelines for Contributors for more details about the review process.
ppc64le: Adding PowerPC support for AES and GCM functions. The supporting functions are in aesppc.c which is PowerPC inline assembly for ppc64le. 1. added aes-ecb encrypt and decrypt functions. 2. added AES key scheduling functions. 3. added GCM multiplication functions. 4. Arch supports: p9 and above. Signed-off-by: Danny Tsen <dtsen@us.ibm.com> ## Description Please write a few sentences describing the overall goals of the pull request's commits. ## PR checklist Please remove the segment/s on either side of the | symbol as appropriate, and add any relevant link/s to the end of the line. If the provided content is part of the present PR remove the # symbol. - [ ] **changelog** provided | not required because: - [ ] **framework PR** provided Mbed-TLS/mbedtls-framework# | not required - [ ] **mbedtls development PR** provided Mbed-TLS/mbedtls# | not required because: - [ ] **mbedtls 3.6 PR** provided Mbed-TLS/mbedtls# | not required because: - **tests** provided | not required because: ## Notes for the submitter Please refer to the [contributing guidelines](https://github.com/Mbed-TLS/TF-PSA-Crypto/blob/development/CONTRIBUTING.md), especially the checklist for PR contributors. Help make review efficient: * Multiple simple commits - please structure your PR into a series of small commits, each of which does one thing * Avoid force-push - please do not force-push to update your PR - just add new commit(s) * See our [Guidelines for Contributors](https://mbed-tls.readthedocs.io/en/latest/reviews/review-for-contributors/) for more details about the review process.
bjwtaylor commented 2026-01-29 03:53:34 -06:00 (Migrated from github.com)

Hi @dannytsen, many thanks for your submission. This looks like it could be something that is useful to add to the project. However for us to accept it, the functionality would have to have a comprehensive test suite, will need to pass all of the CI tests and will need to have a changelog as per the contributing guidelines. Are you able to update the PR to include this?

Hi @dannytsen, many thanks for your submission. This looks like it could be something that is useful to add to the project. However for us to accept it, the functionality would have to have a comprehensive test suite, will need to pass all of the CI tests and will need to have a changelog as per the contributing guidelines. Are you able to update the PR to include this?
gilles-peskine-arm commented 2026-01-29 04:01:12 -06:00 (Migrated from github.com)

Regarding testing, we'd need to add ppc testing on our CI. We have a plan to add Qemu to our CI environment, but that's a big task and we don't time for it at the moment. Would you be able to help with that?

Regarding testing, we'd need to add ppc testing on our CI. We have a plan to add Qemu to our CI environment, but that's a big task and we don't time for it at the moment. Would you be able to help with that?
dannytsen commented 2026-01-29 12:05:05 -06:00 (Migrated from github.com)

Hi @dannytsen, many thanks for your submission. This looks like it could be something that is useful to add to the project. However for us to accept it, the functionality would have to have a comprehensive test suite, will need to pass all of the CI tests and will need to have a changelog as per the contributing guidelines. Are you able to update the PR to include this?

@bjwtaylor I am not sure what comprehensive test suite. I used ctest for the checking. I can see how to add a Changelog.

> Hi @dannytsen, many thanks for your submission. This looks like it could be something that is useful to add to the project. However for us to accept it, the functionality would have to have a comprehensive test suite, will need to pass all of the CI tests and will need to have a changelog as per the contributing guidelines. Are you able to update the PR to include this? @bjwtaylor I am not sure what comprehensive test suite. I used ctest for the checking. I can see how to add a Changelog.
dannytsen commented 2026-01-29 12:08:09 -06:00 (Migrated from github.com)

Regarding testing, we'd need to add ppc testing on our CI. We have a plan to add Qemu to our CI environment, but that's a big task and we don't time for it at the moment. Would you be able to help with that?

@gilles-peskine-arm Does it mean you don't any mechanism to test ppc support? I thought you have ctest to test the new addition. I don't use qemu. I use podman sometimes. What kind of help you are referring to?

> Regarding testing, we'd need to add ppc testing on our CI. We have a plan to add Qemu to our CI environment, but that's a big task and we don't time for it at the moment. Would you be able to help with that? @gilles-peskine-arm Does it mean you don't any mechanism to test ppc support? I thought you have ctest to test the new addition. I don't use qemu. I use podman sometimes. What kind of help you are referring to?
gilles-peskine-arm commented 2026-01-29 12:29:01 -06:00 (Migrated from github.com)

@dannytsen We only have x86 and arm hosts in our continuous integration environment, and no easy way to add other kinds of hardware. So we cannot accept large pieces of code for other architectures at the moment.

We have a technical plan in mind for doing testing on other CPU types through Qemu (we'd also accept other emulators if they're sufficiently stable and available — in practice we'd define that as at least having an Ubuntu package). But we currently don't have the bandwidth to work on it.

@dannytsen We only have x86 and arm hosts in our continuous integration environment, and no easy way to add other kinds of hardware. So we cannot accept large pieces of code for other architectures at the moment. We have a technical plan in mind for doing testing on other CPU types through Qemu (we'd also accept other emulators if they're sufficiently stable and available — in practice we'd define that as at least having an Ubuntu package). But we currently don't have the bandwidth to work on it.
dannytsen commented 2026-02-02 09:37:33 -06:00 (Migrated from github.com)

@gilles-peskine-arm We may be able to provide you with a Power lpar access. Would that be helpful for your technical plan to support Power platform?

@gilles-peskine-arm We may be able to provide you with a Power lpar access. Would that be helpful for your technical plan to support Power platform?
gilles-peskine-arm commented 2026-02-02 10:18:11 -06:00 (Migrated from github.com)

@dannytsen We can add new software to our CI system, but we aren't going to add new hardware (or new infrastructure to reach hardware hosted by someone else).

@dannytsen We can add new software to our CI system, but we aren't going to add new hardware (or new infrastructure to reach hardware hosted by someone else).
This pull request is broken due to missing fork information.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'dannytsen/ppc-dev:dannytsen/ppc-dev'
git switch 'dannytsen/ppc-dev'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'development'
git merge --no-ff 'dannytsen/ppc-dev'
git switch 'dannytsen/ppc-dev'
git rebase 'development'
git switch 'development'
git merge --ff-only 'dannytsen/ppc-dev'
git switch 'dannytsen/ppc-dev'
git rebase 'development'
git switch 'development'
git merge --no-ff 'dannytsen/ppc-dev'
git switch 'development'
git merge --squash 'dannytsen/ppc-dev'
git switch 'development'
git merge --ff-only 'dannytsen/ppc-dev'
git switch 'development'
git merge 'dannytsen/ppc-dev'
git push origin 'development'
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-Mbed-TLS/TF-PSA-Crypto!677
No description provided.