[{"id":1760688,"web_url":"http://patchwork.ozlabs.org/comment/1760688/","msgid":"<CAEUhbmWNWc_SfMDpOfB0x-XCoq=5BCDCSyMqdXBgagSwGZBeqg@mail.gmail.com>","list_archive_url":null,"date":"2017-08-31T06:55:55","subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","submitter":{"id":64981,"url":"http://patchwork.ozlabs.org/api/people/64981/","name":"Bin Meng","email":"bmeng.cn@gmail.com"},"content":"Hi Tuomas,\n\nOn Wed, Aug 30, 2017 at 4:31 PM, Tuomas Tynkkynen\n<tuomas.tynkkynen@iki.fi> wrote:\n> This board builds an U-Boot binary that is bootable with QEMU's 'virt'\n> machine on ARM. The minimal QEMU command line is:\n>\n>     qemu-system-arm -machine virt,highmem=off -bios u-boot.bin\n>\n> (Note that the 'highmem=off' parameter to the 'virt' machine is required for\n> PCI to work in U-Boot.) This command line enables the following:\n>     - u-boot.bin loaded and executing in the emulated flash at address 0x0\n>     - A generated device tree blob placed at the start of RAM\n>     - A freely configurable amount of RAM, described by the DTB\n>     - A PL011 serial port, discoverable via the DTB\n>     - An ARMv7 architected timer\n>     - PSCI for rebooting the system\n>     - A generic ECAM-based PCI host controller, discoverable via the DTB\n>\n> Additionally, QEMU allows plugging a bunch of useful peripherals to the PCI bus.\n> The following ones are supported by both U-Boot and Linux:\n>\n> - To enable a Serial ATA disk via an Intel ICH9 AHCI controller, pass e.g.:\n>     -drive if=none,file=disk.img,id=mydisk -device ich9-ahci,id=ahci -device ide-drive,drive=mydisk,bus=ahci.0\n> - To enable an Intel E1000 network adapter, pass e.g.:\n>     -net nic,model=e1000 -net user\n> - To add an EHCI-compliant USB host controller, pass e.g.:\n>     -device usb-ehci,id=ehci\n\nCan we enable the NVMe driver (CONFIG_NVME) here?\n\n>\n> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>\n> ---\n>  arch/arm/Kconfig           | 10 ++++++++\n>  arch/arm/mach-qemu/Kconfig |  9 +++++++\n>  board/qemu-arm/Makefile    |  5 ++++\n>  board/qemu-arm/qemu-arm.c  | 35 ++++++++++++++++++++++++++\n>  configs/qemu_arm_defconfig | 27 ++++++++++++++++++++\n>  include/configs/qemu-arm.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++\n>  6 files changed, 149 insertions(+)\n>  create mode 100644 arch/arm/mach-qemu/Kconfig\n>  create mode 100644 board/qemu-arm/Makefile\n>  create mode 100644 board/qemu-arm/qemu-arm.c\n>  create mode 100644 configs/qemu_arm_defconfig\n>  create mode 100644 include/configs/qemu-arm.h\n>\n> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig\n> index 53d0831935..0d01ba1b73 100644\n> --- a/arch/arm/Kconfig\n> +++ b/arch/arm/Kconfig\n> @@ -630,6 +630,14 @@ config ARCH_MX5\n>         select CPU_V7\n>         select BOARD_EARLY_INIT_F\n>\n> +config ARCH_QEMU\n> +       bool \"QEMU Virtual Platform\"\n> +       select CPU_V7\n> +       select ARCH_SUPPORT_PSCI\n> +       select DM\n> +       select DM_SERIAL\n> +       select OF_CONTROL\n> +\n>  config ARCH_RMOBILE\n>         bool \"Renesas ARM SoCs\"\n>         select DM\n> @@ -1149,6 +1157,8 @@ source \"arch/arm/mach-stm32/Kconfig\"\n>\n>  source \"arch/arm/mach-sunxi/Kconfig\"\n>\n> +source \"arch/arm/mach-qemu/Kconfig\"\n> +\n\nCan you insert this by following alphabetical order?\n\n>  source \"arch/arm/mach-tegra/Kconfig\"\n>\n>  source \"arch/arm/mach-uniphier/Kconfig\"\n> diff --git a/arch/arm/mach-qemu/Kconfig b/arch/arm/mach-qemu/Kconfig\n> new file mode 100644\n> index 0000000000..89d2a36719\n> --- /dev/null\n> +++ b/arch/arm/mach-qemu/Kconfig\n> @@ -0,0 +1,9 @@\n> +if ARCH_QEMU\n> +\n> +config SYS_BOARD\n> +       default \"qemu-arm\"\n> +\n> +config SYS_CONFIG_NAME\n> +       default \"qemu-arm\"\n> +\n> +endif\n> diff --git a/board/qemu-arm/Makefile b/board/qemu-arm/Makefile\n> new file mode 100644\n> index 0000000000..3e9907d983\n> --- /dev/null\n> +++ b/board/qemu-arm/Makefile\n\nCan this new board be put into the board/emulation/qemu-arm directory?\nSince qemu-x86 is put there.\n\n> @@ -0,0 +1,5 @@\n> +#\n> +# SPDX-License-Identifier:     GPL-2.0\n> +#\n> +\n> +obj-y  += qemu-arm.o\n> diff --git a/board/qemu-arm/qemu-arm.c b/board/qemu-arm/qemu-arm.c\n> new file mode 100644\n> index 0000000000..90d7badbf4\n> --- /dev/null\n> +++ b/board/qemu-arm/qemu-arm.c\n> @@ -0,0 +1,35 @@\n> +/*\n> + * Copyright (c) 2017 Tuomas Tynkkynen\n> + *\n> + * SPDX-License-Identifier:    GPL-2.0+\n> + */\n> +#include <common.h>\n> +#include <fdtdec.h>\n> +\n> +DECLARE_GLOBAL_DATA_PTR;\n\nThis is not needed as gd is not referenced in this file.\n\n> +\n> +int board_init(void)\n> +{\n> +       return 0;\n> +}\n> +\n> +int dram_init(void)\n> +{\n> +       if (fdtdec_setup_memory_size() != 0)\n> +               return -EINVAL;\n> +\n> +       return 0;\n> +}\n> +\n> +int dram_init_banksize(void)\n> +{\n> +       fdtdec_setup_memory_banksize();\n> +\n> +       return 0;\n> +}\n> +\n> +void *board_fdt_blob_setup(void)\n> +{\n> +       /* QEMU loads a generated DTB for us at the start of RAM. */\n> +       return (void *)CONFIG_SYS_SDRAM_BASE;\n> +}\n> diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig\n> new file mode 100644\n> index 0000000000..d34512dd0d\n> --- /dev/null\n> +++ b/configs/qemu_arm_defconfig\n> @@ -0,0 +1,27 @@\n> +CONFIG_ARM=y\n> +CONFIG_ARM_SMCCC=y\n> +CONFIG_ARCH_QEMU=y\n> +CONFIG_AHCI=y\n> +CONFIG_DISTRO_DEFAULTS=y\n> +# CONFIG_DISPLAY_CPUINFO is not set\n> +# CONFIG_DISPLAY_BOARDINFO is not set\n> +# CONFIG_CMD_IMLS is not set\n> +CONFIG_CMD_PCI=y\n> +CONFIG_CMD_USB=y\n> +CONFIG_OF_BOARD=y\n> +CONFIG_AHCI_PCI=y\n> +CONFIG_BLK=y\n> +# CONFIG_MMC is not set\n> +CONFIG_DM_ETH=y\n> +CONFIG_E1000=y\n> +CONFIG_PCI=y\n> +CONFIG_DM_PCI=y\n> +CONFIG_PCIE_ECAM_GENERIC=y\n> +CONFIG_SCSI=y\n> +CONFIG_DM_SCSI=y\n> +CONFIG_SYSRESET=y\n> +CONFIG_SYSRESET_PSCI=y\n> +CONFIG_USB=y\n> +CONFIG_DM_USB=y\n> +CONFIG_USB_EHCI_HCD=y\n> +CONFIG_USB_EHCI_PCI=y\n> diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h\n> new file mode 100644\n> index 0000000000..2bcc0efad0\n> --- /dev/null\n> +++ b/include/configs/qemu-arm.h\n> @@ -0,0 +1,63 @@\n> +/*\n> + * Copyright (c) 2017 Tuomas Tynkkynen\n> + *\n> + * SPDX-License-Identifier:    GPL-2.0+\n> + */\n> +\n> +#ifndef __CONFIG_H\n> +#define __CONFIG_H\n> +\n> +#include <linux/sizes.h>\n> +\n> +/* Physical memory map */\n> +#define CONFIG_SYS_TEXT_BASE           0x00000000\n> +\n> +#define CONFIG_NR_DRAM_BANKS           1\n> +#define CONFIG_SYS_SDRAM_BASE          0x40000000\n> +\n> +/* The DTB generated by QEMU is placed at start of RAM, stay away from there */\n> +#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + SZ_2M)\n> +#define CONFIG_SYS_LOAD_ADDR           (CONFIG_SYS_SDRAM_BASE + SZ_2M)\n> +#define CONFIG_SYS_MALLOC_LEN          SZ_16M\n> +\n> +/* QEMU's PL011 serial port is detected via FDT using the device model */\n> +#define CONFIG_PL01X_SERIAL\n> +\n> +/* QEMU implements a 62.5MHz architected timer */\n> +/* FIXME: can we rely on CNTFREQ instead of hardcoding this fact here? */\n> +#define CONFIG_SYS_ARCH_TIMER\n> +#define CONFIG_SYS_HZ                       1000\n> +#define CONFIG_SYS_HZ_CLOCK                 62500000\n> +\n> +/* Command prompt options */\n> +#define CONFIG_SYS_CBSIZE              512     /* Console I/O Buffer Size */\n> +#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \\\n> +                                       sizeof(CONFIG_SYS_PROMPT) + 16)\n> +#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE\n> +#define CONFIG_SYS_MAXARGS             64      /* max command args */\n> +\n> +/* For block devices, QEMU emulates an ICH9 AHCI controller over PCI */\n> +#define CONFIG_SYS_SCSI_MAX_SCSI_ID 8\n> +#define CONFIG_SCSI_AHCI\n> +#define CONFIG_LIBATA\n> +\n> +/* Environment options */\n> +#define CONFIG_ENV_SIZE                                SZ_64K\n> +\n> +#include <config_distro_defaults.h>\n> +\n> +#define BOOT_TARGET_DEVICES(func) \\\n> +       func(SCSI, scsi, 0)\n> +\n> +#include <config_distro_bootcmd.h>\n> +\n> +#define CONFIG_PREBOOT \"pci enum\"\n> +#define CONFIG_EXTRA_ENV_SETTINGS \\\n> +       \"fdt_addr=0x40000000\\0\" \\\n> +       \"scriptaddr=0x40200000\\0\" \\\n> +       \"pxefile_addr_r=0x40300000\\0\" \\\n> +       \"kernel_addr_r=0x40400000\\0\" \\\n> +       \"ramdisk_addr_r=0x44000000\\0\" \\\n> +       BOOTENV\n> +\n> +#endif /* __CONFIG_H */\n> --\n\nRegards,\nBin","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"PVk9mIz5\"; dkim-atps=neutral"],"Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjY7713phz9s7F\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 31 Aug 2017 16:56:03 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid D6693C21D7E; Thu, 31 Aug 2017 06:56:01 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 2A5F3C21C59;\n\tThu, 31 Aug 2017 06:55:58 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid A3EB8C21C59; Thu, 31 Aug 2017 06:55:56 +0000 (UTC)","from mail-wr0-f195.google.com (mail-wr0-f195.google.com\n\t[209.85.128.195])\n\tby lists.denx.de (Postfix) with ESMTPS id 4D72BC21C51\n\tfor <u-boot@lists.denx.de>; Thu, 31 Aug 2017 06:55:56 +0000 (UTC)","by mail-wr0-f195.google.com with SMTP id k9so2579085wre.4\n\tfor <u-boot@lists.denx.de>; Wed, 30 Aug 2017 23:55:56 -0700 (PDT)","by 10.223.135.121 with HTTP; Wed, 30 Aug 2017 23:55:55 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=0.0 required=5.0 tests=FREEMAIL_FROM,\n\tRCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,\n\tT_DKIM_INVALID autolearn=unavailable\n\tautolearn_force=no version=3.4.0","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=jnP5A/eOWejtELDu5f/O1Q62Lnv1QdN86TiNj1V11qs=;\n\tb=PVk9mIz5rWuU0lVwdFqLW/1DcAV1FDq0mh9XYLcyzOZnDRsG8g9JQZf59xjjGEMzXT\n\twDnWwZTIXAsT7QKjsM+EjO9LVR8WLZCg0xjGUPhj8xaDi4Xn+i9uSY3lkAuPAqavhbsh\n\thjCKre+Snaxm56S8sza5y0P5eCI3gl30DvssK3g8aZ/QAzgvyD4HtbFCQ6+NwgRsooj+\n\tBhCLWzNprK29N2dlDz3ejuYbSHlQ07LDUf29HEbVErpmASissBAgV/dL5Av5SUEs95Eo\n\tCd5YnPS7JUKFRqRwInnWgi5NBzqP7kdg3tpQT56TyoOzELOZZZ1GR489F5bo5SWb2PQc\n\tyV8A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=jnP5A/eOWejtELDu5f/O1Q62Lnv1QdN86TiNj1V11qs=;\n\tb=ZZf9aUKLGTjhNW0WS0SGQHKZV6ayU6bruQJamwCXDNKMWqAqiofMVgswcBP1wJkjPu\n\tjkc6ZixyeM8CC5XUXnze/jHrlT2TWN3HCDUvRU5+2VB03i248mEzllP6AYFLMU67C/va\n\tvOyyiK74FjMXsdcvqCZyCteBHQWgviQanEyp8vPTK9hr6n0C5BNE6A1UAgu+v58HNA4E\n\tFU8HNkhqT0HqsCeDQgaynYpeExGhkdrEy10lgd/ec/Y0W68MZPJpR1EWPMWv7KV2W/mz\n\thVIGv4k5DfFPBGtWeDUaGes+Xjby2S1439D9CWAdK18y9PbofTG2g7sTekcEd29eWq9r\n\tyNng==","X-Gm-Message-State":"AHYfb5gaB0HeujNRAbd5lW1s/bPZy0SdLhZawJe0J+Y1YmMH25dDpq2G\n\tD1rAQnUDheXmIbWIyDkK6K7W2URtqw==","X-Received":"by 10.223.196.212 with SMTP id o20mr2468134wrf.176.1504162555842;\n\tWed, 30 Aug 2017 23:55:55 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<20170830083135.9183-3-tuomas.tynkkynen@iki.fi>","References":"<20170830083135.9183-1-tuomas.tynkkynen@iki.fi>\n\t<20170830083135.9183-3-tuomas.tynkkynen@iki.fi>","From":"Bin Meng <bmeng.cn@gmail.com>","Date":"Thu, 31 Aug 2017 14:55:55 +0800","Message-ID":"<CAEUhbmWNWc_SfMDpOfB0x-XCoq=5BCDCSyMqdXBgagSwGZBeqg@mail.gmail.com>","To":"Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>","Cc":"U-Boot Mailing List <u-boot@lists.denx.de>, Tom Rini <trini@konsulko.com>","Subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"}},{"id":1761450,"web_url":"http://patchwork.ozlabs.org/comment/1761450/","msgid":"<CAEUhbmVf97zz5MgKZr4O5bvCJZ6skiM50+5iA3oJ0MLOxJk0mw@mail.gmail.com>","list_archive_url":null,"date":"2017-09-01T03:07:03","subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","submitter":{"id":64981,"url":"http://patchwork.ozlabs.org/api/people/64981/","name":"Bin Meng","email":"bmeng.cn@gmail.com"},"content":"Hi Tuomas,\n\nOn Fri, Sep 1, 2017 at 5:56 AM, Tuomas Tynkkynen <dezgeg@gmail.com> wrote:\n> Hi,\n>\n>\n> On 08/31/2017 09:55 AM, Bin Meng wrote:\n>>\n>> Hi Tuomas,\n>>\n>> On Wed, Aug 30, 2017 at 4:31 PM, Tuomas Tynkkynen\n>> <tuomas.tynkkynen@iki.fi> wrote:\n>>>\n>>> This board builds an U-Boot binary that is bootable with QEMU's 'virt'\n>>> machine on ARM. The minimal QEMU command line is:\n>>>\n>>>      qemu-system-arm -machine virt,highmem=off -bios u-boot.bin\n>>>\n>>> (Note that the 'highmem=off' parameter to the 'virt' machine is required\n>>> for\n>>> PCI to work in U-Boot.) This command line enables the following:\n>>>      - u-boot.bin loaded and executing in the emulated flash at address\n>>> 0x0\n>>>      - A generated device tree blob placed at the start of RAM\n>>>      - A freely configurable amount of RAM, described by the DTB\n>>>      - A PL011 serial port, discoverable via the DTB\n>>>      - An ARMv7 architected timer\n>>>      - PSCI for rebooting the system\n>>>      - A generic ECAM-based PCI host controller, discoverable via the DTB\n>>>\n>>> Additionally, QEMU allows plugging a bunch of useful peripherals to the\n>>> PCI bus.\n>>> The following ones are supported by both U-Boot and Linux:\n>>>\n>>> - To enable a Serial ATA disk via an Intel ICH9 AHCI controller, pass\n>>> e.g.:\n>>>      -drive if=none,file=disk.img,id=mydisk -device ich9-ahci,id=ahci\n>>> -device ide-drive,drive=mydisk,bus=ahci.0\n>>> - To enable an Intel E1000 network adapter, pass e.g.:\n>>>      -net nic,model=e1000 -net user\n>>> - To add an EHCI-compliant USB host controller, pass e.g.:\n>>>      -device usb-ehci,id=ehci\n>>\n>>\n>> Can we enable the NVMe driver (CONFIG_NVME) here?\n>>\n>\n> Yes, 'nvme scan' and 'nvme list' it appear to work. I'll enable it.\n> There is a bunch of spew of this form though:\n>\n> CACHE: Misaligned operation at range [bef5d000, bef5d020]\n>\n\nI think I've fixed this already and is now in v2017.09-rc3. But rc3 is\nstill not shown on git.denx.de. Not sure why.\n\n>\n>\n>>>\n>>> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>\n>>> ---\n>>>   arch/arm/Kconfig           | 10 ++++++++\n>>>   arch/arm/mach-qemu/Kconfig |  9 +++++++\n>>>   board/qemu-arm/Makefile    |  5 ++++\n>>>   board/qemu-arm/qemu-arm.c  | 35 ++++++++++++++++++++++++++\n>>>   configs/qemu_arm_defconfig | 27 ++++++++++++++++++++\n>>>   include/configs/qemu-arm.h | 63\n>>> ++++++++++++++++++++++++++++++++++++++++++++++\n>>>   6 files changed, 149 insertions(+)\n>>>   create mode 100644 arch/arm/mach-qemu/Kconfig\n>>>   create mode 100644 board/qemu-arm/Makefile\n>>>   create mode 100644 board/qemu-arm/qemu-arm.c\n>>>   create mode 100644 configs/qemu_arm_defconfig\n>>>   create mode 100644 include/configs/qemu-arm.h\n>>>\n>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig\n>>> index 53d0831935..0d01ba1b73 100644\n>>> --- a/arch/arm/Kconfig\n>>> +++ b/arch/arm/Kconfig\n>>> @@ -630,6 +630,14 @@ config ARCH_MX5\n>>>          select CPU_V7\n>>>          select BOARD_EARLY_INIT_F\n>>>\n>>> +config ARCH_QEMU\n>>> +       bool \"QEMU Virtual Platform\"\n>>> +       select CPU_V7\n>>> +       select ARCH_SUPPORT_PSCI\n>>> +       select DM\n>>> +       select DM_SERIAL\n>>> +       select OF_CONTROL\n>>> +\n>>>   config ARCH_RMOBILE\n>>>          bool \"Renesas ARM SoCs\"\n>>>          select DM\n>>> @@ -1149,6 +1157,8 @@ source \"arch/arm/mach-stm32/Kconfig\"\n>>>\n>>>   source \"arch/arm/mach-sunxi/Kconfig\"\n>>>\n>>> +source \"arch/arm/mach-qemu/Kconfig\"\n>>> +\n>>\n>>\n>> Can you insert this by following alphabetical order?\n>>\n>\n> Oops, yes of course.\n>\n>>>   source \"arch/arm/mach-tegra/Kconfig\"\n>>>\n>>>   source \"arch/arm/mach-uniphier/Kconfig\"\n>>> diff --git a/arch/arm/mach-qemu/Kconfig b/arch/arm/mach-qemu/Kconfig\n>>> new file mode 100644\n>>> index 0000000000..89d2a36719\n>>> --- /dev/null\n>>> +++ b/arch/arm/mach-qemu/Kconfig\n>>> @@ -0,0 +1,9 @@\n>>> +if ARCH_QEMU\n>>> +\n>>> +config SYS_BOARD\n>>> +       default \"qemu-arm\"\n>>> +\n>>> +config SYS_CONFIG_NAME\n>>> +       default \"qemu-arm\"\n>>> +\n>>> +endif\n>>> diff --git a/board/qemu-arm/Makefile b/board/qemu-arm/Makefile\n>>> new file mode 100644\n>>> index 0000000000..3e9907d983\n>>> --- /dev/null\n>>> +++ b/board/qemu-arm/Makefile\n>>\n>>\n>> Can this new board be put into the board/emulation/qemu-arm directory?\n>> Since qemu-x86 is put there.\n>>\n>\n> Sure. There is still qemu-mips directly under board/ though.\n\nYep, so a separate patch to move all these qemu- boards into emulation\nwould be nice.\n\n>\n>>> @@ -0,0 +1,5 @@\n>>> +#\n>>> +# SPDX-License-Identifier:     GPL-2.0\n>>> +#\n>>> +\n>>> +obj-y  += qemu-arm.o\n>>> diff --git a/board/qemu-arm/qemu-arm.c b/board/qemu-arm/qemu-arm.c\n>>> new file mode 100644\n>>> index 0000000000..90d7badbf4\n>>> --- /dev/null\n>>> +++ b/board/qemu-arm/qemu-arm.c\n>>> @@ -0,0 +1,35 @@\n>>> +/*\n>>> + * Copyright (c) 2017 Tuomas Tynkkynen\n>>> + *\n>>> + * SPDX-License-Identifier:    GPL-2.0+\n>>> + */\n>>> +#include <common.h>\n>>> +#include <fdtdec.h>\n>>> +\n>>> +DECLARE_GLOBAL_DATA_PTR;\n>>\n>>\n>> This is not needed as gd is not referenced in this file.\n>>\n>\n> Now removed.\n>\n> Thank you for the review.\n\nRegards,\nBin","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"PqyMDYSq\"; dkim-atps=neutral"],"Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xk40k47NLz9s83\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 13:07:17 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid CF79EC21E38; Fri,  1 Sep 2017 03:07:09 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 486DBC21D19;\n\tFri,  1 Sep 2017 03:07:07 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid 49930C21D19; Fri,  1 Sep 2017 03:07:05 +0000 (UTC)","from mail-wm0-f67.google.com (mail-wm0-f67.google.com\n\t[74.125.82.67])\n\tby lists.denx.de (Postfix) with ESMTPS id 2D52CC21C27\n\tfor <u-boot@lists.denx.de>; Fri,  1 Sep 2017 03:07:04 +0000 (UTC)","by mail-wm0-f67.google.com with SMTP id u26so1264511wma.5\n\tfor <u-boot@lists.denx.de>; Thu, 31 Aug 2017 20:07:04 -0700 (PDT)","by 10.223.135.121 with HTTP; Thu, 31 Aug 2017 20:07:03 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-0.0 required=5.0 tests=FREEMAIL_FROM,\n\tRCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,\n\tT_DKIM_INVALID\n\tautolearn=unavailable autolearn_force=no version=3.4.0","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:in-reply-to:references:from:date:message-id:subject:to\n\t:cc; bh=Lg1eQbN4Rek4moT8jw9WYdnowY3X3YLdLKAUcjvdfxc=;\n\tb=PqyMDYSqsW4coa9/Xngh4UZQEgcxITlndEw/lFgSJm7k1MGiKgjLKkjZg+QA4l41eD\n\tLBujBhVE9mhV5CN0fDWK02o4z3p8apqiZkXqf36BYf9uk1q2JhwiF6TeApxh6xi42dP4\n\tI2DGRu3gCpPjfPr3GiMpm7McinQS6Rw3mqxQd/R9xRlNrCWlmj34fHoZpfxzOQiKDaLK\n\tLTmIxttk0gEmM3j1AyiOjojYa5/AY6/lt7zFHn94IJlrCM2LTBxo+V2Xi3UrTQVTAsJj\n\tdU3wsZYh+DLZV00de8i9PBAZfxji9X3pYsY3Ku0kScdviw+aNCTtEXk57KMjlER/ytMe\n\tMntQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=Lg1eQbN4Rek4moT8jw9WYdnowY3X3YLdLKAUcjvdfxc=;\n\tb=hsLCqtkAN5FHp+ok4a2gAjiYIlQ6crxT/iYvcuVa9uzV77QfAFJeb9GqOFwcahMBv2\n\t1nDnOSE3/kgQ6RCpbPMdxm4gaX/3euOxrSyG/zmJXcpTr2rgRRFGNJxtDr2wKnu/ZqAE\n\tNOhJgFQ7ohfA9NtOFq5rTmZ8/QYIHgtBWt2zfLH58V87sbYUrZFsoHpSX4rMTnCtDt5g\n\t8fyyWq6aIoVr+KIwFYrIU01hp214bwNQG/i2XNTSCI82BBhSowbwdwKY+kLW6VoYp4R8\n\t0cK4mdPE84l9Y+hEmCpI7cveIpsh0Xb/p4gh6GaTqH5671xCSz7/M9a6QRT91cX/l+Lb\n\tBe5A==","X-Gm-Message-State":"AHPjjUhmo6CSbx4eb1hoQ+kepmer/odO0BGvkTo1brSjhWlG995WF9Ad\n\tu7lL4q+lgZa2PLgd6yF0xxO7ChRn7w==","X-Google-Smtp-Source":"ADKCNb6QEg6Q+viK3oBegWl8NtUxSjNrw4FKFVMApAW4kNouFJI2ojlAYdreGtcBqgD68umixOTVzovgV0AzN+pc3VY=","X-Received":"by 10.28.141.196 with SMTP id p187mr148400wmd.115.1504235223717; \n\tThu, 31 Aug 2017 20:07:03 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<60561c6d-b9b8-ee3c-658f-8e82b7e4fbb8@gmail.com>","References":"<20170830083135.9183-1-tuomas.tynkkynen@iki.fi>\n\t<20170830083135.9183-3-tuomas.tynkkynen@iki.fi>\n\t<CAEUhbmWNWc_SfMDpOfB0x-XCoq=5BCDCSyMqdXBgagSwGZBeqg@mail.gmail.com>\n\t<60561c6d-b9b8-ee3c-658f-8e82b7e4fbb8@gmail.com>","From":"Bin Meng <bmeng.cn@gmail.com>","Date":"Fri, 1 Sep 2017 11:07:03 +0800","Message-ID":"<CAEUhbmVf97zz5MgKZr4O5bvCJZ6skiM50+5iA3oJ0MLOxJk0mw@mail.gmail.com>","To":"Tuomas Tynkkynen <dezgeg@gmail.com>","Cc":"Tom Rini <trini@konsulko.com>, U-Boot Mailing List <u-boot@lists.denx.de>","Subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"}},{"id":1761573,"web_url":"http://patchwork.ozlabs.org/comment/1761573/","msgid":"<60561c6d-b9b8-ee3c-658f-8e82b7e4fbb8@gmail.com>","list_archive_url":null,"date":"2017-08-31T21:56:55","subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","submitter":{"id":72276,"url":"http://patchwork.ozlabs.org/api/people/72276/","name":"Tuomas Tynkkynen","email":"dezgeg@gmail.com"},"content":"Hi,\n\nOn 08/31/2017 09:55 AM, Bin Meng wrote:\n> Hi Tuomas,\n> \n> On Wed, Aug 30, 2017 at 4:31 PM, Tuomas Tynkkynen\n> <tuomas.tynkkynen@iki.fi> wrote:\n>> This board builds an U-Boot binary that is bootable with QEMU's 'virt'\n>> machine on ARM. The minimal QEMU command line is:\n>>\n>>      qemu-system-arm -machine virt,highmem=off -bios u-boot.bin\n>>\n>> (Note that the 'highmem=off' parameter to the 'virt' machine is required for\n>> PCI to work in U-Boot.) This command line enables the following:\n>>      - u-boot.bin loaded and executing in the emulated flash at address 0x0\n>>      - A generated device tree blob placed at the start of RAM\n>>      - A freely configurable amount of RAM, described by the DTB\n>>      - A PL011 serial port, discoverable via the DTB\n>>      - An ARMv7 architected timer\n>>      - PSCI for rebooting the system\n>>      - A generic ECAM-based PCI host controller, discoverable via the DTB\n>>\n>> Additionally, QEMU allows plugging a bunch of useful peripherals to the PCI bus.\n>> The following ones are supported by both U-Boot and Linux:\n>>\n>> - To enable a Serial ATA disk via an Intel ICH9 AHCI controller, pass e.g.:\n>>      -drive if=none,file=disk.img,id=mydisk -device ich9-ahci,id=ahci -device ide-drive,drive=mydisk,bus=ahci.0\n>> - To enable an Intel E1000 network adapter, pass e.g.:\n>>      -net nic,model=e1000 -net user\n>> - To add an EHCI-compliant USB host controller, pass e.g.:\n>>      -device usb-ehci,id=ehci\n> \n> Can we enable the NVMe driver (CONFIG_NVME) here?\n> \n\nYes, 'nvme scan' and 'nvme list' it appear to work. I'll enable it.\nThere is a bunch of spew of this form though:\n\nCACHE: Misaligned operation at range [bef5d000, bef5d020]\n\n\n>>\n>> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>\n>> ---\n>>   arch/arm/Kconfig           | 10 ++++++++\n>>   arch/arm/mach-qemu/Kconfig |  9 +++++++\n>>   board/qemu-arm/Makefile    |  5 ++++\n>>   board/qemu-arm/qemu-arm.c  | 35 ++++++++++++++++++++++++++\n>>   configs/qemu_arm_defconfig | 27 ++++++++++++++++++++\n>>   include/configs/qemu-arm.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++\n>>   6 files changed, 149 insertions(+)\n>>   create mode 100644 arch/arm/mach-qemu/Kconfig\n>>   create mode 100644 board/qemu-arm/Makefile\n>>   create mode 100644 board/qemu-arm/qemu-arm.c\n>>   create mode 100644 configs/qemu_arm_defconfig\n>>   create mode 100644 include/configs/qemu-arm.h\n>>\n>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig\n>> index 53d0831935..0d01ba1b73 100644\n>> --- a/arch/arm/Kconfig\n>> +++ b/arch/arm/Kconfig\n>> @@ -630,6 +630,14 @@ config ARCH_MX5\n>>          select CPU_V7\n>>          select BOARD_EARLY_INIT_F\n>>\n>> +config ARCH_QEMU\n>> +       bool \"QEMU Virtual Platform\"\n>> +       select CPU_V7\n>> +       select ARCH_SUPPORT_PSCI\n>> +       select DM\n>> +       select DM_SERIAL\n>> +       select OF_CONTROL\n>> +\n>>   config ARCH_RMOBILE\n>>          bool \"Renesas ARM SoCs\"\n>>          select DM\n>> @@ -1149,6 +1157,8 @@ source \"arch/arm/mach-stm32/Kconfig\"\n>>\n>>   source \"arch/arm/mach-sunxi/Kconfig\"\n>>\n>> +source \"arch/arm/mach-qemu/Kconfig\"\n>> +\n> \n> Can you insert this by following alphabetical order?\n> \n\nOops, yes of course.\n\n>>   source \"arch/arm/mach-tegra/Kconfig\"\n>>\n>>   source \"arch/arm/mach-uniphier/Kconfig\"\n>> diff --git a/arch/arm/mach-qemu/Kconfig b/arch/arm/mach-qemu/Kconfig\n>> new file mode 100644\n>> index 0000000000..89d2a36719\n>> --- /dev/null\n>> +++ b/arch/arm/mach-qemu/Kconfig\n>> @@ -0,0 +1,9 @@\n>> +if ARCH_QEMU\n>> +\n>> +config SYS_BOARD\n>> +       default \"qemu-arm\"\n>> +\n>> +config SYS_CONFIG_NAME\n>> +       default \"qemu-arm\"\n>> +\n>> +endif\n>> diff --git a/board/qemu-arm/Makefile b/board/qemu-arm/Makefile\n>> new file mode 100644\n>> index 0000000000..3e9907d983\n>> --- /dev/null\n>> +++ b/board/qemu-arm/Makefile\n> \n> Can this new board be put into the board/emulation/qemu-arm directory?\n> Since qemu-x86 is put there.\n> \n\nSure. There is still qemu-mips directly under board/ though.\n\n>> @@ -0,0 +1,5 @@\n>> +#\n>> +# SPDX-License-Identifier:     GPL-2.0\n>> +#\n>> +\n>> +obj-y  += qemu-arm.o\n>> diff --git a/board/qemu-arm/qemu-arm.c b/board/qemu-arm/qemu-arm.c\n>> new file mode 100644\n>> index 0000000000..90d7badbf4\n>> --- /dev/null\n>> +++ b/board/qemu-arm/qemu-arm.c\n>> @@ -0,0 +1,35 @@\n>> +/*\n>> + * Copyright (c) 2017 Tuomas Tynkkynen\n>> + *\n>> + * SPDX-License-Identifier:    GPL-2.0+\n>> + */\n>> +#include <common.h>\n>> +#include <fdtdec.h>\n>> +\n>> +DECLARE_GLOBAL_DATA_PTR;\n> \n> This is not needed as gd is not referenced in this file.\n> \n\nNow removed.\n\nThank you for the review.","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"og4CQLq0\"; dkim-atps=neutral"],"Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkFzz0nM1z9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 20:37:19 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid CA7D4C21EDD; Fri,  1 Sep 2017 10:35:58 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id B1984C21EE9;\n\tFri,  1 Sep 2017 10:35:18 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid E7F4BC21DAA; Thu, 31 Aug 2017 21:56:58 +0000 (UTC)","from mail-lf0-f66.google.com (mail-lf0-f66.google.com\n\t[209.85.215.66])\n\tby lists.denx.de (Postfix) with ESMTPS id 62D09C21D7A\n\tfor <u-boot@lists.denx.de>; Thu, 31 Aug 2017 21:56:58 +0000 (UTC)","by mail-lf0-f66.google.com with SMTP id y15so532825lfd.0\n\tfor <u-boot@lists.denx.de>; Thu, 31 Aug 2017 14:56:58 -0700 (PDT)","from [89.27.102.67] (89-27-102-67.bb.dnainternet.fi.\n\t[89.27.102.67]) by smtp.gmail.com with ESMTPSA id\n\t22sm160329ljv.17.2017.08.31.14.56.56\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 31 Aug 2017 14:56:56 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-0.0 required=5.0 tests=FREEMAIL_FROM,\n\tRCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,\n\tT_DKIM_INVALID\n\tautolearn=unavailable autolearn_force=no version=3.4.0","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=subject:to:cc:references:from:message-id:date:user-agent\n\t:mime-version:in-reply-to:content-language:content-transfer-encoding; \n\tbh=BXI7Qgc2fXrXvxRauntHRHNO7s9hFy1ZGbZDG1tXXE0=;\n\tb=og4CQLq01CCnOa2xv9kjR1DKqiX8ITIj6m3zZBeBOksB8NGAZijSH0t2JR2TaK7f6h\n\tmALLQG7Mb/5EKFwRGhUAHdxKx/gnR3AK/Km5T7uCPjlzUPaD44MNJsgH4T2n3WfFOtCv\n\tI7wfa+SFccyWE1w8/9UiGhjvjNeIgfFTziFo0oESBXBHopFzuySUACyYlQdB7q7uoU3j\n\tnE+tPPe+qcYP9gZyt3ufPabITSSb8LxY5hVCpnO336GWmx/ONuP8G5XoQTo/AQyoKt3u\n\tgr0aEHUcnLM4/Wz5HZL8IKwqiIB93JEQV3WkUE+pe0HBEYciSRA+sQTxSbddAZMGgnQ9\n\tpiZw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:cc:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=BXI7Qgc2fXrXvxRauntHRHNO7s9hFy1ZGbZDG1tXXE0=;\n\tb=SlDsn8j3g+ZoFA3zSqS7/wMBRnSWpB19LvoQYnJGpgdzjWEKRgThlmrDnBtZ6oxhij\n\tj2cAv2FRYhagwaasVwJCqSx5NitpIISaBOta70s8JxOSHrw5Q1qlQA5cLMUOfpWVifTh\n\tq6PbScMp+GedA3SgQUe+wmZNSIz6Gs66Xc70Bua1Fqoxyda3Fb/IucBb5S9TkGspmeni\n\tQo6R9hxa/nRkVGf1ru8anLR7cPURgHkThKQvTzStBId+tugrnAtIZWmksehSO+eew4Op\n\t3bbuZrP0ftEIvWceMSXJK6EVCpFrxRlxqWs7NlSTbddG8OSEsQliTvNUEosI9L9pEZ8F\n\tbUlQ==","X-Gm-Message-State":"AHPjjUguQl5yfGb/8FJzw/7qnUIbrG6XuZ5BCF+z6CI0mhEo961YJNjm\n\tL/UiEM5o0lqgCQ==","X-Google-Smtp-Source":"ADKCNb4Tofyoftjrrrqm9apIvE0tAvHQrTeCtuDecS6OnONyWWxiCYzB+y3V7GTU/CdqOd229JnWSQ==","X-Received":"by 10.25.18.77 with SMTP id h74mr2300708lfi.221.1504216617656;\n\tThu, 31 Aug 2017 14:56:57 -0700 (PDT)","To":"Bin Meng <bmeng.cn@gmail.com>, Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>","References":"<20170830083135.9183-1-tuomas.tynkkynen@iki.fi>\n\t<20170830083135.9183-3-tuomas.tynkkynen@iki.fi>\n\t<CAEUhbmWNWc_SfMDpOfB0x-XCoq=5BCDCSyMqdXBgagSwGZBeqg@mail.gmail.com>","From":"Tuomas Tynkkynen <dezgeg@gmail.com>","Message-ID":"<60561c6d-b9b8-ee3c-658f-8e82b7e4fbb8@gmail.com>","Date":"Fri, 1 Sep 2017 00:56:55 +0300","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.1.0","MIME-Version":"1.0","In-Reply-To":"<CAEUhbmWNWc_SfMDpOfB0x-XCoq=5BCDCSyMqdXBgagSwGZBeqg@mail.gmail.com>","Content-Language":"en-US","X-Mailman-Approved-At":"Fri, 01 Sep 2017 10:35:15 +0000","Cc":"U-Boot Mailing List <u-boot@lists.denx.de>, Tom Rini <trini@konsulko.com>","Subject":"Re: [U-Boot] [PATCH 2/2] ARM: Add a new arch + board for QEMU's\n\t'virt' machine","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"}}]