Repository navigation
Add Support for SM8975 and 64bit PBL v3 for sahara mode - #30
Open
LittlenineEnnea wants to merge 2 commits into
Open
LittlenineEnnea wants to merge 2 commits into
LittlenineEnnea wants to merge 2 commits into
Conversation
Signed-off-by: Littlenine <LittlenineEnnea@gmail.com>
Signed-off-by: Littlenine <LittlenineEnnea@gmail.com>
There was a problem hiding this comment.
🟡 Changes recommended
Protocol state validation, HELLO negotiation, descriptor selection, and textual report validation have correctness issues.
4 open findings
What changed in this PR
Adds SM8975-oriented Sahara v3 support, including 64-bit multi-image transfers, textual CMD10 parsing, USB endpoint discovery, and device reconnection.
Changes:
- Adds multi-image Sahara transfer and reconnection handling.
- Supports textual v3 chip reports and dynamic USB bulk endpoints.
- Expands diagnostics and automated tests.
| File | Description |
|---|---|
QCEDL.NET/Transport/LibUsbTransport.cs |
Discovers and logs USB endpoints. |
QCEDL.NET/Layers/PBL/Sahara/QualcommSaharaV3ChipInfo.cs |
Parses textual CMD10 reports. |
QCEDL.NET/Layers/PBL/Sahara/QualcommSaharaMultiImage.cs |
Implements multi-image transfers. |
QCEDL.NET/Layers/PBL/Sahara/QualcommSahara.cs |
Routes XML configurations to multi-image mode. |
QCEDL.NET/Layers/PBL/Sahara/Command/Execute.cs |
Logs raw CMD10 responses. |
QCEDL.NET/ChipInfo/HardwareID.cs |
Promotes hardware information logs. |
QCEDL.NET.Tests/QualcommSaharaV3ChipInfoTests.cs |
Tests textual and unaligned payload parsing. |
QCEDL.NET.Tests/QualcommSaharaMultiImageTests.cs |
Tests multi-stage transfer behavior. |
QCEDL.CLI/Core/EdlManager.cs |
Adds reconnection and re-enumeration polling. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+328
to
+333
| if (_servedImageIds.Count > 0 && _servedImageIds[^1] == FirehoseProgrammerImageId) | ||
| { | ||
| LibraryLogger.Debug( | ||
| $"Image id {FirehoseProgrammerImageId} transferred; leaving the Sahara protocol."); | ||
| return true; | ||
| } |
| { | ||
| var payload = new byte[0x28]; | ||
| ByteOperations.WriteUInt32(payload, 0x00, protocolVersion); | ||
| ByteOperations.WriteUInt32(payload, 0x04, protocolVersion); |
Comment on lines
+183
to
+190
| uint Field(string key) | ||
| { | ||
| return fields.TryGetValue(key, out var value) ? value : 0; | ||
| } | ||
|
|
||
| uint? OptionalField(string key) | ||
| { | ||
| return fields.TryGetValue(key, out var value) ? value : null; |
Comment on lines
+223
to
+226
| foreach (var configuration in _device!.Info.Configurations) | ||
| { | ||
| foreach (var usbInterface in configuration.Interfaces) | ||
| { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


No description provided.