Skip to content

import new opcode: jumpc, jump, loadc#5

Open
vjardin wants to merge 2 commits into
nxp-qoriq:develfrom
vjardin:vj_importNewOpCode
Open

import new opcode: jumpc, jump, loadc#5
vjardin wants to merge 2 commits into
nxp-qoriq:develfrom
vjardin:vj_importNewOpCode

Conversation

@vjardin
Copy link
Copy Markdown
Contributor

@vjardin vjardin commented Sep 9, 2025

The main work was done by Rabeeh from:
https://github.com/SolidRun/lx2160a_build/blob/develop-ls-6.6.52-2.2.0/patches/rcw/0002-add-loadc-jumpc-and-jump-to-pbi-instructions.patch

Let's add some hints and typo fix for the disassemble case with a 2nd commit.

TODO: Based on some new use cases, some opcodes from the "Table 27. PBI Command Summary" of LX2160ARM.pdf could be added.

Table 27. PBI Command Summary

Block Copy Commands

Command Number Size (bytes) Description
Block Copy 0x00 16 Copy data from any of the available memory interfaces to a RAM
CCSR Write from Address 0x02 - Update large number of CCSR registers consecutively from OCRAM, SPRAM

Special Load Commands

Command Number Size (bytes) Description
Load RCW with Checksum 0x10 136 Read Reset Configuration Word, perform simple 32-bit checksum, and update RCW registers
Load RCW w/o Checksum 0x11 136 Read Reset Configuration Word and update RCW registers without checksum
Load Alternate Configuration Window 0x12 4 Read in condition 14-bit base pointer for alternate configuration space
Load Condition 0x14 12 Read in condition information for subsequent Conditional Jump
Load Security Header 0x20 84 Read CSF Header for authentication of PBI Image
Load Boot 1 CSF Header Ptr 0x22 8 Read in a pointer to CSF header for authentication of Boot 1 code
CCSR Read, Modify and Write 0x42 - Reads a CCSR register and changes (SET/CLEAR) its bits as per mask

Control Commands

Command Number Size (bytes) Description
Poll Short 0x80 16 Poll a specified address for a specified value
Poll Long 0x81 - Poll a specified address for a specified value
Wait 0x82 4 Pause PBI sequence for specified number of iterations of a FOR loop
Jump 0x84 8 Unconditional jump forward in PBI command sequence
Jump Conditional 0x85 12 Conditional jump forward in PBI boot sequence
CRC and Stop 0x8F 8 Stop the PBI sequence and indicate the expected CRC value
Stop 0xFF 8 Stop the PBI sequence

Add 'load conditional', 'jump condidional' and 'jump' to PBI
instructions.

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Signed-off-by: Vincent Jardin <vjardin@free.fr>
Apply few hints based on new opcode from the former commit. A proper
support based on the seciont 8.2.1 PBI Command List of LX2160ARM.pdf would be
needed.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
@IoanaCiornei
Copy link
Copy Markdown
Contributor

@vjardin, thanks for the PR!

Is there any use case that you want to accomplish using these new commands? Are you planning to submit any other patch which uses these new instructions?

Also, would you mind adding the disassemble portion for jump and jumpc and not just the hints?

Thanks!

@vladimiroltean
Copy link
Copy Markdown
Contributor

Hi Vincent,
Please keep the original Author: information to Rabeeh where applicable.

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