x86: Add various minor tidy-ups in mrccache codes

Fix some nits, improve some comments and reorder some codes
a little bit.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Bin Meng 2015-10-11 21:37:38 -07:00 committed by Simon Glass
parent 2fe66dbcbc
commit bfa95c538b
2 changed files with 16 additions and 18 deletions

View file

@ -1,17 +1,17 @@
/* /*
* Copyright (c) 2014 Google, Inc * Copyright (C) 2014 Google, Inc
* *
* SPDX-License-Identifier: GPL-2.0+ * SPDX-License-Identifier: GPL-2.0+
*/ */
#ifndef _ASM_ARCH_MRCCACHE_H #ifndef _ASM_MRCCACHE_H
#define _ASM_ARCH_MRCCACHE_H #define _ASM_MRCCACHE_H
#define MRC_DATA_ALIGN 0x1000 #define MRC_DATA_ALIGN 0x1000
#define MRC_DATA_SIGNATURE (('M' << 0) | ('R' << 8) | ('C' << 16) | \ #define MRC_DATA_SIGNATURE (('M' << 0) | ('R' << 8) | \
('D'<<24)) ('C' << 16) | ('D'<<24))
__packed struct mrc_data_container { struct __packed mrc_data_container {
u32 signature; /* "MRCD" */ u32 signature; /* "MRCD" */
u32 data_size; /* Size of the 'data' field */ u32 data_size; /* Size of the 'data' field */
u32 checksum; /* IP style checksum */ u32 checksum; /* IP style checksum */
@ -28,7 +28,7 @@ struct udevice;
* This searches the MRC cache region looking for the latest record to use * This searches the MRC cache region looking for the latest record to use
* for setting up SDRAM * for setting up SDRAM
* *
* @entry: Information about the position and size of the MRC cache * @entry: Position and size of MRC cache in SPI flash
* @return pointer to latest record, or NULL if none * @return pointer to latest record, or NULL if none
*/ */
struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry); struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry);
@ -36,8 +36,8 @@ struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry);
/** /**
* mrccache_update() - update the MRC cache with a new record * mrccache_update() - update the MRC cache with a new record
* *
* This writes a new record to the end of the MRC cache. If the new record is * This writes a new record to the end of the MRC cache region. If the new
* the same as the latest record then the write is skipped * record is the same as the latest record then the write is skipped
* *
* @sf: SPI flash to write to * @sf: SPI flash to write to
* @entry: Position and size of MRC cache in SPI flash * @entry: Position and size of MRC cache in SPI flash
@ -48,4 +48,4 @@ struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry);
int mrccache_update(struct udevice *sf, struct fmap_entry *entry, int mrccache_update(struct udevice *sf, struct fmap_entry *entry,
struct mrc_data_container *cur); struct mrc_data_container *cur);
#endif #endif /* _ASM_MRCCACHE_H */

View file

@ -1,5 +1,5 @@
/* /*
* From Coreboot src/southbridge/intel/bd82x6x/mrccache.c * From coreboot src/southbridge/intel/bd82x6x/mrccache.c
* *
* Copyright (C) 2014 Google Inc. * Copyright (C) 2014 Google Inc.
* *
@ -15,17 +15,19 @@
#include <asm/mrccache.h> #include <asm/mrccache.h>
static struct mrc_data_container *next_mrc_block( static struct mrc_data_container *next_mrc_block(
struct mrc_data_container *mrc_cache) struct mrc_data_container *cache)
{ {
/* MRC data blocks are aligned within the region */ /* MRC data blocks are aligned within the region */
u32 mrc_size = sizeof(*mrc_cache) + mrc_cache->data_size; u32 mrc_size = sizeof(*cache) + cache->data_size;
u8 *region_ptr = (u8 *)cache;
if (mrc_size & (MRC_DATA_ALIGN - 1UL)) { if (mrc_size & (MRC_DATA_ALIGN - 1UL)) {
mrc_size &= ~(MRC_DATA_ALIGN - 1UL); mrc_size &= ~(MRC_DATA_ALIGN - 1UL);
mrc_size += MRC_DATA_ALIGN; mrc_size += MRC_DATA_ALIGN;
} }
u8 *region_ptr = (u8 *)mrc_cache;
region_ptr += mrc_size; region_ptr += mrc_size;
return (struct mrc_data_container *)region_ptr; return (struct mrc_data_container *)region_ptr;
} }
@ -34,10 +36,6 @@ static int is_mrc_cache(struct mrc_data_container *cache)
return cache && (cache->signature == MRC_DATA_SIGNATURE); return cache && (cache->signature == MRC_DATA_SIGNATURE);
} }
/*
* Find the largest index block in the MRC cache. Return NULL if none is
* found.
*/
struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry) struct mrc_data_container *mrccache_find_current(struct fmap_entry *entry)
{ {
struct mrc_data_container *cache, *next; struct mrc_data_container *cache, *next;