On Fri, 9 Aug 2019 at 15:16, Ortiz, Baltazar <[email protected]> wrote:
>
> Thanks for pointing that out! I've been building for spike, but can 
> definitely try HiFive. However, it's unclear to me how to actually build for 
> it - I know how to specify it as the machine for simulation in QEMU, but I 
> don't see support for specifying HiFive as the platform in CMake in 10.1.1 or 
> master.
>
I was able to build sel4test for the HiFive target today with
-DPLATFORM=hifive so it's definitely there.

I believe Data61 has been targetting the HiFive hardware board rather
than QEMU's sifive_u (they are slightly different). However, I did a
few changes to get sel4test running on QEMU/sifive_u:

1) Replace kernel/tools/dts/hifive.dts with QEMU's DTS.
2) Build an Elf image instead of a binary one (need to change a cmake file).
3) Change KernelPlatformFirstHartID to 0 in the cmake file.
4) Change UART0_PADDR in sel4platsupport/hifive to QEMU's UART base
address (also IRQ number).
5) Configure with ../init-build.sh -DSIMULATION=1  -DRISCV64=1
-DPLATFORM=hifive -DElfloaderImage=elf
-DLibSel4PlatSupportUseDebugPutChar=OFF
6) qemu-system-riscv64 -machine sifive_u  -nographic  -serial
mon:stdio -smp 1 -m 4095 -kernel
images/sel4test-driver-image-riscv-hifive

Hope that help.

Cheers,
Hesham

> -----Original Message-----
> From: Hesham Almatary <[email protected]>
> Sent: Friday, August 9, 2019 10:06 AM
> To: Ortiz, Baltazar <[email protected]>
> Cc: [email protected]
> Subject: Re: [seL4] seL4 UART input (on RISC-V)?
>
> Hi Baltazar,
>
> It depends on which RISC-V platform you're building for. Only The HiFive 
> platform has a serial driver [1] as of last month (haven't tested it though), 
> Spike doesn't [2] have a UART nor a serial driver, so you can't getchar from 
> userspace.
>
> [1] 
> https://github.com/seL4/util_libs/blob/aafc51ffb147adb10e2b0fa86cbbefe62926b78f/libplatsupport/src/plat/hifive/uart.c#L51
> [2] 
> https://github.com/seL4/util_libs/blob/aafc51ffb147adb10e2b0fa86cbbefe62926b78f/libplatsupport/src/plat/spike/chardev.c#L20
>
> On Fri, 2 Aug 2019 at 17:14, Ortiz, Baltazar <[email protected]> wrote:
> >
> > Hi all,
> >
> >
> >
> > I’ve been looking through the seL4 libraries and examples, and it seems to 
> > me that serial input should in some way be possible - the refos example 
> > appears to have a terminal, and I would imagine that debugging via GDB 
> > requires input in addition to output. However, the code to do this is 
> > unclear to me. Calling getchar() or similar leads to the unimplemented 
> > readv syscall, and calling __arch_getchar or similar causes a cap error 
> > even after running platsupport_serial_setup_simple().
> >
> >
> >
> > Is there a step I’m missing? I’m specifically trying to get this working on 
> > RISC-V.
> >
> >
> >
> > Thanks,
> >
> >
> >
> > Baltazar
> >
> > ________________________________
> > Notice: This email and any attachments may contain proprietary (Draper 
> > non-public) and/or export-controlled information of Draper. If you are not 
> > the intended recipient of this email, please immediately notify the sender 
> > by replying to this email and immediately destroy all copies of this email.
> > ________________________________
> > _______________________________________________
> > Devel mailing list
> > [email protected]
> > https://sel4.systems/lists/listinfo/devel
>
> --
> Hesham
> ________________________________
>  Notice: This email and any attachments may contain proprietary (Draper 
> non-public) and/or export-controlled information of Draper. If you are not 
> the intended recipient of this email, please immediately notify the sender by 
> replying to this email and immediately destroy all copies of this email.
> ________________________________



-- 
Hesham

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to