Jump to content

Broadcom Kona: Difference between revisions

From postmarketOS Wiki
Knuxify (talk | contribs)
m Knuxfanwin8 moved page Broadcom chipsets to Broadcom Kona: https://gitlab.com/postmarketOS/wiki/-/issues/62
Knuxify (talk | contribs)
make Kona-specific and add more info
Line 1: Line 1:
__NOTOC__
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].
This is a joint page for multiple Broadcom chips.


{{note|'''Note:''' This is not a comprehensive article about Broadcom chips, nor is it a complete list of Broadcom chips. Especially newer ones are missing.}}
= Mainline status =


= Chips used in the Raspberry Pi =
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/samsung-bcmkona-mainline samsung-bcmkona-mainline organization on GitHub].


== Broadcom BCM2711 ==
There is no active work being done on the BCM28155 or BCM21654-based devices yet.
{{Infobox soc
| name = BCM2711
| manufacturer = Broadcom
| arch = aarch64
| year = 2019
| cpu = 4x 1.5 GHz ARM Cortex-A72
| gpu = Broadcom VideoCore VI
| process = 28
<!-- Please only uncomment this if you have experience running mainline on this SoC and fill out the status fields below.
| mainline = yes
| status_cpu =
| status_uart =
| status_storage =
| status_usb =
| status_display =
| status_gpu =
| status_pinctrl =
| status_i2c =
| status_audio =
| status_video =
| status_thermal =
| status_wifi =
| status_bluetooth =
| status_modem =
| status_camera =
-->
}}
=== Devices ===
 
{{#cargo_query:
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline
|order by=Devices.Manufacturer, Devices.Name
|format=table
|limit=9999
|where=Booting AND Devices.chipset LIKE 'Broadcom BCM2711%'
|more results text=
}}
 
=== Specifications ===
 
* Quad-core 1.5 GHz ARM Cortex-A72 CPU
* VideoCore VI GPU
 
=== Mainline status ===
 
=== More information ===
* [https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/README.md raspberrypi.org]


== Broadcom BCM2835 ==
== BCM21664/BCM23550 ==
{{Infobox soc
| name = BCM2835
| manufacturer = Broadcom
| arch = armhf
| year = 2012
| cpu = 700 MHz / 1 GHz ARM1176JZF-S
| gpu = Broadcom VideoCore IV
| process = 40
<!-- Please only uncomment this if you have experience running mainline on this SoC and fill out the status fields below.
| mainline = yes
| status_cpu =
| status_uart =
| status_storage =
| status_usb =
| status_display =
| status_gpu =
| status_pinctrl =
| status_i2c =
| status_audio =
| status_video =
| status_thermal =
| status_wifi =
| status_bluetooth =
| status_modem =
| status_camera =
-->
}}
=== Devices ===


{{#cargo_query:
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 samsung-bcmkona-mainline repository.
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline
|order by=Devices.Manufacturer, Devices.Name
|format=table
|limit=9999
|where=Booting AND Devices.chipset LIKE 'Broadcom BCM2835%'
|more results text=
}}


=== Specifications ===
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.


