Hi Shen,
Thanks for the advice. I may have found the TIMER_FREQUENCY (although I’m not certain) – the boot log has an entry:
arch_timer: cp15 timer(s) running at 54.00MHz
This is the only possibly relevant timer reference I can find?
I haven’t had any luck with the MAX_IRQ value though. The only value in the boot log that could relate is:
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
But 16 seems way lower than I would expect… The value for the RPi3, for example, is 127!
Thanks,
Ben Turner
________________________________________
Roke Manor Research Limited, Romsey, Hampshire, SO51 0ZN, United Kingdom.Part of the Chemring Group.
Registered in England & Wales. Registered No: 00267550
http://www.roke.co.uk
_______________________________________
The information contained in this e-mail and any attachments is proprietary to Roke Manor Research Limited and
must not be passed to any third party without permission. This communication is for information only and shall
not create or change any contractual relationship.
________________________________________
From: Shen, Yanyan (Data61, Kensington NSW)
Sent: 19 February 2020 12:37
To: Turner, Ben ; devel@sel4.systems
Cc: Millar, Curtis (Data61, Kensington NSW) ; Mcleod, Kent (Data61, Kensington NSW)
Subject: Re: [seL4] Adding Platform Support: CAmkES-ARM-VM: VM_Minimal: Raspberry Pi 3b
Hi Ben,
Glad to hear that!
I assume you can still boot Linux on the board? If so, searching the Linux boot log (dmesg) should help to find the TIMER_FREQUENCY and MAX_IRQ values.
Setting NUM_PPI to 32 is right.
The remaining parameters, KERNEL_WCET, CLK_MAGIC, and CLK_SHIFT, are related to the MCS config option. I copied Curtis and Kent who might help on these values.
Regards,
Yanyan
From: "Turner, Ben" mailto:ben.turner@roke.co.uk>
Date: Wednesday, 19 February 2020 at 11:22 pm
To: "Shen, Yanyan (Data61, Kensington NSW)" mailto:Yanyan.Shen@data61.csiro.au>, "devel@sel4.systemsmailto:devel@sel4.systems" mailto:devel@sel4.systems>
Subject: RE: [seL4] Adding Platform Support: CAmkES-ARM-VM: VM_Minimal: Raspberry Pi 3b
Hi,
I think I am most of the way through adding RPi4 support to the required projects, however I have stumbled upon an issue.
In the `kernel/src/plat/<plat>/config.cmake` files there is a `declare_default_headers` section. Where does the information for these values come from? I have searched the ARM CortexA72 TRM and looked for the BCM2711 specification document, but haven’t had much luck…
Where can I find out the correct values for the following question marks:
declare_default_headers(
TIMER_FREQUENCY ????????llu
MAX_IRQ ???
NUM_PPI 32 <>
TIMER drivers/timer/arm_generic.h
INTERRUPT_CONTROLLER arch/machine/gic_v2.h
KERNEL_WCET 10u <>
CLK_MAGIC ?????????llu
CLK_SHIFT ??u
)
Any insight here would be appreciated.
Kind regards,
Ben Turner
Senior Engineer
Roke Manor Research Ltd
Tel: +44 (0)1794 833721
ben.turner@roke.co.ukmailto:ben.turner@roke.co.uk
Follow Us: LinkedInhttp://www.linkedin.com/company/roke-manor-research | Twitterhttps://twitter.com/rokemanor | Facebookhttps://www.facebook.com/rokemanor
Roke Manor Research Limited, Romsey, Hampshire, SO51 0ZN, United Kingdom. Part of the Chemring Group. Registered in England & Wales. Registered No: 00267550. The information contained in this e-mail and any attachments is proprietary to Roke Manor Research Limited and must not be passed to any third party without permission. This communication is for information only and shall not create or change any contractual relationship.
www.roke.co.ukhttp://www.roke.co.uk/?utm_source=Roke&utm_medium=Email&utm_content=Company%20Signature&utm_campaign=Roke
________________________________
From: Shen, Yanyan (Data61, Kensington NSW) mailto:Yanyan.Shen@data61.csiro.au>
Sent: 13 February 2020 10:19
To: devel@sel4.systemsmailto:devel@sel4.systems; Turner, Ben mailto:ben.turner@roke.co.uk>
Subject: Re: [seL4] Adding Platform Support: CAmkES-ARM-VM: VM_Minimal: Raspberry Pi 3b
Hi Ben,
When configured as a hypervisor, seL4 uses the hardware interrupt
virtualization support of GICv2 (GIC-400) and GICv3 (GIC-500). More
work is needed for SoCs without such hardware support.
BTW, it looks like Raspberry Pi4 (bcm2711) has a GIC-400 controller.
Would you consider the new version?
Regards,
Yanyan
On Thu, 2020-02-13 at 09:15 +0000, Turner, Ben wrote:
Hi,
I have been attempting to add support for the Raspberry Pi 3 b
platform so that I can run the vm_minimal application on it. The
platform supports ARM_HYP, so I believe it should be possible to get
this working.
I have reached to point where ninja errors on an implicit declaration
for `set_gic_vcpu_ctrl_hcr`. From what I understand, this is to do
with the ARM Generic Interrupt Controller, however the RPi3b doesn't
have a GIC, it has a `bcm2836-armctrl-ic`. This occurs because the
file vcpu.h defines an inline function that calls this function,
however as the RPi3b doesn't have a GIC, neither the gic_v2.h or
gic_v3.h files are provided in the build environment, and hence the
build fails.
I am unsure what this means in terms of implementation. What needs to
be added or changed to get this compiling for the RPi3b?
Thanks in advance
Ben Turner
________________________________________
Roke Manor Research Limited, Romsey, Hampshire, SO51 0ZN, United
Kingdom.Part of the Chemring Group.
Registered in England & Wales. Registered No: 00267550
http://www.roke.co.ukhttp://www.roke.co.uk
_______________________________________
The information contained in this e-mail and any attachments is
proprietary to Roke Manor Research Limited and
must not be passed to any third party without permission. This
communication is for information only and shall
not create or change any contractual relationship.
________________________________________
_______________________________________________
Devel mailing list
Devel@sel4.systemsmailto:Devel@sel4.systems
https://sel4.systems/lists/listinfo/develhttps://sel4.systems/lists/listinfo/devel