1201_ht_bus0_dev0_fidvid_core.diff
https://openbios.org/roundup/linuxbios/issue41 Lord have mercy upon us. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2118 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
c2455dc0ce
commit
7ce8c54e2b
41 changed files with 1314 additions and 341 deletions
|
|
@ -1,14 +1,24 @@
|
|||
#ifndef CPU_AMD_DUALCORE_H
|
||||
#define CPU_AMD_DUALCORE_H
|
||||
|
||||
struct device;
|
||||
#if defined(__GNUC__)
|
||||
unsigned int read_nb_cfg_54(void);
|
||||
#endif
|
||||
|
||||
struct node_core_id {
|
||||
unsigned nodeid;
|
||||
unsigned coreid;
|
||||
};
|
||||
|
||||
void amd_sibling_init(struct device *cpu, struct node_core_id id);
|
||||
struct node_core_id get_node_core_id(void);
|
||||
#if defined(__GNUC__)
|
||||
// it can be used to get unitid and coreid it running only
|
||||
struct node_core_id get_node_core_id(unsigned int nb_cfg_54);
|
||||
#endif
|
||||
|
||||
#ifndef __ROMCC__
|
||||
struct device;
|
||||
unsigned get_apicid_base(unsigned ioapic_num);
|
||||
void amd_sibling_init(struct device *cpu);
|
||||
#endif
|
||||
|
||||
#endif /* CPU_AMD_DUALCORE_H */
|
||||
|
|
|
|||
|
|
@ -10,17 +10,17 @@
|
|||
# define NEED_LAPIC 1
|
||||
#endif
|
||||
|
||||
static inline unsigned long lapic_read(unsigned long reg)
|
||||
static inline __attribute__((always_inline)) unsigned long lapic_read(unsigned long reg)
|
||||
{
|
||||
return *((volatile unsigned long *)(LAPIC_DEFAULT_BASE+reg));
|
||||
}
|
||||
|
||||
static inline void lapic_write(unsigned long reg, unsigned long v)
|
||||
static inline __attribute__((always_inline)) void lapic_write(unsigned long reg, unsigned long v)
|
||||
{
|
||||
*((volatile unsigned long *)(LAPIC_DEFAULT_BASE+reg)) = v;
|
||||
}
|
||||
|
||||
static inline void lapic_wait_icr_idle(void)
|
||||
static inline __attribute__((always_inline)) void lapic_wait_icr_idle(void)
|
||||
{
|
||||
do { } while ( lapic_read( LAPIC_ICR ) & LAPIC_ICR_BUSY );
|
||||
}
|
||||
|
|
@ -46,13 +46,14 @@ static inline void disable_lapic(void)
|
|||
wrmsr(LAPIC_BASE_MSR, msr);
|
||||
}
|
||||
|
||||
static inline unsigned long lapicid(void)
|
||||
static inline __attribute__((always_inline)) unsigned long lapicid(void)
|
||||
{
|
||||
return lapic_read(LAPIC_ID) >> 24;
|
||||
}
|
||||
|
||||
static inline void stop_this_cpu(void)
|
||||
static inline __attribute__((always_inline)) void stop_this_cpu(void)
|
||||
{
|
||||
|
||||
unsigned apicid;
|
||||
apicid = lapicid();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue