[SLOF] [PATCH] rtas: Improve rtas-do-config-@ and rtas-do-config-! a little bit

Alexey Kardashevskiy aik at ozlabs.ru
Wed Oct 12 12:04:53 AEDT 2016


On 06/10/16 01:11, Thomas Huth wrote:
> As soon as we are booting with at least one PCI device, the
> rtas-do-config-@ Forth word is called quite often, so it
> makes sense that we look up the corresponding RTAS token
> only once instead of each time the function is called.
> Also the "ffffffff and" operation on the lower half of the
> PUID is not really required and can be removed, since the
> "l!" Forth word is storing the lower four bytes only anyway.
> 
> Signed-off-by: Thomas Huth <thuth at redhat.com>

Thanks, applied.

> ---
>  board-qemu/slof/rtas.fs | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/board-qemu/slof/rtas.fs b/board-qemu/slof/rtas.fs
> index 2e10b0a..54d3929 100644
> --- a/board-qemu/slof/rtas.fs
> +++ b/board-qemu/slof/rtas.fs
> @@ -108,12 +108,11 @@ find-qemu-rtas
>  0 value puid
>  
>  : rtas-do-config-@ ( config-addr size -- value)
> -    \ We really want to cache this !
> -    " ibm,read-pci-config" rtas-get-token rtas-cb rtas>token l!
> +    [ s" ibm,read-pci-config" rtas-get-token ] LITERAL rtas-cb rtas>token l!
>      4 rtas-cb rtas>nargs l!
>      2 rtas-cb rtas>nret l!
>      ( addr size ) rtas-cb rtas>args3 l!
> -    puid ffffffff and rtas-cb rtas>args2 l!
> +    puid rtas-cb rtas>args2 l!
>      puid 20 rshift rtas-cb rtas>args1 l!
>      ( addr ) rtas-cb rtas>args0 l!
>      enter-rtas
> @@ -127,12 +126,11 @@ find-qemu-rtas
>  ;
>  
>  : rtas-do-config-! ( value config-addr size )
> -    \ We really want to cache this !
> -    " ibm,write-pci-config" rtas-get-token rtas-cb rtas>token l!
> +    [ s" ibm,write-pci-config" rtas-get-token ] LITERAL rtas-cb rtas>token l!
>      5 rtas-cb rtas>nargs l!
>      1 rtas-cb rtas>nret l!
>      ( value addr size ) rtas-cb rtas>args3 l!
> -    puid ffffffff and rtas-cb rtas>args2 l!
> +    puid rtas-cb rtas>args2 l!
>      puid 20 rshift rtas-cb rtas>args1 l!
>      ( value addr ) rtas-cb rtas>args0 l!
>      ( value ) rtas-cb rtas>args4 l!
> 


-- 
Alexey


More information about the SLOF mailing list