/* * Private header for the MPC52xx processor BestComm driver * * By private, we mean that driver should not use it directly. It's meant * to be used by the BestComm engine driver itself and by the intermediate * layer between the core and the drivers. * * Copyright (C) 2006 Sylvain Munaut <tnt@246tNt.com> * Copyright (C) 2005 Varma Electronics Oy, * ( by Andrey Volkov <avolkov@varma-el.com> ) * Copyright (C) 2003-2004 MontaVista, Software, Inc. * ( by Dale Farnsworth <dfarnsworth@mvista.com> ) * * This file is licensed under the terms of the GNU General Public License * version 2. This program is licensed "as is" without any warranty of any * kind, whether express or implied.
*/
struct bcom_task_header {
u32 magic;
u8 desc_size; /* the size fields */
u8 var_size; /* are given in number */
u8 inc_size; /* of 32-bits words */
u8 first_var;
u8 reserved[8];
};
/* Looks like XLB speculative read generates XLB errors when a buffer * is at the end of the physical memory. i.e. when accessing the * lasts words, the engine tries to prefetch the next but there is no * next ...
*/ #define BCOM_STD_PRAGMA ((0 << BCOM_PRAGMA_BIT_RSV) | \
(0 << BCOM_PRAGMA_BIT_PRECISE_INC) | \
(0 << BCOM_PRAGMA_BIT_RST_ERROR_NO) | \
(0 << BCOM_PRAGMA_BIT_PACK) | \
(0 << BCOM_PRAGMA_BIT_INTEGER) | \
(0 << BCOM_PRAGMA_BIT_SPECREAD) | \
(1 << BCOM_PRAGMA_BIT_CW) | \
(1 << BCOM_PRAGMA_BIT_RL))
/* ======================================================================== */ /* API */ /* ======================================================================== */
externstruct bcom_task *bcom_task_alloc(int bd_count, int bd_size, int priv_size); externvoid bcom_task_free(struct bcom_task *tsk); externint bcom_load_image(int task, u32 *task_image); externvoid bcom_set_initiator(int task, int initiator);
#define TASK_ENABLE 0x8000
/** * bcom_disable_prefetch - Hook to disable bus prefetching * * ATA DMA and the original MPC5200 need this due to silicon bugs. At the * moment disabling prefetch is a one-way street. There is no mechanism * in place to turn prefetch back on after it has been disabled. There is * no reason it couldn't be done, it would just be more complex to implement.
*/ staticinlinevoid bcom_disable_prefetch(void)
{
u16 regval;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.