wiki:newport/powerthermal

Version 22 (modified by Tim Harvey, 5 months ago) (diff)

page clean-up and expand on reading board/cpu temperature

See also

Newport Thermal

Newport Thermal Ratings

Gateworks pre-installs a heatsink on the CPU for all Newport boards. This heatsink provides basic cooling for the board during development but customers need to design their own thermal solution based on their particular enclosure, environment and operating conditions.

The Cavium CN80xx Octeon TX CPU is rated at:

  • 800MHz Dual Core (CN8020 - BGA676)
    • Max: 100C Tj (Junction Temp), 95°C Tc (Case Temp)
    • Min: -40C Tj (Junction Temp), -40°C Tc (Case Temp)
  • 1.5GHz Quad Core (CN8030 - BGA676)
    • Max: 95C Tj (Junction Temp), 90°C Tc (Case Temp)
    • Min: -40C Tj (Junction Temp), -40°C Tc (Case Temp)

The thermal resistances for the BGA676 and BGA555 packages is given below:

  • BGA676 Package (27mm x 27mm) - GW63xx/GW64xx
    • θJC (junction to case) = 0.45°C/W
    • θJB (junction to board) = 3.29°C/W
  • BGA555 Package (21mm x 21mm) - GW61xx/GW62xx
    • θJC (junction to case) = 0.65°C/W
    • θJB (junction to board) = 3.52°C/W

Newport Temperature Readings

Newport has the ability to measure the board temperature and CPU temperature.

Both values are important, but the CPU will be the hottest component and thus should be watched closely.

From Gateworks testing, it has been observed the CPU temperature is typically around 20C higher than the measured board temperature.

CPU Temperature

Note this is only available on newer revision Newport boards

While the CN80XX lacks a functioning internal CPU temperature sensor interface it does have the ability for an external device to monitor its junction temperature via pins on the SoC.

Newport boards have a Maxim MAX6642 temperature sensor located right next to the CPU available via I2C that monitors a local temperature sensor (inside its die) as well a remote temperature connected to the CN80XX die temperature.

The Newport BDK (part of the boot firmware) configures the MAX6642 local and remote temperature thresholds for 95C (for 1500MHz CPU) and 100C (for 800/1000/1200 MHz CPU) which are the maximum temperatures for the CPU per Marvell. If the local or remote temperature exceeds this value the MAX6642 will signal an interrupt to the GSC which can be configured to power down the board and enter a 'cooldown period' - See GSC Thermal Protection for more details

The CPU temperature is shown by the boot firmware via the serial console on board power-up:

Gateworks Newport SPL (12.7.0-0228336 Sat Mar 19 00:40:54 UTC 2022)

GSC     : v59 0xe619 RST:VIN Thermal Protection Enabled at board temp of 96C
Temp    : Board:45C/96C CPU:55C/95C
  • The above indicates the CPU temperature is currently 55C with a limit of 95C and GSC Thermal protection is enabled with a board temp of 96C

A Linux hwmon driver exists which supports reading and configuring the MAX6642 in Linux:

~# DEV=$(for i in $(ls /sys/class/hwmon); do [ "max6642" = $(cat /sys/class/hwmon/$i/name) ] && echo $i; done) # find max6642 device
~# ls /sys/class/hwmon/$DEV
device   power        temp1_max        temp2_input      uevent
name     subsystem    temp1_max_alarm  temp2_max
of_node  temp1_input  temp2_fault      temp2_max_alarm
~# cat /sys/class/hwmon/$DEV/temp1_input 
45000
~# cat /sys/class/hwmon/$DEV/temp1_max
95000
~# cat /sys/class/hwmon/$DEV/temp2_input 
59750
~# cat /sys/class/hwmon/$DEV/temp2_max
95000
~# echo 90000 > /sys/class/hwmon/$DEV/temp2_max # change CPU temp max to 90C
~# cat /sys/class/hwmon/$DEV/temp2_max
90000
  • temp1 on the max6642 is the local temperature and temp2 is the remote temperature (CPU die)
  • Linux hwmon devices refer to temperature in decicelcius thus 90C is 90000

Board Temperature

Board temperature is monitored via the Gateworks System Controller (GSC) via a thermister located on the board.

A Linux hwmon driver exists which supports reading and configuring the MAX6642 in Linux:

~# DEV=$(for i in $(ls /sys/class/hwmon); do [ "gsc_hwmon" = $(cat /sys/class/hwmon/$i/name) ] && echo $i; done) # find GSC device
~# cat /sys/class/hwmon/$DEV/temp1_input
48100
  • Linux hwmon devices refer to temperature in decicelcius thus 90C is 90000

Newport Power Dissipation

The following table provides typical power consumption for the various Newport board models without any attached peripherals.

Board GW6100 GW6104 GW6200 GW6204 GW6300 GW6304 GW6400 GW6404
Linux Prompt 4.7W 6.9W 5.17W 6.95W 6.0W 7.8W 7.1W 9.0W
Linux Stress 5.9W 9.95W 6.27W 10W 7.2W 10.3W 8.3W 11.8W
  • GW6100 = Dual Core 800MHz CN8021, 1GB DDR4, 8GB eMMC
  • GW6104 = Quad Core 1.5GHz CN8031, 2GB DDR4, 8GB eMMC, GPS
  • GW6200 = Dual Core 800MHz CN8021, 1GB DDR4, 8GB eMMC
  • GW6204 = Quad Core 1.5GHz CN8031, 2GB DDR4, 8GB eMMC, GPS, CAN
  • GW6300 = Dual Core 800MHz CN8020, 1GB DDR4, 8GB eMMC
  • GW6304 = Quad Core 1.5GHz CN8030, 2GB DDR4, 8GB eMMC, GPS, CAN
  • GW6400 = Dual Core 800MHz CN8020, 1GB DDR4, 8GB eMMC
  • GW6404 = Quad Core 1.5GHz CN8030, 2GB DDR4, 8GB eMMC, GPS, CAN, SFP

Newport Thermal Image

The following image is for the GW6300 board with the stock Gateworks heatsink.

  • Test Condition: 2 hours, Linux prompt, natural convection
  • Tambient @ 25C, CPU @ 75.9C, Board @ 67.5C.

Thermal Picture GW6300

Newport Heatsinks

The Newport has CPUs that have the following package sizes:

  • 27x27mm (GW63xx,GW64xx)
  • 21x21mm (GW61xx,GW62xx)

The Newport board comes with a heatsink that has a fan on top for cooling (fansink).

  • GW10130 Fansink - Used on GW61xx, GW62xx
  • GW10129 Fansink - Used on GW63xx, GW64xx

The fan is automatically controlled through the fan set points as defined here

Newport Thermal Protection

Thermal protection is offered by the GSC (Gateworks System Controller). Please read more on the GSC Wiki Page

Troubleshooting

Please review the Very Resourceful Thermal Management Page

Attachments (4)

Download all attachments as: .zip