On 21/04/2017 07:22, Patrick Gauvin wrote:
I so not like the reset value being written to like this. I know you
need to set the lower 4 bits to 1 when loading the fabric via PCAP
but there are 4 independent resets and I have applications that have
individual control once loaded. What about a mask be provided and
only the bits we are interested in are set or cleared depending on
the mask?
Note adding mask support will require a lock to be SMP safe.
I see, masking sounds good. Since the lock will need to be initialized
before the SLCR functions are called, should I turn this into a full
driver like device config, or is it acceptable to call an SLCR init
function during BSP startup?
I suggest you take the simple approach first and create a static
initialised lock:
static rtems_interrupt_lock slcr_lock =
RTEMS_INTERRUPT_LOCK_INITIALIZER("zynq_slcr");
To use:
void foo(void)
{
rtems_interrupt_lock_context lcontext;
rtems_interrupt_lock_acquire(&slcr_lock, &lcontext);
blah_blah = ho_hum;
rtems_interrupt_lock_release(&slcr_lock, &lcontext);
}
Chris
_______________________________________________
devel mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/devel