[U-Boot] [PATCH 5/6] x86: qemu: Create i440fx and q35 board configuration and device tree
Simon Glass
sjg at chromium.org
Wed May 27 19:47:48 CEST 2015
Hi Bin,
On 27 May 2015 at 10:27, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Wed, May 27, 2015 at 11:42 PM, Simon Glass <sjg at chromium.org> wrote:
>> Hi Bin,
>>
>> On 26 May 2015 at 22:06, Bin Meng <bmeng.cn at gmail.com> wrote:
>>> Hi Simon,
>>>
>>> On Wed, May 27, 2015 at 11:59 AM, Simon Glass <sjg at chromium.org> wrote:
>>>> Hi Bin,
>>>>
>>>> On 26 May 2015 at 21:55, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>>> Hi Simon,
>>>>>
>>>>> On Wed, May 27, 2015 at 11:13 AM, Simon Glass <sjg at chromium.org> wrote:
>>>>>> Hi Bin,
>>>>>>
>>>>>> On 25 May 2015 at 08:36, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>>>>> Although the two qemu-x86 targets (i440fx and q35) share a lot in
>>>>>>> common, they still have something that cannot easily handled in one
>>>>>>> place (like different configurations, different properties in the
>>>>>>> device tree). Split to create two dedicated board configuration and
>>>>>>> device tree files and make the i440fx be the default build target.
>>>>>>>
>>>>>>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>>>>>>> ---
>>>>>>>
>>>>>>> arch/x86/dts/Makefile | 3 +-
>>>>>>> arch/x86/dts/qemu-x86_i440fx.dts | 34 +++++++++++++++
>>>>>>> arch/x86/dts/{qemu-x86.dts => qemu-x86_q35.dts} | 2 +-
>>>>>>> board/coreboot/coreboot/Kconfig | 4 +-
>>>>>>> board/emulation/qemu-x86/Kconfig | 19 +++++++--
>>>>>>> configs/qemu-x86_defconfig | 1 -
>>>>>>> doc/README.x86 | 13 +++++-
>>>>>>> include/configs/{qemu-x86.h => qemu-x86_i440fx.h} | 20 ++-------
>>>>>>> include/configs/qemu-x86_q35.h | 52 +++++++++++++++++++++++
>>>>>>> 9 files changed, 122 insertions(+), 26 deletions(-)
>>>>>>> create mode 100644 arch/x86/dts/qemu-x86_i440fx.dts
>>>>>>> rename arch/x86/dts/{qemu-x86.dts => qemu-x86_q35.dts} (95%)
>>>>>>> rename include/configs/{qemu-x86.h => qemu-x86_i440fx.h} (78%)
>>>>>>> create mode 100644 include/configs/qemu-x86_q35.h
>>>>>>
>>>>>> Do we need a separate config file? It would be good if all the changes
>>>>>> were in the device tree so that we don't need a separate config. Or at
>>>>>> least that the configs are the same except for the device tree.
>>>>>>
>>>>>
>>>>> So far the only difference between two separate config files are the
>>>>> ATA/SATA settings. i440fx has legacy IDE support while q35 has the
>>>>> AHCI support. We can enable them both in just one config files,
>>>>> however turning on legacy IDE support on q35 causes significant boot
>>>>> delay as the legacy IDE driver has some big timeout in probing the
>>>>> attached devices. Do you think this is something we are tolerant of?
>>>>> If yes, I can just do separate device trees.
>>>>
>>>> I think it is OK. But another option would be to add an IDE node to
>>>> the device tree and check it when CONFIG_OF_CONTROL is defined...
>>>>
>>>
>>> I feel that we need convert all block drivers to driver model, so that
>>> the driver can probe and initialize IDE/AHCI based on device tree
>>> node. But I guess that's a long term goal?
>>
>> Yes, perhaps latter in the year. I did create a simple MMC uclass that
>> uses the block driver library just as now, and it seems easy enough. I
>> suppose you could do the same with IDE. But in the meantime just some
>> sort of DT config is good enough to avoid your device.
>>
>
> I am not sure I understand your point. Do you mean for now I need
> modify common/cmd_ide.c::ide_init() to probe the existence of an IDE
> node in the device tree? I am afraid that's a lot of work too since
> there are many boards use the IDE driver.
Maybe for now you could do:
#ifdef CONFIG_OF_CONTROL
if (!fdtdec_get_config_bool("legacy-ide"))
return; /* skip IDE */
#endif
Regards,
Simon
More information about the U-Boot
mailing list