RTEMS  5.1
Files | Data Structures | Macros | Typedefs | Functions

AMBA Plug & Play routines. More...

Files

file  ambapp.h
 
file  ambapp_ids.h
 AMBA Plug & Play Bus Vendor and Device IDs.
 
file  grlib.h
 Common GRLIB AMBA Core Register definitions.
 

Data Structures

struct  ambapp_dev
 
struct  ambapp_common_info
 
struct  ambapp_apb_info
 
struct  ambapp_ahb_info
 
struct  ambapp_core
 
struct  ambapp_ahb_bus
 
struct  ambapp_mmap
 
struct  ambapp_bus
 
struct  ambapp_pnp_ahb
 
struct  ambapp_pnp_apb
 

Macros

#define AHB_BUS_MAX   6
 
#define AMBAPP_FLAG_FFACT_DIR   0x100 /* Frequency factor direction, 0=down, 1=up */
 
#define AMBAPP_FLAG_FFACT   0x0f0 /* Frequency factor against top bus */
 
#define AMBAPP_FLAG_MBUS   0x00c
 
#define AMBAPP_FLAG_SBUS   0x003
 
#define DEV_TO_APB(adev)   ((struct ambapp_apb_info *)((adev)->devinfo))
 
#define DEV_TO_AHB(adev)   ((struct ambapp_ahb_info *)((adev)->devinfo))
 
#define DEV_TO_COMMON(adev)   ((struct ambapp_common_info *)((adev)->devinfo))
 
#define APB_TO_DEV(apb_info)
 
#define AHB_TO_DEV(ahb_info)
 
#define DEV_IS_FREE(dev)   (dev->owner == NULL)
 
#define DEV_IS_ALLOCATED(dev)   (dev->owner != NULL)
 
#define OPTIONS_AHB_MSTS   0x00000001
 
#define OPTIONS_AHB_SLVS   0x00000002
 
#define OPTIONS_APB_SLVS   0x00000004
 
#define OPTIONS_ALL_DEVS   (OPTIONS_AHB_MSTS|OPTIONS_AHB_SLVS|OPTIONS_APB_SLVS)
 
#define OPTIONS_FREE   0x00000010
 
#define OPTIONS_ALLOCATED   0x00000020
 
#define OPTIONS_ALL   (OPTIONS_FREE|OPTIONS_ALLOCATED)
 
#define OPTIONS_DEPTH_FIRST   0x00000100
 
#define DEV_AHB_NONE   0
 
#define DEV_AHB_MST   1
 
#define DEV_AHB_SLV   2
 
#define DEV_APB_SLV   3
 
#define ambapp_pnp_vendor(id)   (((id) >> 24) & 0xff)
 
#define ambapp_pnp_device(id)   (((id) >> 12) & 0xfff)
 
#define ambapp_pnp_ver(id)   (((id)>>5) & 0x1f)
 
#define ambapp_pnp_irq(id)   ((id) & 0x1f)
 
#define ambapp_pnp_start(mbar)   (((mbar) & 0xfff00000) & (((mbar) & 0xfff0) << 16))
 
#define ambapp_pnp_mbar_mask(mbar)   (((mbar)>>4) & 0xfff)
 
#define ambapp_pnp_mbar_type(mbar)   ((mbar) & 0xf)
 
#define ambapp_pnp_apb_start(iobar, base)   ((base) | ((((iobar) & 0xfff00000)>>12) & (((iobar) & 0xfff0)<<4)) )
 
#define ambapp_pnp_apb_mask(iobar)   ((~(ambapp_pnp_mbar_mask(iobar)<<8) & 0x000fffff) + 1)
 
#define AMBA_TYPE_AHBIO_ADDR(addr, base_ioarea)   ((unsigned int)(base_ioarea) | ((addr) >> 12))
 
#define AMBA_TYPE_APBIO   0x1
 
#define AMBA_TYPE_MEM   0x2
 
#define AMBA_TYPE_AHBIO   0x3
 

Typedefs

typedef int(* ambapp_func_t) (struct ambapp_dev *dev, int index, void *arg)
 
typedef void *(* ambapp_memcpy_t) (void *dest, const void *src, int n, struct ambapp_bus *abus)
 

Functions

int ambapp_scan (struct ambapp_bus *abus, unsigned int ioarea, ambapp_memcpy_t memfunc, struct ambapp_mmap *mmaps)
 
void ambapp_freq_init (struct ambapp_bus *abus, struct ambapp_dev *dev, unsigned int freq)
 
unsigned int ambapp_freq_get (struct ambapp_bus *abus, struct ambapp_dev *dev)
 
int ambapp_for_each (struct ambapp_bus *abus, unsigned int options, int vendor, int device, ambapp_func_t func, void *arg)
 
int ambapp_find_by_idx (struct ambapp_dev *dev, int index, void *pcount)
 
int ambapp_dev_count (struct ambapp_bus *abus, unsigned int options, int vendor, int device)
 
void ambapp_print (struct ambapp_bus *abus, int show_depth)
 
int ambapp_alloc_dev (struct ambapp_dev *dev, void *owner)
 
void ambapp_free_dev (struct ambapp_dev *dev)
 
struct ambapp_devambapp_find_parent (struct ambapp_dev *dev)
 
int ambapp_depth (struct ambapp_dev *dev)
 
char * ambapp_device_id2str (int vendor, int id)
 
char * ambapp_vendor_id2str (int vendor)
 
int ambapp_vendev_id2str (int vendor, int id, char *buf)
 
int ambapp_find_apbslv (struct ambapp_bus *abus, int vendor, int device, struct ambapp_apb_info *dev)
 
int ambapp_find_apbslv_next (struct ambapp_bus *abus, int vendor, int device, struct ambapp_apb_info *dev, int index)
 
int ambapp_find_apbslvs_next (struct ambapp_bus *abus, int vendor, int device, struct ambapp_apb_info *dev, int index, int maxno)
 
int ambapp_find_apbslvs (struct ambapp_bus *abus, int vendor, int device, struct ambapp_apb_info *dev, int maxno)
 
int ambapp_find_ahbslv (struct ambapp_bus *abus, int vendor, int device, struct ambapp_ahb_info *dev)
 
int ambapp_find_ahbslv_next (struct ambapp_bus *abus, int vendor, int device, struct ambapp_ahb_info *dev, int index)
 
int ambapp_find_ahbslvs_next (struct ambapp_bus *abus, int vendor, int device, struct ambapp_ahb_info *dev, int index, int maxno)
 
int ambapp_find_ahbslvs (struct ambapp_bus *abus, int vendor, int device, struct ambapp_ahb_info *dev, int maxno)
 
int ambapp_get_number_ahbslv_devices (struct ambapp_bus *abus, int vendor, int device)
 
int ambapp_get_number_apbslv_devices (struct ambapp_bus *abus, int vendor, int device)
 

Detailed Description

AMBA Plug & Play routines.

Macro Definition Documentation

◆ AHB_TO_DEV

#define AHB_TO_DEV (   ahb_info)
Value:
((struct ambapp_dev *)(unsigned int(ahb_info) - \
offsetof(struct ambapp_dev, devinfo)))
Definition: ambapp.h:43

◆ APB_TO_DEV

#define APB_TO_DEV (   apb_info)
Value:
((struct ambapp_dev *)(unsigned int(apb_info) - \
offsetof(struct ambapp_dev, devinfo)))
Definition: ambapp.h:43