Two hda_verb.h files: Add more comments.
[coreboot.git] / src / arch / i386 / include / arch / smp / mpspec.h
index 4ddee0d7c7013fedd804d1cbadcbdad1c27a4235..bc09f485d85879703fff31b31733e57877f4e2f0 100644 (file)
@@ -9,9 +9,9 @@
 
 /*
  * This tag identifies where the SMP configuration
- * information is. 
+ * information is.
  */
+
 #define SMP_MAGIC_IDENT        (('_'<<24)|('P'<<16)|('M'<<8)|'_')
 
 /*
@@ -31,6 +31,8 @@ struct intel_mp_floating
        unsigned char mpf_checksum;     /* Checksum (makes sum 0)       */
        unsigned char mpf_feature1;     /* Standard or configuration ?  */
        unsigned char mpf_feature2;     /* Bit7 set for IMCR|PIC        */
+#define MP_FEATURE_VIRTUALWIRE (1 << 7)
+#define MP_FEATURE_PIC         (0 << 7)
        unsigned char mpf_feature3;     /* Unused (0)                   */
        unsigned char mpf_feature4;     /* Unused (0)                   */
        unsigned char mpf_feature5;     /* Unused (0)                   */
@@ -70,7 +72,7 @@ struct mpc_config_processor
        unsigned char mpc_cpuflag;
 #define MPC_CPU_ENABLED                1       /* Processor is available */
 #define MPC_CPU_BOOTPROCESSOR  2       /* Processor is the BP */
-       unsigned long mpc_cpufeature;           
+       unsigned long mpc_cpufeature;
 #define MPC_CPU_STEPPING_MASK 0x0F
 #define MPC_CPU_MODEL_MASK     0xF0
 #define MPC_CPU_FAMILY_MASK    0xF00
@@ -138,7 +140,7 @@ struct mpc_config_lintsrc
        unsigned short mpc_irqflag;
        unsigned char mpc_srcbusid;
        unsigned char mpc_srcbusirq;
-       unsigned char mpc_destapic;     
+       unsigned char mpc_destapic;
 #define MP_APIC_ALL    0xFF
        unsigned char mpc_destapiclint;
 } __attribute__((packed));
@@ -209,7 +211,7 @@ struct mp_exten_compatibility_address_space {
 #define ADDRESS_RANGE_SUBTRACT 1
 #define ADDRESS_RANGE_ADD      0
        unsigned int  mpe_range_list;
-#define RANGE_LIST_IO_ISA      0       
+#define RANGE_LIST_IO_ISA      0
        /* X100 - X3FF
         * X500 - X7FF
         * X900 - XBFF
@@ -230,6 +232,9 @@ struct mp_exten_compatibility_address_space {
 /* Default local apic addr */
 #define LAPIC_ADDR 0xFEE00000
 
+void mptable_init(struct mp_config_table *mc, const char *productid,
+                 u32 lapic_addr);
+
 void *smp_next_mpc_entry(struct mp_config_table *mc);
 void *smp_next_mpe_entry(struct mp_config_table *mc);
 
@@ -238,10 +243,8 @@ void smp_write_processor(struct mp_config_table *mc,
        unsigned char cpuflag, unsigned int cpufeature,
        unsigned int featureflag);
 void smp_write_processors(struct mp_config_table *mc);
-void smp_write_bus(struct mp_config_table *mc,
-       unsigned char id, char *bustype);
 void smp_write_ioapic(struct mp_config_table *mc,
-       unsigned char id, unsigned char ver, 
+       unsigned char id, unsigned char ver,
        unsigned long apicaddr);
 void smp_write_intsrc(struct mp_config_table *mc,
        unsigned char irqtype, unsigned short irqflag,
@@ -267,9 +270,12 @@ void smp_write_compatibility_address_space(struct mp_config_table *mc,
        unsigned int range_list);
 unsigned char smp_compute_checksum(void *v, int len);
 void *smp_write_floating_table(unsigned long addr);
-void *smp_write_floating_table_physaddr(unsigned long addr, 
+void *smp_write_floating_table_physaddr(unsigned long addr,
                unsigned long mpf_physptr);
 unsigned long write_smp_table(unsigned long addr);
 
+void mptable_add_isa_interrupts(struct mp_config_table *mc, unsigned long bus_isa, unsigned long apicid, int external);
+void mptable_write_buses(struct mp_config_table *mc, int *max_pci_bus, int *isa_bus);
+
 #endif