* Single-core 700 MHz ARM1176JZF-S (Raspberry Pi 1)
Progress can be tracked in [https://github.com/samsung-bcmkona-mainline/linux/issues/1 this issue in the samsung-bcmkona-mainline/linux repository[.
* Single-core 1 GHz ARM1176JZF-S (Raspberry Pi Zero)
* VideoCore IV GPU


=== Mainline status ===
{{todo|Add a nicer support matrix.}}


=== More information ===
== History ==
* [https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/README.md raspberrypi.org]
 
== Broadcom BCM2836 ==
{{Infobox soc
| name = BCM2836
| manufacturer = Broadcom
| arch = armv7
| year = 2015
| cpu = 4x 900 MHz ARM Cortex-A7
| gpu = Broadcom VideoCore IV
| process = 40
<!-- Please only uncomment this if you have experience running mainline on this SoC and fill out the status fields below.
| mainline = yes
| status_cpu =
| status_uart =
| status_storage =
| status_usb =
| status_display =
| status_gpu =
| status_pinctrl =
| status_i2c =
| status_audio =
| status_video =
| status_thermal =
| status_wifi =
| status_bluetooth =
| status_modem =
| status_camera =
-->
}}
=== Devices ===
 
{{#cargo_query:
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline
|order by=Devices.Manufacturer, Devices.Name
|format=table
|limit=9999
|where=Booting AND Devices.chipset LIKE '%Broadcom BCM2836%'
|more results text=
}}
 
=== Specifications ===
 
* Quad-core 900 MHz ARM Cortex-A7
* VideoCore IV GPU
 
=== Mainline status ===
 
=== More information ===
* [https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2836/README.md raspberrypi.org]
 
== Broadcom BCM2837(B0) ==
{{Infobox soc
| name = BCM2837(B0)
| manufacturer = Broadcom
| arch = aarch64
| year = 2016
| cpu = 4x 1.2/1.4 Ghz ARM Cortex-A53
| gpu = Broadcom VideoCore IV
| process = 40
<!-- Please only uncomment this if you have experience running mainline on this SoC and fill out the status fields below.
| mainline = yes
| status_cpu =
| status_uart =
| status_storage =
| status_usb =
| status_display =
| status_gpu =
| status_pinctrl =
| status_i2c =
| status_audio =
| status_video =
| status_thermal =
| status_wifi =
| status_bluetooth =
| status_modem =
| status_camera =
-->
}}
=== Devices ===
 
{{#cargo_query:
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline
|order by=Devices.Manufacturer, Devices.Name
|format=table
|limit=9999
|where=Booting AND Devices.chipset LIKE 'Broadcom BCM2837%'
|more results text=
}}
 
=== Specifications ===
 
* Quad-core 1.2 GHz ARM Cortex-A53 CPU (BCM2837)
* Quad-core 1.4 GHz ARM Cortex-A53 CPU (BCM2837B0)
* VideoCore IV GPU
 
=== Mainline status ===
 
=== More information ===
* [https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2837/README.md BCM2837 on raspberrypi.org]
* [https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2837b0/README.md BCM2837B0 on raspberrypi.org]
 
= Broadcom Kona platform =
 
Kona was Broadcom's mobile SoC platform. Most notably, Kona chips were used in multiple budget Samsung 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]).
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]).
Line 219: Line 25:
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]).
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]).


== Broadcom BCM21654 ==
= Chipsets =
{{Infobox soc
| name = BCM21654
| manufacturer = Broadcom
| codenames = Rhea
| arch = armv7
| year = 2012
| cpu = 1x 850 MHz ARM Cortex-A9
| gpu = Broadcom VideoCore IV
| process = 40
| mainline = no
<!--
| status_cpu = Y
| status_uart =
| status_storage = Y
| status_usb = Y
| status_display = Y
| status_gpu = Y
| status_pinctrl = Y
| status_i2c = Y
| status_audio = Y
| status_video = Y
| status_thermal = Y
| status_wifi =
| status_bluetooth =
| status_modem =
| status_camera =
-->
}}
=== Devices ===
 
{{#cargo_query:
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline
|order by=Devices.Manufacturer, Devices.Name
|format=table
|limit=9999
|where=Devices.chipset='Broadcom BCM21654' OR Devices.chipset='Broadcom BCM21654G'
|more results text=
}}
 
=== Specifications ===
 
* Single-core 850 MHz ARM Cortex-A9 CPU
* VideoCore IV GPU
 
=== Mainline status ===
 
No dtsi.
{{todo|How similar is this one to the 21664 and 23550?}}
 
=== More information ===
 
