mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
hw/arm/exynos4210.c: convert chipid_and_omr to an mmio region
Exynos SoC was misusing memory_region_init_ram_ptr(): this interface can safely be used only for memory regions which size is a multiple of target page size. Change chipid_and_omr memory to an mmio region to fix this. Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com> Message-id: 1368199981-45292-2-git-send-email-i.mitsyanko@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
a50c0d6f72
commit
11a5e48249
@ -79,6 +79,28 @@
|
||||
static uint8_t chipid_and_omr[] = { 0x11, 0x02, 0x21, 0x43,
|
||||
0x09, 0x00, 0x00, 0x00 };
|
||||
|
||||
static uint64_t exynos4210_chipid_and_omr_read(void *opaque, hwaddr offset,
|
||||
unsigned size)
|
||||
{
|
||||
assert(offset < sizeof(chipid_and_omr));
|
||||
return chipid_and_omr[offset];
|
||||
}
|
||||
|
||||
static void exynos4210_chipid_and_omr_write(void *opaque, hwaddr offset,
|
||||
uint64_t value, unsigned size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static const MemoryRegionOps exynos4210_chipid_and_omr_ops = {
|
||||
.read = exynos4210_chipid_and_omr_read,
|
||||
.write = exynos4210_chipid_and_omr_write,
|
||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
||||
.impl = {
|
||||
.max_access_size = 1,
|
||||
}
|
||||
};
|
||||
|
||||
void exynos4210_write_secondary(ARMCPU *cpu,
|
||||
const struct arm_boot_info *info)
|
||||
{
|
||||
@ -219,9 +241,8 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
|
||||
/*** Memory ***/
|
||||
|
||||
/* Chip-ID and OMR */
|
||||
memory_region_init_ram_ptr(&s->chipid_mem, "exynos4210.chipid",
|
||||
sizeof(chipid_and_omr), chipid_and_omr);
|
||||
memory_region_set_readonly(&s->chipid_mem, true);
|
||||
memory_region_init_io(&s->chipid_mem, &exynos4210_chipid_and_omr_ops,
|
||||
NULL, "exynos4210.chipid", sizeof(chipid_and_omr));
|
||||
memory_region_add_subregion(system_mem, EXYNOS4210_CHIPID_ADDR,
|
||||
&s->chipid_mem);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user