Messages in this thread | | | Date | Fri, 26 Sep 2014 13:35:46 -0400 | From | Dave Jones <> | Subject | Re: [PATCH] x86: Quark: Add if/else to setup_arch for Quark TLB bug |
| |
On Fri, Sep 26, 2014 at 06:19:45PM +0100, Bryan O'Donoghue wrote: > Quark X1000 incorrectly advertises PGE. In later the stages of boot > specifically in early_init_intel we setup_clear_cpu_cap for PGE. > At this point in time cpu_has_pge() will still be true. > > Use the boot_cpu_data to decide if __flush_tlb_all() or __flush_tlb() > should be called subsequent to loading CR3
> + * Flush the TLB after loading CR3 > + * > + * Quark X1000 wrongly advertises PGE. Use boot_cpu_data to > + * to make sure the TLB is flushed correctly in the early > + * stage of setup_arch() for Quark X1000. > + * X86_FEATURE_PGE flag is only setup later stage at > + * early_cpu_init(); > + */ > + if (boot_cpu_data.x86 == 5 && boot_cpu_data.x86_model == 9) > + __flush_tlb();
This also needs a check for the cpu vendor, or this will apply the workaround on for eg, AMD K6-III's.
Dave
| |