Hi Mario,

On 4 May 2018 at 02:15, Mario Six <[email protected]> wrote:
> Hi Simon,
>
> On Thu, May 3, 2018 at 9:02 PM, Simon Glass <[email protected]> wrote:
>> Hi Mario,
>>
>> On 27 April 2018 at 06:53, Mario Six <[email protected]> wrote:
>>> Register the IMMR region as a PCI region when PCI is used on MPC83xx.
>>>
>>> Signed-off-by: Mario Six <[email protected]>
>>> ---
>>>
>>> v1 -> v2:
>>> No changes
>>>
>>> ---
>>>  drivers/pci/pci-uclass.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c
>>> index a2e829608a..37ca09d76b 100644
>>> --- a/drivers/pci/pci-uclass.c
>>> +++ b/drivers/pci/pci-uclass.c
>>> @@ -902,6 +902,11 @@ static int decode_regions(struct pci_controller
*hose, ofnode parent_node,
>>>                         base, size, PCI_REGION_MEM |
PCI_REGION_SYS_MEMORY);
>>>  #endif
>>>
>>> +#if defined(MPC83xx) && defined(CONFIG_SYS_IMMR)
>>> +       pci_set_region(hose->regions + hose->region_count++,
>>> +                      CONFIG_SYS_IMMR, CONFIG_SYS_IMMR, 0x100000,
>>> +                      PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
>>> +#endif
>>
>> Please don't add device-specific code in this file. This could go in
>> the device tree, perhaps. If not, we perhaps need to do it in your PCI
>> driver?
>>
>
> OK, I'll try to put it into the DT (I have absolutely no expertise with
PCI, so
> I'm still learning with this one).

Here's a possible idea:

decode_regions() is called from the PCI uclass' pre_probe() method. This
means that by the time your PCI controller enters the probe() method, all
the regions should be set up. So you should be able to add the above code
into the probe() method of your PCI controller driver. Perhaps can check a
compatible string etc. to decide whether to add this region, if it is no
described in the DT itself.

Regards,
Simon
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to