On Mon, 15 Jul 2019, Segher Boessenkool wrote:
>> 0 > my-self . 1fc5abfc ok
>> 0 > my-space ok
>> 1 > . 0 ok
>
> This one should be 7800
>
>> 0 > my-address ok
>> 2 > . 0 ok
>> 1 > . 0 ok
>> 0 > my-unit ok
>> 3 > . 7800 ok
>> 2 > . 0 ok
>> 1 > . 0 ok
>
> Those all look fine.
>
>> I think these my-* values should have some numbers instead of 0. What's
>> the problem here? Looks like it returns first value from reg but shouldn't
>> it return something from assigned-addresses instead?
>
> my-address is two zeroes for configuration space addresses. But my-space
> shouldn't be zero, it's 7800 here. my-unit should be exactly identical
> to my-address my-space , but it isn't for you?
So you say it should be
: my-unit my-address my-space ;
but in OpenBIOS we have (in forth/device/package.fs):
\
\ 5.3.4.3 Get local arguments
\
: my-address ( -- phys.lo ... )
?my-self >in.device-node @
>dn.probe-addr
my-#acells tuck /l* + swap 1- 0
?do
/l - dup l@ swap
loop
drop
;
: my-space ( -- phys.hi )
?my-self >in.device-node @
>dn.probe-addr @
;
: my-unit ( -- phys.lo ... phys.hi )
?my-self >in.my-unit
my-#acells tuck /l* + swap 0 ?do
/l - dup l@ swap
loop
drop
;
my-unit seems to get the info from a different place (>in.my-unit vs.
>dn.probe-addr) here. Why is that? Also this brings up further questions:
What are in, dn, ihandle, phandle? (I can probably find what do /l and /l*
do.)
Regards,
BALATON Zoltan
_______________________________________________
OpenBIOS mailing list -- openbios@openbios.org
To unsubscribe send an email to openbios-leave@openbios.org