From: Hinko Kocevar <hinkocevar@gmail.com>
To: qemu-devel@nongnu.org
Subject: Adding IO memory region to mipssim
Date: Fri, 10 Sep 2021 15:21:37 +0200 [thread overview]
Message-ID: <CACOP0z-956f0eBdv5wdfqWKT140_mSTW3GwJ1fQ5WEDATB=2Aw@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1299 bytes --]
I'm trying to add an I/O memory region to mipssim machine to emulate a MMIO
region used by the u-boot loaded as BIOS image. I can confirm that the
machine starts and loads the BIOS, starts execution but hangs due to
unhandled IO access as described below.
The region should be at 0xB8810000, of size 0x10000.
I've added these lines of code to mispsim.c mips_mipssim_init():
my_state *s = g_malloc0(sizeof(my_state));
memory_region_init_io(&s->mmio, NULL, &my_ops, s,
"mips_mipssim.foo", 0x10000);
memory_region_add_subregion(address_space_mem, 0xB8810000LL, &s->mmio);
All goes well, the machine starts, and I can see the newly added region in
qemu monitor info mtree output like so:
00000000b8810000-00000000b881ffff (prio 0, i/o): mips_mipssim.foo
With some tracing enabled I see this error:
Invalid access at addr 0x18810104, size 4, region '(null)', reason:
rejected
I know the u-boot is making request to 0xB8810104 and not 0x18810104. I
also can see 0xB8810104 address being handed to io_writex(), but mr_offset
becomes 0x18810104 here:
mr_offset = (iotlbentry->addr & TARGET_PAGE_MASK) + addr;
What is going on?
FWIW, I can place my emulated memory region at 0x18810104, but would like
to understand the behavior above.
Thanks!
//hinko
[-- Attachment #2: Type: text/html, Size: 1733 bytes --]
next reply other threads:[~2021-09-10 13:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-10 13:21 Hinko Kocevar [this message]
2021-09-10 15:30 ` Adding IO memory region to mipssim Philippe Mathieu-Daudé
2021-09-10 19:25 ` Hinko Kocevar
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='CACOP0z-956f0eBdv5wdfqWKT140_mSTW3GwJ1fQ5WEDATB=2Aw@mail.gmail.com' \
--to=hinkocevar@gmail.com \
--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).