.. _SD.Bootloader.CommonProdConfig:

.. include:: /content/swdocs.rsts

.. spelling::
   pad
   init
   DTS
   sdmmc
   hv
   eqos
   io
   ao
   ufs
   qspi
   DTSI
   SoC
   PMC
   IMPL
   bct
   GPIO
   pinmux
   dtsi
   pinctrl
   lpdr
   tristate
   ps
   PADCTL
   i2c
   I2C
   DRAM
   FPS
   PWM
   MMIO
   PMIC
   Vout
   SOC
   Hz
   pwm
   mmio
   pad
   prod
   

Common Prod Configuration
!!!!!!!!!!!!!!!!!!!!!!!!!

The prod configurations are the system-characterized values of interface and controller settings, which are required for the interface to work reliably for a platform. The prod configurations are set separately at the controller and pinmux/pad levels. This file contains the common pinmux/pad level prod settings.

Here are the required properties:

- ``addr-value-data``: List of ``<Absolute PADCTL register address, mask, data>``

For each entry in the prod configuration file, MB1 reads the data from the specified address, modifies the data based on mask and value, and writes the data back to the address.

.. code-block:: none

   val = read(address)
   val = (val & ~mask) | (value & mask); 
   write(val, address);

The common prod DTS file is in the ``hardware/nvidia/platform/t23x/<platform>/bct/`` directory.

Here is the new DTS format example of prod config file:

.. code-block:: none

   /dts-v1/;
   / {
      prod {
          addr-mask-data = <0x0c302030 0x0000100 0x00000000>,
                           <0x0c302040 0x0000100 0x00000000>,
                           <0x0244100c 0xff1ff000 0x0a00a000>, 
                           <0x02441004 0xff1ff000 0x0a00a000>;
      };
  };

Here is the previous CFG format:

.. code-block:: none

   prod.major = 1;
   prod.minor = 0;

   prod.0x0c302030.0x0000100 = 0x00000000;
   prod.0x0c302040.0x0000100 = 0x00000000; 
   prod.0x0244100c.0xff1ff000 = 0x0a00a000; 
   prod.0x02441004.0xff1ff000 = 0x0a00a000;
