Changes between Version 80 and Version 81 of gsc


Ignore:
Timestamp:
06/04/2021 08:56:01 PM (3 years ago)
Author:
Bobby Jones
Comment:

Document setting thermal temperature limit for GSCv3 v59+ firmware

Legend:

Unmodified
Added
Removed
Modified
  • gsc

    v80 v81  
    217217
    218218||= Bit =||= Name =||= Description =||
    219 || 0     || GSC_TP_ENABLE || 1 = Enable Thermal protection ||                                     
     219|| 0     || GSC_TP_ENABLE || 1 = Enable Thermal protection ||
     220|| 1     || RESERVED      ||                               ||
     221|| 2     || RESERVED      ||                               ||
     222|| 3-7   || GSC_TP_LIMIT  || Max temp limit additive value. This value is multiplied by 2, then added to 70C. Valid values result in a range of 70-126C ||
     223
     224For example, to configure a value of 100C use the following formula:
     225{{{#!bash
     226bit value = ((target_temp_limit_in_celcius - 70) / 2) << 3
     2270x78 = ((100 - 70) / 2) << 3
     228
     229# In U-Boot:
     230i2c dev 0; i2c mw 0x20 0x13 0x79  # add 1 for enable bit
     231}}}                             
    220232
    221233[=#GSC_BOOT_OPTIONS]
     
    973985If either the GSC 'board temperature' exceeds {{{85C}}} or the 'external thermal sensor' exceeds its threshold ({{{100C}}} for Newport CPU Junction Temperature (Tj)) the GSC will disable the primary power supply for a 'cooldown period'. The cooldown period has a range of {{{5-300}}} seconds, and will increase from {{{5}}} by {{{30}}} seconds each time a thermal threshold event occurs. If no thermal threshold event occurs within {{{300}}} seconds of power-up the cooldown period will be reset to the minimum of {{{5}}} seconds.
    974986
    975 This feature is present on:
    976  - GW6100-A+
    977  - GW6200-A+
    978  - GW6300-D+
    979  - GW6400-B+
     987**Firmware v59+**: For firmware versions v59 and beyond, support has been added to manually set the temperature limit in order to provide better control to customers with boards in varying thermal environments. The top 5 bits in the {{{GSC_THERMAL_PROTECTION}}} register are used to create a specific temperature limit starting at 70C as a minimum. The 5 bit value is multiplied by 2, then added to the base 70C to result in the new temperature limit. A 0 value is defaulted to result in an 86C limit, to support the register settings of older firmware. A max limit of 126C is also enforced, therefore allowing for a total range of {{{72-126C}}}.
     988
     989Some bootloader examples showing control of the thermal protection limit:
     990{{{#!bash
     991i2c dev 0; i2c mw 0x20 0x13 0x9  # set limit to minimum (72C)
     992i2c dev 0; i2c mw 0x20 0x13 0x79 # set limit to 100C
     993i2c dev 0; i2c mw 0x20 0x13 0xf9 # set limit to maximum (126C)
     994i2c dev 0; i2c mw 0x20 0x13 0x1  # return limit to default (86C)
     995i2c dev 0; i2c mw 0x20 0x13 0x0  # disable thermal protection limit
     996}}}
    980997
    981998Thermal protection is controlled by [#gsc_thermal_protect GSC_THERMAL_PROTECT (R19)].