Copyright © 2008-2010 Paul Mundt
Copyright © 2008-2010 Renesas Technology Corp.
Copyright © 2010 Renesas Electronics 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, | ||
prot); |
unsigned long phys;unsigned int size;const char * name;pgprot_t prot;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
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)
(struct mapleq *mq);unsigned long interval;unsigned long function;