Basic RISC-V 32-bit tool chain

Hesham Almatary heshamelmatary at gmail.com
Wed Aug 23 01:34:05 UTC 2017


Hi all,

I am reporting my efforts on this thread:

* RSB/master/vanilla: riscv32 tested and builds just fine with no
changes from my side.
* RTEMS/riscv32: priv-1.10 branch - rebased with rtems/master, fixed
errors, and pushed to GitHub [1].
* RTEMS/Spike: BSP builds sample tests and tested hello/ticker on
Spike simulator.

Thanks for your efforts all.

[1] https://github.com/heshamelmatary/rtems-riscv/tree/priv-1.10

Cheers,
Hesham

On Wed, Aug 23, 2017 at 9:12 AM, Denis Obrezkov <denisobrezkov at gmail.com> wrote:
> I propose Hesham to rebase his tree so I can rebase my tree against his one
> and send a pull request till the end of GSoC.
>
> 2017-08-23 1:07 GMT+02:00 Joel Sherrill <joel at rtems.org>:
>>
>> Definitely looks like that tree is out of date a bit.
>>
>> Looks like Heshams's tree needs to be rebased. Even better would
>> be merging it to rtems.org if it is ready now. :)
>>
>> --joel
>>
>>
>> On Tue, Aug 22, 2017 at 6:01 PM, Denis Obrezkov <denisobrezkov at gmail.com>
>> wrote:
>>>
>>> 2017-08-23 0:58 GMT+02:00 Joel Sherrill <joel at rtems.org>:
>>>>
>>>> I would guess that's the case:
>>>>
>>>> $ cd rtems
>>>> [joel at localhost rtems]$ find . -name "_kernel*.h"
>>>> ./cpukit/libcsupport/include/machine/_kernel_time.h
>>>> ./cpukit/libcsupport/include/machine/_kernel_types.h
>>>> ./cpukit/libcsupport/include/machine/_kernel_cpuset.h
>>>> ./cpukit/libcsupport/include/machine/_kernel_param.h
>>>> ./cpukit/libnetworking/machine/_kernel_lock.h
>>>>
>>>>
>>>> On Tue, Aug 22, 2017 at 5:38 PM, Denis Obrezkov
>>>> <denisobrezkov at gmail.com> wrote:
>>>>>
>>>>> 2017-08-23 0:02 GMT+02:00 Denis Obrezkov <denisobrezkov at gmail.com>:
>>>>>>
>>>>>> 2017-08-22 23:49 GMT+02:00 Joel Sherrill <joel at rtems.org>:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Aug 22, 2017 at 4:25 PM, Denis Obrezkov
>>>>>>> <denisobrezkov at gmail.com> wrote:
>>>>>>>>
>>>>>>>> 2017-08-22 22:09 GMT+02:00 Joel Sherrill <joel at rtems.org>:
>>>>>>>>>
>>>>>>>>> Sebastian,
>>>>>>>>>
>>>>>>>>> Did you consciously not add riscv do rtems-all.bset? Or was it an
>>>>>>>>> oversight?
>>>>>>>>>
>>>>>>>>> Thanks for doing this. I was building on the master of the tools
>>>>>>>>> and
>>>>>>>>> I haven't checked gdb for riscv but all targets did build.
>>>>>>>>>
>>>>>>>>> --joel
>>>>>>>>>
>>>>>>>>> On Tue, Aug 22, 2017 at 9:55 AM, Denis Obrezkov
>>>>>>>>> <denisobrezkov at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Ok, I will try today
>>>>>>>>>>
>>>>>>>>>> 2017-08-22 16:44 GMT+02:00 Gedare Bloom <gedare at rtems.org>:
>>>>>>>>>>>
>>>>>>>>>>> Denis,
>>>>>>>>>>>
>>>>>>>>>>> Please confirm if this works for you.
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Aug 22, 2017 at 9:17 AM, Sebastian Huber
>>>>>>>>>>> <sebastian.huber at embedded-brains.de> wrote:
>>>>>>>>>>> > Hello,
>>>>>>>>>>> >
>>>>>>>>>>> > I added a basic RISC-V 32-bit tool chain to the RSB. It is
>>>>>>>>>>> > based on the
>>>>>>>>>>> > latest Newlib snapshot and GCC 7.2. The GDB is not included. I
>>>>>>>>>>> > guess for
>>>>>>>>>>> > this we have to update to GDB 8.0. I didn't test this tool
>>>>>>>>>>> > chain.
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> > Sebastian Huber, embedded brains GmbH
>>>>>>>>>>> >
>>>>>>>>>>> > Address : Dornierstr. 4, D-82178 Puchheim, Germany
>>>>>>>>>>> > Phone   : +49 89 189 47 41-16
>>>>>>>>>>> > Fax     : +49 89 189 47 41-09
>>>>>>>>>>> > E-Mail  : sebastian.huber at embedded-brains.de
>>>>>>>>>>> > PGP     : Public key available on request.
>>>>>>>>>>> >
>>>>>>>>>>> > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des
>>>>>>>>>>> > EHUG.
>>>>>>>>>>> >
>>>>>>>>>>> > _______________________________________________
>>>>>>>>>>> > devel mailing list
>>>>>>>>>>> > devel at rtems.org
>>>>>>>>>>> > http://lists.rtems.org/mailman/listinfo/devel
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Regards, Denis Obrezkov
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> devel mailing list
>>>>>>>>>> devel at rtems.org
>>>>>>>>>> http://lists.rtems.org/mailman/listinfo/devel
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> I have the error:
>>>>>>>> riscv32-rtems4.12-gcc --pipe -DHAVE_CONFIG_H   -I..
>>>>>>>> -I../../cpukit/../../../hifive1/lib/include   -march=rv32imac -mabi=ilp32
>>>>>>>> -DFE3XX -Os -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
>>>>>>>> -Wstrict-prototypes -Wnested-externs -MT src/libscore_a-kern_tc.o -MD -MP
>>>>>>>> -MF src/.deps/libscore_a-kern_tc.Tpo -c -o src/libscore_a-kern_tc.o `test -f
>>>>>>>> 'src/kern_tc.c' || echo
>>>>>>>> '/home/reprofy/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/'`src/kern_tc.c
>>>>>>>> In file included from
>>>>>>>> /home/reprofy/development/rtems/4.12/riscv32-rtems4.12/include/sys/_pthreadtypes.h:24:0,
>>>>>>>>                  from
>>>>>>>> /home/reprofy/development/rtems/4.12/riscv32-rtems4.12/include/sys/types.h:239,
>>>>>>>>                  from
>>>>>>>> /home/reprofy/development/rtems/4.12/riscv32-rtems4.12/include/sys/time.h:43,
>>>>>>>>                  from
>>>>>>>> ../../cpukit/../../../hifive1/lib/include/rtems/score/timecounter.h:26,
>>>>>>>>                  from
>>>>>>>> ../../cpukit/../../../hifive1/lib/include/rtems/score/timecounterimpl.h:26,
>>>>>>>>                  from
>>>>>>>> /home/reprofy/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/kern_tc.c:36:
>>>>>>>>
>>>>>>>> /home/reprofy/development/rtems/4.12/riscv32-rtems4.12/include/sys/cpuset.h:227:10:
>>>>>>>> fatal error: machine/_kernel_cpuset.h: No such file or directory
>>>>>>>>  #include <machine/_kernel_cpuset.h>
>>>>>>>>           ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>>> compilation terminated.
>>>>>>>
>>>>>>>
>>>>>>> Is this file in your RTEMS source tree? It is a shared file across
>>>>>>> all ports and
>>>>>>> should always be there.
>>>>>>>
>>>>>>> --joel
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards, Denis Obrezkov
>>>>>>>
>>>>>>>
>>>>>> No, I can't find it.
>>>>>>
>>>>>> Here are my build instructions:
>>>>>>
>>>>>> https://docs.google.com/document/d/13_qoWGmQ4N3Sqgb9dvaX27Dn_npZX6IkedyvImBcKfo/edit?usp=sharing
>>>>>> in "Build instructions" section.
>>>>>>
>>>>>> Did I miss something?
>>>>>> --
>>>>>> Regards, Denis Obrezkov
>>>>>
>>>>>
>>>>> I work with Hesham's git tree and may be it's a bit outdated.
>>>>>
>>>>> --
>>>>> Regards, Denis Obrezkov
>>>>
>>>>
>>> My output:
>>> $ find . -name "_kernel*.h"
>>> ./rtems-riscv/cpukit/libcsupport/include/machine/_kernel_time.h
>>> ./rtems-riscv/cpukit/libcsupport/include/machine/_kernel_types.h
>>> ./rtems-riscv/cpukit/libnetworking/machine/_kernel_lock.h
>>>
>>> --
>>> Regards, Denis Obrezkov
>>
>>
>
>
>
> --
> Regards, Denis Obrezkov



-- 
Hesham



More information about the devel mailing list