Line 104... |
Line 104... |
|
|
/* Register read and write function for a memory area.
|
/* Register read and write function for a memory area.
|
addr is inside the area, if addr & addr_mask == addr_compare
|
addr is inside the area, if addr & addr_mask == addr_compare
|
(used also by peripheral devices like 16450 UART etc.) */
|
(used also by peripheral devices like 16450 UART etc.) */
|
void register_memoryarea_mask(unsigned long addr_mask, unsigned long addr_compare,
|
void register_memoryarea_mask(unsigned long addr_mask, unsigned long addr_compare,
|
unsigned long size, unsigned granularity,
|
unsigned long size, unsigned granularity, unsigned mc_dev,
|
unsigned long (readfunc)(unsigned long),
|
unsigned long (readfunc)(unsigned long),
|
void (writefunc)(unsigned long, unsigned long));
|
void (writefunc)(unsigned long, unsigned long));
|
|
|
/* Register read and write function for a memory area.
|
/* Register read and write function for a memory area.
|
Memory areas should be aligned. Memory area is rounded up to
|
Memory areas should be aligned. Memory area is rounded up to
|
fit the nearest 2^n aligment.
|
fit the nearest 2^n aligment.
|
(used also by peripheral devices like 16450 UART etc.) */
|
(used also by peripheral devices like 16450 UART etc.)
|
|
If mc_dev is 1, this means that this device will be checked first for match
|
|
and will be accessed in case in overlaping memory spaces.
|
|
Only one device can have this set to 1 (used for memory controller) */
|
void register_memoryarea(unsigned long addr,
|
void register_memoryarea(unsigned long addr,
|
unsigned long size, unsigned granularity,
|
unsigned long size, unsigned granularity, unsigned mc_dev,
|
unsigned long (readfunc)(unsigned long),
|
unsigned long (readfunc)(unsigned long),
|
void (writefunc)(unsigned long, unsigned long));
|
void (writefunc)(unsigned long, unsigned long));
|
|
|
/* Finds the memory area for the address and adjust the read and write delays for it. */
|
/* Finds the memory area for the address and adjust the read and write delays for it. */
|
void adjust_rw_delay(unsigned long memaddr, unsigned long delayr, unsigned long delayw);
|
void adjust_rw_delay(unsigned long memaddr, unsigned long delayr, unsigned long delayw);
|
Line 129... |
Line 132... |
char *generate_time_pretty (char *dest, long time_ps);
|
char *generate_time_pretty (char *dest, long time_ps);
|
|
|
/* Temporary variable to increase speed. */
|
/* Temporary variable to increase speed. */
|
extern struct dev_memarea *cur_area;
|
extern struct dev_memarea *cur_area;
|
|
|
|
/* Virtual address of current access. */
|
|
extern unsigned long cur_vadd;
|
|
|
/* These are set by mmu if cache inhibit bit is set for current acces. */
|
/* These are set by mmu if cache inhibit bit is set for current acces. */
|
extern int data_ci, insn_ci;
|
extern int data_ci, insn_ci;
|
|
|
/* Added by MM */
|
/* Added by MM */
|
#ifndef LONGEST
|
#ifndef LONGEST
|