* [http://phonedb.net/index.php?m=processor&id=384&c=broadcom_bcm21654 phonedb.net]


== Broadcom BCM21664 ==
== Broadcom BCM21664 ==
Line 324: Line 77:
=== Mainline status ===
=== Mainline status ===


There's a dtsi available for this chipset in the mainline kernel.
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])
Some mainlining progress was made by [[User:Deata|Deata]] (see [https://gitlab.com/deata/kylepro-mainlining deata/kylepro-mainlining on GitLab])
Line 388: Line 141:
* [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]


== Broadcom BCM28155 ==
== Broadcom BCM21654 ==
{{Infobox soc
{{Infobox soc
| name = BCM28155
| name = BCM21654
| manufacturer = Broadcom
| manufacturer = Broadcom
| codenames = Capri
| codenames = Rhea
| arch = armv7
| arch = armv7
| year = 2012
| year = 2012
| cpu = 2x 1.2 GHz ARM Cortex-A9
| cpu = 1x 850 MHz ARM Cortex-A9
| gpu = Broadcom VideoCore IV
| gpu = Broadcom VideoCore IV
| process = 40
| process = 40
| mainline = no
| mainline = no
<!--| status_cpu = Y
<!--
| status_cpu = Y
| status_uart =  
| status_uart =  
| status_storage = Y
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display = Y
| status_display = Y
| status_gpu =  
| status_gpu = Y
| status_pinctrl =  
| status_pinctrl = Y
| status_i2c =  
| status_i2c = Y
| status_audio = N
| status_audio = Y
| status_video = Y
| status_video = Y
| status_thermal =  
| status_thermal = Y
| status_wifi = Y
| status_wifi =
| status_bluetooth = N
| status_bluetooth =
| status_modem = N
| status_modem =  
| status_camera = N-->
| status_camera =  
-->
}}
}}
=== Devices ===
=== Devices ===
Line 423: Line 178:
|format=table
|format=table
|limit=9999
|limit=9999
|where=Devices.chipset='Broadcom BCM28155'
|where=Devices.chipset='Broadcom BCM21654' OR Devices.chipset='Broadcom BCM21654G'
|more results text=
|more results text=
}}
}}
Line 429: Line 184:
=== Specifications ===
=== Specifications ===


* Quad-core 1.2 GHz ARM Cortex-A7 CPU
* Single-core 850 MHz ARM Cortex-A9 CPU
* VideoCore IV GPU
* VideoCore IV GPU


=== Mainline status ===
=== Mainline status ===


There's a dtsi available for this chipset in the mainline kernel.
No dtsi. Appears to be more similar to the BCM21855, but this has yet to be researched.


=== More information ===
=== More information ===


* [https://phonedb.net/index.php?m=processor&id=380&c=broadcom_bcm28155 phonedb.net]
* [http://phonedb.net/index.php?m=processor&id=384&c=broadcom_bcm21654 phonedb.net]


= Legacy =
== Broadcom BCM28155 ==
 
== Broadcom BCM21553 ==
{{Infobox soc
{{Infobox soc
| name = BCM21553
| name = BCM28155
| manufacturer = Broadcom
| manufacturer = Broadcom
| arch = armhf
| codenames = Capri
| year = 2010
| arch = armv7
| cpu = 1x 832 MHz ARM1136
| year = 2012
| cpu = 2x 1.2 GHz ARM Cortex-A9
| gpu = Broadcom VideoCore IV
| gpu = Broadcom VideoCore IV
| process = 65
| process = 40
| mainline = no
| mainline = no
<!--
<!--| status_cpu = Y
| status_cpu = Y
| status_uart =  
| status_uart =  
| status_storage = Y
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display = Y
| status_display = Y
| status_gpu = Y
| status_gpu =  
| status_pinctrl = Y
| status_pinctrl =  
| status_i2c = Y
| status_i2c =  
| status_audio = Y
| status_audio = N
| status_video = Y
| status_video = Y
| status_thermal = Y
| status_thermal =  
| status_wifi =
| status_wifi = Y
| status_bluetooth =
| status_bluetooth = N
| status_modem =  
| status_modem = N
| status_camera =  
| status_camera = N-->
-->
}}
}}An older armv6 chip with VFP support.
 
=== Devices ===
=== Devices ===


Line 479: Line 230:
|format=table
|format=table
|limit=9999
|limit=9999
|where=Devices.chipset='Broadcom BCM21553'
|where=Devices.chipset='Broadcom BCM28155'
|more results text=
|more results text=
}}
}}
Line 485: Line 236:
=== Specifications ===
=== Specifications ===


