Re: Testing Fiasco.OC+L4re on ODROID-X2(Exynos4412)

Reinier Millo Sánchez <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Organization Universidad Central "Marta Abreu" de Las Villas
Message-ID <[email protected]>
Hi Adam

On 05/26/2015 05:52 PM, Adam Lackorzynski wrote:
> Hi,
>
> On Fri May 22, 2015 at 02:03:24 -0400, Reinier Millo Sánchez wrote:
>> I've been testing somethings on the Odroid-X2(Exynos4412). It seems that the
>> IRQ handler only handles the first IRQ and disables the IRQs. I have added
>> the following code to check the IRQs in the function
>> Kernel_thread::bootstrap() in the file
>> src/kernel/fiasco/src/kern/kernel_thread.cpp
>>
>>     Per_cpu_data::run_late_ctors(Cpu::invalid());
>>     bootstrap_arch();
>>
>>     Timer_tick::enable(current_cpu());
>>     Proc::sti();
>>
>>     ++ Proc::Status st = Proc::interrupts();
>>     ++ if(st & Proc::Status_interrupts_disabled)
>>     ++    printf("IRQs are enabled\n");
> Just use if (st) ... , Proc::interrupts() is returning a boolean.
I have tested using if(st) and the result is the same.
>
>>     ++ else
>>     ++    printf("IRQs are disabled\n");
>>
>>     Watchdog::enable();
>>
>> I'm trying to check that the IRQs are enabled. The Proc::sti() must activate
>> the IRQs in the CPSR registers, and Proc::interrupts() must return if the
>> interrupts are enabled, but always i'm getting "IRQs are disabled". I have
>> tested the hardware with a Linux kernel and it's working fine. I have tested
>> "CPSIE i" and "CPSIE f" to enable the interrupts and get the same result.
>> I have incremented the warn level on Fiasco.OC, i'm getting:
>>
>>     KERNEL: Warning Buddy:alloc Size mismatch: a80 v 1000
>>
>> I have also tested the local timers on the Exynos4412. The local timer at
>> CPU0 is working fine. It has been configured to auto-reload with 12000 as
>> interval. The local counter decrements the value and reload when arrives
>> zero, but don't raises the interrupt.
>> To test the interrupts have created an small buffer to store the
>> Kip::k()->clock on every interrupt. I have used the buffer to avoid the call
>> of an interrupt inside another interrupt. I have tried to print the values
>> on the function Delay::mesaure(), but it only stores one value. The same
>> thing happens if I use a interrupt counter.
>> Now i'm trying to check the IRQ handler caller, from the general mechanism
>> to the specific interrupt handler, to catch the point where the IRQs are
>> been disabled.
>> Anyone have any suggestions?
> So the handler is actually called all the time right?
The handler is called once, after that, the interrupt remains disabled.
Best regards

-- 
Lic. Reinier Millo Sánchez
Centro de Estudios de Informática
Universidad Central "Marta Abreu" de Las Villas
Carretera a Camajuaní Km 5 1/2
Santa Clara, Villa Clara, Cuba
CP 54830

"antes de discutir ... respira;
   antes de hablar ... escucha;
  antes de escribir ... piensa;
   antes de herir ... siente;
  antes de rendirte ... intenta;
   antes de morir ... vive"

_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
rmillo.vcf (text/x-vcard, 515 B)
begin:vcard
fn;quoted-printable:Reinier Millo S=C3=A1nchez
n;quoted-printable:Millo S=C3=A1nchez;Reinier
org;quoted-printable:Universidad Central "Marta Abreu" de Las Villas;Centro de Estudios de Inform=C3=A1tica
adr;quoted-printable:;;Carretera a Camajuan=C3=AD Km 5 1/2;Santa Clara;Villa Clara;54830;Cuba
email;internet:[email protected]
title;quoted-printable:Lic. en Ciencia de la Computaci=C3=B3n
tel;work:(0142)-226714
tel;home:(0143)-523119
x-mozilla-html:TRUE
url:http://www.uclv.edu.cu
version:2.1
end:vcard
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.