I recently stumbled over the MagPi Essentials Camera. In chapter 7 "Flash photography using an LED" (p.41+), they show how to configure pin BCM17 to act as a flash for the official Raspberry Pi Camera. This totally works for me, but I usually don't take things for granted.

The device tree definition in dt-blob.dts is full of magic strings like FLASH_0_ENABLE that I cannot find anywhere in the git repository (except in binary form in the start*.elf).

Where can I find the definition or documentation to those strings? This is just out of curiosity if there are more unaccessible features lurking in the Pi that reveal the fact that it actually is based on a SoC intended for use in mobile phones.

1 Answer 1


Most of what you find that seems to a "secret sauce" function are probably protected from full documentation or modification by the Broadcom License

If you use a hex editor to page through the boot.elf file, you'll see many low level function names. If you know how to hand disassemble into ARM Op Codes, you'll find out what all these things do. However, it's possible... maybe even likely... that you'll get sued by Broadcom if you post the disassembled code with modifications to do something.

Alas, proprietary firmware is still a problem even in today's world of supposed "Open Standards".

The "system-on-chip" and "designed-for-something-else" isn't the secret sauce. Looking through some of the functions, you'll notice that many functions contain identifiers like rpi.function1 ... So, these subroutines were created specifically for the RPi. Maybe some were test routines, or something that was decided shouldn't be listed in the documentation... or some forgotten code for an early version... or... whatever.

The main idea is that while what rides on top of the firmware may be Open Source, the firmware is not free software.

  • "you'll get sued by Broadcom" - I dont think so. Reverse engineering is a very legal way to explore how things work.
    – Kozuch
    Commented May 21, 2018 at 19:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.