[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores
From: |
Max Filippov |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores |
Date: |
Sun, 27 Sep 2015 21:13:21 +0300 |
On Sun, Sep 27, 2015 at 8:38 PM, Peter Crosthwaite
<address@hidden> wrote:
> On Sun, Sep 27, 2015 at 10:16 AM, Max Filippov <address@hidden> wrote:
>> Cores with and without MMU have system RAM and ROM at different locations.
>> Also with noMMU cores system IO region is accessible through two physical
>> address ranges.
>>
>> Signed-off-by: Max Filippov <address@hidden>
>> ---
>> hw/xtensa/xtfpga.c | 49 +++++++++++++++++++++++++++++++++++++++++--------
>> 1 file changed, 41 insertions(+), 8 deletions(-)
>>
>> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
>> index d4b9afb..b53f40d 100644
>> --- a/hw/xtensa/xtfpga.c
>> +++ b/hw/xtensa/xtfpga.c
>> @@ -199,7 +199,29 @@ static void lx_init(const LxBoardDesc *board,
>> MachineState *machine)
>> const char *kernel_cmdline = qemu_opt_get(machine_opts, "append");
>> const char *dtb_filename = qemu_opt_get(machine_opts, "dtb");
>> const char *initrd_filename = qemu_opt_get(machine_opts, "initrd");
>> + const unsigned system_io_size = 224 * 1024 * 1024;
>> + bool mmu;
>
> You are indexing into an array of configs so it's really an int (or
> better, an enum).
Ok.
>> int n;
>
> Blank line.
Why?
>> + static const struct {
>> + hwaddr ram;
>> + hwaddr rom;
>> + hwaddr io[2];
>> + } base[2] = {
>> + {
>> + .ram = 0x60000000,
>> + .rom = 0x50000000,
>> + .io = {
>> + 0x70000000,
>> + 0x90000000,
>> + },
>> + }, {
>> + .ram = 0,
>> + .rom = 0xfe000000,
>> + .io = {
>> + 0xf0000000,
>> + },
>> + }
>> + };
>>
>> if (!cpu_model) {
>> cpu_model = XTENSA_DEFAULT_CPU_MODEL;
>> @@ -222,16 +244,24 @@ static void lx_init(const LxBoardDesc *board,
>> MachineState *machine)
>> cpu_reset(CPU(cpu));
>> }
>>
>> + mmu = xtensa_option_enabled(env->config, XTENSA_OPTION_MMU);
>
> This looks backwards, the board should be in charge of itself and the
> CPU config, rather than spying on the CPU setup to rewire the board.
Well, it's an FPGA board and all connections are a part of bitstream.
It's generated that way, I'm just following the specification here.
>> ram = g_malloc(sizeof(*ram));
>> memory_region_init_ram(ram, NULL, "lx60.dram", machine->ram_size,
>> &error_fatal);
>> vmstate_register_ram_global(ram);
>> - memory_region_add_subregion(system_memory, 0, ram);
>> + memory_region_add_subregion(system_memory, base[mmu].ram, ram);
>>
>> system_io = g_malloc(sizeof(*system_io));
>> memory_region_init_io(system_io, NULL, &lx60_io_ops, NULL, "lx60.io",
>> - 224 * 1024 * 1024);
>> - memory_region_add_subregion(system_memory, 0xf0000000, system_io);
>> + system_io_size);
>> + memory_region_add_subregion(system_memory, base[mmu].io[0], system_io);
>> + if (!mmu) {
>
> The boolean switch for whether the alias exists could go in the
> struct. That makes it more robust to add yet more configs in the
> future rather than iffery on the config index.
Ok.
--
Thanks.
-- Max
- Re: [Qemu-devel] [PATCH 2/3] target-xtensa: xtfpga: attach FLASH to system IO, (continued)
[Qemu-devel] [PATCH 1/3] pflash_cfi01: add pflash_cfi01_init, Max Filippov, 2015/09/27
[Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Max Filippov, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Peter Crosthwaite, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores,
Max Filippov <=
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Peter Crosthwaite, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Max Filippov, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Peter Crosthwaite, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Max Filippov, 2015/09/27
- Re: [Qemu-devel] [PATCH 3/3] target-xtensa: xtfpga: support noMMU cores, Peter Crosthwaite, 2015/09/27