qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Error handling while loading ROM


From: Ben Leslie
Subject: [Qemu-devel] Error handling while loading ROM
Date: Thu, 5 May 2011 18:10:22 +1000

Hi all,

I'm new to the list, so hopefully I'm not retracing old ground (I did
try to search the
archives, but maybe I missed something).

The problem I have is that when using the Stellarris ARMv7M target if I load an
ELF file as my kernel, and some of the ELF segments are outside the range of
memory, then things fail silently rather than raising any error.

I think it would be very useful if there was some indication of this
being an error,
rather than failing silently.

I'm not sure if this current behaviour is by design or simply an
oversight. Or just
as likely there is some bit of the design that I don't fully grok right now.

The problem code is in the cpu_physical_write_rom function:


        if ((pd & ~TARGET_PAGE_MASK) != IO_MEM_RAM &&
            (pd & ~TARGET_PAGE_MASK) != IO_MEM_ROM &&
            !(pd & IO_MEM_ROMD)) {
            /* do nothing */
        } else {
            unsigned long addr1;
            addr1 = (pd & TARGET_PAGE_MASK) + (addr & ~TARGET_PAGE_MASK);
            /* ROM/RAM case */
            ptr = qemu_get_ram_ptr(addr1);
            memcpy(ptr, buf, l);
        }

The 'do nothing' case is where I think it would be useful for some warning
to be made, or better yet, some error to be raises. Or possibly this function
could return an error to the caller (in this case rom_reset), and the caller
could then decide if printing an error is reasonable or not.

I'd appreciate any guidance on the best way to add some useful diagnostics
for this case.

Thanks,

Benno



reply via email to

[Prev in Thread] Current Thread [Next in Thread]