1fc719d77SAndreas Färber /* 2fc719d77SAndreas Färber * Cortex-A9MPCore Snoop Control Unit (SCU) emulation. 3fc719d77SAndreas Färber * 4fc719d77SAndreas Färber * Copyright (c) 2009 CodeSourcery. 5fc719d77SAndreas Färber * Copyright (c) 2011 Linaro Limited. 6fc719d77SAndreas Färber * Written by Paul Brook, Peter Maydell. 7fc719d77SAndreas Färber * 8fc719d77SAndreas Färber * This code is licensed under the GPL. 9fc719d77SAndreas Färber */ 10fc719d77SAndreas Färber #ifndef HW_MISC_A9SCU_H 11fc719d77SAndreas Färber #define HW_MISC_A9SCU_H 12fc719d77SAndreas Färber 13fc719d77SAndreas Färber #include "hw/sysbus.h" 14*db1015e9SEduardo Habkost #include "qom/object.h" 15fc719d77SAndreas Färber 16fc719d77SAndreas Färber /* A9MP private memory region. */ 17fc719d77SAndreas Färber 18*db1015e9SEduardo Habkost struct A9SCUState { 19fc719d77SAndreas Färber /*< private >*/ 20fc719d77SAndreas Färber SysBusDevice parent_obj; 21fc719d77SAndreas Färber /*< public >*/ 22fc719d77SAndreas Färber 23fc719d77SAndreas Färber MemoryRegion iomem; 24fc719d77SAndreas Färber uint32_t control; 25fc719d77SAndreas Färber uint32_t status; 26fc719d77SAndreas Färber uint32_t num_cpu; 27*db1015e9SEduardo Habkost }; 28*db1015e9SEduardo Habkost typedef struct A9SCUState A9SCUState; 29fc719d77SAndreas Färber 30fc719d77SAndreas Färber #define TYPE_A9_SCU "a9-scu" 31fc719d77SAndreas Färber #define A9_SCU(obj) OBJECT_CHECK(A9SCUState, (obj), TYPE_A9_SCU) 32fc719d77SAndreas Färber 33fc719d77SAndreas Färber #endif 34