#!/bin/bash
#./xilinx-reg-read-reader $DEV

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

if [ -z "$1" ]
then
    echo "No device specified. use xilinx0 as deault."
    DEV="xilinx0"
else
    DEV="$1"
fi

if [ -z "$2" ]
then
    echo "No show specified. use sh $DIR/table -15 -red,-green,-blue as deault."
    SHOW="sh $DIR/table -15 -red,-green,-blue"
else
    SHOW="$2"
fi

echo -e "---------------- Version Info ------------------
Ver Compile Date                                       \t 0x41     \t $(printf "%x" $($DIR/reg-read $DEV 0x41))
Ver Compile Version                                    \t 0x42     \t $(printf '%x' $($DIR/reg-read $DEV 0x42))
Soft Version                                           \t 0x17     \t $(printf '%x' $($DIR/reg-read $DEV 0x17))
Check Soft Ver valid                                   \t 0x40     \t $(printf "%x" $($DIR/reg-read $DEV 0x40))
---------------- Fiber State Info ------------------
Fiber State                                            \t 0x43     \t $(printf '%x' $($DIR/reg-read $DEV 0x43))
DNA_L                                                  \t 0x44     \t $(printf '%x' $($DIR/reg-read $DEV 0x44))
DNA_M                                                  \t 0x45     \t $(printf '%x' $($DIR/reg-read $DEV 0x45))
DNA_H                                                  \t 0x46     \t $(printf '%x' $($DIR/reg-read $DEV 0x46))
---------------- Config Info ------------------
udp_src_ip_a                                           \t 0x0E     \t $(printf '%x' $($DIR/reg-read $DEV 0x0E))
udp_src_ip_b                                           \t 0x0F     \t $(printf '%x' $($DIR/reg-read $DEV 0x0F))
udp_dst_port_a                                         \t 0x10     \t $(printf '%x' $($DIR/reg-read $DEV 0x10))
udp_dst_port_b                                         \t 0x11     \t $(printf '%x' $($DIR/reg-read $DEV 0x11))
key_type                                               \t 0x12     \t $(printf '%x' $($DIR/reg-read $DEV 0x12))
arg                                                    \t 0x13     \t $(printf '%x' $($DIR/reg-read $DEV 0x13))
soft_hw_sw                                             \t 0x14     \t $(printf '%x' $($DIR/reg-read $DEV 0x14))
reset                                                  \t 0x15     \t $(printf '%x' $($DIR/reg-read $DEV 0x15))
invalid_value_sw                                       \t 0x16     \t $(printf '%x' $($DIR/reg-read $DEV 0x16))
udp_seqnum_init_value                                  \t 0x18     \t $(printf '%x' $($DIR/reg-read $DEV 0x18))
Table_end_flag                                         \t 0x0D     \t $(printf '%x' $($DIR/reg-read $DEV 0x0D))
---------------- Package Counter ------------------
mac0_send_pkt_num                                      \t 0x49     \t $(printf '%x' $($DIR/reg-read $DEV 0x49))
mac1_send_pkt_num                                      \t 0x4A     \t $(printf '%x' $($DIR/reg-read $DEV 0x4A))
mac2_send_pkt_num                                      \t 0x4B     \t $(printf '%x' $($DIR/reg-read $DEV 0x4B))
mac3_send_pkt_num                                      \t 0x4C     \t $(printf '%x' $($DIR/reg-read $DEV 0x4C))
mac0_discard_pkt_num                                   \t 0x4D     \t $(printf '%x' $($DIR/reg-read $DEV 0x4D))
mac1_discard_pkt_num                                   \t 0x4E     \t $(printf '%x' $($DIR/reg-read $DEV 0x4E))
mac2_discard_pkt_num                                   \t 0x4F     \t $(printf '%x' $($DIR/reg-read $DEV 0x4F))
mac3_discard_pkt_num                                   \t 0x50     \t $(printf '%x' $($DIR/reg-read $DEV 0x50))
offload_eop_num                                        \t 0x51     \t $(printf '%x' $($DIR/reg-read $DEV 0x51))
offload_err_num                                        \t 0x52     \t $(printf '%x' $($DIR/reg-read $DEV 0x52))
reformat_eop_num                                       \t 0x53     \t $(printf '%x' $($DIR/reg-read $DEV 0x53))
reformat_err_num                                       \t 0x54     \t $(printf '%x' $($DIR/reg-read $DEV 0x54))
msghead_eop_num                                        \t 0x55     \t $(printf '%x' $($DIR/reg-read $DEV 0x55))
msghead_err_num                                        \t 0x56     \t $(printf '%x' $($DIR/reg-read $DEV 0x56))
msgfield_eop_num                                       \t 0x57     \t $(printf '%x' $($DIR/reg-read $DEV 0x57))
msgfield_err_num                                       \t 0x58     \t $(printf '%x' $($DIR/reg-read $DEV 0x58))
msg_endflag_num                                        \t 0x59     \t $(printf '%x' $($DIR/reg-read $DEV 0x59))
order_eop_num                                          \t 0x5A     \t $(printf '%x' $($DIR/reg-read $DEV 0x5A))
order_err_num                                          \t 0x5B     \t $(printf '%x' $($DIR/reg-read $DEV 0x5B))
decrypt_eop_num                                        \t 0x5D     \t $(printf '%x' $($DIR/reg-read $DEV 0x5D))
decrypt_err_num                                        \t 0x5E     \t $(printf '%x' $($DIR/reg-read $DEV 0x5E))
vint_prefetch_eop_num                                  \t 0x5F     \t $(printf '%x' $($DIR/reg-read $DEV 0x5F))
vint_prefetch_err_num                                  \t 0x60     \t $(printf '%x' $($DIR/reg-read $DEV 0x60))
vint_deode_eop_num                                     \t 0x61     \t $(printf '%x' $($DIR/reg-read $DEV 0x61))
vint_decode_err_num                                    \t 0x62     \t $(printf '%x' $($DIR/reg-read $DEV 0x62))
zigzag_conv_eop_num                                    \t 0x63     \t $(printf '%x' $($DIR/reg-read $DEV 0x63))
zigzag_conv_err_num                                    \t 0x64     \t $(printf '%x' $($DIR/reg-read $DEV 0x64))
zigzag_conv_endflag_num                                \t 0x65     \t $(printf '%x' $($DIR/reg-read $DEV 0x65))
inst_table_eop_num                                     \t 0x66     \t $(printf '%x' $($DIR/reg-read $DEV 0x66))
inst_table_err_num                                     \t 0x67     \t $(printf '%x' $($DIR/reg-read $DEV 0x67))
inst_table_sub_eop_num                                 \t 0x68     \t $(printf '%x' $($DIR/reg-read $DEV 0x68))
inst_table_sub_err_num                                 \t 0x69     \t $(printf '%x' $($DIR/reg-read $DEV 0x69))
inst_table_fifo_send_pkt_num                           \t 0x6A     \t $(printf '%x' $($DIR/reg-read $DEV 0x6A))
inst_table_fifo_discard_pkt_num                        \t 0x6B     \t $(printf '%x' $($DIR/reg-read $DEV 0x6B))
soft_raw_afifo_discard_pkt_num                         \t 0x6C     \t $(printf '%x' $($DIR/reg-read $DEV 0x6C))
soft_raw_sop_num                                       \t 0x6D     \t $(printf '%x' $($DIR/reg-read $DEV 0x6D))
---------------- DMA Info ------------------
dma0_afifo_send_pkt_num                                \t 0x6E     \t $(printf '%x' $($DIR/reg-read $DEV 0x6E))
dma0_afifo_discard_pkt_num                             \t 0x6F     \t $(printf '%x' $($DIR/reg-read $DEV 0x6F))
dma0_sop_num                                           \t 0x70     \t $(printf '%x' $($DIR/reg-read $DEV 0x70))
dma1_afifo_send_pkt_num                                \t 0x71     \t $(printf '%x' $($DIR/reg-read $DEV 0x71))
dma1_afifo_discard_pkt_num                             \t 0x72     \t $(printf '%x' $($DIR/reg-read $DEV 0x72))
dma1_sop_num                                           \t 0x73     \t $(printf '%x' $($DIR/reg-read $DEV 0x73))
dma2_afifo_send_pkt_num                                \t 0x74     \t $(printf '%x' $($DIR/reg-read $DEV 0x74))
dma2_afifo_discard_pkt_num                             \t 0x75     \t $(printf '%x' $($DIR/reg-read $DEV 0x75))
dma2_sop_num                                           \t 0x76     \t $(printf '%x' $($DIR/reg-read $DEV 0x76))
dma3_afifo_send_pkt_num                                \t 0x77     \t $(printf '%x' $($DIR/reg-read $DEV 0x77))
dma3_afifo_discard_pkt_num                             \t 0x78     \t $(printf '%x' $($DIR/reg-read $DEV 0x78))
dma3_sop_num                                           \t 0x79     \t $(printf '%x' $($DIR/reg-read $DEV 0x79))
dma4_afifo_send_pkt_num                                \t 0x7A     \t $(printf '%x' $($DIR/reg-read $DEV 0x7A))
dma4_afifo_discard_pkt_num                             \t 0x7B     \t $(printf '%x' $($DIR/reg-read $DEV 0x7B))
dma4_sop_num                                           \t 0x7C     \t $(printf '%x' $($DIR/reg-read $DEV 0x7C))
dma5_afifo_send_pkt_num                                \t 0x7D     \t $(printf '%x' $($DIR/reg-read $DEV 0x7D))
dma5_afifo_discard_pkt_num                             \t 0x7E     \t $(printf '%x' $($DIR/reg-read $DEV 0x7E))
dma5_sop_num                                           \t 0x7F     \t $(printf '%x' $($DIR/reg-read $DEV 0x7F))
dma6_afifo_send_pkt_num                                \t 0x80     \t $(printf '%x' $($DIR/reg-read $DEV 0x80))
dma6_afifo_discard_pkt_num                             \t 0x81     \t $(printf '%x' $($DIR/reg-read $DEV 0x81))
dma6_sop_num                                           \t 0x82     \t $(printf '%x' $($DIR/reg-read $DEV 0x82))
dma7_afifo_send_pkt_num                                \t 0x83     \t $(printf '%x' $($DIR/reg-read $DEV 0x83))
dma7_afifo_discard_pkt_num                             \t 0x84     \t $(printf '%x' $($DIR/reg-read $DEV 0x84))
dma7_sop_num                                           \t 0x85     \t $(printf '%x' $($DIR/reg-read $DEV 0x85))
dma8_afifo_send_pkt_num                                \t 0x86     \t $(printf '%x' $($DIR/reg-read $DEV 0x86))
dma8_afifo_discard_pkt_num                             \t 0x87     \t $(printf '%x' $($DIR/reg-read $DEV 0x87))
dma8_sop_num                                           \t 0x88     \t $(printf '%x' $($DIR/reg-read $DEV 0x88))
dma9_afifo_send_pkt_num                                \t 0x89     \t $(printf '%x' $($DIR/reg-read $DEV 0x89))
dma9_afifo_discard_pkt_num                             \t 0x8A     \t $(printf '%x' $($DIR/reg-read $DEV 0x8A))
dma9_sop_num                                           \t 0x8B     \t $(printf '%x' $($DIR/reg-read $DEV 0x8B))
dma10_afifo_send_pkt_num                               \t 0x8C     \t $(printf '%x' $($DIR/reg-read $DEV 0x8C))
dma10_afifo_discard_pkt_num                            \t 0x8D     \t $(printf '%x' $($DIR/reg-read $DEV 0x8D))
dma10_sop_num                                          \t 0x8E     \t $(printf '%x' $($DIR/reg-read $DEV 0x8E))
dma11_afifo_send_pkt_num                               \t 0x8F     \t $(printf '%x' $($DIR/reg-read $DEV 0x8F))
dma11_afifo_discard_pkt_num                            \t 0x90     \t $(printf '%x' $($DIR/reg-read $DEV 0x90))
dma11_sop_num                                          \t 0x91     \t $(printf '%x' $($DIR/reg-read $DEV 0x91))
dma12_afifo_send_pkt_num                               \t 0x92     \t $(printf '%x' $($DIR/reg-read $DEV 0x92))
dma12_afifo_discard_pkt_num                            \t 0x93     \t $(printf '%x' $($DIR/reg-read $DEV 0x93))
dma12_sop_num                                          \t 0x94     \t $(printf '%x' $($DIR/reg-read $DEV 0x94))
dma13_afifo_send_pkt_num                               \t 0x95     \t $(printf '%x' $($DIR/reg-read $DEV 0x95))
dma13_afifo_discard_pkt_num                            \t 0x96     \t $(printf '%x' $($DIR/reg-read $DEV 0x96))
dma13_sop_num                                          \t 0x97     \t $(printf '%x' $($DIR/reg-read $DEV 0x97))
dma14_afifo_send_pkt_num                               \t 0x98     \t $(printf '%x' $($DIR/reg-read $DEV 0x98))
dma14_afifo_discard_pkt_num                            \t 0x99     \t $(printf '%x' $($DIR/reg-read $DEV 0x99))
dma14_sop_num                                          \t 0x9A     \t $(printf '%x' $($DIR/reg-read $DEV 0x9A))
dma15_afifo_send_pkt_num                               \t 0x9B     \t $(printf '%x' $($DIR/reg-read $DEV 0x9B))
dma15_afifo_discard_pkt_num                            \t 0x9C     \t $(printf '%x' $($DIR/reg-read $DEV 0x9C))
dma15_sop_num                                          \t 0x9D     \t $(printf '%x' $($DIR/reg-read $DEV 0x9D)) 
~~~~~~~~~~~~~~~~~~~~~ Other Info ~~~~~~~~~~~~~~~~~~~~~
update_time[31:0]                                      \t 0xA2     \t $(printf '%x' $($DIR/reg-read $DEV 0xA2))
update_time[63:32]                                     \t 0xA3     \t $(printf '%x' $($DIR/reg-read $DEV 0xA3))
update_msec                                            \t 0xA4     \t $(printf '%x' $($DIR/reg-read $DEV 0xA4)) " | ${SHOW}



