[PATCH] cpu:msr: fixed errors for checking SMRR MSR registers

Keng-Yü Lin kengyu at canonical.com
Tue Jan 31 06:45:57 UTC 2012


On Tue, Jan 31, 2012 at 10:07 AM, Alex Hung <alex.hung at canonical.com> wrote:
> SMRR_PHYSBASE boundary check is aligned to 8MB.
>
> SMRR_PHYSMASK register is changed from 0x1f2 to 0x1f3.
>
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
>  src/cpu/msr/msr.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/cpu/msr/msr.c b/src/cpu/msr/msr.c
> index 06a756f..f84c7a6 100644
> --- a/src/cpu/msr/msr.c
> +++ b/src/cpu/msr/msr.c
> @@ -194,14 +194,14 @@ static int msr_smrr(fwts_framework *fw)
>                        if (fwts_cpu_readmsr(0, 0x1f2, &val) == FWTS_OK) {
>                                uint64_t physbase = val & 0xfffff000;
>                                uint64_t type = val & 7;
> -                               if ((physbase % 0x7fffff) != 0)
> +                               if ((physbase & 0x7fffff) != 0)
>                                        fwts_failed(fw, LOG_LEVEL_HIGH, "MSRSMRR_PHYSBASE8MBBoundary",
>                                                "SMRR: SMRR_PHYSBASE is NOT on an 8MB boundary: %llx.", (unsigned long long)physbase);
>                                if (type != 6)
>                                        fwts_failed(fw, LOG_LEVEL_HIGH, "MSRSMRR_TYPE",
>                                                "SMRR: SMRR_TYPE is 0x%x, should be 0x6 (Write-Back).", (int)type);
>                        }
> -                       if (fwts_cpu_readmsr(0, 0x1f2, &val) == FWTS_OK) {
> +                       if (fwts_cpu_readmsr(0, 0x1f3, &val) == FWTS_OK) {
>                                uint64_t physmask = val & 0xfffff000;
>                                uint64_t valid = (val >> 11) & 1;
>
> --
> 1.7.5.4
>
>
Acked-by: Keng-Yu Lin <kengyu at canonical.com>


More information about the fwts-devel mailing list