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

Initial support of Broadcom VideoCore IV #1147

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

paolovagnero
Copy link

The VideoCore IV architecture documentation is not publicly available, but it has been reverse-engineered, see https://github.com/hermanhermitage/videocoreiv. This commit adds support for the reverse-engineered variant.

The conditional jump is difficult to handle in the decompiler. A
left shift followed by a (signed) right shift is easier.
When comparing to an immediate, a copy must be made. Currently, the
value is copied twice: once in loophckcond to check the condition
and once to display the value in the disassembly. However, the
disassembly does not need the value itself; it can use a display
stub and save one unnecessary P-Code.
Some functions in the firmware seem to guarantee that no registers
are clobbered except r0. The caller then uses original r1-r5 values
after the function call.
FLOAT_FLOOR does not produce a twos complement integer output, so:

  1. ffloor and fceil do not need an int2float()
  2. floor needs a trunc()
mumbel referenced this pull request in nstarke/raspberrypi4-bootloader-analysis Dec 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants