Re: [seL4] port SeL4 to renesas rcar-H3 development board
Hi guys !!! Thank you for your quick replay. I'm try to port Sel4 kernel to the* renesas H3 ULCB* board with two clusters (ARM57),(ARM53) each one with 4 cores I just have couple of questions regarding with the elf loader in sel4-tools: there is some files in* elfloader-tool/plat/** those are intended to initialize the CPU and the UART on the platform. In there, there is a function written in assembly called *core_entry_head* and a function *init_cpus*implemented in smp.c file. *Could you please explain me a little bit what is the purpose of these functions ? * In the case of *init_cpus* where is suppose to be that information? I means, I should reference the ARM57 or ARM53 cpu manual or maybe to the boot section in the SoC manual. from the other hand the *renesas H3 ULCB* doesn't have a physical UART port. Instead, it has an Serial Communication Interface with FIFO (SCIF) that can be configure properly to be compatible with *UART* interfaces. The point is that I'm using this interface in order to implement the * __fputc()* function following the one implemented in sys_fput.c file. Unfortunately, I don't understand why in your implementation there is not an initialization for the *UART. could you tell me why not?* Thank you. best regards On Sat, 16 Feb 2019 at 06:57, Diego Alejandro Parra Guzman < daparrag@correo.udistrital.edu.co> wrote:
Hi guys !!!
Thank you for your quick replay.
I'm try to port Sel4 kernel to the* renesas H3 ULCB* board with two clusters (ARM57),(ARM53) each one with 4 cores
I just have couple of questions regarding with the elf loader in sel4-tools:
there is some files in* elfloader-tool/plat/** those are intended to initialize the CPU and the UART on the platform. In there, there is a function written in assembly called *core_entry_head* and a function *init_cpus*implemented in smp.c file. *Could you please explain me a little bit what is the purpose of these functions ? *
In the case of *init_cpus* where is suppose to be that information? I means, I should reference the ARM57 or ARM53 cpu manual or maybe to the boot section in the SoC manual.
from the other hand the *renesas H3 ULCB* doesn't have a physical UART port. Instead, it has an Serial Communication Interface with FIFO (SCIF) that can be configure properly to be compatible with *UART* interfaces. The point is that I'm using this interface in order to implement the * __fputc()* function following the one implemented in sys_fput.c file. Unfortunately, I don't understand why in your implementation there is not an initialization for the *UART. could you tell me why not?*
Thank you.
best regards
On Wed, 13 Feb 2019 at 15:21, Diego Alejandro Parra Guzman < daparrag@correo.udistrital.edu.co> wrote:
Hi,
I'm new with seL4 kernel and I would like to port it to the ARM-based renesas rcar-H3 board
I would like to ask of you have a development manual that i can follow with some basics about how to do it?
I followed the tutorials and so one. But I will appreciate if you have something guidelines to start.
Thank you
BR Diego. -- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
-- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
-- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
Hi Diego,
core_entry_head and init_cpus are for bringing up secondary cores. If you want to utilise more than one core, you need to implement the functions. I am not sure about your board, but PSCI (power state coordination interface) is usually used to bring up secondary cores. Please have a look at the TX1 plat. Your SoC manual should also explain how to bring up secondary cores.
The elfloader assumes the the uart port for printf is initialised by the uboot or other boot loaders. Otherwise, the elfloader needs to set up the port.
Hope this can help a bit.
Regards,
Yanyan
________________________________
From: Devel
Hi yayan.
Thank you for your reply.
Sorry for ask but I just have few more questions:
*sel4-tools*
- the elfloader-tool that is used to loads the arm kernel seams a bit
confused for me. I suppose that it just generate a .elf file representing
the kernel it is right?
- I don't think they are related. But In which way the elfloader-tool
interacts with U-boot?
- The sel4-tools/ CMakeList.txt :165 has a line *"if
(ElfloaderImageEFI) "*. I'm not sure if it is supported by the U-boot
within the rensas H3ULCB board. In case that not. what I should do ?
GIC:
The renesas H3ULCB has a GIC-400 unit and seams it is no supported by
SeL4. may I wrong?
- if it is not supported, I should implemented in order to make Sel4
works in this board?
- how it is used by the seL4 kernel?
you can check up my work here:
https://github.com/Daparrag/seL4/tree/rcar_h3sel4
thank you.
On Mon, 18 Feb 2019 at 23:48,
Hi Diego,
core_entry_head and init_cpus are for bringing up secondary cores. If you want to utilise more than one core, you need to implement the functions. I am not sure about your board, but PSCI (power state coordination interface) is usually used to bring up secondary cores. Please have a look at the TX1 plat. Your SoC manual should also explain how to bring up secondary cores.
The elfloader assumes the the uart port for printf is initialised by the uboot or other boot loaders. Otherwise, the elfloader needs to set up the port.
Hope this can help a bit.
Regards,
Yanyan
------------------------------ *From:* Devel
on behalf of Diego Alejandro Parra Guzman *Sent:* Monday, February 18, 2019 6:11 PM *To:* devel@sel4.systems *Subject:* Re: [seL4] port SeL4 to renesas rcar-H3 development board Hi guys !!!
Thank you for your quick replay.
I'm try to port Sel4 kernel to the* renesas H3 ULCB* board with two clusters (ARM57),(ARM53) each one with 4 cores
I just have couple of questions regarding with the elf loader in sel4-tools:
there is some files in* elfloader-tool/plat/** those are intended to initialize the CPU and the UART on the platform. In there, there is a function written in assembly called *core_entry_head* and a function *init_cpus*implemented in smp.c file. *Could you please explain me a little bit what is the purpose of these functions ? *
In the case of *init_cpus* where is suppose to be that information? I means, I should reference the ARM57 or ARM53 cpu manual or maybe to the boot section in the SoC manual.
from the other hand the *renesas H3 ULCB* doesn't have a physical UART port. Instead, it has an Serial Communication Interface with FIFO (SCIF) that can be configure properly to be compatible with *UART* interfaces. The point is that I'm using this interface in order to implement the * __fputc()* function following the one implemented in sys_fput.c file. Unfortunately, I don't understand why in your implementation there is not an initialization for the *UART. could you tell me why not?*
Thank you.
best regards
On Sat, 16 Feb 2019 at 06:57, Diego Alejandro Parra Guzman < daparrag@correo.udistrital.edu.co> wrote:
Hi guys !!!
Thank you for your quick replay.
I'm try to port Sel4 kernel to the* renesas H3 ULCB* board with two clusters (ARM57),(ARM53) each one with 4 cores
I just have couple of questions regarding with the elf loader in sel4-tools:
there is some files in* elfloader-tool/plat/** those are intended to initialize the CPU and the UART on the platform. In there, there is a function written in assembly called *core_entry_head* and a function *init_cpus*implemented in smp.c file. *Could you please explain me a little bit what is the purpose of these functions ? *
In the case of *init_cpus* where is suppose to be that information? I means, I should reference the ARM57 or ARM53 cpu manual or maybe to the boot section in the SoC manual.
from the other hand the *renesas H3 ULCB* doesn't have a physical UART port. Instead, it has an Serial Communication Interface with FIFO (SCIF) that can be configure properly to be compatible with *UART* interfaces. The point is that I'm using this interface in order to implement the * __fputc()* function following the one implemented in sys_fput.c file. Unfortunately, I don't understand why in your implementation there is not an initialization for the *UART. could you tell me why not?*
Thank you.
best regards
On Wed, 13 Feb 2019 at 15:21, Diego Alejandro Parra Guzman < daparrag@correo.udistrital.edu.co> wrote:
Hi,
I'm new with seL4 kernel and I would like to port it to the ARM-based renesas rcar-H3 board
I would like to ask of you have a development manual that i can follow with some basics about how to do it?
I followed the tutorials and so one. But I will appreciate if you have something guidelines to start.
Thank you
BR Diego. -- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
-- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
-- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
-- Diego Alejandro Parra Guzmán Estudiante de ingeniería electrónica Universidad distrital FJC
Hi Diego,
The file type of the elfloader can be efi, elf, binary, or uimage. The seL4 kernel and payload applications are bundled in the elfloader file; and the elfloader sets up the environment, loads the kernel and application into the correct memory regions, and jumps to the kernel entry point.
The uboot loads the elfloader into memory (e.g. tftpboot) and jumps to the entry point of the elfloader.
The uboot should support ELF or binary, and you can build the elfloader as an ELF or binary file. There is a configuration option for the output file format.
GIC-400 is supported by the seL4. However, if your board's bootloader loads the elfloader in secure world, maybe you need to configure the security-related settings of the GIC controller. The GICv2 architecture specification is a good reference.
Thanks for sharing the link, and just let us know if you have more questions.
Regards,
Yanyan
________________________________
From: Diego Alejandro Parra Guzman
participants (2)
-
Diego Alejandro Parra Guzman
-
Yanyan.Shen@data61.csiro.au