[OpenBIOS] Back at it again( PCI Passthrough )

Jd Lyons lyons_dj at yahoo.com
Sat May 12 12:47:57 CEST 2018


As far as I can tell, here is a breakdown of 0xddf, I’m getting an exception here now, but I’m not sure where or how to debug it.

I did add the other config* words, but I’m unsure I did it correctly, and I can’t seem to debug them when they are called in the Fcode? 

new-token 0xddf
b(:) 
    b(lit) 0x10
    (unnamed-fcode) [0xdde] 

new-token 0xdde
b(:) 
    my-space 
    + 
    dup 
    (unnamed-fcode) [0xa08] 

new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 



    swap 
    -1 
    over 
    (unnamed-fcode) [0xa09] 

new-token 0xa09
b(:) 
    b(") ( len=9 )
    " config-l!"
    $call-parent 
b(;) 



    dup 
    (unnamed-fcode) [0xa08] 


new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 


    b(lit) 0xfffffff0dde
    and 
    negate 
    -rot 
    (unnamed-fcode) [0xa0
b(;) 

new-token 0xa0b
b(:) 
    
(unnamed-fcode) [0x9a3] 
    + 
    rb! 
b(;) 



    b(to) (unnamed-fcode) [0x9c3] 

new-token 0x9c3
b(value) 
0 

    b(lit) 0x14
    (unnamed-fcode) [0xdde] 

new-token 0xdde
b(:) 
    my-space 
    + 
    dup 
    (unnamed-fcode) [0xa08] 

new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 



    swap 
    -1 
    over 
    (unnamed-fcode) [0xa09] 

new-token 0xa09
b(:) 
    b(") ( len=9 )
    " config-l!"
    $call-parent 
b(;) 



    dup 
    (unnamed-fcode) [0xa08] 


new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 


    b(lit) 0xfffffff0dde
    and 
    negate 
    -rot 
    (unnamed-fcode) [0xa0
b(;) 

new-token 0xa0b
b(:) 
    
(unnamed-fcode) [0x9a3] 
    + 
    rb! 
b(;) 

    b(to) (unnamed-fcode) [0x9c4] 

new-token 0x9c4
b(value) 
0 

    (unnamed-fcode) [0x9c0] 

new-token 0x9c0
b(defer)


    b(lit) 0xff
    and 
    (unnamed-fcode) [0xdde]

new-token 0xdde
b(:) 
    my-space 
    + 
    dup 
    (unnamed-fcode) [0xa08] 

new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 



    swap 
    -1 
    over 
    (unnamed-fcode) [0xa09] 

new-token 0xa09
b(:) 
    b(") ( len=9 )
    " config-l!"
    $call-parent 
b(;) 



    dup 
    (unnamed-fcode) [0xa08] 


new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 


    b(lit) 0xfffffff0dde
    and 
    negate 
    -rot 
    (unnamed-fcode) [0xa0
b(;) 

new-token 0xa0b
b(:) 
    
(unnamed-fcode) [0x9a3] 
    + 
    rb! 
b(;) 


 
    b(to) (unnamed-fcode) [0x9c6]

new-token 0x9c6
b(value)



 
    b(lit) 0x30
    (unnamed-fcode) [0xdde]

new-token 0xdde
b(:) 
    my-space 
    + 
    dup 
    (unnamed-fcode) [0xa08] 

new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 



    swap 
    -1 
    over 
    (unnamed-fcode) [0xa09] 

new-token 0xa09
b(:) 
    b(") ( len=9 )
    " config-l!"
    $call-parent 
b(;) 



    dup 
    (unnamed-fcode) [0xa08] 


new-token 0xa08
b(:) 
    b(") ( len=9 )
    " config-l@"
    $call-parent 
b(;) 


    b(lit) 0xfffffff0dde
    and 
    negate 
    -rot 
    (unnamed-fcode) [0xa0
b(;) 

new-token 0xa0b
b(:) 
    
(unnamed-fcode) [0x9a3] 
    + 
    rb! 
b(;) 



 
    b(to) (unnamed-fcode) [0x9c5]

new-token 0x9c5
b(value) 
0 
 
    (unnamed-fcode) [0x9bf]

new-token 0x9bf
b(constant)

 
    (unnamed-fcode) [0xa03]

new-token 0xa03
b(:) 
    my-space 
    or 
    b(") ( len=0x12 [18 bytes] )
    " assigned-addresses"
    get-my-property 
    invert 
    b?branch 0x0033 ( =dec 51)
        rot 
        >r 
        b(<mark) 
            dup 
            b?branch 0x0029 ( =dec 41)
                decode-phys 
                b(lit) 0xff
                and 
                r@ 
                b(lit) 0xff
                and 
                = 
                b?branch 0x000a ( =dec 10)
                    2swap 
                    2drop 
                    r> 
                    exit 
                    bbranch 0x0005 ()
                    b(>resolve) 
                    2drop 
                b(>resolve) 
                decode-int 
                drop 
                decode-int 
                drop 
                bbranch 0xffd8 ( =dec -40)
        b(>resolve) 
        2drop 
        r> 
    b(>resolve) 
    >r 
    my-address 
    r> 
b(;) 

 
    (unnamed-fcode) [0x9c5] 

new-token 0x9c5
b(value) 
0 


    (unnamed-fcode) [0xa04]


new-token 0xa04
b(:) 
    b(") ( len=6 )
    " map-in"
    $call-parent 
b(;) 
 
    b(to) (unnamed-fcode) [0x9a5]

new-token 0x9a5
b(value) 
-1 


 
    (unnamed-fcode) [0x9bc] 

new-token 0x9bc
b(constant) 
b(lit) 0x2000014



    (unnamed-fcode) [0xa03]

new-token 0xa03
b(:) 
    my-space 
    or 
    b(") ( len=0x12 [18 bytes] )
    " assigned-addresses"
    get-my-property 
    invert 
    b?branch 0x0033 ( =dec 51)
        rot 
        >r 
        b(<mark) 
            dup 
            b?branch 0x0029 ( =dec 41)
                decode-phys 
                b(lit) 0xff
                and 
                r@ 
                b(lit) 0xff
                and 
                = 
                b?branch 0x000a ( =dec 10)
                    2swap 
                    2drop 
                    r> 
                    exit 
                    bbranch 0x0005 ()
                    b(>resolve) 
                    2drop 
                b(>resolve) 
                decode-int 
                drop 
                decode-int 
                drop 
                bbranch 0xffd8 ( =dec -40)
        b(>resolve) 
        2drop 
        r> 
    b(>resolve) 
    >r 
    my-address 
    r> 
b(;) 


 
    (unnamed-fcode) [0x9c3]

new-token 0x9c3
b(value) 
0 

 
    (unnamed-fcode) [0xa04]

new-token 0xa04
b(:) 
    b(") ( len=6 )
    " map-in"
    $call-parent 
b(;) 

 
    b(to) (unnamed-fcode) [0x9a3] 

new-token 0x9a3
b(value) 
-1 



    (unnamed-fcode) [0x9c0]

new-token 0x9c0
b(defer) 
b(lit) 0x200001c



 
    (unnamed-fcode) [0xa03]

new-token 0xa03
b(:) 
    my-space 
    or 
    b(") ( len=0x12 [18 bytes] )
    " assigned-addresses"
    get-my-property 
    invert 
    b?branch 0x0033 ( =dec 51)
        rot 
        >r 
        b(<mark) 
            dup 
            b?branch 0x0029 ( =dec 41)
                decode-phys 
                b(lit) 0xff
                and 
                r@ 
                b(lit) 0xff
                and 
                = 
                b?branch 0x000a ( =dec 10)
                    2swap 
                    2drop 
                    r> 
                    exit 
                    bbranch 0x0005 ()
                    b(>resolve) 
                    2drop 
                b(>resolve) 
                decode-int 
                drop 
                decode-int 
                drop 
                bbranch 0xffd8 ( =dec -40)
        b(>resolve) 
        2drop 
        r> 
    b(>resolve) 
    >r 
    my-address 
    r> 
b(;) 


 
    (unnamed-fcode) [0x9c6]

new-token 0x9c6
b(value) 
 
    (unnamed-fcode) [0xa04] 

new-token 0xa04
b(:) 
    b(") ( len=6 )
    " map-in"
    $call-parent 
b(;) 



    b(to) (unnamed-fcode) [0x9a6]

new-token 0x9c6
b(value) 
 
    (unnamed-fcode) [0x9bd]

new-token 0x9bd
b(constant) 
b(lit) 0x42000014


 
    (unnamed-fcode) [0xa03] 

new-token 0xa03
b(:) 
    my-space 
    or 
    b(") ( len=0x12 [18 bytes] )
    " assigned-addresses"
    get-my-property 
    invert 
    b?branch 0x0033 ( =dec 51)
        rot 
        >r 
        b(<mark) 
            dup 
            b?branch 0x0029 ( =dec 41)
                decode-phys 
                b(lit) 0xff
                and 
                r@ 
                b(lit) 0xff
                and 
                = 
                b?branch 0x000a ( =dec 10)
                    2swap 
                    2drop 
                    r> 
                    exit 
                    bbranch 0x0005 ()
                    b(>resolve) 
                    2drop 
                b(>resolve) 
                decode-int 
                drop 
                decode-int 
                drop 
                bbranch 0xffd8 ( =dec -40)
        b(>resolve) 
        2drop 
        r> 
    b(>resolve) 
    >r 
    my-address 
    r> 
b(;) 

    (unnamed-fcode) [0x9c4]

new-token 0x9c4
b(value) 
0 
 
    (unnamed-fcode) [0xa04]

new-token 0xa04
b(:) 
    b(") ( len=6 )
    " map-in"
    $call-parent 
b(;) 

 
    b(to) (unnamed-fcode) [0x9a4]

new-token 0x9a4
b(value) 
-1 

 
    (unnamed-fcode) [0xa3b]

new-token 0xa3b
b(:) 
    my-space 
    la1+ 
    dup 
    (unnamed-fcode) [0xa06] 
    2 
    or 
    swap 
    (unnamed-fcode) [0xa07] 
b(;) 

 
    (unnamed-fcode) [0xa3d]

new-token 0xa3d
b(:) 
    (unnamed-fcode) [0x949] 
    invert 
    b?branch 0x0013 ( =dec 19)
        b(lit) 0x1000000
        b(lit) 0x4
        (unnamed-fcode) [0xa0f] 
        -1 
        b(to) (unnamed-fcode) [0x949] 
    b(>resolve) 
b(;) 

 
    (unnamed-fcode) [0xddd] 

new-token 0xddd
b(:) 
    (unnamed-fcode) [0x93d] 
    b(lit) 0x25
    = 
    b?branch 0x0024 ( =dec 36)
        b(lit) 0x1002c0
        dup 
        (unnamed-fcode) [0xb7b] 
        b(lit) 0x100
        or 
        (unnamed-fcode) [0xb81] 
        b(lit) 0x1002c0
        dup 
        (unnamed-fcode) [0xb7b] 
        b(lit) 0x100
        invert 
        and 
        (unnamed-fcode) [0xb81] 
    b(>resolve) 
b(;) 

b(;) 

> On May 11, 2018, at 11:24 PM, Jd Lyons via OpenBIOS <openbios at openbios.org> wrote:
> 
> Yes, along with some of the other config* words:
> 
> new-token 0xa00
> b(defer) 
> new-token 0xa01
> b(defer) 
> new-token 0xa02
> b(defer) 
> new-token 0xa03
> b(:) 
>    my-space 
>    or 
>    b(") ( len=0x12 [18 bytes] )
>    " assigned-addresses"
>    get-my-property 
>    invert 
>    b?branch 0x0033 ( =dec 51)
>        rot 
>> r 
>        b(<mark) 
>            dup 
>            b?branch 0x0029 ( =dec 41)
>                decode-phys 
>                b(lit) 0xff
>                and 
>                r@ 
>                b(lit) 0xff
>                and 
>                = 
>                b?branch 0x000a ( =dec 10)
>                    2swap 
>                    2drop 
>                    r> 
>                    exit 
>                    bbranch 0x0005 ()
>                    b(>resolve) 
>                    2drop 
>                b(>resolve) 
>                decode-int 
>                drop 
>                decode-int 
>                drop 
>                bbranch 0xffd8 ( =dec -40)
>        b(>resolve) 
>        2drop 
>        r> 
>    b(>resolve) 
>> r 
>    my-address 
>    r> 
> b(;) 
> new-token 0xa04
> b(:) 
>    b(") ( len=6 )
>    " map-in"
>    $call-parent 
> b(;) 
> new-token 0xa05
> b(:) 
>    b(") ( len=7 )
>    " map-out"
>    $call-parent 
> b(;) 
> new-token 0xa06
> b(:) 
>    b(") ( len=9 )
>    " config-w@"
>    $call-parent 
> b(;) 
> new-token 0xa07
> b(:) 
>    b(") ( len=9 )
>    " config-w!"
>    $call-parent 
> b(;) 
> new-token 0xa08
> b(:) 
>    b(") ( len=9 )
>    " config-l@"
>    $call-parent 
> b(;) 
> new-token 0xa09
> b(:) 
>    b(") ( len=9 )
>    " config-l!"
>    $call-parent 
> b(;) 
> new-token 0xa0a
> b(:) 
>    (unnamed-fcode) [0x9a3] 
>    + 
>    rb@ 
> b(;) 
> new-token 0xa0b
> b(:) 
>    (unnamed-fcode) [0x9a3] 
>    + 
>    rb! 
> b(;) 
> new-token 0xa0c
> b(:) 
>    swap 
>    (unnamed-fcode) [0xa0b] 
> b(;) 
> new-token 0xa0d
> b(:) 
>    (unnamed-fcode) [0x9a3] 
>    + 
>    rl@ 
> b(;) 
> new-token 0xa0e
> b(:) 
>    (unnamed-fcode) [0x9a3] 
>    + 
>    rl! 
> b(;) 
> new-token 0xa0f
> b(:) 
>    (unnamed-fcode) [0x9a3] 
>    + 
>    rl! 
> b(;) 
> 
> 
>> On May 11, 2018, at 11:31 AM, Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk> wrote:
>> 
>> On 11/05/18 12:46, Jd Lyons via OpenBIOS wrote:
>> 
>>> Thanks Mark, now I’m down to stepping through the ddf word.
>>> Are map-in and map-out implemented in forth?
>>> Seems the nVidia roms use them, as most option roms would.
>> 
>> From memory PCI map-in is supported, map-out isn't but could be implemented fairly easily. Do you see that in the NVidia ROM image?
>> 
>> 
>> ATB,
>> 
>> Mark.
> 
> 
> -- 
> OpenBIOS                 http://openbios.org/
> Mailinglist:  http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you




More information about the OpenBIOS mailing list