qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Song Gao <gaosong@loongson.cn>, qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, maobibo@loongson.cn
Subject: Re: [PATCH v6 07/17] hw/loongarch: Init efi_initrd table
Date: Fri, 8 Mar 2024 09:36:10 +0100	[thread overview]
Message-ID: <1df3c991-ff91-47dd-a86e-3b2cf6918460@linaro.org> (raw)
In-Reply-To: <20240307164835.300412-8-gaosong@loongson.cn>

Hi Song,

On 7/3/24 17:48, Song Gao wrote:
> Signed-off-by: Song Gao <gaosong@loongson.cn>
> Message-Id: <20240301093839.663947-8-gaosong@loongson.cn>
> ---
>   hw/loongarch/boot.c         | 23 +++++++++++++++++++++--
>   include/hw/loongarch/boot.h |  9 +++++++++
>   2 files changed, 30 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c
> index 2896c1ea40..6126a37858 100644
> --- a/hw/loongarch/boot.c
> +++ b/hw/loongarch/boot.c
> @@ -15,6 +15,9 @@
>   #include "sysemu/reset.h"
>   #include "sysemu/qtest.h"
>   
> +ram_addr_t initrd_offset;
> +uint64_t initrd_size;

Where is that used?

>   static const unsigned int slave_boot_code[] = {
>                     /* Configure reset ebase.         */
>       0x0400302c,   /* csrwr      $r12,0xc            */
> @@ -94,6 +97,21 @@ static void init_efi_boot_memmap(struct efi_system_table *systab,
>       }
>   }
>   
> +static void init_efi_initrd_table(struct efi_system_table *systab,
> +                                  void *p, void *start)
> +{
> +    efi_guid_t tbl_guid = LINUX_EFI_INITRD_MEDIA_GUID;
> +    struct efi_initrd *initrd_table  = p;
> +
> +    /* efi_configuration_table 2 */
> +    guidcpy(&systab->tables[1].guid, &tbl_guid);
> +    systab->tables[1].table = (struct efi_configuration_table *)(p - start);
> +    systab->nr_tables = 2;
> +
> +    initrd_table->base = initrd_offset;
> +    initrd_table->size = initrd_size;
> +}
> +
>   static void init_systab(struct loongarch_boot_info *info, void *p, void *start)
>   {
>       void *bp_tables_start;
> @@ -117,6 +135,8 @@ static void init_systab(struct loongarch_boot_info *info, void *p, void *start)
>       init_efi_boot_memmap(systab, p, start);
>       p += ROUND_UP(sizeof(struct efi_boot_memmap) +
>                     sizeof(efi_memory_desc_t) * memmap_entries, 64);
> +    init_efi_initrd_table(systab, p, start);
> +    p += ROUND_UP(sizeof(struct efi_initrd), 64);
>   
>       systab->tables = (struct efi_configuration_table *)(bp_tables_start - start);
>   }
> @@ -138,8 +158,7 @@ static uint64_t cpu_loongarch_virt_to_phys(void *opaque, uint64_t addr)
>   
>   static int64_t load_kernel_info(struct loongarch_boot_info *info)
>   {
> -    uint64_t kernel_entry, kernel_low, kernel_high, initrd_size;
> -    ram_addr_t initrd_offset;
> +    uint64_t kernel_entry, kernel_low, kernel_high;
>       ssize_t kernel_size;
>   
>       kernel_size = load_elf(info->kernel_filename, NULL,
> diff --git a/include/hw/loongarch/boot.h b/include/hw/loongarch/boot.h
> index f71c693f43..ddcb279874 100644
> --- a/include/hw/loongarch/boot.h
> +++ b/include/hw/loongarch/boot.h
> @@ -30,6 +30,10 @@ typedef struct {
>           EFI_GUID(0x800f683f, 0xd08b, 0x423a,  0xa2, 0x93, \
>                    0x96, 0x5c, 0x3c, 0x6f, 0xe2, 0xb4)
>   
> +#define LINUX_EFI_INITRD_MEDIA_GUID \
> +        EFI_GUID(0x5568e427, 0x68fc, 0x4f3d,  0xac, 0x74, \
> +                 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68)
> +
>   struct efi_config_table {
>       efi_guid_t guid;
>       uint64_t *ptr;
> @@ -83,6 +87,11 @@ struct efi_boot_memmap {
>       efi_memory_desc_t map[32];
>   };
>   
> +struct efi_initrd {
> +    uint64_t base;
> +    uint64_t size;
> +};
> +
>   struct loongarch_boot_info {
>       uint64_t ram_size;
>       const char *kernel_filename;



  reply	other threads:[~2024-03-08  8:36 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-07 16:48 [PATCH v6 00/17] Add boot LoongArch elf kernel with FDT Song Gao
2024-03-07 16:48 ` [PATCH v6 01/17] hw/loongarch: Move boot fucntions to boot.c Song Gao
2024-03-08  8:18   ` maobibo
2024-03-08  8:31   ` Philippe Mathieu-Daudé
2024-03-07 16:48 ` [PATCH v6 02/17] hw/loongarch: Add load initrd Song Gao
2024-03-08  8:19   ` maobibo
2024-03-07 16:48 ` [PATCH v6 03/17] hw/loongarch: Add slave cpu boot_code Song Gao
2024-03-08  8:27   ` maobibo
2024-03-08  9:36     ` gaosong
2024-03-11  6:50       ` maobibo
2024-03-14  1:31         ` maobibo
2024-03-14  9:03           ` gaosong
2024-03-14  2:28   ` chen huacai
2024-03-14  9:04     ` gaosong
2024-03-07 16:48 ` [PATCH v6 04/17] hw/loongarch: Add init_cmdline Song Gao
2024-03-08  8:28   ` maobibo
2024-03-07 16:48 ` [PATCH v6 05/17] hw/loongarch: Init efi_system_table Song Gao
2024-03-08  8:29   ` maobibo
2024-03-08  8:33   ` Philippe Mathieu-Daudé
2024-03-07 16:48 ` [PATCH v6 06/17] hw/loongarch: Init efi_boot_memmap table Song Gao
2024-03-08  8:37   ` maobibo
2024-03-08 10:09     ` gaosong
2024-03-07 16:48 ` [PATCH v6 07/17] hw/loongarch: Init efi_initrd table Song Gao
2024-03-08  8:36   ` Philippe Mathieu-Daudé [this message]
2024-03-08  9:20     ` gaosong
2024-03-08  8:37   ` maobibo
2024-03-07 16:48 ` [PATCH v6 08/17] hw/loongarch: Init efi_fdt table Song Gao
2024-03-08  8:39   ` maobibo
2024-03-07 16:48 ` [PATCH v6 09/17] hw/loongarch: Fix fdt memory node wrong 'reg' Song Gao
2024-03-08  8:39   ` maobibo
2024-03-07 16:48 ` [PATCH v6 10/17] hw/loongarch: fdt adds cpu interrupt controller node Song Gao
2024-03-08  8:40   ` maobibo
2024-03-07 16:48 ` [PATCH v6 11/17] hw/loongarch: fdt adds Extend I/O Interrupt Controller Song Gao
2024-03-08  8:40   ` maobibo
2024-03-07 16:48 ` [PATCH v6 12/17] hw/loongarch: fdt adds pch_pic Controller Song Gao
2024-03-08  8:41   ` maobibo
2024-03-07 16:48 ` [PATCH v6 13/17] hw/loongarch: fdt adds pch_msi Controller Song Gao
2024-03-08  8:41   ` maobibo
2024-03-07 16:48 ` [PATCH v6 14/17] hw/loongarch: fdt adds pcie irq_map node Song Gao
2024-03-08  8:44   ` maobibo
2024-03-07 16:48 ` [PATCH v6 15/17] hw/loongarch: fdt remove unused irqchip node Song Gao
2024-03-08  8:44   ` maobibo
2024-03-07 16:48 ` [PATCH v6 16/17] hw/loongarch: Add cells missing from uart node Song Gao
2024-03-08  8:44   ` maobibo
2024-03-07 16:48 ` [PATCH v6 17/17] hw/loongarch: Add cells missing from rtc node Song Gao
2024-03-08  8:45   ` maobibo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1df3c991-ff91-47dd-a86e-3b2cf6918460@linaro.org \
    --to=philmd@linaro.org \
    --cc=gaosong@loongson.cn \
    --cc=maobibo@loongson.cn \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).