[OpenBIOS] b?branch
Jd Lyons
lyons_dj at yahoo.com
Sun Dec 31 14:14:41 CET 2017
> On Dec 31, 2017, at 8:13 AM, Jd Lyons <lyons_dj at yahoo.com> wrote:
>
>
>
>> On Dec 31, 2017, at 7:59 AM, Jd Lyons <lyons_dj at yahoo.com <mailto:lyons_dj at yahoo.com>> wrote:
>>
>>
>>
>>> On Dec 30, 2017, at 6:04 AM, Segher Boessenkool <segher at kernel.crashing.org <mailto:segher at kernel.crashing.org>> wrote:
>>>
>>> On Sat, Dec 30, 2017 at 05:44:10AM -0500, Jd Lyons wrote:
>>>>> On Dec 30, 2017, at 4:21 AM, Segher Boessenkool <segher at kernel.crashing.org <mailto:segher at kernel.crashing.org>> wrote:
>>>>> On Fri, Dec 29, 2017 at 08:27:54PM -0500, Tarl Neustaedter wrote:
>>>>>> [re-send, copying the list. For whatever reason, it seems messages
>>>>>> aren't getting the reply-to: header.]
>>>>>>
>>>>>> On 2017-Dec-29 03:58 , Jd Lyons wrote:
>>>>>>> 0 > " /pci/@e" open-dev to my-self ok
>>>>>>> 0 > my-self . 5fc5ac34 ok
>>>>>>> 0 > my-parent . 5fc5abfc ok
>>>>>>> 0 > my-space . 0 ok <<---Seems my-space isn't returning a correct value?
>>>>>>> 0 >
>>>>>>>
>>>>>> That's the problem. It appears that simply open-dev and assigning
>>>>>> my-self isn't enough. my-space (and my-address and my-unit) aren't
>>>>>> getting set up, so all config-space accesses are going to do the wrong
>>>>>> thing (they'll go to device 0, which may or may not be the root).
>>>>>>
>>>>>> In the Sun/Oracle version, select would properly set things up, it
>>>>>> appears no equivalent is available under openbios.
>>>>>>
>>>>>> I think you'll have to further debug this by getting the FCode to be
>>>>>> pulled in at startup in place of the built-in vga fcode, rather than
>>>>>> trying to fiddle things this way.
>>>>>
>>>>> Or set my-space to return 7000 and keep on fumbling :-)
>>>>
>>>> How would I set my-space to 7000?
>>>>
>>>> Is that specific to pci/@e?
>>>>
>>>> I noticed in SLOF that my-space . returned 1800, however the card was pci/@3.
>>>
>>> And that is correct :-)
>>>
>>> It is @dev,fn or if fn is 0, it is written as @dev . In the encoded
>>> representation, it is 800*dev + 100*fn (dev is 5 bits, fn is 3 bits).
>>>
>>> In openbios, it looks like my-space gets its data from >dn.probe-addr in
>>> the device node... And it is set via set-args... And then I got lost,
>>> not sure how that is supposed to be called.
>>>
>> Looks like we need to change the way openbios handles my-space.
>>
>> SLOF deals with it in the nodes.fs
>>
>> : (my-phandle) ( -- phandle )
>> my-self ?dup IF
>> ihandle>phandle
>> ELSE
>> get-node dup 0= ABORT" no active node"
>> THEN
>> ;
>>
>> : my-space ( -- phys.hi )
>> (my-phandle) >space
>> ;
>>
>>
>> I think we also need the >space word, the phandle word, and the ihandle word, I’ll have to track that down too.
>>
>> John, do you want to take a crack at fixing the >dn.probe-addr, or replacing it with something that returns a correct my-space .?
>>
>>
>>
>
> Looks lie Openbios already deals with ihandle and phandle, they just are not global words, and they may not need to be for my purpose.
>
> They aren’t global words in SLOF, so as long as the compiler understands them a build time, they should work just fine.
>
\ Set address and arguments of new device node.
: set-args ( arg-str arg-len unit-str unit-len -- )
?my-self drop
depth 1- >r
" decode-unit" ['] $call-parent catch if
2drop 2drop
then
my-self ihandle>phandle >dn.probe-addr \ offset
begin depth r@ > while
dup na1+ >r ! r>
repeat
r> 2drop
my-self >in.arguments 2@ free-mem
strdup my-self >in.arguments 2!
;
>>
>>
>>>
>>> Segher
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/openbios/attachments/20171231/a7195188/attachment-0001.html>
More information about the OpenBIOS
mailing list