On Aug 3, 2012, at 9:42 AM, Li Yang wrote:

> On Fri, Aug 3, 2012 at 8:38 PM, Kumar Gala <ga...@kernel.crashing.org> wrote:
>> 
>> On Aug 2, 2012, at 9:21 PM, Jia Hongtao-B38951 wrote:
>> 
>>>> 
>>>> -----Original Message-----
>>>> From: Kumar Gala [mailto:ga...@kernel.crashing.org]
>>>> Sent: Thursday, August 02, 2012 8:55 PM
>>>> To: Jia Hongtao-B38951
>>>> Cc: linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421; Li Yang-R58472
>>>> Subject: Re: [PATCH V4 2/3] powerpc/swiotlb: Enable at early stage and
>>>> disable if not necessary
>>>> 
>>>> 
>>>> On Aug 2, 2012, at 6:42 AM, Jia Hongtao wrote:
>>>> 
>>>>> Remove the dependency on PCI initialization for SWIOTLB initialization.
>>>>> So that PCI can be initialized at proper time.
>>>>> 
>>>>> SWIOTLB is partly determined by PCI inbound/outbound map which is
>>>> assigned
>>>>> in PCI initialization. But swiotlb_init() should be done at the stage
>>>> of
>>>>> mem_init() which is much earlier than PCI initialization. So we reserve
>>>> the
>>>>> memory for SWIOTLB first and free it if not necessary.
>>>>> 
>>>>> All boards are converted to fit this change.
>>>>> 
>>>>> Signed-off-by: Jia Hongtao <b38...@freescale.com>
>>>>> Signed-off-by: Li Yang <le...@freescale.com>
>>>>> ---
>>>> 
>>>> This doesn't seem like it addresses our issue w/regards to not being able
>>>> to map all of memory from PCI.
>>> 
>>> PCI init will determine ppc_swiotlb_enable due to PCI map. swiotlb_late_init
>>> will handle all swiotlb things depend on the result of pci init.
>> 
>> Think about the case that we have 4095M of memory & 1G of PCI memory mapped 
>> space.  The old code would enable swiotlb for this case since we would NOT 
>> be able to DMA to all 4095M of memory.  The patch does not handle this case 
>> correctly.
> 
> The patch can handle it.  The ppc_swiotlb_enable is still being set in
> fsl_pci_init() if there is 1G of PCI memory mapped space.  It is
> after next patch that the ppc_swiotlb_enable is being set in the PCI
> probe() routine.
> 
> Leo


Gotcha.  I was thinking the swiotlb_init(0) was:

if (ppc_swiotlb_enable)
        swiotlb_init(0)

Now I see, we call it unconditionally, than fixup in swiotlb_late_init

- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to