diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 2580ab37b6..7c13881885 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -740,9 +740,9 @@ static MemTxResult virt_iocsr_misc_write(void *opaque, hwaddr addr, lvms->misc_status |= BIT_ULL(IOCSRM_DMSI_EN); } - features = address_space_ldl(&lvms->as_iocsr, - EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, - attrs, NULL); + features = address_space_ldl_le(&lvms->as_iocsr, + EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, + attrs, NULL); if (val & BIT_ULL(IOCSRM_EXTIOI_EN)) { features |= BIT(EXTIOI_ENABLE); } @@ -750,9 +750,9 @@ static MemTxResult virt_iocsr_misc_write(void *opaque, hwaddr addr, features |= BIT(EXTIOI_ENABLE_INT_ENCODE); } - address_space_stl(&lvms->as_iocsr, - EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, - features, attrs, NULL); + address_space_stl_le(&lvms->as_iocsr, + EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, + features, attrs, NULL); break; default: g_assert_not_reached(); @@ -798,9 +798,9 @@ static MemTxResult virt_iocsr_misc_read(void *opaque, hwaddr addr, break; } - features = address_space_ldl(&lvms->as_iocsr, - EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, - attrs, NULL); + features = address_space_ldl_le(&lvms->as_iocsr, + EXTIOI_VIRT_BASE + EXTIOI_VIRT_CONFIG, + attrs, NULL); if (features & BIT(EXTIOI_ENABLE)) { ret |= BIT_ULL(IOCSRM_EXTIOI_EN); }