1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * From coreboot file of the same name 4 * 5 * Copyright (C) 2010 coresystems GmbH 6 */ 7 8 #ifndef __ASM_IOAPIC_H 9 #define __ASM_IOAPIC_H 10 11 #define IO_APIC_ADDR 0xfec00000 12 13 /* Direct addressed register */ 14 #define IO_APIC_INDEX (IO_APIC_ADDR + 0x00) 15 #define IO_APIC_DATA (IO_APIC_ADDR + 0x10) 16 17 /* Indirect addressed register offset */ 18 #define IO_APIC_ID 0x00 19 #define IO_APIC_VER 0x01 20 21 /** 22 * io_apic_read() - Read I/O APIC register 23 * 24 * This routine reads I/O APIC indirect addressed register. 25 * 26 * @reg: address of indirect addressed register 27 * @return: register value to read 28 */ 29 u32 io_apic_read(u32 reg); 30 31 /** 32 * io_apic_write() - Write I/O APIC register 33 * 34 * This routine writes I/O APIC indirect addressed register. 35 * 36 * @reg: address of indirect addressed register 37 * @val: register value to write 38 */ 39 void io_apic_write(u32 reg, u32 val); 40 41 void io_apic_set_id(int ioapic_id); 42 43 #endif 44