<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-07-03 7:43 GMT+02:00 Hesham Almatary <span dir="ltr"><<a href="mailto:heshamelmatary@gmail.com" target="_blank">heshamelmatary@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On Mon, Jul 3, 2017 at 3:36 PM, Denis Obrezkov <<a href="mailto:denisobrezkov@gmail.com">denisobrezkov@gmail.com</a>> wrote:<br>
> 2017-07-03 4:59 GMT+02:00 Hesham Almatary <<a href="mailto:heshamelmatary@gmail.com">heshamelmatary@gmail.com</a>>:<br>
>><br>
>> You can have a look at riscv-pk [1] as a RISC-V reference how to<br>
>> handle interrupts. RTEMS-wise, you can look at or1k and ARM code and<br>
>> how the platform-dependent interrupt handling code is linked to<br>
>> platform-independent one.<br>
>><br>
>> mcause value can be used as an index to a software vector table that you<br>
>> set up.<br>
>><br>
>> Why do you need software interrupts? GSoC-wise, I thought the plan was<br>
>> to develop UART/Console driver (which doesn't need interrupts), and<br>
>> use simulated ticker, as a first step. Then it will be easier to<br>
>> debug/proceed from there with interrupt handling code.<br>
><br>
> I thought, I have to implement an interrupt console driver. Okay, then I am<br>
> going to<br>
> investigate a simulated ticker.<br>
</span>Yeah that can be done in later stages, for optimisation purposes. But<br>
I think it's easier to implement it in polling mode first, just to get<br>
things working, then you can easily move to interrupt-based<br>
implementation. For example, if you've a polling console driver, you<br>
can debug using printk, when developing the clock driver. Once you get<br>
the clock driver working, you will have a more mature code for<br>
interrupt handling, which enables you to very easily implement<br>
interrupt-based UART driver.<br>
<div class="gmail-HOEnZb"><div class="gmail-h5">> --<br>
> Regards, Denis Obrezkov<br>
<br>
<br>
<br>
--<br>
Hesham<br>
</div></div></blockquote></div><br>It seems that vectored interrupts aren't available in FE310 SoC. </div><div class="gmail_extra">Thus, I will work with mcause register.</div><div class="gmail_extra">As for now, I want to:</div><div class="gmail_extra">* add local interrupt handlers</div><div class="gmail_extra">* add init code for counters initializtion (since we want to set up a baudrate)</div><div class="gmail_extra">* implement a dummy clock driver</div><div class="gmail_extra">* implement a polling uart</div><div class="gmail_extra">* figure out how interrupts are handled in RTEMS</div><div class="gmail_extra">* implement global interrupt handlers</div><div class="gmail_extra">* implement a clock driver</div><div class="gmail_extra">* implement an interrupt-mode uart driver.</div><div class="gmail_extra"><br></div><div><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>