Lines Matching +full:mailbox +full:-

1 // SPDX-License-Identifier: GPL-2.0-only
21 struct parking_protocol_mailbox __iomem *mailbox; member
34 cpu_entry->mailbox_addr = p->parked_address; in acpi_set_mailbox_entry()
35 cpu_entry->version = p->parking_version; in acpi_set_mailbox_entry()
36 cpu_entry->gic_cpu_id = p->cpu_interface_number; in acpi_set_mailbox_entry()
43 return cpu_entry->mailbox_addr && cpu_entry->version; in acpi_parking_protocol_valid()
62 struct parking_protocol_mailbox __iomem *mailbox; in acpi_parking_protocol_cpu_boot() local
66 * Map mailbox memory with attribute device nGnRE (ie ioremap - in acpi_parking_protocol_cpu_boot()
71 * If the mailbox is mistakenly allocated in the linear mapping in acpi_parking_protocol_cpu_boot()
76 mailbox = ioremap(cpu_entry->mailbox_addr, sizeof(*mailbox)); in acpi_parking_protocol_cpu_boot()
77 if (!mailbox) in acpi_parking_protocol_cpu_boot()
78 return -EIO; in acpi_parking_protocol_cpu_boot()
80 cpu_id = readl_relaxed(&mailbox->cpu_id); in acpi_parking_protocol_cpu_boot()
82 * Check if firmware has set-up the mailbox entry properly in acpi_parking_protocol_cpu_boot()
86 iounmap(mailbox); in acpi_parking_protocol_cpu_boot()
87 return -ENXIO; in acpi_parking_protocol_cpu_boot()
91 * stash the mailbox address mapping to use it for further FW in acpi_parking_protocol_cpu_boot()
94 cpu_entry->mailbox = mailbox; in acpi_parking_protocol_cpu_boot()
98 * native endianness of the kernel. Therefore, any boot-loaders in acpi_parking_protocol_cpu_boot()
100 * Boot-Loader's endianness before jumping. in acpi_parking_protocol_cpu_boot()
103 &mailbox->entry_point); in acpi_parking_protocol_cpu_boot()
104 writel_relaxed(cpu_entry->gic_cpu_id, &mailbox->cpu_id); in acpi_parking_protocol_cpu_boot()
115 struct parking_protocol_mailbox __iomem *mailbox = cpu_entry->mailbox; in acpi_parking_protocol_cpu_postboot() local
118 entry_point = readq_relaxed(&mailbox->entry_point); in acpi_parking_protocol_cpu_postboot()
127 .name = "parking-protocol",