[PATCH 33.4 5/5] LEON: updated drivers to use new AMBAPP Layer

Joel Sherrill joel.sherrill at OARcorp.com
Sun Apr 15 23:19:03 UTC 2012


Agreed but same style comments.

On 04/15/2012 01:40 PM, Gedare Bloom wrote:
> Largely mechanical and only in sparc BSPs--looks ok.
>
> On Tue, Apr 10, 2012 at 7:33 AM, Daniel Hellstrom<daniel at gaisler.com>  wrote:
>> The drivers are updated to use the new AMBA layer, however the
>> backwards-compatibility interface (ambapp_old) is used.
>>
>> Signed-off-by: Daniel Hellstrom<daniel at gaisler.com>
>> ---
>>   c/src/lib/libbsp/sparc/leon2/cchip/cchip.c         |   37 +++++++++-----------
>>   c/src/lib/libbsp/sparc/leon2/rasta/rasta.c         |   24 ++++++------
>>   c/src/lib/libbsp/sparc/shared/1553/b1553brm.c      |   14 ++++----
>>   c/src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c  |    2 +-
>>   .../lib/libbsp/sparc/shared/1553/b1553brm_rasta.c  |    2 +-
>>   c/src/lib/libbsp/sparc/shared/amba/ambapp_old.c    |   14 +++++++
>>   c/src/lib/libbsp/sparc/shared/can/grcan.c          |   16 ++++----
>>   c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c    |    2 +-
>>   c/src/lib/libbsp/sparc/shared/can/occan.c          |   16 ++++----
>>   c/src/lib/libbsp/sparc/shared/can/occan_pci.c      |    2 +-
>>   c/src/lib/libbsp/sparc/shared/i2c/i2cmst.c         |   14 ++++----
>>   c/src/lib/libbsp/sparc/shared/include/ambapp.h     |    9 +++++
>>   c/src/lib/libbsp/sparc/shared/include/apbuart.h    |    4 +-
>>   .../lib/libbsp/sparc/shared/include/apbuart_pci.h  |    2 +-
>>   .../libbsp/sparc/shared/include/apbuart_rasta.h    |    2 +-
>>   c/src/lib/libbsp/sparc/shared/include/b1553brm.h   |    4 +-
>>   .../lib/libbsp/sparc/shared/include/b1553brm_pci.h |    4 +-
>>   .../libbsp/sparc/shared/include/b1553brm_rasta.h   |    4 +-
>>   c/src/lib/libbsp/sparc/shared/include/grcan.h      |    2 +-
>>   .../lib/libbsp/sparc/shared/include/grcan_rasta.h  |    2 +-
>>   c/src/lib/libbsp/sparc/shared/include/grspw.h      |    2 +-
>>   c/src/lib/libbsp/sparc/shared/include/grspw_pci.h  |    4 +-
>>   .../lib/libbsp/sparc/shared/include/grspw_rasta.h  |    4 +-
>>   c/src/lib/libbsp/sparc/shared/include/i2cmst.h     |    2 +-
>>   c/src/lib/libbsp/sparc/shared/include/occan.h      |    2 +-
>>   c/src/lib/libbsp/sparc/shared/include/occan_pci.h  |    2 +-
>>   c/src/lib/libbsp/sparc/shared/spw/grspw.c          |   29 +++++-----------
>>   c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c      |    2 +-
>>   c/src/lib/libbsp/sparc/shared/spw/grspw_rasta.c    |    2 +-
>>   c/src/lib/libbsp/sparc/shared/uart/apbuart.c       |   14 ++++----
>>   c/src/lib/libbsp/sparc/shared/uart/apbuart_pci.c   |    2 +-
>>   c/src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c |    2 +-
>>   32 files changed, 126 insertions(+), 117 deletions(-)
>>
>> diff --git a/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c b/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c
>> index 59c17dd..7924fe8 100644
>> --- a/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c
>> +++ b/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c
>> @@ -83,8 +83,8 @@ typedef struct {
>>         int bus, dev, fun;
>>
>>         /* AMBA bus */
>> -       amba_confarea_type amba_bus;
>> -       struct amba_mmap amba_maps[2];
>> +       struct ambapp_bus amba_bus;
>> +       struct ambapp_mmap amba_maps[2];
>>
>>         /* FT AHB SRAM */
>>         int ftsram_size; /* kb */
>> @@ -100,8 +100,7 @@ int init_pcif(void){
>>         int i,bus,dev,fun;
>>         pci_bridge_regs *pcib;
>>         amba_bridge_regs *ambab;
>> -       int amba_master_cnt;
>> -       amba_confarea_type *abus;
>> +       struct ambapp_bus *abus;
>>
>>    if ( BSP_pciFindDevice(0x1AC8, 0x0701, 0,&bus,&dev,&fun) == 0 ) {
>>      ;
>> @@ -136,13 +135,13 @@ int init_pcif(void){
>>
>>         /* AMBA MAP cc1.bars[1] (in CPU) ==>  0xf0000000(remote amba address) */
>>         cc1.amba_maps[0].size = 0x04000000;
>> -       cc1.amba_maps[0].cpu_adr = cc1.bars[1];
>> -       cc1.amba_maps[0].remote_amba_adr = 0xfc000000;
>> +       cc1.amba_maps[0].local_adr = cc1.bars[1];
>> +       cc1.amba_maps[0].remote_adr = 0xfc000000;
>>
>>         /* Mark end of table */
>>         cc1.amba_maps[1].size=0;
>> -       cc1.amba_maps[1].cpu_adr = 0;
>> -       cc1.amba_maps[1].remote_amba_adr = 0;
>> +       cc1.amba_maps[1].local_adr = 0;
>> +       cc1.amba_maps[1].remote_adr = 0;
>>
>>         /* Enable I/O and Mem accesses */
>>         pci_read_config_dword(bus, dev, fun, 0x4,&com1);
>> @@ -161,16 +160,14 @@ int init_pcif(void){
>>
>>         /* Scan bus for AMBA devices */
>>         abus =&cc1.amba_bus;
>> -       memset(abus,0,sizeof(amba_confarea_type));
>> -       amba_scan(abus,cc1.bars[1]+0x3f00000,&cc1.amba_maps[0]);
>> +       memset(abus,0,sizeof(*abus));
>> +       ambapp_scan(abus,cc1.bars[1]+0x3f00000,NULL,&cc1.amba_maps[0]);
>>
>> -       /* Get number of amba masters */
>> -       amba_master_cnt = abus->ahbmst.devnr;
>> -#ifdef BOARD_INFO
>> -       printk("Found %d AMBA masters\n\r",amba_master_cnt);
>> -#endif
>> -       for(i=1; i<amba_master_cnt; i++){
>> +       /* Init all msters, max 16 */
>> +       for(i=1; i<16; i++) {
>>                 ambab->ambabars[i] = 0x40000000;
>> +               if (READ_REG(&ambab->ambabars[i]) != 0x40000000)
>> +                       break;
>>         }
>>
>>         /* Enable PCI Master */
>> @@ -192,20 +189,20 @@ int init_pcif(void){
>>   #define GAISLER_FTAHBRAM 0x50
>>   #endif
>>   int init_onboard_sram(void){
>> -       amba_ahb_device ahb;
>> -       amba_apb_device apb;
>> +       struct ambapp_ahb_info ahb;
>> +       struct ambapp_apb_info apb;
>>         unsigned int conf, size;
>>
>>         /* Find SRAM controller
>>          * 1. AHB slave interface
>>          * 2. APB slave interface
>>          */
>> -       if ( amba_find_apbslv(&cc1.amba_bus,VENDOR_GAISLER,GAISLER_FTAHBRAM,&apb) != 1 ){
>> +       if ( ambapp_find_apbslv(&cc1.amba_bus,VENDOR_GAISLER,GAISLER_FTAHBRAM,&apb) != 1 ){
>>                 printk("On Board FT SRAM not found (APB)\n");
>>                 return -1;
>>         }
>>
>> -       if ( amba_find_ahbslv(&cc1.amba_bus,VENDOR_GAISLER,GAISLER_FTAHBRAM,&ahb) != 1 ){
>> +       if ( ambapp_find_ahbslv(&cc1.amba_bus,VENDOR_GAISLER,GAISLER_FTAHBRAM,&ahb) != 1 ){
>>                 printk("On Board FT SRAM not found (AHB)\n");
>>                 return -1;
>>         }
>> diff --git a/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c b/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c
>> index 7b66b07..c6dc93d 100644
>> --- a/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c
>> +++ b/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c
>> @@ -209,16 +209,16 @@ void rasta_interrrupt_register(void *handler, int irqno, void *arg)
>>   }
>>
>>
>> -int rasta_get_gpio(amba_confarea_type *abus, int index, struct gpio_reg **regs, int *irq)
>> +int rasta_get_gpio(struct ambapp_bus *abus, int index, struct gpio_reg **regs, int *irq)
>>   {
>> -  amba_apb_device dev;
>> +  struct ambapp_apb_info dev;
>>    int cores;
>>
>>    if ( !abus )
>>      return -1;
>>
>>    /* Scan PnP info for GPIO port number 'index' */
>> -  cores = amba_find_next_apbslv(abus,VENDOR_GAISLER,GAISLER_PIOPORT,&dev,index);
>> +  cores = ambapp_find_apbslv_next(abus,VENDOR_GAISLER,GAISLER_GPIO,&dev,index);
>>    if ( cores<  1 )
>>      return -1;
>>
>> @@ -232,8 +232,8 @@ int rasta_get_gpio(amba_confarea_type *abus, int index, struct gpio_reg **regs,
>>   }
>>
>>   /* AMBA Plug&Play information */
>> -static amba_confarea_type abus;
>> -static struct amba_mmap amba_maps[3];
>> +static struct ambapp_bus abus;
>> +static struct ambapp_mmap amba_maps[3];
>>
>>   int rasta_register(void)
>>   {
>> @@ -316,23 +316,23 @@ int rasta_register(void)
>>
>>      /* AMBA MAP bar0 (in CPU) ==>  0x80000000(remote amba address) */
>>      amba_maps[0].size = 0x10000000;
>> -    amba_maps[0].cpu_adr = bar0;
>> -    amba_maps[0].remote_amba_adr = 0x80000000;
>> +    amba_maps[0].local_adr = bar0;
>> +    amba_maps[0].remote_adr = 0x80000000;
>>
>>      /* AMBA MAP bar1 (in CPU) ==>  0x40000000(remote amba address) */
>>      amba_maps[1].size = 0x10000000;
>> -    amba_maps[1].cpu_adr = bar1;
>> -    amba_maps[1].remote_amba_adr = 0x40000000;
>> +    amba_maps[1].local_adr = bar1;
>> +    amba_maps[1].remote_adr = 0x40000000;
>>
>>      /* Mark end of table */
>>      amba_maps[2].size=0;
>> -    amba_maps[2].cpu_adr = 0;
>> -    amba_maps[2].remote_amba_adr = 0;
>> +    amba_maps[2].local_adr = 0;
>> +    amba_maps[2].remote_adr = 0;
>>
>>      memset(&abus,0,sizeof(abus));
>>
>>      /* Start AMBA PnP scan at first AHB bus */
>> -    amba_scan(&abus,bar0+(AHB1_IOAREA_BASE_ADDR&~0xf0000000),&amba_maps[0]);
>> +    ambapp_scan(&abus,bar0+(AHB1_IOAREA_BASE_ADDR&~0xf0000000),NULL,&amba_maps[0]);
>>
>>      printk("Registering RASTA GRCAN driver\n\r");
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
>> index e447df2..7d5bfcd 100644
>> --- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
>> +++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
>> @@ -279,7 +279,7 @@ typedef struct {
>>   static int brm_cores;
>>   static unsigned int allbrm_memarea;
>>   static brm_priv *brms;
>> -static amba_confarea_type *amba_bus;
>> +static struct ambapp_bus *amba_bus;
>>   static unsigned int    allbrm_cfg_clksel;
>>   static unsigned int allbrm_cfg_clkdiv;
>>   static unsigned int allbrm_cfg_freq;
>> @@ -325,7 +325,7 @@ int brm_register_leon3_ramon_fpga(void){
>>          * The BRM is always clocked with 24MHz.
>>          * 3 in BRM enhanced register will select 24MHz
>>          */
>> -       return b1553brm_register(&amba_conf,0,0,3);
>> +       return b1553brm_register(&ambapp_plb,0,0,3);
>>   }
>>
>>   int brm_register_leon3_ramon_asic(void){
>> @@ -335,12 +335,12 @@ int brm_register_leon3_ramon_asic(void){
>>          *
>>          * 3 in BRM enhanced register will select 24MHz
>>          */
>> -       return b1553brm_register(&amba_conf,2,0,3);
>> +       return b1553brm_register(&ambapp_plb,2,0,3);
>>   }
>>   #endif
>>   #endif
>>
>> -int B1553BRM_PREFIX(_register)(amba_confarea_type *bus, unsigned int clksel, unsigned int clkdiv, unsigned int brm_freq)
>> +int B1553BRM_PREFIX(_register)(struct ambapp_bus *bus, unsigned int clksel, unsigned int clkdiv, unsigned int brm_freq)
>>   {
>>      rtems_status_code r;
>>      rtems_device_major_number m;
>> @@ -568,7 +568,7 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
>>         int dev_cnt;
>>         char fs_name[20];
>>         brm_priv *brm;
>> -       amba_ahb_device ambadev;
>> +       struct ambapp_ahb_info ambadev;
>>         char *mem;
>>
>>         FUNCDBG("brm_initialize\n");
>> @@ -577,7 +577,7 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
>>         strcpy(fs_name,B1553BRM_DEVNAME);
>>
>>         /* Find all BRM devices */
>> -       dev_cnt = amba_get_number_ahbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_BRM);
>> +       dev_cnt = ambapp_get_number_ahbslv_devices(amba_bus, VENDOR_GAISLER, GAISLER_B1553BRM);
>>         if ( dev_cnt<  1 ){
>>                 /* Failed to find any CAN cores! */
>>                 printk("BRM: Failed to find any BRM cores\n\r");
>> @@ -619,7 +619,7 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
>>                 brm =&brms[minor];
>>
>>                 /* Get AMBA AHB device info from Plug&Play */
>> -               amba_find_next_ahbslv(amba_bus,VENDOR_GAISLER,GAISLER_BRM,&ambadev,minor);
>> +               ambapp_find_ahbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_B1553BRM,&ambadev,minor);
>>
>>                 /* Copy Basic HW info */
>>                 brm->regs = (void *)ambadev.start[0];
>> diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c b/c/src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c
>> index 76c9f2e..3be26b1 100644
>> --- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c
>> +++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c
>> @@ -82,7 +82,7 @@ static void b1553brmpci_interrupt_handler(int irq, void *arg);
>>   */
>>
>>   int b1553brm_pci_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int clksel,
>>   unsigned int clkdiv,
>>   unsigned int brm_freq,
>> diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm_rasta.c b/c/src/lib/libbsp/sparc/shared/1553/b1553brm_rasta.c
>> index 10adb0a..d1fa4d6 100644
>> --- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm_rasta.c
>> +++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm_rasta.c
>> @@ -82,7 +82,7 @@ static void b1553brmrasta_interrupt_handler(int irq, void *arg);
>>   */
>>
>>   int b1553brm_rasta_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int clksel,
>>   unsigned int clkdiv,
>>   unsigned int brm_freq,
>> diff --git a/c/src/lib/libbsp/sparc/shared/amba/ambapp_old.c b/c/src/lib/libbsp/sparc/shared/amba/ambapp_old.c
>> index c730173..1b543ab 100644
>> --- a/c/src/lib/libbsp/sparc/shared/amba/ambapp_old.c
>> +++ b/c/src/lib/libbsp/sparc/shared/amba/ambapp_old.c
>> @@ -61,6 +61,13 @@ int ambapp_find_apbslvs(struct ambapp_bus *abus, int vendor, int device, struct
>>         return ambapp_find_apbslvs_next(abus, vendor, device, dev, 0, maxno);
>>   }
>>
>> +int ambapp_get_number_apbslv_devices(struct ambapp_bus *abus, int vendor, int device)
>> +{
>> +       return ambapp_dev_count(abus,
>> +                       (OPTIONS_ALL|OPTIONS_APB_SLVS),
>> +                       vendor, device);
>> +}
>> +
>>   int ambapp_find_ahbslvs_next(struct ambapp_bus *abus, int vendor, int device, struct ambapp_ahb_info *dev, int index, int maxno)
>>   {
>>         struct ambapp_dev_find_match_arg arg;
>> @@ -90,3 +97,10 @@ int ambapp_find_ahbslvs(struct ambapp_bus *abus, int vendor, int device, struct
>>   {
>>         return ambapp_find_ahbslvs_next(abus, vendor, device, dev, 0, maxno);
>>   }
>> +
>> +int ambapp_get_number_ahbslv_devices(struct ambapp_bus *abus, int vendor, int device)
>> +{
>> +       return ambapp_dev_count(abus,
>> +                       (OPTIONS_ALL|OPTIONS_AHB_SLVS),
>> +                       vendor, device);
>> +}
>> diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan.c b/c/src/lib/libbsp/sparc/shared/can/grcan.c
>> index fb48550..434348b 100644
>> --- a/c/src/lib/libbsp/sparc/shared/can/grcan.c
>> +++ b/c/src/lib/libbsp/sparc/shared/can/grcan.c
>> @@ -212,7 +212,7 @@ struct grcan_priv {
>>
>>   static int grcan_core_cnt;
>>   struct grcan_priv *grcans;
>> -static amba_confarea_type *amba_bus;
>> +static struct ambapp_bus *amba_bus;
>>   struct grcan_device_info *grcan_cores;
>>   static int grcan_core_cnt;
>>
>> @@ -1050,7 +1050,7 @@ static rtems_device_driver grcan_initialize(
>>   {
>>    int minor;
>>    struct grcan_priv *pDev;
>> -  amba_apb_device dev;
>> +  struct ambapp_apb_info dev;
>>    rtems_status_code status;
>>    char fs_name[20];
>>    unsigned int sys_freq_hz;
>> @@ -1062,10 +1062,10 @@ static rtems_device_driver grcan_initialize(
>>
>>    /* find GRCAN cores */
>>    if ( !grcan_cores ) {
>> -    grcan_core_cnt = amba_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,deviceid);
>> +    grcan_core_cnt = ambapp_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,deviceid);
>>      if ( grcan_core_cnt<  1 ){
>>        deviceid = GAISLER_GRCAN;
>> -      grcan_core_cnt = amba_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,deviceid);
>> +      grcan_core_cnt = ambapp_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,deviceid);
>>        if ( grcan_core_cnt<  1 ) {
>>          DBG("GRCAN: Using AMBA Plug&Play, found %d cores\n",grcan_core_cnt);
>>          return RTEMS_UNSATISFIED;
>> @@ -1094,10 +1094,10 @@ static rtems_device_driver grcan_initialize(
>>   #if defined(LEON3)
>>    /* LEON3: find timer address via AMBA Plug&Play info */
>>    {
>> -    amba_apb_device gptimer;
>> +    struct ambapp_apb_info gptimer;
>>      LEON3_Timer_Regs_Map *tregs;
>>
>> -    if (amba_find_apbslv (&amba_conf, VENDOR_GAISLER, GAISLER_GPTIMER,&gptimer)
>> +    if (ambapp_find_apbslv (&ambapp_plb, VENDOR_GAISLER, GAISLER_GPTIMER,&gptimer)
>>          == 1) {
>>        tregs = (LEON3_Timer_Regs_Map *) gptimer.start;
>>        sys_freq_hz = (tregs->scaler_reload + 1) * 1000 * 1000;
>> @@ -1132,7 +1132,7 @@ static rtems_device_driver grcan_initialize(
>>
>>      /* Find core address&  IRQ */
>>      if ( !grcan_cores ) {
>> -      amba_find_next_apbslv(amba_bus,VENDOR_GAISLER,deviceid,&dev,minor);
>> +      ambapp_find_apbslv_next(amba_bus,VENDOR_GAISLER,deviceid,&dev,minor);
>>        pDev->irq = dev.irq;
>>        pDev->regs = (struct grcan_regs *)dev.start;
>>      }else{
>> @@ -1799,7 +1799,7 @@ int GRCAN_PREFIX(_register_abs)(struct grcan_device_info *devices, int dev_cnt)
>>   }
>>
>>   /* Use prescanned AMBA Plug&Play information to find all GRCAN cores */
>> -int GRCAN_PREFIX(_register)(amba_confarea_type *abus)
>> +int GRCAN_PREFIX(_register)(struct ambapp_bus *abus)
>>   {
>>    FUNCDBG();
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c b/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
>> index f9b126f..7fad48e 100644
>> --- a/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
>> +++ b/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
>> @@ -77,7 +77,7 @@ unsigned int grcan_rasta_rambase;
>>   #include "grcan.c"
>>
>>
>> -int grcan_rasta_ram_register(amba_confarea_type *abus, int rambase)
>> +int grcan_rasta_ram_register(struct ambapp_bus *abus, int rambase)
>>   {
>>    grcan_rasta_rambase = rambase;
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/can/occan.c b/c/src/lib/libbsp/sparc/shared/can/occan.c
>> index 78c901a..6c06b3d 100644
>> --- a/c/src/lib/libbsp/sparc/shared/can/occan.c
>> +++ b/c/src/lib/libbsp/sparc/shared/can/occan.c
>> @@ -282,7 +282,7 @@ static void occan_interrupt_handler(rtems_vector_number v);
>>   #endif
>>   static int can_cores;
>>   static occan_priv *cans;
>> -static amba_confarea_type *amba_bus;
>> +static struct ambapp_bus *amba_bus;
>>   static unsigned int sys_freq_hz;
>>
>>
>> @@ -914,7 +914,7 @@ static int pelican_speed_auto(occan_priv *priv){
>>
>>   static rtems_device_driver occan_initialize(rtems_device_major_number major, rtems_device_minor_number unused, void *arg){
>>         int dev_cnt,minor,subcore_cnt,devi,subi,subcores;
>> -       amba_ahb_device ambadev;
>> +       struct ambapp_ahb_info ambadev;
>>         occan_priv *can;
>>         char fs_name[20];
>>         rtems_status_code status;
>> @@ -922,7 +922,7 @@ static rtems_device_driver occan_initialize(rtems_device_major_number major, rte
>>         strcpy(fs_name,OCCAN_DEVNAME);
>>
>>         /* find device on amba bus */
>> -       dev_cnt = amba_get_number_ahbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_OCCAN);
>> +       dev_cnt = ambapp_get_number_ahbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_CANAHB);
>>         if ( dev_cnt<  1 ){
>>                 /* Failed to find any CAN cores! */
>>                 printk("OCCAN: Failed to find any CAN cores\n\r");
>> @@ -934,10 +934,10 @@ static rtems_device_driver occan_initialize(rtems_device_major_number major, rte
>>   #if defined(LEON3)
>>         /* LEON3: find timer address via AMBA Plug&Play info */
>>         {
>> -               amba_apb_device gptimer;
>> +               struct ambapp_apb_info gptimer;
>>                 LEON3_Timer_Regs_Map *tregs;
>>
>> -               if ( amba_find_apbslv(&amba_conf,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>> +               if ( ambapp_find_apbslv(&ambapp_plb,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>>                         tregs = (LEON3_Timer_Regs_Map *)gptimer.start;
>>                         sys_freq_hz = (tregs->scaler_reload+1)*1000*1000;
>>                         DBG("OCCAN: detected %dHZ system frequency\n\r",sys_freq_hz);
>> @@ -973,7 +973,7 @@ static rtems_device_driver occan_initialize(rtems_device_major_number major, rte
>>          */
>>
>>         for(subcore_cnt=devi=0; devi<dev_cnt; devi++){
>> -               amba_find_next_ahbslv(amba_bus,VENDOR_GAISLER,GAISLER_OCCAN,&ambadev,devi);
>> +               ambapp_find_ahbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_CANAHB,&ambadev,devi);
>>                 subcore_cnt += (ambadev.ver&  0x7)+1;
>>         }
>>
>> @@ -987,7 +987,7 @@ static rtems_device_driver occan_initialize(rtems_device_major_number major, rte
>>         for(devi=0; devi<dev_cnt; devi++){
>>
>>                 /* Get AHB device info */
>> -               amba_find_next_ahbslv(amba_bus,VENDOR_GAISLER,GAISLER_OCCAN,&ambadev,devi);
>> +               ambapp_find_ahbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_CANAHB,&ambadev,devi);
>>                 subcores = (ambadev.ver&  0x7)+1;
>>                 DBG("OCCAN: on dev %d found %d sub cores\n\r",devi,subcores);
>>
>> @@ -1802,7 +1802,7 @@ static void occan_interrupt_handler(rtems_vector_number v){
>>
>>   static rtems_driver_address_table occan_driver = OCCAN_DRIVER_TABLE_ENTRY;
>>
>> -int OCCAN_PREFIX(_register)(amba_confarea_type *bus){
>> +int OCCAN_PREFIX(_register)(struct ambapp_bus *bus){
>>         rtems_status_code r;
>>         rtems_device_major_number m;
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/can/occan_pci.c b/c/src/lib/libbsp/sparc/shared/can/occan_pci.c
>> index 2dd2e5b..b27beb1 100644
>> --- a/c/src/lib/libbsp/sparc/shared/can/occan_pci.c
>> +++ b/c/src/lib/libbsp/sparc/shared/can/occan_pci.c
>> @@ -46,7 +46,7 @@ static void inline occanpci_set_channel(occan_priv *priv, int channel){
>>                 *chan_sel = 0xffffffff;
>>   }
>>
>> -int occan_pci_register(amba_confarea_type *bus)
>> +int occan_pci_register(struct ambapp_bus *bus)
>>   {
>>         /* Setup configuration */
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/i2c/i2cmst.c b/c/src/lib/libbsp/sparc/shared/i2c/i2cmst.c
>> index fb6a573..bf321dc 100644
>> --- a/c/src/lib/libbsp/sparc/shared/i2c/i2cmst.c
>> +++ b/c/src/lib/libbsp/sparc/shared/i2c/i2cmst.c
>> @@ -285,7 +285,7 @@ static gr_i2cmst_desc_t gr_i2cmst_desc = {
>>   };
>>
>>   /* Scans for I2CMST core and initalizes i2c library */
>> -rtems_status_code leon_register_i2c(amba_confarea_type *abus)
>> +rtems_status_code leon_register_i2c(struct ambapp_bus *abus)
>>   {
>>   #if defined(DEBUG)
>>    printk("leon_register_i2c called...");
>> @@ -293,11 +293,11 @@ rtems_status_code leon_register_i2c(amba_confarea_type *abus)
>>
>>    int rc;
>>    int device_found = 0;
>> -  amba_apb_device apbi2cmst;
>> +  struct ambapp_apb_info apbi2cmst;
>>
>>    /* Scan AMBA bus for I2CMST core */
>> -  device_found = amba_find_apbslv(abus, VENDOR_GAISLER, GAISLER_I2CMST,
>> -&apbi2cmst);
>> +  device_found = ambapp_find_apbslv(abus, VENDOR_GAISLER, GAISLER_I2CMST,
>> +&apbi2cmst);
>>
>>    if (device_found == 1) {
>>
>> @@ -317,11 +317,11 @@ rtems_status_code leon_register_i2c(amba_confarea_type *abus)
>>   #if defined(LEON3)
>>         /* LEON3: find timer address via AMBA Plug&Play info */
>>         {
>> -         amba_apb_device gptimer;
>> +         struct ambapp_apb_info gptimer;
>>           LEON3_Timer_Regs_Map *tregs;
>>
>> -         if (amba_find_apbslv(abus,VENDOR_GAISLER,
>> -                              GAISLER_GPTIMER,&gptimer) == 1 ) {
>> +         if (ambapp_find_apbslv(abus,VENDOR_GAISLER,
>> +                                GAISLER_GPTIMER,&gptimer) == 1 ) {
>>             tregs = (LEON3_Timer_Regs_Map *)gptimer.start;
>>             gr_i2cmst_desc.prv.sysfreq = (tregs->scaler_reload+1)*1000;
>>           } else {
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/ambapp.h b/c/src/lib/libbsp/sparc/shared/include/ambapp.h
>> index 5eb3f2a..8c86157 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/ambapp.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/ambapp.h
>> @@ -326,6 +326,11 @@ extern int ambapp_find_apbslvs(
>>         struct ambapp_apb_info *dev,
>>         int maxno);
>>
>> +extern int ambapp_get_number_apbslv_devices(
>> +       struct ambapp_bus *abus,
>> +       int vendor,
>> +       int device);
>> +
>>   extern int ambapp_find_ahbslv(
>>         struct ambapp_bus *abus,
>>         int vendor,
>> @@ -354,6 +359,10 @@ extern int ambapp_find_ahbslvs(
>>         struct ambapp_ahb_info *dev,
>>         int maxno);
>>
>> +extern int ambapp_get_number_ahbslv_devices(
>> +       struct ambapp_bus *abus,
>> +       int vendor,
>> +       int device);
>>
>>   /******** AMBA DEVICES *******/
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/apbuart.h b/c/src/lib/libbsp/sparc/shared/include/apbuart.h
>> index c8a6e35..c948b24 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/apbuart.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/apbuart.h
>> @@ -72,9 +72,9 @@ typedef struct {
>>
>>   /* Register APBUART driver
>>   * bus =  pointer to AMBA bus description used to search for APBUART(s).
>> - *        (&amba_conf for LEON3), (LEON2: see amba_scan)
>> + *        (&ambapp_plb for LEON3), (LEON2: see amba_scan)
>>   */
>> -int apbuart_register (amba_confarea_type * bus);
>> +int apbuart_register (struct ambapp_bus *bus);
>>
>>   #ifdef __cplusplus
>>   }
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/apbuart_pci.h b/c/src/lib/libbsp/sparc/shared/include/apbuart_pci.h
>> index e806429..11ac33e 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/apbuart_pci.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/apbuart_pci.h
>> @@ -24,7 +24,7 @@ extern "C" {
>>   *
>>   */
>>
>> -int apbuart_pci_register (amba_confarea_type * bus);
>> +int apbuart_pci_register (struct ambapp_bus * bus);
>>
>>   /* This function must be called on APBUART interrupt. Called from the
>>   * PCI interrupt handler.
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/apbuart_rasta.h b/c/src/lib/libbsp/sparc/shared/include/apbuart_rasta.h
>> index 1edf6f9..61c6144 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/apbuart_rasta.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/apbuart_rasta.h
>> @@ -24,7 +24,7 @@ extern "C" {
>>   *
>>   */
>>
>> -int apbuart_rasta_register(amba_confarea_type *bus);
>> +int apbuart_rasta_register(struct ambapp_bus *bus);
>>
>>   /* This function must be called on APBUART interrupt. Called from the
>>   * RASTA interrupt handler.
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/b1553brm.h b/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
>> index f5fd343..f0f09c5 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
>> @@ -158,9 +158,9 @@ int brm_register_leon3_ramon_asic(void);
>>   /* Register BRM driver
>>   * See (struct brm_reg).w_ctrl for clksel and clkdiv.
>>   * See Enhanced register (the least signinficant 2 bits) in BRM Core for brm_freq
>> - * bus =&amba_conf for LEON3. (LEON2 not yet supported for this driver)
>> + * bus =&ambapp_plb for LEON3. (LEON2 not yet supported for this driver)
>>   */
>> -int b1553brm_register(amba_confarea_type *bus, unsigned int clksel, unsigned int clkdiv, unsigned int brm_freq);
>> +int b1553brm_register(struct ambapp_bus *bus, unsigned int clksel, unsigned int clkdiv, unsigned int brm_freq);
>>
>>   #ifdef __cplusplus
>>   }
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/b1553brm_pci.h b/c/src/lib/libbsp/sparc/shared/include/b1553brm_pci.h
>> index 74f9d32..9861dc3 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/b1553brm_pci.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/b1553brm_pci.h
>> @@ -22,7 +22,7 @@ extern "C" {
>>   /* Register BRM driver
>>   * See (struct brm_reg).w_ctrl for clksel and clkdiv.
>>   * See Enhanced register (the least signinficant 2 bits) in BRM Core for brm_freq
>> - * bus =&amba_conf for LEON3. (LEON2 not yet supported for this driver)
>> + * bus =&ambapp_plb for LEON3. (LEON2 not yet supported for this driver)
>>   *
>>   * Memory setup:
>>   * memarea = 128k aligned pointer to memory (if zero malloc will be used) (as the CPU sees it)
>> @@ -30,7 +30,7 @@ extern "C" {
>>   */
>>
>>   int b1553brm_pci_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int clksel,
>>   unsigned int clkdiv,
>>   unsigned int brm_freq,
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/b1553brm_rasta.h b/c/src/lib/libbsp/sparc/shared/include/b1553brm_rasta.h
>> index cd51658..360b72f 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/b1553brm_rasta.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/b1553brm_rasta.h
>> @@ -22,7 +22,7 @@ extern "C" {
>>   /* Register BRM driver
>>   * See (struct brm_reg).w_ctrl for clksel and clkdiv.
>>   * See Enhanced register (the least signinficant 2 bits) in BRM Core for brm_freq
>> - * bus =&amba_conf for LEON3. (LEON2 not yet supported for this driver)
>> + * bus =&ambapp_plb for LEON3. (LEON2 not yet supported for this driver)
>>   *
>>   * Memory setup:
>>   * memarea = 128k aligned pointer to memory (if zero malloc will be used) (as the CPU sees it)
>> @@ -30,7 +30,7 @@ extern "C" {
>>   */
>>
>>   int b1553brm_rasta_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int clksel,
>>   unsigned int clkdiv,
>>   unsigned int brm_freq,
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/grcan.h b/c/src/lib/libbsp/sparc/shared/include/grcan.h
>> index 8b3ed15..f8f577d 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/grcan.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/grcan.h
>> @@ -190,7 +190,7 @@ struct grcan_device_info {
>>   int grcan_register_abs(struct grcan_device_info *devices, int dev_cnt);
>>
>>   /* Use prescanned AMBA Plug&Play information to find all GRFIFO cores */
>> -int grcan_register(amba_confarea_type *abus);
>> +int grcan_register(struct ambapp_bus *abus);
>>   #if 0
>>   void grcan_register(unsigned int baseaddr, unsigned int ram_base);
>>   void grcan_interrupt_handler(rtems_vector_number v);
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/grcan_rasta.h b/c/src/lib/libbsp/sparc/shared/include/grcan_rasta.h
>> index 1f96da6..20a2fac 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/grcan_rasta.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/grcan_rasta.h
>> @@ -13,7 +13,7 @@ extern "C" {
>>   * rambase is address of the first GRCAN core has it's TX buffer, followed by
>>   * it's RX buffer
>>   */
>> -int grcan_rasta_ram_register(amba_confarea_type *abus, int rambase);
>> +int grcan_rasta_ram_register(struct ambapp_bus *abus, int rambase);
>>
>>   extern void (*grcan_rasta_int_reg)(void *handler, int irq, void *arg);
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/grspw.h b/c/src/lib/libbsp/sparc/shared/include/grspw.h
>> index 4c6c869..e60aa87 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/grspw.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/grspw.h
>> @@ -111,7 +111,7 @@ typedef struct {
>>   #define SPACEWIRE_IOCTRL_START               64
>>   #define SPACEWIRE_IOCTRL_STOP                65
>>
>> -int grspw_register(amba_confarea_type *bus);
>> +int grspw_register(struct ambapp_bus *bus);
>>
>>
>>   #if 0
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/grspw_pci.h b/c/src/lib/libbsp/sparc/shared/include/grspw_pci.h
>> index aea50f3..9e2cd60 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/grspw_pci.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/grspw_pci.h
>> @@ -20,14 +20,14 @@ extern "C" {
>>   #endif
>>
>>   /* Register GRSPW Driver
>> - * bus =&amba_conf for LEON3
>> + * bus =&ambapp_plb for LEON3
>>   *
>>   * Memory setup:
>>   * memarea = 128k aligned pointer to memory (if zero malloc will be used) (as the CPU sees it)
>>   * hw_address = address that HW must use to access memarea. (used in the translation process)
>>   */
>>
>> -int grspw_pci_register (amba_confarea_type * bus,
>> +int grspw_pci_register (struct ambapp_bus *bus,
>>                          unsigned int memarea, unsigned int hw_address);
>>
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/grspw_rasta.h b/c/src/lib/libbsp/sparc/shared/include/grspw_rasta.h
>> index 0e4e5be..c4c0cd0 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/grspw_rasta.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/grspw_rasta.h
>> @@ -20,14 +20,14 @@ extern "C" {
>>   #endif
>>
>>   /* Register GRSPW Driver
>> - * bus =&amba_conf for LEON3
>> + * bus =&ambapp_plb for LEON3
>>   *
>>   * Memory setup:
>>   * ram_base = 128k aligned pointer to memory (as the CPU sees it)
>>   */
>>
>>   int grspw_rasta_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int ram_base
>>   );
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/i2cmst.h b/c/src/lib/libbsp/sparc/shared/include/i2cmst.h
>> index 21780ee..9f612fa 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/i2cmst.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/i2cmst.h
>> @@ -68,7 +68,7 @@ typedef struct gr_i2cmst_desc {
>>   } gr_i2cmst_desc_t;
>>
>>   /* Scans for I2CMST core and initalizes i2c library */
>> -rtems_status_code leon_register_i2c(amba_confarea_type *abus);
>> +rtems_status_code leon_register_i2c(struct ambapp_bus *abus);
>>
>>   #ifdef __cplusplus
>>   }
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/occan.h b/c/src/lib/libbsp/sparc/shared/include/occan.h
>> index 12ec42a..5c875b3 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/occan.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/occan.h
>> @@ -147,7 +147,7 @@ struct occan_afilter {
>>   #define OCCAN_BLK_MODE_RX 0x1
>>   #define OCCAN_BLK_MODE_TX 0x2
>>
>> -int occan_register(amba_confarea_type *bus);
>> +int occan_register(struct ambapp_bus *bus);
>>
>>
>>   #define OCCAN_SPEED_500K 500000
>> diff --git a/c/src/lib/libbsp/sparc/shared/include/occan_pci.h b/c/src/lib/libbsp/sparc/shared/include/occan_pci.h
>> index 2f46293..d351f85 100644
>> --- a/c/src/lib/libbsp/sparc/shared/include/occan_pci.h
>> +++ b/c/src/lib/libbsp/sparc/shared/include/occan_pci.h
>> @@ -23,7 +23,7 @@ extern "C" {
>>   * bus = pointer to AMBA bus description used to search for OC_CAN contrller(s).
>>   */
>>
>> -int occan_pci_register(amba_confarea_type *bus);
>> +int occan_pci_register(struct ambapp_bus *bus);
>>
>>   /* This function must be called on OC_CAN interrupt. Called from the
>>   * PCI interrupt handler. irq = AMBA IRQ assigned to the OC_CAN device,
>> diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw.c b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
>> index 6a9da79..513a53a 100644
>> --- a/c/src/lib/libbsp/sparc/shared/spw/grspw.c
>> +++ b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
>> @@ -370,9 +370,9 @@ static rtems_device_driver grspw_control(
>>      grspw_control }
>>
>>   static rtems_driver_address_table grspw_driver = GRSPW_DRIVER_TABLE_ENTRY;
>> -static amba_confarea_type *amba_bus;
>> +static struct ambapp_bus *amba_bus;
>>
>> -int GRSPW_PREFIX(_register)(amba_confarea_type *bus)
>> +int GRSPW_PREFIX(_register)(struct ambapp_bus *bus)
>>   {
>>          rtems_status_code r;
>>          rtems_device_major_number m;
>> @@ -389,10 +389,10 @@ int GRSPW_PREFIX(_register)(amba_confarea_type *bus)
>>   #ifdef LEON3
>>         /* LEON3: find timer address via AMBA Plug&Play info */
>>         {
>> -               amba_apb_device gptimer;
>> +               struct ambapp_apb_info gptimer;
>>                 LEON3_Timer_Regs_Map *tregs;
>>
>> -               if ( amba_find_apbslv(&amba_conf,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>> +               if ( ambapp_find_apbslv(&ambapp_plb,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>>                         tregs = (LEON3_Timer_Regs_Map *)gptimer.start;
>>                         sys_freq_khz = (tregs->scaler_reload+1)*1000;
>>                         SPACEWIRE_DBG("GRSPW: detected %dkHZ system frequency\n\r",sys_freq_khz);
>> @@ -609,7 +609,7 @@ static rtems_device_driver grspw_initialize(
>>          char c;
>>          GRSPW_DEV *pDev;
>>          char console_name[20];
>> -                               amba_apb_device dev;
>> +        struct ambapp_apb_info dev;
>>
>>          SPACEWIRE_DBG2("spacewire driver initialization\n");
>>
>> @@ -620,19 +620,8 @@ static rtems_device_driver grspw_initialize(
>>          i=0; spw_cores = 0; spw_cores2 = 0;
>>
>>          /* get number of GRSPW cores */
>> -        spw_cores = amba_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_SPACEWIRE);
>> -        spw_cores2 = amba_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_GRSPW2);
>> -#if 0
>> -                               if ( spw_cores>  SPACEWIRE_MAX_CORENR )
>> -                                       spw_cores = SPACEWIRE_MAX_CORENR;
>> -
>> -        while (i<  amba_conf.apbslv.devnr) {
>> -                conf = amba_get_confword(amba_conf.apbslv, i, 0);
>> -                if ((amba_vendor(conf) == VENDOR_GAISLER)&&  (amba_device(conf) == GAISLER_SPACEWIRE))
>> -                        spw_cores++;
>> -                i++;
>> -        }
>> -#endif
>> +        spw_cores = ambapp_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_SPW);
>> +        spw_cores2 = ambapp_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_SPW2);
>>
>>          if ( (spw_cores+spw_cores2)<  1 ){
>>                  /* No GRSPW cores around... */
>> @@ -653,10 +642,10 @@ static rtems_device_driver grspw_initialize(
>>
>>                  /* Get device */
>>                  if ( spw_cores>  minor ) {
>> -                        amba_find_next_apbslv(amba_bus,VENDOR_GAISLER,GAISLER_SPACEWIRE,&dev,minor);
>> +                        ambapp_find_apbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_SPW,&dev,minor);
>>                          pDev->core_ver = 1;
>>                  } else {
>> -                        amba_find_next_apbslv(amba_bus,VENDOR_GAISLER,GAISLER_GRSPW2,&dev,minor-spw_cores);
>> +                        ambapp_find_apbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_SPW2,&dev,minor-spw_cores);
>>                          pDev->core_ver = 2;
>>                  }
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c b/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
>> index a8003be..2a9a8d6 100644
>> --- a/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
>> +++ b/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
>> @@ -79,7 +79,7 @@ int grspwpci_interrupt_handler(int irq, void *arg);
>>   */
>>
>>   int grspw_pci_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int memarea,
>>   unsigned int hw_address
>>   )
>> diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw_rasta.c b/c/src/lib/libbsp/sparc/shared/spw/grspw_rasta.c
>> index 6cd5698..9bf9437 100644
>> --- a/c/src/lib/libbsp/sparc/shared/spw/grspw_rasta.c
>> +++ b/c/src/lib/libbsp/sparc/shared/spw/grspw_rasta.c
>> @@ -88,7 +88,7 @@ unsigned int grspw_rasta_memarea_address;
>>   */
>>
>>   int grspw_rasta_register(
>> - amba_confarea_type *bus,
>> + struct ambapp_bus *bus,
>>   unsigned int ram_base
>>   )
>>   {
>> diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
>> index b3f4bbd..800d352 100644
>> --- a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
>> +++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
>> @@ -116,7 +116,7 @@ static unsigned int sys_freq_hz;
>>   #define APBUART_DRIVER_TABLE_ENTRY { apbuart_initialize, apbuart_open, apbuart_close, apbuart_read, apbuart_write, apbuart_control }
>>
>>   static rtems_driver_address_table apbuart_driver = APBUART_DRIVER_TABLE_ENTRY;
>> -static amba_confarea_type *amba_bus;
>> +static struct ambapp_bus *amba_bus;
>>
>>   static void apbuart_interrupt(apbuart_priv *uart);
>>   #ifdef APBUART_DEFINE_INTHANDLER
>> @@ -322,7 +322,7 @@ static void apbuart_interrupt(apbuart_priv *uart){
>>         }
>>   }
>>
>> -int APBUART_PREFIX(_register)(amba_confarea_type *bus) {
>> +int APBUART_PREFIX(_register)(struct ambapp_bus *bus) {
>>         rtems_status_code r;
>>         rtems_device_major_number m;
>>
>> @@ -353,13 +353,13 @@ static rtems_device_driver apbuart_initialize(rtems_device_major_number  major,
>>
>>         rtems_status_code status;
>>         int i;
>> -       amba_apb_device dev;
>> +       struct ambapp_apb_info dev;
>>         char fs_name[20];
>>
>>         FUNCDBG("apbuart_initialize\n");
>>
>>         /* Find all APB UART devices */
>> -       dev_cnt = amba_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_APBUART);
>> +       dev_cnt = ambapp_get_number_apbslv_devices(amba_bus,VENDOR_GAISLER,GAISLER_APBUART);
>>         if ( dev_cnt<  1 ){
>>                 /* Failed to find any CAN cores! */
>>                 printk("APBUART: Failed to find any APBUART cores\n\r");
>> @@ -384,10 +384,10 @@ static rtems_device_driver apbuart_initialize(rtems_device_major_number  major,
>>   #if defined(LEON3)
>>         /* LEON3: find timer address via AMBA Plug&Play info */
>>         {
>> -               amba_apb_device gptimer;
>> +               struct ambapp_apb_info gptimer;
>>                 LEON3_Timer_Regs_Map *tregs;
>>
>> -               if ( amba_find_apbslv(&amba_conf,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>> +               if ( ambapp_find_apbslv(&ambapp_plb,VENDOR_GAISLER,GAISLER_GPTIMER,&gptimer) == 1 ){
>>                         tregs = (LEON3_Timer_Regs_Map *)gptimer.start;
>>                         sys_freq_hz = (tregs->scaler_reload+1)*1000*1000;
>>                         DBG("APBUART: detected %dHZ system frequency\n\r",sys_freq_hz);
>> @@ -413,7 +413,7 @@ static rtems_device_driver apbuart_initialize(rtems_device_major_number  major,
>>
>>         for(i=0; i<dev_cnt; i++){
>>                 /* Get AMBA AHB device info from Plug&Play */
>> -               amba_find_next_apbslv(amba_bus,VENDOR_GAISLER,GAISLER_APBUART,&dev,i);
>> +               ambapp_find_apbslv_next(amba_bus,VENDOR_GAISLER,GAISLER_APBUART,&dev,i);
>>
>>                 printk("APBUART[%d]: at 0x%x irq %d (0x%x)\n\r",i,dev.start,dev.irq,(unsigned int)&apbuarts[i]);
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart_pci.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart_pci.c
>> index 54d14ce..fce1197 100644
>> --- a/c/src/lib/libbsp/sparc/shared/uart/apbuart_pci.c
>> +++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart_pci.c
>> @@ -24,7 +24,7 @@ void apbuartpci_interrupt_handler(int irq, void *arg);
>>
>>   #include "apbuart.c"
>>
>> -int apbuart_pci_register(amba_confarea_type *bus)
>> +int apbuart_pci_register(struct ambapp_bus *bus)
>>   {
>>         /* Setup configuration */
>>
>> diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c
>> index 4b8734f..3196bbb 100644
>> --- a/c/src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c
>> +++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c
>> @@ -24,7 +24,7 @@ void apbuartrasta_interrupt_handler(int irq, void *arg);
>>
>>   #include "apbuart.c"
>>
>> -int apbuart_rasta_register(amba_confarea_type *bus)
>> +int apbuart_rasta_register(struct ambapp_bus *bus)
>>   {
>>         /* Setup configuration */
>>
>> --
>> 1.7.0.4
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel




More information about the devel mailing list