Jump to content

Broadcom Kona: Difference between revisions

From postmarketOS Wiki
Knuxify (talk | contribs)
add bcm21664t image
Knuxify (talk | contribs)
change matrix space address
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Kona was Broadcom's mobile SoC platform. Most notably, Kona chips were used in multiple budget Samsung devices, as well as the [Sony SmartWatch 3 (sony-tetra)] and [https://developer.amazon.com/docs/fire-tv/device-specifications-fire-tv-stick.html?v=ftvstickgen1 the 1st-gen Fire TV stick].
{{Userbox container|
 
{{userbox
= Mainline status =
| border-= #19b187
 
| id        = [[File:Element_Logomark.svg|Element logo|36px]]
Development for the [[Samsung Galaxy Grand Neo (samsung-baffinlite)]] (BCM23550), as well as the [[Samsung Galaxy Trend Plus (samsung-kylepro)]] and the [[Samsung Galaxy Core Plus (samsung-cs02)]] (BCM21664), is currently (slowly) happening in the [https://github.com/bcm-kona-mainline bcm-kona-mainline organization on GitHub].
| id-c      = #f4fffc
 
| info      = Broadcom Kona Mainlining Community on '''[https://matrix.to/#/#bcm-kona-mainline:dissonant.dev<span style="color: #066047 !important; text-decoration: underline !important;">Matrix</span>]'''.
There is no active work being done on the BCM28155 or BCM21654-based devices yet.
| info-c    = #b5eadc
 
| info-color = #022018
== BCM21664/BCM23550 ==
}}
}}
Kona was Broadcom's mobile SoC platform, spanning the BCM281x5, BCM21654, BCM2166x and BCM23550 chipsets.


Currently, the 3 devices being worked on can boot into the initramfs. The BCM59054 PMU used in these devices works with the BCM59056 driver - some modifications have been made to add proper support for the different regulators in the bcm-kona-mainline repository.
Current mainlining work is being done in the [https://github.com/bcm-kona-mainline/linux bcm-kona-mainline/linux repo on GitHub]. Progress can be tracked by checking the issues on [https://github.com/bcm-kona-mainline/linux/issues the issue tracker].


SMP does not work (quite likely to be a regression, as it worked in Deata's kernel according to boot logs). Some clocks do not get initialized (presumably disabled by the bootloader, likely related to the pwr_mgr driver). USB does not work.
There is a separate wiki for Broadcom Kona hardware; see [https://wiki.dissonant.dev/wiki/Mainline:Broadcom_Kona Mainline:Broadcom Kona on wiki.dissonant.dev]. For a brief overview of mainlining steps, see the [https://wiki.dissonant.dev/wiki/Mainline:Broadcom_Kona/Introduction Introduction] article.


Progress can be tracked in [https://github.com/bcm-kona-mainline/linux/issues/1 this issue in the bcm-kona-mainline/linux repository].
The Broadcom chips used in Raspberry Pi devices (BCM2837, etc.) are completely different from the Kona chips, the only thing they share is the GPU (Videocore IV). The Kona series is also different from the BCM21553 and other earlier Broadcom SoCs.


{{#cargo_query:
{{#cargo_query:
tables=Socs
tables=Socs
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=SoC,Arch,Year,StatusUart=UART,StatusUsb=USB,StatusStorage=Storage,StatusDisplay=Display,StatusCpu=CPU,StatusGpu=GPU,StatusPinctrl=Pinctrl,StatusI2c=I²C,StatusAudio=Audio,StatusVideo=Video,StatusThermal=Thermal,StatusWiFi=WiFi,StatusBluetooth=BT,StatusModem=Modem,StatusGps=GPS,StatusCamera=Camera,StatusSuspend=Suspend
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=SoC,Arch,Year,Mainline,StatusUart=UART,StatusUsb=USB,StatusStorage=Storage,StatusDisplay=Display,StatusCpu=CPU,StatusGpu=GPU,StatusPinctrl=Pinctrl,StatusI2c=I²C,StatusAudio=Audio,StatusVideo=Video,StatusThermal=Thermal,StatusWiFi=WiFi,StatusBluetooth=BT,StatusModem=Modem,StatusGps=GPS,StatusCamera=Camera,StatusSuspend=Suspend
|order by=Socs.Manufacturer, Socs.Name
|order by=Socs.Manufacturer, Socs.Name
|where=Socs.Name="BCM21664" OR Socs.Name="BCM23550"
|where=Socs.Name="BCM21664" OR Socs.Name="BCM23550" OR Socs.Name="BCM28155" OR Socs.Name="BCM21654"
|format=table
|format=table
|limit=9999
|limit=9999
Line 25: Line 27:
}}
}}


== History ==
== Devices ==
 
The initial work for Kona mainlining was started around 2012, when the board_bcm generic device and some extra drivers were added to the kernel ([https://github.com/torvalds/linux/commit/8ac49e0485bb79223a111b366a3b1f5ec9148729 commit]). Proper board development, as well as the addition of board files for the BCM21664 started around 2013, and ended around 2014, with a few commits to some devices later on (see: [https://github.com/torvalds/linux/commit/c3ceebd7ca22ec9ffaeb7ff967719edd63479ccd BCM21664 bringup]). Support for the BCM23550 was added around 2016 (see: [https://github.com/torvalds/linux/commit/4533d5f7dd8bcf4d9348f1f8b707ca2599531183 BCM23550 bringup]).
 
Many Kona platform devices also make use of BCM590XX PMUs; initial support for one of them - the BCM59056 - was added in early 2014. According to [https://groups.google.com/g/linux.kernel/c/Uv9DocT5cec/m/RCQFWe9V-iYJ a message on the Linux mailing list], support was planned for the similar BCM59054, however it has not been merged into upstream.
 
In 2014 Broadcom stopped its Mobile SoC activities, which also stopped further developments from Linaro (see [https://linux.kernel.narkive.com/zSes5B6k/patch-arm-mach-bcm-offer-a-new-maintainer-and-process this mail on the mailing list]).
 
= Chipsets =


== Broadcom BCM21664 (Hawaii) ==
=== Broadcom BCM21663/BCM21664 (Hawaii) ===


{{Infobox soc
{{Infobox soc
Line 47: Line 41:
| cpu = 2x 1.2 GHz ARM Cortex-A9
| cpu = 2x 1.2 GHz ARM Cortex-A9
| gpu = Broadcom VideoCore IV
| gpu = Broadcom VideoCore IV
| community_page = https://github.com/bcm-kona-mainline
| process = 40
| process = 40
| mainline = yes
| mainline = yes
Line 55: Line 50:
| status_display =  
| status_display =  
| status_gpu =  
| status_gpu =  
| status_pinctrl =
| status_pinctrl = Y
| status_i2c = Y
| status_i2c = Y
| status_audio =  
| status_audio =  
| status_video =  
| status_video =  
| status_thermal =  
| status_thermal =  
| status_wifi =  
| status_wifi = -
| status_bluetooth =  
| status_bluetooth = -
| status_modem =  
| status_modem = -
| status_gps = -
| status_camera =  
| status_camera =  
| status_npu = -
| status_ethernet = -
| status_sata = -
}}
}}
=== Devices ===
{{#cargo_query:
{{#cargo_query:
tables=Devices
tables=Devices
Line 74: Line 70:
|format=table
|format=table
|limit=9999
|limit=9999
|where=Devices.chipset='Broadcom BCM21664' OR Devices.chipset='Broadcom BCM21664A' OR Devices.chipset='Broadcom BCM21664G' OR Devices.chipset='Broadcom BCM21664T'
|where=Devices.chipset='Broadcom BCM21664' OR Devices.chipset LIKE 'Broadcom BCM21664%' OR Devices.chipset='Broadcom BCM21663'
|more results text=
|more results text=
}}
}}


{{todo|Document variants.}}
==== More information ====
 
=== Specifications ===
 
* Dual-core 1.2 GHz ARM Cortex-A9 CPU
* VideoCore IV GPU
 
=== Mainline status ===
 
There's a dtsi available for the 1.2Ghz variant of this chipset in the mainline kernel. The weaker variant is not supported, but it's most likely as easy as changing the BCM21664 DTSI (as they both share the same source code in downstream).
 
Some mainlining progress was made by [[User:Deata|Deata]] (see [https://gitlab.com/deata/kylepro-mainlining deata/kylepro-mainlining on GitLab]), and it is being continued in the [https://github.com/bcm-kona-mainline/linux bcm-kona-mainline/linux repo on GitHub].
 
=== More information ===


* [http://phonedb.net/index.php?m=processor&id=445&c=broadcom_bcm21664 phonedb.net]
* [http://phonedb.net/index.php?m=processor&id=445&c=broadcom_bcm21664 phonedb.net]
* [https://web.archive.org/web/20140705060330/http://www.broadcom.com/products/Cellular/3G-Mobile-Platforms/BCM21664 Broadcom's website (archive)]


== Broadcom BCM23550 (Java) ==
=== Broadcom BCM23550 (Java) ===
 
Shares a lot of common platform code with Hawaii chips, and has a lot of similar drivers.


{{Infobox soc
{{Infobox soc
Line 106: Line 88:
| codenames = Java
| codenames = Java
| arch = armv7
| arch = armv7
| year = 2012
| year = 2013
| cpu = 4x 1.2 GHz ARM Cortex-A7
| cpu = 4x 1.2 GHz ARM Cortex-A7
| gpu = Broadcom VideoCore IV
| gpu = Broadcom VideoCore IV
| process = 40
| process = 40
| community_page = https://github.com/bcm-kona-mainline
| mainline = yes
| mainline = yes
| status_cpu = P
| status_cpu = P
Line 117: Line 100:
| status_display =  
| status_display =  
| status_gpu =  
| status_gpu =  
| status_pinctrl =
| status_pinctrl =Y
| status_i2c = Y
| status_i2c = Y
| status_audio =  
| status_audio =  
| status_video =  
| status_video =  
| status_thermal =  
| status_thermal =  
| status_wifi =  
| status_wifi = -
| status_bluetooth =  
| status_bluetooth = -
| status_modem =  
| status_modem = -
| status_gps = -
| status_camera =  
| status_camera =  
| status_npu = -
| status_ethernet = -
| status_sata = -
}}
}}
=== Devices ===
{{#cargo_query:
{{#cargo_query:
tables=Devices
tables=Devices
Line 140: Line 124:
}}
}}


=== Specifications ===
==== More information ====
 
* Quad-core 1.2 GHz ARM Cortex-A7 CPU
* VideoCore IV GPU
 
=== Mainline status ===
 
There's a dtsi available for this chipset in the mainline kernel.
 
Some mainlining progress was made by [[User:Knuxfanwin8|knuxify]] (see [https://github.com/bcm-kona-mainline/linux bcm-kona-mainline/linux on GitHub]).
 
=== More information ===


* [http://phonedb.net/index.php?m=processor&id=470&c=broadcom_bcm23550 phonedb.net]
* [http://phonedb.net/index.php?m=processor&id=470&c=broadcom_bcm23550 phonedb.net]
* [https://web.archive.org/web/20140714225315/http://www.broadcom.com/products/Cellular/3G-Mobile-Platforms/BCM23550 Broadcom's website (archive)]


== Broadcom BCM21654 (Rhea) ==
=== Broadcom BCM21654 (Rhea) ===
{{Infobox soc
{{Infobox soc
| name = BCM21654
| name = BCM21654
Line 166: Line 140:
| process = 40
| process = 40
| mainline = no
| mainline = no
<!--
| status_cpu =  
| status_cpu = Y
| status_uart =  
| status_uart =  
| status_storage = Y
| status_storage =  
| status_usb = Y
| status_usb =  
| status_display = Y
| status_display =  
| status_gpu = Y
| status_gpu =  
| status_pinctrl = Y
| status_pinctrl =  
| status_i2c = Y
| status_i2c =  
| status_audio = Y
| status_audio =
| status_video = Y
| status_video =  
| status_thermal = Y
| status_thermal =  
| status_wifi =
| status_wifi = -
| status_bluetooth =
| status_bluetooth = -
| status_modem =  
| status_modem = -
| status_gps = -
| status_camera =  
| status_camera =  
-->
| status_npu = -
| status_ethernet = -
| status_sata = -
}}
}}
=== Devices ===
{{#cargo_query:
{{#cargo_query:
tables=Devices
tables=Devices
Line 196: Line 170:
}}
}}


=== Specifications ===
==== More information ====
 
* Single-core 850 MHz ARM Cortex-A9 CPU
* VideoCore IV GPU
 
=== Mainline status ===
 
No DTSI. May be similar to the BCM28155, but this hasn't been researched yet.
 
=== More information ===


* [http://phonedb.net/index.php?m=processor&id=384&c=broadcom_bcm21654 phonedb.net]
* [http://phonedb.net/index.php?m=processor&id=384&c=broadcom_bcm21654 phonedb.net]
* [https://web.archive.org/web/20140606063250/http://www.broadcom.com/products/Cellular/3G-Mobile-Platforms/BCM21654 Broadcom's website (archive)]


== Broadcom BCM28155 (Capri) ==
=== Broadcom BCM28145/BCM28155 (Capri) ===
{{Infobox soc
{{Infobox soc
| name = BCM28155
| name = BCM28155
Line 219: Line 185:
| gpu = Broadcom VideoCore IV
| gpu = Broadcom VideoCore IV
| process = 40
| process = 40
| mainline = no
| mainline = yes
<!--| status_cpu = Y
| status_cpu =  
| status_uart =  
| status_uart =  
| status_storage = Y
| status_storage =  
| status_usb = Y
| status_usb =  
| status_display = Y
| status_display =  
| status_gpu =  
| status_gpu =  
| status_pinctrl =  
| status_pinctrl =  
| status_i2c =  
| status_i2c =  
| status_audio = N
| status_audio =
| status_video = Y
| status_video =  
| status_thermal =  
| status_thermal =  
| status_wifi = Y
| status_wifi = -
| status_bluetooth = N
| status_bluetooth = -
| status_modem = N
| status_modem = -
| status_camera = N-->
| status_gps = -
| status_camera =  
| status_npu = -
| status_ethernet = -
| status_sata = -
}}
}}
=== Devices ===
{{#cargo_query:
{{#cargo_query:
tables=Devices
tables=Devices
Line 244: Line 212:
|format=table
|format=table
|limit=9999
|limit=9999
|where=Devices.chipset='Broadcom BCM28155'
|where=Devices.chipset='Broadcom BCM28155' OR Devices.chipset='Broadcom BCM28145'
|more results text=
|more results text=
}}
}}


=== Specifications ===
==== More information ====
 
* [https://phonedb.net/index.php?m=processor&id=380&c=broadcom_bcm28155 phonedb.net]
* [https://web.archive.org/web/20140715134412/http://www.broadcom.com/products/Cellular/3G-Mobile-Platforms/BCM28145-28155 Broadcom's website (archive)]


* Dual-core 1.2 GHz ARM Cortex-A9 CPU
== Mainline status ==
* VideoCore IV GPU


=== Mainline status ===
All Broadcom Kona-related mainlining work is currently being done in the [https://github.com/bcm-kona-mainline/linux bcm-kona-mainline/linux repo]. At the moment, the BCM21664 and BCM23550 are being actively worked on there; the mainline kernel also has support for the BCM28155, and adding support for the BCM21654 should be relatively trivial, but they are planned to be supported at a later date.


There's a DTSI available for this chipset in the mainline kernel.
Both the BCM21664 and the BCM23550 can boot into a complete system; I2C is fully working, and GPIO works as well. The SD card prints some errors but appears to be working on the [[Samsung Galaxy Grand Neo (samsung-baffinlite)]]; internal storage works as well, but has some problems on some BCM21664 devices (at least the [[Samsung Galaxy Core Plus (samsung-cs02)]]). Display works through simple-framebuffer; GPU support will come at a later point, but is made easier by the fact that the VC4 chip is already well-supported thanks to being included in the Raspberry Pi 3 and earlier. USB is broken.


=== More information ===
== History ==


* [https://phonedb.net/index.php?m=processor&id=380&c=broadcom_bcm28155 phonedb.net]
The initial work for Kona mainlining was started around 2012, when the board_bcm generic device and some extra drivers were added to the kernel ([https://github.com/torvalds/linux/commit/8ac49e0485bb79223a111b366a3b1f5ec9148729 commit]). Proper board development, as well as the addition of board files for the BCM21664 started around 2013, and ended around 2014, with a few commits to some devices later on (see: [https://github.com/torvalds/linux/commit/c3ceebd7ca22ec9ffaeb7ff967719edd63479ccd BCM21664 bringup]). Support for the BCM23550 was added around 2016 (see: [https://github.com/torvalds/linux/commit/4533d5f7dd8bcf4d9348f1f8b707ca2599531183 BCM23550 bringup]).
 
Many Kona platform devices also make use of BCM590XX PMUs; initial support for one of them - the BCM59056 - was added in early 2014. According to [https://groups.google.com/g/linux.kernel/c/Uv9DocT5cec/m/RCQFWe9V-iYJ a message on the Linux mailing list], support was planned for the similar BCM59054, however it has not been merged into upstream.
 
In 2014 Broadcom stopped its Mobile SoC activities, which also stopped further developments from Linaro (see [https://linux.kernel.narkive.com/zSes5B6k/patch-arm-mach-bcm-offer-a-new-maintainer-and-process this mail on the mailing list]).
 
''See also: [https://web.archive.org/web/20140531014745/http://www.broadcom.com/products/Cellular/3G-Mobile-Platforms Broadcom's old website with a list of their mobile chips (archive)]''

Latest revision as of 20:36, 11 February 2025

Element logo Broadcom Kona Mainlining Community on Matrix.

Kona was Broadcom's mobile SoC platform, spanning the BCM281x5, BCM21654, BCM2166x and BCM23550 chipsets.

Current mainlining work is being done in the bcm-kona-mainline/linux repo on GitHub. Progress can be tracked by checking the issues on the issue tracker.

There is a separate wiki for Broadcom Kona hardware; see Mainline:Broadcom Kona on wiki.dissonant.dev. For a brief overview of mainlining steps, see the Introduction article.

The Broadcom chips used in Raspberry Pi devices (BCM2837, etc.) are completely different from the Kona chips, the only thing they share is the GPU (Videocore IV). The Kona series is also different from the BCM21553 and other earlier Broadcom SoCs.

SoC Arch Year Mainline UART USB Storage Display CPU GPU Pinctrl I²C Audio Video Thermal WiFi BT Modem GPS Camera Suspend
Broadcom BCM21654 armv7 2012 No - - - -
Broadcom BCM21664 armv7 2012 Yes Y N P P Y Y - - - -
Broadcom BCM23550 armv7 2013 Yes Y N P P Y Y - - - -
Broadcom BCM28155 armv7 2012 Yes - - - -

Devices

Broadcom BCM21663/BCM21664 (Hawaii)

Broadcom BCM21664
BCM21664T on the board for the Samsung Galaxy S Duos 2 (samsung-kyleprods).
BCM21664T on the board for the Samsung Galaxy S Duos 2 (samsung-kyleprods).
Manufacturer Broadcom
Name BCM21664
Codenames Hawaii
Architecture armv7
CPU 2x 1.2 GHz ARM Cortex-A9
GPU Broadcom VideoCore IV
Year 2012
Process 40nm
Mainline yes
Community Page https://github.com/bcm-kona-mainline
Components
CPU
Partial
UART
Works
Storage
Partial
USB
Broken
Display
No data
GPU
No data
Pinctrl
Works
I²C
Works
SPI
No data
Audio
No data
Video
No data
Thermal
No data
Camera
No data
Suspend
No data
Device Codename Mainline
Samsung Galaxy Ace 3 3G samsung-logan -
Samsung Galaxy Ace 3 Duos samsung-logands N
Samsung Galaxy Core Plus samsung-cs02 P
Samsung Galaxy S Duos 2 samsung-kyleprods
Samsung Galaxy Trend Lite samsung-kylevess P
Samsung Galaxy Trend Plus samsung-kylepro P

More information

Broadcom BCM23550 (Java)

Broadcom BCM23550
BCM23550 on the board for the Samsung Galaxy Grand Neo (samsung-baffinlite).
BCM23550 on the board for the Samsung Galaxy Grand Neo (samsung-baffinlite).
Manufacturer Broadcom
Name BCM23550
Codenames Java
Architecture armv7
CPU 4x 1.2 GHz ARM Cortex-A7
GPU Broadcom VideoCore IV
Year 2013
Process 40nm
Mainline yes
Community Page https://github.com/bcm-kona-mainline
Components
CPU
Partial
UART
Works
Storage
Partial
USB
Broken
Display
No data
GPU
No data
Pinctrl
Works
I²C
Works
SPI
No data
Audio
No data
Video
No data
Thermal
No data
Camera
No data
Suspend
No data
Device Codename Mainline
GoClever Quantum2 400 goclever-quantum2400
Samsung Galaxy Grand Neo samsung-baffinlite P
Sony SmartWatch 3 sony-tetra

More information

Broadcom BCM21654 (Rhea)

Broadcom BCM21654
Manufacturer Broadcom
Name BCM21654
Codenames Rhea
Architecture armv7
CPU 1x 850 MHz ARM Cortex-A9
GPU Broadcom VideoCore IV
Year 2012
Process 40nm
Mainline no
Components
CPU
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
Camera
No data
Suspend
No data
Device Codename Mainline
Samsung Galaxy Chat samsung-zanin
Samsung Galaxy Fame samsung-nevisp N
Samsung Galaxy Pocket Neo samsung-corsica

More information

Broadcom BCM28145/BCM28155 (Capri)

Broadcom BCM28155
Manufacturer Broadcom
Name BCM28155
Codenames Capri
Architecture armv7
CPU 2x 1.2 GHz ARM Cortex-A9
GPU Broadcom VideoCore IV
Year 2012
Process 40nm
Mainline yes
Components
CPU
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
Camera
No data
Suspend
No data
Device Codename Mainline
Amazon Fire TV Stick (1st gen) amazon-montoya
Samsung Galaxy Grand Duos samsung-baffin N
Samsung Galaxy SII Plus samsung-i9105p

More information

Mainline status

All Broadcom Kona-related mainlining work is currently being done in the bcm-kona-mainline/linux repo. At the moment, the BCM21664 and BCM23550 are being actively worked on there; the mainline kernel also has support for the BCM28155, and adding support for the BCM21654 should be relatively trivial, but they are planned to be supported at a later date.

Both the BCM21664 and the BCM23550 can boot into a complete system; I2C is fully working, and GPIO works as well. The SD card prints some errors but appears to be working on the Samsung Galaxy Grand Neo (samsung-baffinlite); internal storage works as well, but has some problems on some BCM21664 devices (at least the Samsung Galaxy Core Plus (samsung-cs02)). Display works through simple-framebuffer; GPU support will come at a later point, but is made easier by the fact that the VC4 chip is already well-supported thanks to being included in the Raspberry Pi 3 and earlier. USB is broken.

History

The initial work for Kona mainlining was started around 2012, when the board_bcm generic device and some extra drivers were added to the kernel (commit). Proper board development, as well as the addition of board files for the BCM21664 started around 2013, and ended around 2014, with a few commits to some devices later on (see: BCM21664 bringup). Support for the BCM23550 was added around 2016 (see: BCM23550 bringup).

Many Kona platform devices also make use of BCM590XX PMUs; initial support for one of them - the BCM59056 - was added in early 2014. According to a message on the Linux mailing list, support was planned for the similar BCM59054, however it has not been merged into upstream.

In 2014 Broadcom stopped its Mobile SoC activities, which also stopped further developments from Linaro (see this mail on the mailing list).

See also: Broadcom's old website with a list of their mobile chips (archive)