blob: 7580cf5c962421ba1bb78587479bf49c3a5e5894 [file] [log] [blame]
/*
* Support for Intel Camera Imaging ISP subsystem.
* Copyright (c) 2015, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope 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.
*/
#ifndef __DEBUG_GLOBAL_H_INCLUDED__
#define __DEBUG_GLOBAL_H_INCLUDED__
#include <type_support.h>
#define DEBUG_BUF_SIZE 1024
#define DEBUG_BUF_MASK (DEBUG_BUF_SIZE - 1)
#define DEBUG_DATA_ENABLE_ADDR 0x00
#define DEBUG_DATA_BUF_MODE_ADDR 0x04
#define DEBUG_DATA_HEAD_ADDR 0x08
#define DEBUG_DATA_TAIL_ADDR 0x0C
#define DEBUG_DATA_BUF_ADDR 0x10
#define DEBUG_DATA_ENABLE_DDR_ADDR 0x00
#define DEBUG_DATA_BUF_MODE_DDR_ADDR HIVE_ISP_DDR_WORD_BYTES
#define DEBUG_DATA_HEAD_DDR_ADDR (2 * HIVE_ISP_DDR_WORD_BYTES)
#define DEBUG_DATA_TAIL_DDR_ADDR (3 * HIVE_ISP_DDR_WORD_BYTES)
#define DEBUG_DATA_BUF_DDR_ADDR (4 * HIVE_ISP_DDR_WORD_BYTES)
#define DEBUG_BUFFER_ISP_DMEM_ADDR 0x0
/*
* Enable HAS_WATCHDOG_SP_THREAD_DEBUG for additional SP thread and
* pipe information on watchdog output
* #undef HAS_WATCHDOG_SP_THREAD_DEBUG
* #define HAS_WATCHDOG_SP_THREAD_DEBUG
*/
/*
* The linear buffer mode will accept data until the first
* overflow and then stop accepting new data
* The circular buffer mode will accept if there is place
* and discard the data if the buffer is full
*/
typedef enum {
DEBUG_BUFFER_MODE_LINEAR = 0,
DEBUG_BUFFER_MODE_CIRCULAR,
N_DEBUG_BUFFER_MODE
} debug_buf_mode_t;
struct debug_data_s {
u32 enable;
u32 bufmode;
u32 head;
u32 tail;
u32 buf[DEBUG_BUF_SIZE];
};
/* thread.sp.c doesn't have a notion of HIVE_ISP_DDR_WORD_BYTES
still one point of control is needed for debug purposes */
#ifdef HIVE_ISP_DDR_WORD_BYTES
struct debug_data_ddr_s {
u32 enable;
s8 padding1[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
u32 bufmode;
s8 padding2[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
u32 head;
s8 padding3[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
u32 tail;
s8 padding4[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
u32 buf[DEBUG_BUF_SIZE];
};
#endif
#endif /* __DEBUG_GLOBAL_H_INCLUDED__ */