diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..9464b96d8b0a91b070f1ec7288b2963b4f37f280
--- /dev/null
+++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd
@@ -0,0 +1,121 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2011
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: I2C commander settings for the UniBoard2 I2C SENS bus
+--          sensors.
+-- Remark:
+-- . Adapted from i2c_commander_unbh_pkg
+--   reduce the number of protocol lists to 4
+
+LIBRARY IEEE, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE work.i2c_pkg.ALL;
+USE work.i2c_commander_pkg.ALL;
+USE work.i2c_dev_unb2_pkg.ALL;
+
+
+PACKAGE i2c_commander_unb2_pmbus_pkg IS
+
+  ------------------------------------------------------------------------------
+  -- Local constants (with prefix 'k_')
+  ------------------------------------------------------------------------------
+  
+  -- Define the protocol lists for the commander (c_i2c_cmdr_max_nof_protocols=16)
+  CONSTANT k_protocol_list_0      : t_nat_natural_arr := c_i2c_unb2_pmbus_protocol_list_read_all;
+  CONSTANT k_protocol_list_1      : t_nat_natural_arr := c_i2c_cmdr_protocol_list_end;
+  CONSTANT k_protocol_list_2      : t_nat_natural_arr := c_i2c_cmdr_protocol_list_end;  
+  CONSTANT k_protocol_list_3      : t_nat_natural_arr := c_i2c_cmdr_protocol_list_end;
+  
+  CONSTANT k_protocol_ram_init : t_nat_natural_arr := k_protocol_list_0  &
+                                                      k_protocol_list_1  &
+                                                      k_protocol_list_2  &
+                                                      k_protocol_list_3;
+                                                               
+  -- Define the corresponding mask words for the result data
+  CONSTANT k_expected_mask_0      : STD_LOGIC_VECTOR := c_i2c_unb2_pmbus_expected_mask_read_all;
+  CONSTANT k_expected_mask_1      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_2      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_3      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+    
+  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0,
+                                                          k_expected_mask_1,
+                                                          k_expected_mask_2,
+                                                          k_expected_mask_3);
+                                                                                       
+  -- Define the corresponding expected nof read data
+  CONSTANT k_nof_result_data_0    : NATURAL := c_i2c_unb2_pmbus_nof_result_data_read_all;
+  CONSTANT k_nof_result_data_1    : NATURAL := c_i2c_cmdr_nof_result_data_none;
+  CONSTANT k_nof_result_data_2    : NATURAL := c_i2c_cmdr_nof_result_data_none;
+  CONSTANT k_nof_result_data_3    : NATURAL := c_i2c_cmdr_nof_result_data_none;
+  
+  CONSTANT k_nof_result_data_arr : t_nat_natural_arr := (k_nof_result_data_0,
+                                                         k_nof_result_data_1,
+                                                         k_nof_result_data_2,
+                                                         k_nof_result_data_3);
+                                                         
+  -- Define the corresponding protocol list offsets
+  CONSTANT k_protocol_ofs_0  : NATURAL := 0;
+  CONSTANT k_protocol_ofs_1  : NATURAL := k_protocol_list_0'LENGTH  + k_protocol_ofs_0;
+  CONSTANT k_protocol_ofs_2  : NATURAL := k_protocol_list_1'LENGTH  + k_protocol_ofs_1;
+  CONSTANT k_protocol_ofs_3  : NATURAL := k_protocol_list_2'LENGTH  + k_protocol_ofs_2;
+  
+  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0,
+                                                                                       k_protocol_ofs_1,
+                                                                                       k_protocol_ofs_2,
+                                                                                       k_protocol_ofs_3);
+  
+  -- RAM sizes
+  CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz;
+  CONSTANT k_protocol_ram_adr_w   : NATURAL := ceil_log2(k_protocol_ram_nof_dat);  
+  CONSTANT k_result_adr_w         : NATURAL := k_protocol_ram_adr_w-1;  -- assume < 1 result byte per 2 protocol bytes
+  CONSTANT k_result_nof_dat       : NATURAL := 2**k_result_adr_w;
+  
+  -- Commander settings
+  CONSTANT k_nof_protocols        : NATURAL := 2;  -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols.
+  CONSTANT k_nof_result_data_max  : NATURAL := 4;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
+  CONSTANT k_result_cnt_w         : NATURAL := k_result_adr_w;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Global constants (with prefix 'c_i2c_cmdr_unbh_')
+  ------------------------------------------------------------------------------
+  
+  CONSTANT c_i2c_cmdr_unbh_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
+  CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
+  
+  CONSTANT c_i2c_cmdr_unbh_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
+                                                                k_protocol_ram_adr_w,
+                                                                k_protocol_ram_nof_dat,
+                                                                k_result_adr_w,
+                                                                k_result_nof_dat);
+  
+  CONSTANT c_i2c_cmdr_unbh_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
+                                                                            k_protocol_ofs_arr,
+                                                                            k_expected_mask_arr,
+                                                                            k_result_cnt_w,
+                                                                            k_nof_result_data_max);
+
+END i2c_commander_unb2_pmbus_pkg;
+
+
+PACKAGE BODY i2c_commander_unb2_pmbus_pkg IS
+END i2c_commander_unb2_pmbus_pkg;
diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..a8dad33accef964f126ac22bfd4f8e0b90dd7fe3
--- /dev/null
+++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd
@@ -0,0 +1,121 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2011
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: I2C commander settings for the UniBoard2 I2C SENS bus
+--          sensors.
+-- Remark:
+-- . Adapted from i2c_commander_unbh_pkg
+--   reduce the number of protocol lists to 4
+
+LIBRARY IEEE, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE work.i2c_pkg.ALL;
+USE work.i2c_commander_pkg.ALL;
+USE work.i2c_dev_unb2_pkg.ALL;    -- slave addresses and commands for all unb2 i2c interfaces
+
+
+PACKAGE i2c_commander_unb2_sens_pkg IS
+
+  ------------------------------------------------------------------------------
+  -- Local constants (with prefix 'k_')
+  ------------------------------------------------------------------------------
+  
+  -- Define the protocol lists for the commander (c_i2c_cmdr_max_nof_protocols=16)
+  CONSTANT k_protocol_list_0      : t_nat_natural_arr := c_i2c_unb2_sens_max1617_protocol_list_read_config;
+  CONSTANT k_protocol_list_1      : t_nat_natural_arr := c_i2c_unb2_sens_max1617_protocol_list_read_temp;
+  CONSTANT k_protocol_list_2      : t_nat_natural_arr := c_i2c_unb2_sens_protocol_list_read_all;  
+  CONSTANT k_protocol_list_3      : t_nat_natural_arr := c_i2c_cmdr_protocol_list_end;
+  
+  CONSTANT k_protocol_ram_init : t_nat_natural_arr := k_protocol_list_0  &
+                                                      k_protocol_list_1  &
+                                                      k_protocol_list_2  &
+                                                      k_protocol_list_3;
+                                                               
+  -- Define the corresponding mask words for the result data
+  CONSTANT k_expected_mask_0      : STD_LOGIC_VECTOR := c_i2c_unb2_sens_max1617_expected_mask_read_config;
+  CONSTANT k_expected_mask_1      : STD_LOGIC_VECTOR := c_i2c_unb2_sens_max1617_expected_mask_read_temp;
+  CONSTANT k_expected_mask_2      : STD_LOGIC_VECTOR := c_i2c_unb2_sens_expected_mask_read_all;
+  CONSTANT k_expected_mask_3      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+    
+  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0,
+                                                          k_expected_mask_1,
+                                                          k_expected_mask_2,
+                                                          k_expected_mask_3);
+                                                                                       
+  -- Define the corresponding expected nof read data
+  CONSTANT k_nof_result_data_0    : NATURAL := c_i2c_unb2_sens_max1617_nof_result_data_read_config;
+  CONSTANT k_nof_result_data_1    : NATURAL := c_i2c_unb2_sens_max1617_nof_result_data_read_temp;
+  CONSTANT k_nof_result_data_2    : NATURAL := c_i2c_unb2_sens_nof_result_data_read_all;
+  CONSTANT k_nof_result_data_3    : NATURAL := c_i2c_cmdr_nof_result_data_none;
+  
+  CONSTANT k_nof_result_data_arr : t_nat_natural_arr := (k_nof_result_data_0,
+                                                         k_nof_result_data_1,
+                                                         k_nof_result_data_2,
+                                                         k_nof_result_data_3);
+                                                         
+  -- Define the corresponding protocol list offsets
+  CONSTANT k_protocol_ofs_0  : NATURAL := 0;
+  CONSTANT k_protocol_ofs_1  : NATURAL := k_protocol_list_0'LENGTH  + k_protocol_ofs_0;
+  CONSTANT k_protocol_ofs_2  : NATURAL := k_protocol_list_1'LENGTH  + k_protocol_ofs_1;
+  CONSTANT k_protocol_ofs_3  : NATURAL := k_protocol_list_2'LENGTH  + k_protocol_ofs_2;
+  
+  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0,
+                                                                                       k_protocol_ofs_1,
+                                                                                       k_protocol_ofs_2,
+                                                                                       k_protocol_ofs_3);
+  
+  -- RAM sizes
+  CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz;
+  CONSTANT k_protocol_ram_adr_w   : NATURAL := ceil_log2(k_protocol_ram_nof_dat);  
+  CONSTANT k_result_adr_w         : NATURAL := k_protocol_ram_adr_w-1;  -- assume < 1 result byte per 2 protocol bytes
+  CONSTANT k_result_nof_dat       : NATURAL := 2**k_result_adr_w;
+  
+  -- Commander settings
+  CONSTANT k_nof_protocols        : NATURAL := 2;  -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols.
+  CONSTANT k_nof_result_data_max  : NATURAL := 4;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
+  CONSTANT k_result_cnt_w         : NATURAL := k_result_adr_w;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Global constants (with prefix 'c_i2c_cmdr_unbh_')
+  ------------------------------------------------------------------------------
+  
+  CONSTANT c_i2c_cmdr_unbh_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
+  CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
+  
+  CONSTANT c_i2c_cmdr_unbh_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
+                                                                k_protocol_ram_adr_w,
+                                                                k_protocol_ram_nof_dat,
+                                                                k_result_adr_w,
+                                                                k_result_nof_dat);
+  
+  CONSTANT c_i2c_cmdr_unbh_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
+                                                                            k_protocol_ofs_arr,
+                                                                            k_expected_mask_arr,
+                                                                            k_result_cnt_w,
+                                                                            k_nof_result_data_max);
+
+END i2c_commander_unb2_sens_pkg;
+
+
+PACKAGE BODY i2c_commander_unb2_sens_pkg IS
+END i2c_commander_unb2_sens_pkg;
diff --git a/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..1603ccdf5e1796db2b77f57ed3aaf45c4a816737
--- /dev/null
+++ b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd
@@ -0,0 +1,149 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2012
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-------------------------------------------------------------------------------
+
+-- Uniboard2 version derived from i2c_dev_unb_pkg
+
+LIBRARY IEEE, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE work.i2c_smbus_pkg.ALL;
+USE work.i2c_dev_max1617_pkg.ALL;
+USE work.i2c_dev_max6652_pkg.ALL;
+USE work.i2c_commander_pkg.ALL;
+
+
+PACKAGE i2c_dev_unb2_pkg IS
+
+  -- I2C slave addresses of the devices on the I2C sens bus on UniBoard2
+  CONSTANT I2C_UNB2_SENS_TEMP_MAX1617_ADR     : NATURAL := MAX1617_ADR_MID_LOW;   -- temperature sensor, slave address is 0x29
+  CONSTANT I2C_UNB2_SENS_DCDC_BMR456_ADR      : NATURAL := X"2C";                 -- dc/dc converter, slave address is 0x2c
+  CONSTANT I2C_UNB2_SENS_PIM_PIM4328PD_ADR    : NATURAL := X"2b";                 -- power input module, slave address is 0x2b
+  CONSTANT I2C_UNB2_SENS_1V2_BMR461_ADR       : NATURAL := X"0f";                 -- 1.2V power supply, slave address is 0x0f
+  CONSTANT I2C_UNB2_SENS_3V3_BMR461_ADR       : NATURAL := X"0e";                 -- 3.3V power supply, slave address is 0x0e
+  CONSTANT I2C_UNB2_SENS_CLK_BMR461_ADR       : NATURAL := X"0d";                 -- clock power supply, slave address is 0x0d
+  CONSTANT I2C_UNB2_SENS_QSFP0_BMR464_ADR     : NATURAL := X"02";                 -- qsfp0 power supply, slave address is 0x02
+  CONSTANT I2C_UNB2_SENS_QSFP1_BMR464_ADR     : NATURAL := X"01";                 -- qsfp1 power supply, slave address is 0x01
+  CONSTANT I2C_UNB2_SENS_EEPROM_CAT24C02_ADR  : NATURAL := X"a0";                 -- eeprom , slave address is 0xa0
+  CONSTANT I2C_UNB2_SENS_TEMP_TMP451_ADR      : NATURAL := X"ac";                 -- temperature sensor, slave address is 0x4c
+  
+  -- I2C slave addresses of the devices on the I2C pm bus on UniBoard2
+  CONSTANT I2C_UNB2_PMB_CORE_BMR464_ADR       : NATURAL := X"01";                 -- core supply, slave address is 0x01
+  CONSTANT I2C_UNB2_PMB_VCCRAM_BMR461_ADR     : NATURAL := X"0d";                 -- vcc ram supply, slave address is 0x0d
+  CONSTANT I2C_UNB2_PMB_TCVR0_BMR461_ADR      : NATURAL := X"0e";                 -- transceiver0 supply, slave address is 0x0e
+  CONSTANT I2C_UNB2_PMB_TCVR1_BMR461_ADR      : NATURAL := X"0f";                 -- transceiver1 supply, slave address is 0x0f
+  CONSTANT I2C_UNB2_PMB_CTRL_BMR461_ADR       : NATURAL := X"10";                 -- control supply, slave address is 0x10
+  CONSTANT I2C_UNB2_PMB_FPGAIO_BMR461_ADR     : NATURAL := X"11";                 -- fpga io supply, slave address is 0x11
+
+  -- I2C slave addresses of the devices on the I2C ddr4 memory bus on UniBoard2
+  CONSTANT I2C_UNB2_MB_I_DDR4_ADR             : NATURAL := X"18";                 -- ddr4 module I, slave address is 0x18
+  CONSTANT I2C_UNB2_MB_II_DDR4_ADR            : NATURAL := X"19";                 -- ddr4 module II, slave address is 0x19
+
+  CONSTANT c_i2c_unb_temp_high     : NATURAL := 85;
+  
+  -- commands
+  -- these can later go into device specific packages
+  CONSTANT PMBUS_REG_READ_VIN                : NATURAL := X"88";                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_VCAP               : NATURAL := X"8a";                 -- used in the PIM4328PD
+  CONSTANT PMBUS_REG_READ_VOUT               : NATURAL := X"8b";                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_IOUT               : NATURAL := X"8c";                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_TEmP               : NATURAL := X"8d";                 -- common to all PMB devices
+
+  CONSTANT c_i2c_unb2_nof_protocol_lists     : NATURAL := 4;                     -- for now we allow four protocol lists for each i2c interface
+
+  -- Commander protocol lists for UNB sens bus
+  
+  -- > Temperature sensor:
+  --       . c_i2c_unb_protocol_list_read_config
+  --       . c_i2c_unb_protocol_list_read
+  
+  CONSTANT c_i2c_unb2_sens_max1617_expected_mask_read_config   : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_read_one_byte;
+  CONSTANT c_i2c_unb2_sens_max1617_nof_result_data_read_config : NATURAL := c_i2c_cmdr_nof_result_data_read_one_byte;
+  CONSTANT c_i2c_unb2_sens_max1617_protocol_list_read_config   : t_nat_natural_arr := (
+    SMBUS_READ_BYTE,  I2C_UNB2_SENS_TEMP_MAX1617_ADR, MAX1617_CMD_READ_REMOTE_TEMP,
+    SMBUS_WRITE_BYTE, I2C_UNB2_SENS_TEMP_MAX1617_ADR, MAX1617_CMD_WRITE_CONFIG, MAX1617_CONFIG_ID+MAX1617_CONFIG_THERM,
+    SMBUS_WRITE_BYTE, I2C_UNB2_SENS_TEMP_MAX1617_ADR, MAX1617_CMD_WRITE_REMOTE_HIGH, c_i2c_unb_temp_high,
+    SMBUS_C_END
+  );
+  
+  CONSTANT c_i2c_unb2_sens_max1617_expected_mask_read_temp   : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_read_one_byte;
+  CONSTANT c_i2c_unb2_sens_max1617_nof_result_data_read_temp : NATURAL := c_i2c_cmdr_nof_result_data_read_one_byte;
+  CONSTANT c_i2c_unb2_sens_max1617_protocol_list_read_temp   : t_nat_natural_arr := (
+    SMBUS_READ_BYTE, I2C_UNB2_SENS_TEMP_MAX1617_ADR, MAX1617_CMD_READ_REMOTE_TEMP,
+    SMBUS_C_END
+  );
+  
+  
+  CONSTANT c_i2c_unb2_sens_expected_mask_read_all   : STD_LOGIC_VECTOR := RESIZE_UVEC("001010101010101010101010101010101010101010101", c_word_w);
+  CONSTANT c_i2c_unb2_sens_nof_result_data_read_all : NATURAL := 22;
+  CONSTANT c_i2c_unb2_sens_protocol_list_read_all   : t_nat_natural_arr := (
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_TEMP_MAX1617_ADR, MAX1617_CMD_READ_REMOTE_TEMP,
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_DCDC_BMR456_ADR, PMBUS_REG_READ_VIN, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_DCDC_BMR456_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_DCDC_BMR456_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_PIM_PIM4328PD_ADR, PMBUS_REG_READ_VIN, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_PIM_PIM4328PD_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_PIM_PIM4328PD_ADR, PMBUS_REG_READ_VCAP, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_1V2_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_1V2_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_1V2_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_3V3_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_3V3_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_3V3_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_CLK_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_CLK_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_CLK_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP0_BMR464_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP0_BMR464_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP0_BMR464_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP1_BMR464_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP1_BMR464_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_SENS_QSFP1_BMR464_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_C_END
+  );
+ 
+
+  -- Commander protocol lists for UNB2 PMBUS
+
+  CONSTANT c_i2c_unb2_pmbus_expected_mask_read_all   : STD_LOGIC_VECTOR := RESIZE_UVEC("0010101010101010101010101010101010101", c_word_w);
+  CONSTANT c_i2c_unb2_pmbus_nof_result_data_read_all : NATURAL := 18;
+  CONSTANT c_i2c_unb2_pmbus_protocol_list_read_all   : t_nat_natural_arr := (
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CORE_BMR464_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CORE_BMR464_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CORE_BMR464_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_VCCRAM_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_VCCRAM_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_VCCRAM_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR0_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR0_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR0_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS1_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_C_END
+  );
+
+END PACKAGE;