Copyright © 2008 Paul Mundt
Copyright © 2008 Renesas Technology Corp.
This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
This program is distributed in the hope that 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.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
For more details see the file COPYING in the source distribution of Linux.
Table of Contents
Table of Contents
sq_flush_range — Flush (prefetch) a specific SQ range
void sq_flush_range ( | start, | |
len); |
unsigned long | start; |
unsigned int | len; |
sq_remap — Map a physical address through the Store Queues
unsigned long sq_remap ( | phys, | |
| size, | ||
| name, | ||
flags); |
unsigned long | phys; |
unsigned int | size; |
const char * | name; |
unsigned long | flags; |
sh64_tlb_init — Perform initial setup for the DTLB and ITLB.
int sh64_tlb_init ( | void); |
| void; |
sh64_next_free_dtlb_entry — Find the next available DTLB entry
unsigned long long sh64_next_free_dtlb_entry ( | void); |
| void; |
sh64_get_wired_dtlb_entry — Allocate a wired (locked-in) entry in the DTLB
unsigned long long sh64_get_wired_dtlb_entry ( | void); |
| void; |
sh64_put_wired_dtlb_entry — Free a wired (locked-in) entry in the DTLB.
int sh64_put_wired_dtlb_entry ( | entry); |
unsigned long long | entry; |
sh64_setup_tlb_slot — Load up a translation in a wired slot.
void sh64_setup_tlb_slot ( | config_addr, | |
| eaddr, | ||
| asid, | ||
paddr); |
unsigned long long | config_addr; |
unsigned long | eaddr; |
unsigned long | asid; |
unsigned long | paddr; |
sh64_teardown_tlb_slot — Teardown a translation.
void sh64_teardown_tlb_slot ( | config_addr); |
unsigned long long | config_addr; |
for_each_dtlb_entry — Iterate over free (non-wired) DTLB entries
for_each_dtlb_entry ( | tlb); |
| tlb; |
Table of Contents
Table of Contents
ilsel_enable — Enable an ILSEL set.
int ilsel_enable ( | set); |
ilsel_source_t | set; |
Enables a given non-aliased ILSEL source (<= ILSEL_KEY) at the highest
available interrupt level. Callers should take care to order callsites
noting descending interrupt levels. Aliasing FPGA and external board
IRQs need to use ilsel_enable_fixed.
The return value is an IRQ number that can later be taken down with
ilsel_disable.
Table of Contents
superhyway_add_device — Add a SuperHyway module
int superhyway_add_device ( | base, | |
| sdev, | ||
bus); |
unsigned long | base; |
struct superhyway_device * | sdev; |
struct superhyway_bus * | bus; |
basePhysical address where module is mapped.
sdevSuperHyway device to add, or NULL to allocate a new one.
busBus where SuperHyway module resides.
This is responsible for adding a new SuperHyway module. This sets up a new
struct superhyway_device for the module being added if sdev == NULL.
Devices are initially added in the order that they are scanned (from the top-down of the memory map), and are assigned an ID based on the order that they are added. Any manual addition of a module will thus get the ID after the devices already discovered regardless of where it resides in memory.
Further work can and should be done in superhyway_scan_bus, to be sure
that any new modules are properly discovered and subsequently registered.
superhyway_register_driver — Register a new SuperHyway driver
int superhyway_register_driver ( | drv); |
struct superhyway_driver * | drv; |
maple_driver_register — register a maple driver
int maple_driver_register ( | drv); |
struct maple_driver * | drv; |
maple_driver_unregister — unregister a maple driver.
void maple_driver_unregister ( | drv); |
struct maple_driver * | drv; |
maple_getcond_callback — setup handling MAPLE_COMMAND_GETCOND
void maple_getcond_callback ( | dev, | |
| callback, | ||
| interval, | ||
function); |
struct maple_device * | dev; |
void (* | callback |
unsigned long | interval; |
unsigned long | function; |