<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SJA1110 Qbv AdminBaseTime Configuration in Other NXP Products</title>
    <link>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389031#M32780</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/241130"&gt;@GuilhermeS32G&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;ADMINBASETIME should be understood as the absolute time reference/phase reference for the Qbv schedule. It is used to align the start of the repeating Qbv cycle to the synchronized time domain. It is not calculated from the port speed and it is not based on the TRIGGER_TIME granularity.&lt;/P&gt;
&lt;P&gt;In a multi-switch TSN system, gPTP / IEEE 802.1AS provides the common synchronized time base, but it does not automatically configure the Qbv schedule. The Qbv configuration, including ADMINBASETIME, must be programmed by a TSN management stack/CNC or by application-specific/custom software running on the host processor. IEEE 802.1Qcc describes centralized TSN configuration models where a CNC computes and distributes TSN configuration to the network devices.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf" target="_blank"&gt;https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;A typical procedure might look like:&lt;/P&gt;
&lt;P&gt;1. Start gPTP / 802.1AS and wait until all relevant TSN devices are synchronized.&lt;/P&gt;
&lt;P&gt;2. Read the current synchronized time from the device/PTP time domain.&lt;/P&gt;
&lt;P&gt;3. Choose a future base time: ADMINBASETIME = current_gPTP_time + safety_margin&lt;/P&gt;
&lt;P&gt;The safety margin should be large enough to allow the configuration to be written to all switches/ports before the selected base time is reached.&lt;/P&gt;
&lt;P&gt;4. Program the same ADMINBASETIME and the same cycle time on all switches/ports that must share the same Qbv cycle phase.&lt;/P&gt;
&lt;P&gt;5. Program the per-port GCL entries according to the required schedule.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;If alignment to the gPTP time epoch is required, the selected base time can also be aligned to the cycle boundary, e.g.:&lt;/P&gt;
&lt;P&gt;ADMINBASETIME = ceil((current_gPTP_time + safety_margin) / cycle_time) * cycle_time&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;This is the same general idea used by Linux taprio: base-time defines when the schedule starts; if the base time is already in the past, the active start time is derived by adding an integer number of cycle times until the resulting start time is in the future.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html" target="_blank"&gt;https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration" target="_blank"&gt;https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;For SJA1110, the final ADMINBASETIME value must be encoded according to the time format expected by the SJA1110 Qbv configuration, and then split into:&lt;/P&gt;
&lt;P&gt;ADMINBASETIME[31:0] = lower 32 bits&lt;/P&gt;
&lt;P&gt;ADMINBASETIME[63:32] = upper 32 bits&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So, in summary&lt;/STRONG&gt;: gPTP provides the common time; another software/configuration layer must choose and program the Qbv ADMINBASETIME relative to that time. This may be done by a TSN management stack/CNC or by custom application code in a simpler embedded system.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
    <pubDate>Wed, 01 Jul 2026 10:10:42 GMT</pubDate>
    <dc:creator>PavelL</dc:creator>
    <dc:date>2026-07-01T10:10:42Z</dc:date>
    <item>
      <title>SJA1110 Qbv AdminBaseTime Configuration</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2388671#M32773</link>
      <description>&lt;P&gt;Dear NXP members,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been working on the configuration of the SJA1110 switch on the S32G-VNP-RDB3 board for enabling the TSN features such as PTP and Qbv.&lt;/P&gt;&lt;P&gt;I am using the&amp;nbsp;SJA1110 SDK for S32 Design Studio to configure the switch, generate an updated sja1110_uc.bin file, and deploying it on the S32G board.&lt;/P&gt;&lt;P&gt;Although I have been able to understand and test the configuration of most Qbv parameters, I was not able to grasp the correct configuration of the ADMINBASETIME[31:0] and ADMINBASETIME[63:32] on the QBV Administrative Parameters table.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-07-01 094943.png" style="width: 498px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/390824iB208DDE11B150B30/image-dimensions/498x425?v=v2" width="498" height="425" role="button" title="Screenshot 2026-07-01 094943.png" alt="Screenshot 2026-07-01 094943.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;According to the documentation in the&amp;nbsp;document &lt;EM&gt;um549820-UM11107 Software User Manual for SJA1110(2.0)&lt;/EM&gt;, ADMINBASETIME is explained as:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Defines the administrative value used for the base time, expressed in PTP/free&lt;BR /&gt;running timescale, used for reference when calculating the moment in time when&lt;BR /&gt;the reconfigured gate cycle begins (CycleStartTime) .&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But it does not provide any clue about how to calculate this value in a real project. Besides, the SJA1110 Qbv example on the &lt;EM&gt;SJA1110&amp;nbsp;Extended Configuration&amp;nbsp;&lt;/EM&gt;presentation uses 0 (start directly for this parameter).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let's imagine one example.&lt;/P&gt;&lt;P&gt;Qbv is configured for the port 3 of the SJA1110 switch, which has a speed of 1000Mbps, and a granularity of 200 ns.&lt;/P&gt;&lt;P&gt;One cycle has 500&amp;nbsp;μs and three segments:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;In the first segment, all Traffic Classes are open, except TC7. It lasts for 100&amp;nbsp;μs (TRIGGER_TIME = 500);&lt;/LI&gt;&lt;LI&gt;In the second segment, only Traffic Class 7 is open, the other TCs are closed. It lasts for 300&amp;nbsp;μs (TRIGGER_TIME = 1500);&lt;/LI&gt;&lt;LI&gt;In the third segment, all Traffic Classes are open, except TC7. It lasts for 100&amp;nbsp;μs (TRIGGER_TIME = 500).&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;But in the same network there are another TSN switches configured with a Qbv cycle of 500&amp;nbsp;μs, but different segment intervals.&lt;/P&gt;&lt;P&gt;How do I calculate&amp;nbsp;ADMINBASETIME in order to synchronize between TSN switches and make sure it aligns with the gPTP time epoch?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much for your support!&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jul 2026 02:12:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2388671#M32773</guid>
      <dc:creator>GuilhermeS32G</dc:creator>
      <dc:date>2026-07-01T02:12:54Z</dc:date>
    </item>
    <item>
      <title>Re: SJA1110 Qbv AdminBaseTime Configuration</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389031#M32780</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/241130"&gt;@GuilhermeS32G&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;ADMINBASETIME should be understood as the absolute time reference/phase reference for the Qbv schedule. It is used to align the start of the repeating Qbv cycle to the synchronized time domain. It is not calculated from the port speed and it is not based on the TRIGGER_TIME granularity.&lt;/P&gt;
