Philippe Mathieu-Daudé <phi...@redhat.com> writes:

> On 3/7/19 2:03 PM, Markus Armbruster wrote:
>> Machine "sam460ex" maps its flash memory at address 0xFFF00000.  When
>> no image is supplied, its size is 1MiB (0x100000), and 512KiB of ROM
>> get mapped on top of its second half.  Else, it's the size of the
>> image rounded up to the next multiple of 64KiB.
>> 
>> The rounding is actually useless: pflash_cfi01_realize() fails with
>> "failed to read the initial flash content" unless it's a no-op.
>> 
>> I have no idea what happens when the pflash's size exceeds 1MiB.
>> Useful outcomes seem unlikely.
>
> You now have! [*] "Hardwiring address lines leaves part of the hardware
> unaddressable." Anything bigger than 1MiB mapped at 0xFFF00000 only has
> the first MiB addressable. IOW anything above 1MiB is unaddressable, but
> you still can map a such bigger flash.
>
> [*] https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg01380.html

Well, that's what would happen with real hardware.  But this device
model doesn't actually model address lines.  It simply asks
pflash_cfi01_register() to map blk_getlength() bytes at the base
address.  If you ask it to map gigabytes, it'll happily do so (as long
as malloc plays along).

Reply via email to