d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef _DBUS_ST_H
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define _DBUS_ST_H
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#include "bcmtype.h"
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_reg_write
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t addr;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t value;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_reg_write;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_register_set_write
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_reg_write *p_reg;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t count;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_register_set_write;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_reg_group
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_register_set_write dbgCfg;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_register_set_write dbgOn;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_register_set_write dbgOff;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_register_set_write dbgFlush;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_reg_group;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_driver_end_read_regs
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t dbg_block_on;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t intr_buffer_read_ptr;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t intr_buffer_wr_ptr;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t ext_buffer_wr_ptr_lsb;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t ext_buffer_wr_ptr_msb;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t dbg_ovl_on_ext_buffer;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t dbg_wrap_ext;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_driver_end_read_regs;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_driver_fill_regs
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t ext_buffer_start_addr_lsb;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t ext_buffer_start_addr_msb;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t ext_buffer_size; // in 256 byte blocks
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t pci_func_num; // not for E1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_driver_fill_regs;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_general_info
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t timestamp;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t chip_num;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t chosen_config;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t path_num;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_general_info;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct _dbg_dump_hdr
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t header_length; // will hold sizeof(dbg_dump_hdr)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_general_info info;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_driver_fill_regs driver_filled_info;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi dbg_driver_end_read_regs driver_read_regs;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} dbg_dump_hdr;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define DBG_E1 0
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define DBG_E1H 1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define DBG_E2 2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define DBG_E3 4
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_general_info dbg_bus_general_info_E1;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_fill_regs dbg_bus_driver_fill_regs_E1;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_end_read_regs dbg_bus_driver_end_read_regs_E1;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_write dbg_bus_all_regs_E1[];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_group dbg_bus_configs_E1[6];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_general_info dbg_bus_general_info_E1H;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_fill_regs dbg_bus_driver_fill_regs_E1H;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_end_read_regs dbg_bus_driver_end_read_regs_E1H;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_write dbg_bus_all_regs_E1H[];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_group dbg_bus_configs_E1H[25];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_general_info dbg_bus_general_info_E2;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_fill_regs dbg_bus_driver_fill_regs_E2;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_end_read_regs dbg_bus_driver_end_read_regs_E2;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_write dbg_bus_all_regs_E2[];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_group dbg_bus_configs_E2[25];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_general_info dbg_bus_general_info_E3;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_fill_regs dbg_bus_driver_fill_regs_E3;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_driver_end_read_regs dbg_bus_driver_end_read_regs_E3;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_write dbg_bus_all_regs_E3[];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiextern dbg_reg_group dbg_bus_configs_E3[34];
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif //_DBUS_ST_H