Moving AMBA/GRLIB drivers to bsps/shared

Jiri Gaisler jiri at
Thu Dec 27 12:41:01 UTC 2018

On 12/27/18 4:25 AM, Sebastian Huber wrote:
> Hello Jiri,
> ----- Am 27. Dez 2018 um 3:16 schrieb Jiri Gaisler jiri at
>> Hello Sebastian,
>> I have started to copy the basic AMBA p&p routines and the drivers for
>> irqmp and gptimer to bsps/shared/amba. 
> I would move the sources to bsps/shared/grlib and the includes to bsps/include/grlib.

OK, thanks for this fix. The problem is that some of the drivers contain
SPARC assembly and other LEON3 specifics. Most of it deals with uncached
access, so I will probably use 'load_uncached' macro that will have to
be defined in the cpu port or bsp.

>> The routines are somewhat
>> entangled with LEON3-specific code, so I have cleaned them up and made
>> them cpu independent. I don't intend to touch the original code under
>> bsps/sparc, so the leon3 bsps should not be affected.
> Ok, is there a chance to use this code for the leon3 BSP as well?

Yes, the whole idea is to avoid a lot of code duplication and associated
maintenance problems. Your 'brute-force' approach obviously fixed that
:-) ! I will clean the code to make sure it is portable between

>> To avoid building
>> the drivers for all architectures, I have added an --enable-grlib option
>> to configure. I am now working on bringing up my RISCV/GRLIB bsp. Once
>> that is working, I will submit a patch for review.
> The BSP sources are controlled by the BSP, to which configure did you add this option?

I added it to the top, like the --enable-drvmgr. It is only to avoid
building unused grlib drivers when building other targets. Ideally, this
should be done in the bsp .cfg file rather than during configuration.
Anyhow, I will skip it for now and we can see how to address it at the end.

More information about the devel mailing list