4 ms·
I wrote the BootROM and 2nd stage loader used in VC3 and VC4 - way back in ~2005. And the interrupt controller, VPU sync block and various other things used in
by mrlambchop 10y ago
I wrote the BootROM and 2nd stage loader used in VC3 and VC4 - way back in ~2005. And the interrupt controller, VPU sync block and various other things used in this open FW.
This is pretty awesome to see how much context the community has reverse engineered from the design - I remember making the first BCM2835 based project (the Roku 2) and spending _A LOT_ of time getting the ARM to startup reliably and boot into Linux as fast as possible. I've spotted 2 concepts in the open FW so far that misunderstood the implementation of the HW but are still working which is fun!
One advantage of the having the GPU start first (maybe the only advantage :) is that it can play a video for a splash screen instead of a static image. If you've ever used a Roku 2/3 or newer, this is a feature I hacked together for a demo to hide boot-up latency - now its a standard part of RokuOS (and is quite hard to replicate on traditional ARM/MIPS SoC's).
- gh02t 10y agoI'm guessing you had privileged access to the datasheets for those chips and you're not legally allowed to tell them what they misunderstood? I imagine I would feel super weird seeing something being done wrong but not being allowed to tell someone. I mean I understand why, but it'd be frustrating.
- tmzt 10y agoBeen on the other side of that working on the HTC Linux project and chatting with Android developers at Google. I knew they were laughing to themselves as we tried to figure out what were modem differences and what were SoC differences between MSM7x00A and non-A.
- mrlambchop 10y agoWell, I wrote the RTL as well as implemented the SW so I guess I do have propriety information on the topic... In theory, all the code and sequences for the BootROM, 2nd stage, ARM loader and peripheral control functions is available by disassembling the binaries (and extracting some code from the ROM with a mempcy) - it just requires reverse engineering / re-implementing inside and this is part of the fun / why this project is so great. I might suggest they poke at the linux port and u-boot of the BCM2835 from Roku however :)
- christina_b 10y agoOh, which aspects?