提交 330afe05 编写于 作者: A Andrew Jones 提交者: Peter Maydell

hw/arm/virt-acpi-build: add all missing cpu_to_le's

Signed-off-by: NAndrew Jones <drjones@redhat.com>
Message-id: 20170102200153.28864-2-drjones@redhat.com
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
上级 156bc9a5
...@@ -542,17 +542,18 @@ build_gtdt(GArray *table_data, BIOSLinker *linker) ...@@ -542,17 +542,18 @@ build_gtdt(GArray *table_data, BIOSLinker *linker)
gtdt = acpi_data_push(table_data, sizeof *gtdt); gtdt = acpi_data_push(table_data, sizeof *gtdt);
/* The interrupt values are the same with the device tree when adding 16 */ /* The interrupt values are the same with the device tree when adding 16 */
gtdt->secure_el1_interrupt = ARCH_TIMER_S_EL1_IRQ + 16; gtdt->secure_el1_interrupt = cpu_to_le32(ARCH_TIMER_S_EL1_IRQ + 16);
gtdt->secure_el1_flags = ACPI_EDGE_SENSITIVE; gtdt->secure_el1_flags = cpu_to_le32(ACPI_EDGE_SENSITIVE);
gtdt->non_secure_el1_interrupt = ARCH_TIMER_NS_EL1_IRQ + 16; gtdt->non_secure_el1_interrupt = cpu_to_le32(ARCH_TIMER_NS_EL1_IRQ + 16);
gtdt->non_secure_el1_flags = ACPI_EDGE_SENSITIVE | ACPI_GTDT_ALWAYS_ON; gtdt->non_secure_el1_flags = cpu_to_le32(ACPI_EDGE_SENSITIVE |
ACPI_GTDT_ALWAYS_ON);
gtdt->virtual_timer_interrupt = ARCH_TIMER_VIRT_IRQ + 16; gtdt->virtual_timer_interrupt = cpu_to_le32(ARCH_TIMER_VIRT_IRQ + 16);
gtdt->virtual_timer_flags = ACPI_EDGE_SENSITIVE; gtdt->virtual_timer_flags = cpu_to_le32(ACPI_EDGE_SENSITIVE);
gtdt->non_secure_el2_interrupt = ARCH_TIMER_NS_EL2_IRQ + 16; gtdt->non_secure_el2_interrupt = cpu_to_le32(ARCH_TIMER_NS_EL2_IRQ + 16);
gtdt->non_secure_el2_flags = ACPI_EDGE_SENSITIVE; gtdt->non_secure_el2_flags = cpu_to_le32(ACPI_EDGE_SENSITIVE);
build_header(linker, table_data, build_header(linker, table_data,
(void *)(table_data->data + gtdt_start), "GTDT", (void *)(table_data->data + gtdt_start), "GTDT",
...@@ -576,7 +577,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) ...@@ -576,7 +577,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info)
gicd = acpi_data_push(table_data, sizeof *gicd); gicd = acpi_data_push(table_data, sizeof *gicd);
gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR; gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR;
gicd->length = sizeof(*gicd); gicd->length = sizeof(*gicd);
gicd->base_address = memmap[VIRT_GIC_DIST].base; gicd->base_address = cpu_to_le64(memmap[VIRT_GIC_DIST].base);
gicd->version = guest_info->gic_version; gicd->version = guest_info->gic_version;
for (i = 0; i < guest_info->smp_cpus; i++) { for (i = 0; i < guest_info->smp_cpus; i++) {
...@@ -587,11 +588,11 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) ...@@ -587,11 +588,11 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info)
gicc->type = ACPI_APIC_GENERIC_INTERRUPT; gicc->type = ACPI_APIC_GENERIC_INTERRUPT;
gicc->length = sizeof(*gicc); gicc->length = sizeof(*gicc);
if (guest_info->gic_version == 2) { if (guest_info->gic_version == 2) {
gicc->base_address = memmap[VIRT_GIC_CPU].base; gicc->base_address = cpu_to_le64(memmap[VIRT_GIC_CPU].base);
} }
gicc->cpu_interface_number = i; gicc->cpu_interface_number = cpu_to_le32(i);
gicc->arm_mpidr = armcpu->mp_affinity; gicc->arm_mpidr = cpu_to_le64(armcpu->mp_affinity);
gicc->uid = i; gicc->uid = cpu_to_le32(i);
gicc->flags = cpu_to_le32(ACPI_GICC_ENABLED); gicc->flags = cpu_to_le32(ACPI_GICC_ENABLED);
if (arm_feature(&armcpu->env, ARM_FEATURE_PMU)) { if (arm_feature(&armcpu->env, ARM_FEATURE_PMU)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册