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

Pi4 firmware undocumented instructions #20

Open
dshadowwolf opened this issue Oct 30, 2020 · 2 comments
Open

Pi4 firmware undocumented instructions #20

dshadowwolf opened this issue Oct 30, 2020 · 2 comments

Comments

@dshadowwolf
Copy link

It seems that the Raspberry Pi 4 has a revision of the Videocore "GPU" that has instructions that either have encodings that are broken according to the docs (0xCEC004BC starts off like a control register access, but where it should be 1100 1100 for the first byte, it's 1100 1110 -- this is 22 bytes into the text-section of "start4x.elf"...)

There are also some others - such as 0x0010 at 8 bytes into the same file and section, which falls into the gap from the 0x0005 of RTI and the 0x01C0 start of SWI with register...

Any suggestions on how to figure out what these actually do - or if there is some kind of setup or encryption being done on the instruction stream from elsewhere in the binary ?

@mklemarczyk
Copy link

Yes, Raspberry Pi 4 has a revision of the VideoCore "GPU" but it is different from revision 4 presented here. Raspberry Pi 1-3 uses revision 4, while Raspberry Pi 4 uses chip with revision 6.

@dshadowwolf
Copy link
Author

Potentially, but I was approaching this run at disassembling the code as if the start of .text was where execution started, but it seems there is a separate section where execution starts in the Pi4 firmware. I've not yet looked at that (I've once more run out of free time) but I'm thinking there might be a small amount of obfuscation going on.

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

No branches or pull requests

2 participants