&lt;P&gt;In a multi-switch TSN system, gPTP / IEEE 802.1AS provides the common synchronized time base, but it does not automatically configure the Qbv schedule. The Qbv configuration, including ADMINBASETIME, must be programmed by a TSN management stack/CNC or by application-specific/custom software running on the host processor. IEEE 802.1Qcc describes centralized TSN configuration models where a CNC computes and distributes TSN configuration to the network devices.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf" target="_blank"&gt;https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;A typical procedure might look like:&lt;/P&gt;
&lt;P&gt;1. Start gPTP / 802.1AS and wait until all relevant TSN devices are synchronized.&lt;/P&gt;
&lt;P&gt;2. Read the current synchronized time from the device/PTP time domain.&lt;/P&gt;
&lt;P&gt;3. Choose a future base time: ADMINBASETIME = current_gPTP_time + safety_margin&lt;/P&gt;
&lt;P&gt;The safety margin should be large enough to allow the configuration to be written to all switches/ports before the selected base time is reached.&lt;/P&gt;
&lt;P&gt;4. Program the same ADMINBASETIME and the same cycle time on all switches/ports that must share the same Qbv cycle phase.&lt;/P&gt;
&lt;P&gt;5. Program the per-port GCL entries according to the required schedule.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;If alignment to the gPTP time epoch is required, the selected base time can also be aligned to the cycle boundary, e.g.:&lt;/P&gt;
&lt;P&gt;ADMINBASETIME = ceil((current_gPTP_time + safety_margin) / cycle_time) * cycle_time&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;This is the same general idea used by Linux taprio: base-time defines when the schedule starts; if the base time is already in the past, the active start time is derived by adding an integer number of cycle times until the resulting start time is in the future.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html" target="_blank"&gt;https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration" target="_blank"&gt;https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;For SJA1110, the final ADMINBASETIME value must be encoded according to the time format expected by the SJA1110 Qbv configuration, and then split into:&lt;/P&gt;
&lt;P&gt;ADMINBASETIME[31:0] = lower 32 bits&lt;/P&gt;
&lt;P&gt;ADMINBASETIME[63:32] = upper 32 bits&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So, in summary&lt;/STRONG&gt;: gPTP provides the common time; another software/configuration layer must choose and program the Qbv ADMINBASETIME relative to that time. This may be done by a TSN management stack/CNC or by custom application code in a simpler embedded system.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jul 2026 10:10:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389031#M32780</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2026-07-01T10:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: SJA1110 Qbv AdminBaseTime Configuration</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389501#M32795</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/233505"&gt;@PavelL&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your support once again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, from my understanding, this ADMINBASETIME configuration ideally should be set programmatically during runtime so to ensure that the Qbv schedule is in the future.&lt;/P&gt;&lt;P&gt;In my case, as the SJA1110 switch is booting in SDL Boot, I am using the SJA1110 SDK for S32DS for programming its firmware. In this case, I would have to set the ADMINBASETIME in the QBV Administrative Parameters table; then build the new firmware file; deploy it into the S32G-VNP-RDB3 board; reboot the board so that the new configuration takes effect.&lt;/P&gt;&lt;P&gt;The first time the ADMINBASETIME would be in the future, but then if I don't update the firmware in the subsequent runs, it would always have to adjust the active start time, as you have mentioned.&lt;/P&gt;&lt;P&gt;In this case, wouldn't be better to simply set the ADMINBASETIME to 0? Otherwise, it would be better to reset the gPTP time during every start-up.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Guilherme&lt;/P&gt;</description>
      <pubDate>Thu, 02 Jul 2026 07:53:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389501#M32795</guid>
      <dc:creator>GuilhermeS32G</dc:creator>
      <dc:date>2026-07-02T07:53:48Z</dc:date>
    </item>
    <item>
      <title>Re: SJA1110 Qbv AdminBaseTime Configuration</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389520#M32796</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/241130"&gt;@GuilhermeS32G&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;Yes, ADMINBASETIME configuration ideally should be set programmatically during runtime to ensure that the Qbv on all switches is synchronized.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I would suggest to build the SJA1110 static configuration with ADMINBASETIME = 0.&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="scriptor-paragraph"&gt;&lt;SPAN&gt;ADMINBASETIME should be programmed dynamically at runtime after gPTP synchronization is established. In that case, a host application, TSN management stack, CNC or other custom configuration software would read the current synchronized time, select a future base time with sufficient margin, write the Qbv administrative parameters (via dynamic reconfiguration) and trigger the configuration change.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I would not recommend resetting the gPTP time at each startup only to make a fixed ADMINBASETIME valid.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 02 Jul 2026 08:15:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/SJA1110-Qbv-AdminBaseTime-Configuration/m-p/2389520#M32796</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2026-07-02T08:15:14Z</dc:date>
    </item>
  </channel>
</rss>

