[U-Boot] [PATCH 3/5] x86: queensbay: Support pre-relocation dm pci
Bin Meng
bmeng.cn at gmail.com
Thu Aug 6 04:48:32 CEST 2015
Hi Simon,
On Wed, Aug 5, 2015 at 10:39 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 2 August 2015 at 19:52, Bin Meng <bmeng.cn at gmail.com> wrote:
>> Hi Simon,
>>
>> On Mon, Aug 3, 2015 at 6:31 AM, Simon Glass <sjg at chromium.org> wrote:
>>> Hi Bin,
>>>
>>> On 27 July 2015 at 01:33, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>> Increase CONFIG_MALLOC_F_LEN so that dm pci does not fail with -ENOMEM
>>>> before relocation. This makes pci uart work again on Intel Crown Bay.
>>>>
>>>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>>>> ---
>>>>
>>>> arch/x86/cpu/queensbay/Kconfig | 3 +++
>>>> arch/x86/cpu/queensbay/tnc.c | 13 +++++++++++++
>>>> arch/x86/dts/crownbay.dts | 2 --
>>>> 3 files changed, 16 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/x86/cpu/queensbay/Kconfig b/arch/x86/cpu/queensbay/Kconfig
>>>> index fbf85f2..8eb619c 100644
>>>> --- a/arch/x86/cpu/queensbay/Kconfig
>>>> +++ b/arch/x86/cpu/queensbay/Kconfig
>>>> @@ -42,4 +42,7 @@ config CPU_ADDR_BITS
>>>> int
>>>> default 32
>>>>
>>>> +config SYS_MALLOC_F_LEN
>>>> + default 0x8000
>>>
>>> 32KB? Wow that's a huge amount. How much does it actually use? Perhaps
>>> we should change PCI so that it respects the u-boot,dm-pre-reloc
>>> property?
>>>
>>
>> I just add a zero to the original value :) I did not measure the
>> actual memory consumption since after fsp_init() we have plenty of
>> memory to be used as the stack. For queensbay platform, it has lots of
>> pci devices each of which will need allocate some memory for dm pci to
>> use.
>
> I think it is worth checking this and using a value closer to what you
> need. board_init_f.c has a debug output for it I think.
>
OK, I will have a check.
> Also I wonder if we can avoid creating PCI devices for everything
> pre-relocation, when we only need serial?
>
Yes, looks that we only need serial. However x86 is a specific case
since pci bus is the fundamental bus that is used to set up other
devices. After conversion to dm pci, if we implement it correctly, any
call to a pci api will trigger the enumeration and it is probably a
side effect of using dm? I even think we can hardcoded pci uart in
the pre-relocation phase without using dm at all, but that is not a
portable way.
Regards,
Bin
More information about the U-Boot
mailing list