[PATCH 0/4] OpenRISC fixes and setjmp/longjmp work

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Mar 3 14:03:11 GMT 2021


Hello Stafford,

On 03.03.21 14:50, Stafford Horne wrote:
> Hello,
> 
> These are the patches I came up with to get the setjmp/longjmp routines to work
> on OpenRISC.  It seems to be working well.
> 
> The patches are on github here:
>   https://github.com/stffrdhrn/barebox/tree/openrisc-bthread
> 
> I had to revert a commit to remove openrisc to do this work, I hope that can be
> reverted.

Great. Thanks for taking the time!
Could this be tested on qemu-system-or1k? If so, it would be great to have this
documented in-tree, so future changes could be tested.

Cheers,
Ahmad

> 
> Test output:
> 
>     barebox at or1ksim:/ bthread -v
>     bthread_printer yield #1
>     bthread_printer yield #2
>     bthread_printer yield #3
>     bthread_printer yield #4
>     36441 bthread yield calls in 1s
>     barebox at or1ksim:/ bthread -v
>     bthread_printer yield #1
>     bthread_printer yield #2
>     bthread_printer yield #3
>     bthread_printer yield #4
>     36504 bthread yield calls in 1s
>     barebox at or1ksim:/ bthread
> 
>     bthread - print info about registered bthreads
> 
>     print info about registered barebox threads
> 
>     Options:
> 	    -i      Print information about registered bthreads
> 	    -t      measure how many bthreads we currently run in 1s
> 	    -c      count maximum context switches in 1s
> 	    -v      verify correct bthread operation
> 
>     barebox at or1ksim:/ bthread -c
>     bthread -c
>     269536 bthread context switches possible in 1s
> 
> Stafford Horne (4):
>   openrisc: Use movhi to zero registers
>   openrisc: Add gitignore for dtb files
>   openrisc: Add linkage.h
>   openrisc: Implement setjmp/longjmp/initjmp
> 
>  arch/openrisc/Kconfig               |  1 +
>  arch/openrisc/cpu/start.S           |  6 ++--
>  arch/openrisc/dts/.gitignore        |  1 +
>  arch/openrisc/include/asm/linkage.h |  7 ++++
>  arch/openrisc/include/asm/setjmp.h  | 17 +++++++++
>  arch/openrisc/lib/Makefile          |  1 +
>  arch/openrisc/lib/setjmp.S          | 56 +++++++++++++++++++++++++++++
>  7 files changed, 86 insertions(+), 3 deletions(-)
>  create mode 100644 arch/openrisc/dts/.gitignore
>  create mode 100644 arch/openrisc/include/asm/linkage.h
>  create mode 100644 arch/openrisc/include/asm/setjmp.h
>  create mode 100644 arch/openrisc/lib/setjmp.S
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list