From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: BALATON Zoltan <balaton@eik.bme.hu>, qemu-devel@nongnu.org
Cc: Huacai Chen <zltjiangshi@gmail.com>,
Aleksandar Markovic <amarkovic@wavecomp.com>,
Aurelien Jarno <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH 3/4] mips_fulong2e: Dynamically generate SPD EEPROM data
Date: Tue, 12 Feb 2019 01:00:23 +0100 [thread overview]
Message-ID: <270f8d3d-884a-ec19-fabc-4b6a2867d48f@redhat.com> (raw)
In-Reply-To: <c86280648f23e89d6a864e4ab72912429c6277f2.1549857716.git.balaton@eik.bme.hu>
On 2/11/19 5:01 AM, BALATON Zoltan wrote:
> The machine comes with 256M memory module by default but it's
> upgradable so it could have different memory size. There was a TODO
> comment to replace static SPD EEPROM data with dynamically generated
> one to support this. Now that we have a function for that, it's easy
> to do. Although this would allow larger RAM sizes, the peculiar memory
> map of the machine may need some special handling to map it as low and
> high memory. Because I don't know what the correct place would be for
> highmem, I've left memory size fixed at 256M for now and TODO is moved
> there instead.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> hw/mips/mips_fulong2e.c | 31 +++++++++++++------------------
> 1 file changed, 13 insertions(+), 18 deletions(-)
>
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index 10e6ed585a..eec6fd02c8 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -214,20 +214,6 @@ static void main_cpu_reset(void *opaque)
> }
> }
>
> -static const uint8_t eeprom_spd[0x80] = {
> - 0x80,0x08,0x07,0x0d,0x09,0x02,0x40,0x00,0x04,0x70,
> - 0x70,0x00,0x82,0x10,0x00,0x01,0x0e,0x04,0x0c,0x01,
> - 0x02,0x20,0x80,0x75,0x70,0x00,0x00,0x50,0x3c,0x50,
> - 0x2d,0x20,0xb0,0xb0,0x50,0x50,0x00,0x00,0x00,0x00,
> - 0x00,0x41,0x48,0x3c,0x32,0x75,0x00,0x00,0x00,0x00,
> - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
> - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
> - 0x00,0x00,0x00,0x9c,0x7b,0x07,0x00,0x00,0x00,0x00,
> - 0x00,0x00,0x00,0x00,0x48,0x42,0x35,0x34,0x41,0x32,
> - 0x35,0x36,0x38,0x4b,0x4e,0x2d,0x41,0x37,0x35,0x42,
> - 0x20,0x30,0x20
> -};
> -
> static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
> I2CBus **i2c_bus, ISABus **p_isa_bus)
> {
> @@ -284,7 +270,6 @@ static void network_init (PCIBus *pci_bus)
>
> static void mips_fulong2e_init(MachineState *machine)
> {
> - ram_addr_t ram_size = machine->ram_size;
> const char *kernel_filename = machine->kernel_filename;
> const char *kernel_cmdline = machine->kernel_cmdline;
> const char *initrd_filename = machine->initrd_filename;
> @@ -292,7 +277,10 @@ static void mips_fulong2e_init(MachineState *machine)
> MemoryRegion *address_space_mem = get_system_memory();
> MemoryRegion *ram = g_new(MemoryRegion, 1);
> MemoryRegion *bios = g_new(MemoryRegion, 1);
> + ram_addr_t ram_size = machine->ram_size;
> long bios_size;
> + uint8_t *spd_data;
> + Error *err = NULL;
> int64_t kernel_entry;
> PCIBus *pci_bus;
> ISABus *isa_bus;
> @@ -306,7 +294,7 @@ static void mips_fulong2e_init(MachineState *machine)
>
> qemu_register_reset(main_cpu_reset, cpu);
>
> - /* fulong 2e has 256M ram. */
> + /* TODO: support more than 256M RAM as highmem */
> ram_size = 256 * MiB;
>
> /* allocate RAM */
> @@ -359,8 +347,14 @@ static void mips_fulong2e_init(MachineState *machine)
> vt82c686b_southbridge_init(pci_bus, FULONG2E_VIA_SLOT, env->irq[5],
> &smbus, &isa_bus);
>
> - /* TODO: Populate SPD eeprom data. */
> - smbus_eeprom_init(smbus, 1, eeprom_spd, sizeof(eeprom_spd));
> + /* Populate SPD eeprom data */
> + spd_data = spd_data_generate(DDR, ram_size, &err);
> + if (err) {
> + warn_report_err(err);
> + }
> + if (spd_data) {
> + smbus_eeprom_init_one(smbus, 0x50, spd_data);
> + }
>
> mc146818_rtc_init(isa_bus, 2000, NULL);
>
> @@ -374,6 +368,7 @@ static void mips_fulong2e_machine_init(MachineClass *mc)
> mc->init = mips_fulong2e_init;
> mc->block_default_type = IF_IDE;
> mc->default_cpu_type = MIPS_CPU_TYPE_NAME("Loongson-2E");
> + mc->default_ram_size = 256 * MiB;
> }
>
> DEFINE_MACHINE("fulong2e", mips_fulong2e_machine_init)
>
next prev parent reply other threads:[~2019-02-12 0:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-11 4:01 [Qemu-devel] [PATCH 0/4] Misc MIPS fulong2e improvements BALATON Zoltan
2019-02-11 4:01 ` [Qemu-devel] [PATCH 2/4] mips_fulong2e: Fix bios flash size BALATON Zoltan
2019-02-11 23:59 ` Philippe Mathieu-Daudé
2019-02-11 4:01 ` [Qemu-devel] [PATCH 4/4] mips_fulong2e: Add on-board graphics chip BALATON Zoltan
2019-02-11 23:54 ` Philippe Mathieu-Daudé
2019-02-13 0:01 ` BALATON Zoltan
2019-02-11 4:01 ` [Qemu-devel] [PATCH 1/4] hw/pci-host/bonito.c: Add PCI mem region mapped at the correct address BALATON Zoltan
2019-02-12 0:18 ` Philippe Mathieu-Daudé
2019-02-11 4:01 ` [Qemu-devel] [PATCH 3/4] mips_fulong2e: Dynamically generate SPD EEPROM data BALATON Zoltan
2019-02-12 0:00 ` Philippe Mathieu-Daudé [this message]
2019-02-14 17:15 ` Aleksandar Markovic
2019-02-14 17:45 ` BALATON Zoltan
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=270f8d3d-884a-ec19-fabc-4b6a2867d48f@redhat.com \
--to=philmd@redhat.com \
--cc=amarkovic@wavecomp.com \
--cc=aurelien@aurel32.net \
--cc=balaton@eik.bme.hu \
--cc=qemu-devel@nongnu.org \
--cc=zltjiangshi@gmail.com \
/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).