Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[idea] Replace BigBuf #3

Open
7 of 13 tasks
jlitewski opened this issue May 3, 2024 · 6 comments
Open
7 of 13 tasks

[idea] Replace BigBuf #3

jlitewski opened this issue May 3, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@jlitewski
Copy link
Owner

jlitewski commented May 3, 2024

Core Changes:

  • Implement a true memory manager (palloc)
  • Remove the tracing functions from BigBuf and implement them in their own file (tracer)
  • Remove the card emulation functions from BigBuf and implement them in their own file (cardemu)

Major Milestones:

  • Replace BigBuf with palloc (for memory management)
  • Replace BigBuf with tracer (for tracing things)
  • Replace BigBuf with cardemu (for card emulation)
  • Modify the client to correctly handle all the new PM3_EMALLOC returns
  • Write test suites for all the new code to verify functionality

Minor Milestones:

  • Merge nxtgen-palloc into proxmark3-nxtgen
  • Remove BigBuf from the firmware
  • Optimize global/static variable sizes to get back some SRAM
  • Optimize functions to use correctly sized variables
  • Rename Variables/defines/functions (where needed)
@jlitewski jlitewski added the enhancement New feature or request label May 3, 2024
@jlitewski jlitewski added this to the Replace BigBuf milestone May 3, 2024
@jlitewski jlitewski self-assigned this May 3, 2024
@jlitewski
Copy link
Owner Author

I finished up the rough implementation of palloc this morning. It is currently untested, but should work. I'm still going to need to write up some test suites for it to make sure it's all working as intended. Added that to the major milestones needed to hit

@jlitewski
Copy link
Owner Author

Finished up the rough implementation of tracer. Currently it's just the same functions that BigBuf had, but the future plans are to redo how all of the tracing stuff works to try and make it a bit more memory efficient.

@jlitewski jlitewski pinned this issue May 7, 2024
@jlitewski
Copy link
Owner Author

Card Emulation stuff roughly implemented. I'm not sure how it all works, because it only looks like a storage buffer for card information based on a quick look over of the functions in BigBuf. If that's the case, I'm going to actually implement a card emulation system with it, because otherwise why do we have card emulation functions to begin with?

@jlitewski
Copy link
Owner Author

Started chipping away at moving things over. Been renaming things along the way to more agnostic names as well, added that to Minor Milestones. Hopefully can have this done by the end of the month, I'm tired of looking at this code 😆

@jlitewski
Copy link
Owner Author

12 more files. One of which is more than likely going to need to be partially rewritten to work correctly with palloc. The light at the end of the tunnel is getting bigger!

Hopefully I didn't break too much...

@jlitewski
Copy link
Owner Author

The firmware is now using Palloc/Tracer/CardEmu over BigBuf. It's highly unstable, but it's working. I got to go through and fix up the remaining bugs and regressions. I think I'm going to merge this into proxmark-nxtgen and finish development outside the nxtgen-palloc fork, since Iceman is preparing a release upstream and I have like a month of commits to merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant