Don't copy BMP data on ARM

This just chews up memory and wastes time on ARM, since the data is already
in memory.

BUG=chrome-os-partner:13492
BRANCH=snow
TEST=manual
Build and boot on snow with manually modified code, to see that the bmpfv
pointer is in the same region as the bmp region.

Build and boot on link and see that displaying screens is still fast.

Change-Id: I98349b73671e38fa6cace966b6953a2abf129fab
Reviewed-on: https://gerrit.chromium.org/gerrit/32629
Reviewed-by: Mike Truty <truty@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Commit-Ready: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2012-09-07 16:57:26 -07:00
committed by Gerrit
parent 69f0d0bac9
commit c92c81ecf5
2 changed files with 9 additions and 0 deletions

View File

@@ -48,6 +48,11 @@ CFLAGS += -DUNROLL_LOOPS
# Way to do things. See chrome-os-partner:7689, and the commit message # Way to do things. See chrome-os-partner:7689, and the commit message
# that made this change. # that made this change.
CFLAGS += -DRANDOM_POWER_OFF CFLAGS += -DRANDOM_POWER_OFF
# On x86 we don't actually read the GBB data into RAM until it is needed.
# Therefore it makes sense to cache it rather than reading it each time.
# Enable this feature.
CFLAGS += -DCOPY_BMP_DATA
endif endif
INCLUDES = \ INCLUDES = \

View File

@@ -188,8 +188,12 @@ VbError_t VbDisplayScreenFromGBB(VbCommonParams* cparams, uint32_t screen,
/* Copy bitmap data from GBB into RAM for speed */ /* Copy bitmap data from GBB into RAM for speed */
if (!bmpfv) { if (!bmpfv) {
#ifdef COPY_BMP_DATA
bmpfv = (uint8_t*)VbExMalloc(gbb->bmpfv_size); bmpfv = (uint8_t*)VbExMalloc(gbb->bmpfv_size);
Memcpy(bmpfv, ((uint8_t*)gbb) + gbb->bmpfv_offset, gbb->bmpfv_size); Memcpy(bmpfv, ((uint8_t*)gbb) + gbb->bmpfv_offset, gbb->bmpfv_size);
#else
bmpfv = ((uint8_t *)gbb) + gbb->bmpfv_offset;
#endif
} }
/* Sanity-check the bitmap block header */ /* Sanity-check the bitmap block header */