Mainline:Broadcom Kona/Introduction: Difference between revisions

No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
* BCM21663/BCM21664 (Hawaii)
* BCM21663/BCM21664 (Hawaii)
* BCM23550 (Java)
* BCM23550 (Java)
Capri kernel sources also mention BCM28150/BCM28160 which are codenamed Island and appear to be similar to Capri; however, they do not seem to have been included in any consumer-available hardware.
Similarily, mentions of chips codenamed Athena, Hera and Samoa appear in some kernel sources, but with no relevant kernel config options - it is unknown which SoCs, if any, they correspond to.


These chips all share similar components, with a similar internal register layout. They can be grouped into three "generations": the BCM281x5 is first, the BCM21654 is second, and the BCM2166x/BCM23550 is third.
These chips all share similar components, with a similar internal register layout. They can be grouped into three "generations": the BCM281x5 is first, the BCM21654 is second, and the BCM2166x/BCM23550 is third.
Line 18: Line 22:
Two downstream kernels exist for these chips:
Two downstream kernels exist for these chips:


* An older 3.0 kernel for the BCM281x5, and another variant for the BCM21654.
* An older 3.0 kernel for the BCM281x5, and another variant for the BCM21654. ([https://github.com/ghsr/android_kernel_samsung_i9152 BCM28155 (Samsung Galaxy Mega 5.8/crater)], [https://github.com/wulsic/android_kernel_samsung_nevisp BCM21654 (Samsung Galaxy Fame/nevisp)])
* A newer 3.4 kernel (later updated to 3.10), with support for the BCM21664 and BCM23550, as well as partial support for the BCM21654.
* A newer 3.4 kernel (later updated to 3.10), with support for the BCM21664 and BCM23550, as well as partial support for the BCM21654. ([https://github.com/knuxdroid/android_kernel_samsung_baffinlite 3.4 kernel (Samsung Galaxy Grand Neo/baffinlite)], [https://android.googlesource.com/kernel/bcm/+/refs/heads/android-bcm-tetra-3.10-marshmallow-dr1-wear-release 3.10 kernel (Sony Smartwatch 3/tetra)])


In both kernels, most of the relevant downstream drivers for the Kona platform are stored in <code>arch/arm/plat-kona</code>; the individual board files for each device and chip-specific info is stored in <code>arch/arm/mach-(codename)</code> (where <code>(codename)</code> is one of <code>capri</code>, <code>rhea</code>, <code>hawaii</code> or <code>java</code>).
In both kernels, most of the relevant downstream drivers for the Kona platform are stored in <code>arch/arm/plat-kona</code>; the individual board files for each device and chip-specific info is stored in <code>arch/arm/mach-(codename)</code> (where <code>(codename)</code> is one of <code>capri</code>, <code>rhea</code>, <code>hawaii</code> or <code>java</code>).
Line 53: Line 57:
[[File:Generate-dump-diff output example.png|thumb|Example screenshot showing the output of generate-dump-diff.py]]
[[File:Generate-dump-diff output example.png|thumb|Example screenshot showing the output of generate-dump-diff.py]]


I maintain a set of relevant reverse-engineering tools at [https://github.com/refractionware/reveng github.com/refractionware/reveng]. The most directly useful ones are:
[[User:Knuxify|knuxify]] maintains a set of relevant reverse-engineering tools at [https://github.com/refractionware/reveng github.com/refractionware/reveng]. The most directly useful ones are:


* <code>tools/devmem-read-block.sh</code> - given a start address and the offset of the last register (inclusive), dumps all of the registers.
* <code>tools/devmem-read-block.sh</code> - given a start address and the offset of the last register (inclusive), dumps all of the registers.