* Single-core 832 MHz ARM1136 ARMv6 CPU
* Quad-core 1.2 GHz ARM Cortex-A7 CPU
* VideoCore IV GPU
* VideoCore IV GPU
=== Downstream status ===
The only device that seems to work with this chipset is the [[Samsung Galaxy Ace i (samsung-s5830i)]], although it has not been merged into pmaports. The [[Samsung Galaxy Y (samsung-totoro)]] does not boot.


=== Mainline status ===
=== Mainline status ===


No dts in mainline, and there doesn't seem to be any similar chip supported.
There's a dtsi available for this chipset in the mainline kernel.


=== More information ===
=== More information ===


* [http://phonedb.net/index.php?m=processor&id=336&c=broadcom_bcm21553 phonedb.net]
* [https://phonedb.net/index.php?m=processor&id=380&c=broadcom_bcm28155 phonedb.net]

Revision as of 17:19, 22 June 2021

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 the 1st-gen Fire TV stick.

Mainline status

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 samsung-bcmkona-mainline organization on GitHub.

There is no active work being done on the BCM28155 or BCM21654-based devices yet.

BCM21664/BCM23550

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 samsung-bcmkona-mainline repository.

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.

Progress can be tracked in [https://github.com/samsung-bcmkona-mainline/linux/issues/1 this issue in the samsung-bcmkona-mainline/linux repository[.

TODO TODO: Add a nicer support matrix.

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).

Chipsets

Broadcom BCM21664

Broadcom BCM21664
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 no
Components
CPU
Works
UART
No data
Storage
Works
USB
Works
Display
Works
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
Partial
Video
No data
Thermal
No data
WiFi
Works
Bluetooth
Broken
Modem
Broken
GPS
No data
Camera
Broken
NPU
No data
Suspend
No data
Ethernet
No data
SATA
No data


Devices

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
TODO TODO: Document variants.

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 Deata (see deata/kylepro-mainlining on GitLab)

More information

Broadcom BCM23550

Broadcom BCM23550
Manufacturer Broadcom
Name BCM23550
Codenames Java
Architecture armv7
CPU 4x 1.2 GHz ARM Cortex-A7
GPU Broadcom VideoCore IV
Year 2012
Process 40nm
Mainline no
Components
CPU
Works
UART
No data
Storage
Works
USB
Works
Display
Works
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
Broken
Video
Works
Thermal
No data
WiFi
Works
Bluetooth
Broken
Modem
Broken
GPS
No data
Camera
Broken
NPU
No data
Suspend
No data
Ethernet
No data
SATA
No data


Devices

Device Codename Mainline
GoClever Quantum2 400 goclever-quantum2400
Samsung Galaxy Grand Neo samsung-baffinlite P
Sony SmartWatch 3 sony-tetra

Specifications

  • 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 knuxify (see knuxdroid/baffinlite-mainline on GitHub).

More information

Broadcom BCM21654

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
WiFi
No data
Bluetooth
No data
Modem
No data
GPS
No data
Camera
No data
NPU
No data
Suspend
No data
Ethernet
No data
SATA
No data

Devices

Device Codename Mainline
Samsung Galaxy Chat samsung-zanin
Samsung Galaxy Fame samsung-nevisp N
Samsung Galaxy Pocket Neo samsung-corsica

Specifications

  • Single-core 850 MHz ARM Cortex-A9 CPU
  • VideoCore IV GPU

Mainline status

No dtsi. Appears to be more similar to the BCM21855, but this has yet to be researched.

More information

Broadcom BCM28155

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 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
WiFi
No data
Bluetooth
No data
Modem
No data
GPS
No data
Camera
No data
NPU
No data
Suspend
No data
Ethernet
No data
SATA
No data

Devices

Device Codename Mainline
Amazon Fire TV Stick (1st gen) amazon-montoya
Samsung Galaxy Grand Duos samsung-baffin N
Samsung Galaxy SII Plus samsung-i9105p

Specifications

  • 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.

More information