Conversation
nvreadsub was unusable. Its dispatch referenced args.nvreadsub, which
the subparser never sets (it stores the positional arguments as
nvitem/nvindex), so every call raised AttributeError before a frame
was ever sent. Drop the stale comma-split and take the index from
args.nvindex.
In addition, subnvitem_type packed item and index as uint16 ('H'), so
NV items >= 0x10000 (EFS-backed items) failed with
"'H' format requires 0 <= number <= 65535" and could never be
requested. Widen both fields to uint32 ('I'); read_nvitemsub parses
the response with the same struct, so the reply path follows along.
Verified on a live modem (subsystem 0x30, subcommand 1): item 0x14a0
reads back data identical to the legacy nvread path, and items
>= 0x10000 are now addressable end to end. The 32-bit field width was
confirmed against one baseband only; other targets may differ.
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.
nvreadsub was unusable. Its dispatch referenced args.nvreadsub, which
the subparser never sets (it stores the positional arguments as
nvitem/nvindex), so every call raised AttributeError before a frame
was ever sent. Drop the stale comma-split and take the index from
args.nvindex.
In addition, subnvitem_type packed item and index as uint16 ('H'), so
NV items >= 0x10000 (EFS-backed items) failed with
"'H' format requires 0 <= number <= 65535" and could never be
requested. Widen both fields to uint32 ('I'); read_nvitemsub parses
the response with the same struct, so the reply path follows along.
Verified on a live modem (subsystem 0x30, subcommand 1): another valid item
reads back data identical to the legacy nvread path, and items