|
@@ -185,6 +185,8 @@
|
|
|
#define MSG_REGULAR 1
|
|
|
#define MSG_RETRY 2
|
|
|
|
|
|
+#define BAU_DESC_QUALIFIER 0x534749
|
|
|
+
|
|
|
enum uv_bau_version {
|
|
|
UV_BAU_V1 = 1,
|
|
|
UV_BAU_V2,
|
|
@@ -229,20 +231,32 @@ struct bau_local_cpumask {
|
|
|
* the s/w ack bit vector ]
|
|
|
*/
|
|
|
|
|
|
-/*
|
|
|
- * The payload is software-defined for INTD transactions
|
|
|
+/**
|
|
|
+ * struct uv1_2_3_bau_msg_payload - defines payload for INTD transactions
|
|
|
+ * @address: Signifies a page or all TLB's of the cpu
|
|
|
+ * @sending_cpu: CPU from which the message originates
|
|
|
+ * @acknowledge_count: CPUs on the destination Hub that received the interrupt
|
|
|
*/
|
|
|
-struct bau_msg_payload {
|
|
|
- unsigned long address; /* signifies a page or all
|
|
|
- TLB's of the cpu */
|
|
|
- /* 64 bits */
|
|
|
- unsigned short sending_cpu; /* filled in by sender */
|
|
|
- /* 16 bits */
|
|
|
- unsigned short acknowledge_count; /* filled in by destination */
|
|
|
- /* 16 bits */
|
|
|
- unsigned int reserved1:32; /* not usable */
|
|
|
+struct uv1_2_3_bau_msg_payload {
|
|
|
+ u64 address;
|
|
|
+ u16 sending_cpu;
|
|
|
+ u16 acknowledge_count;
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * struct uv4_bau_msg_payload - defines payload for INTD transactions
|
|
|
+ * @address: Signifies a page or all TLB's of the cpu
|
|
|
+ * @sending_cpu: CPU from which the message originates
|
|
|
+ * @acknowledge_count: CPUs on the destination Hub that received the interrupt
|
|
|
+ * @qualifier: Set by source to verify origin of INTD broadcast
|
|
|
+ */
|
|
|
+struct uv4_bau_msg_payload {
|
|
|
+ u64 address;
|
|
|
+ u16 sending_cpu;
|
|
|
+ u16 acknowledge_count;
|
|
|
+ u32 reserved:8;
|
|
|
+ u32 qualifier:24;
|
|
|
+};
|
|
|
|
|
|
/*
|
|
|
* UV1 Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
|
|
@@ -418,7 +432,10 @@ struct bau_desc {
|
|
|
struct uv2_3_bau_msg_header uv2_3_hdr;
|
|
|
} header;
|
|
|
|
|
|
- struct bau_msg_payload payload;
|
|
|
+ union bau_payload_header {
|
|
|
+ struct uv1_2_3_bau_msg_payload uv1_2_3;
|
|
|
+ struct uv4_bau_msg_payload uv4;
|
|
|
+ } payload;
|
|
|
};
|
|
|
/* UV1:
|
|
|
* -payload-- ---------header------
|