浏览代码

nand_boot_fsl_nfc.c: make "nfc" a "static const" pointer

With -fPIC enabled, this variable needs an entry in the GOT, which
causes the image size to exceed 2 KiB which is the maximum allowed for
some systems. Making it a "static const" avoids the GOT entry and thus
reduces the image size to < 2 KiB.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Scott Wood <scottwood@freescale.com>
Heiko Schocher 14 年之前
父节点
当前提交
4fff329df2
共有 1 个文件被更改,包括 1 次插入5 次删除
  1. 1 5
      nand_spl/nand_boot_fsl_nfc.c

+ 1 - 5
nand_spl/nand_boot_fsl_nfc.c

@@ -34,7 +34,7 @@
 #include <asm/io.h>
 #include <asm/io.h>
 #include <fsl_nfc.h>
 #include <fsl_nfc.h>
 
 
-struct fsl_nfc_regs *nfc;
+static struct fsl_nfc_regs *const nfc = (void *)NFC_BASE_ADDR;
 
 
 static void nfc_wait_ready(void)
 static void nfc_wait_ready(void)
 {
 {
@@ -228,8 +228,6 @@ static int nand_load(unsigned int from, unsigned int size, unsigned char *buf)
 	unsigned int maxpages = CONFIG_SYS_NAND_SIZE /
 	unsigned int maxpages = CONFIG_SYS_NAND_SIZE /
 				CONFIG_SYS_NAND_PAGE_SIZE;
 				CONFIG_SYS_NAND_PAGE_SIZE;
 
 
-	nfc = (void *)NFC_BASE_ADDR;
-
 	nfc_nand_init();
 	nfc_nand_init();
 
 
 	/* Convert to page number */
 	/* Convert to page number */
@@ -274,8 +272,6 @@ void nand_boot(void)
 {
 {
 	__attribute__((noreturn)) void (*uboot)(void);
 	__attribute__((noreturn)) void (*uboot)(void);
 
 
-	nfc = (void *)NFC_BASE_ADDR;
-
 	/*
 	/*
 	 * CONFIG_SYS_NAND_U_BOOT_OFFS and CONFIG_SYS_NAND_U_BOOT_SIZE must
 	 * CONFIG_SYS_NAND_U_BOOT_OFFS and CONFIG_SYS_NAND_U_BOOT_SIZE must
 	 * be aligned to full pages
 	 * be aligned to full pages