Changeset d0780b4c in mainline


Ignore:
Timestamp:
2006-01-29T19:55:08Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
df09142f
Parents:
457d18a
Message:

ia32 SMP updates.
Update info about supported version of Bochs (bump the counter to 2.2.6).
Add Task Priority Register type and initialize this register to a known state.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/include/smp/apic.h

    r457d18a rd0780b4c  
    152152/* Task Priority Register */
    153153#define TPR             (0x080/sizeof(__u32))
    154 #define TPRClear        0xffffff00
     154union tpr {
     155        __u32 value;
     156        struct {
     157                unsigned pri_sc : 4;            /**< Task Priority Sub-Class. */
     158                unsigned pri : 4;               /**< Task Priority. */
     159        } __attribute__ ((packed));
     160};
     161typedef union tpr tpr_t;
    155162
    156163/** Spurious-Interrupt Vector Register. */
     
    159166        __u32 value;
    160167        struct {
    161                 __u8 vector;                    /**< Spurious Vector */
    162                 unsigned lapic_enabled : 1;     /**< APIC Software Enable/Disable */
    163                 unsigned focus_checking : 1;    /**< Focus Processor Checking */
     168                __u8 vector;                    /**< Spurious Vector. */
     169                unsigned lapic_enabled : 1;     /**< APIC Software Enable/Disable. */
     170                unsigned focus_checking : 1;    /**< Focus Processor Checking. */
    164171                unsigned : 22;                  /**< Reserved. */
    165172        } __attribute__ ((packed));
  • arch/ia32/src/smp/apic.c

    r457d18a rd0780b4c  
    4545 * Advanced Programmable Interrupt Controller for SMP systems.
    4646 * Tested on:
    47  *      Bochs 2.0.2 - Bochs 2.2.5 with 2-8 CPUs
     47 *      Bochs 2.0.2 - Bochs 2.2.6 with 2-8 CPUs
    4848 *      Simics 2.0.28 - Simics 2.2.19 2-15 CPUs
    4949 *      VMware Workstation 5.5 with 2 CPUs
     
    309309        lvt_error_t error;
    310310        lvt_lint_t lint;
     311        tpr_t tpr;
    311312        svr_t svr;
    312313        icr_t icr;
     
    331332        lint.masked = true;
    332333        l_apic[LVT_LINT1] = lint.value;
     334
     335        /* Task Priority Register initialization. */
     336        tpr.value = l_apic[TPR];
     337        tpr.pri_sc = 0;
     338        tpr.pri = 0;
     339        l_apic[TPR] = tpr.value;
    333340       
    334341        /* Spurious-Interrupt Vector Register initialization. */
     
    336343        svr.vector = VECTOR_APIC_SPUR;
    337344        svr.lapic_enabled = true;
     345        svr.focus_checking = true;
    338346        l_apic[SVR] = svr.value;
    339 
    340         l_apic[TPR] &= TPRClear;
    341347
    342348        if (CPU->arch.family >= 6)
  • doc/arch/amd64

    r457d18a rd0780b4c  
    1616
    1717SMP COMPATIBILITY
    18         o Bochs 2.2.1
     18        o Bochs 2.2.1 - 2.2.6
    1919                o 2x-8x AMD64 CPU
    2020        o Simics 2.2.19
  • doc/arch/ia32

    r457d18a rd0780b4c  
    1717
    1818SMP COMPATIBILITY
    19         o Bochs 2.0.2 - Bochs 2.2.5
     19        o Bochs 2.0.2 - Bochs 2.2.6
    2020                o 2x-8x 686 CPU
    2121        o Simics 2.0.28 - Simics 2.2.19
Note: See TracChangeset for help on using the changeset viewer.