From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 29 Jul 2010 12:45:03 +0200 Subject: [U-Boot] [RFC][PATCH 14/19] nand_fsl_nfc: get rid of local var Message-ID: <4C515BAF.90403@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de If we have -fPIC enabled, this var leads in one entry in the GOT. The result of this is that the image size is > 0x800. Signed-off-by: Heiko Schocher --- I tried to fix this in the u-boot.lds, but without success. If somebody knows, how to fix this without this patch, it would be great! nand_spl/nand_boot_fsl_nfc.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/nand_spl/nand_boot_fsl_nfc.c b/nand_spl/nand_boot_fsl_nfc.c index 9720f6a..0543512 100644 --- a/nand_spl/nand_boot_fsl_nfc.c +++ b/nand_spl/nand_boot_fsl_nfc.c @@ -34,10 +34,9 @@ #include #include -struct fsl_nfc_regs *nfc; - static void nfc_wait_ready(void) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; uint32_t tmp; while (!(readw(&nfc->nand_flash_config2) & NFC_INT)) @@ -51,6 +50,7 @@ static void nfc_wait_ready(void) void nfc_nand_init(void) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; #if defined(MXC_NFC_V1_1) int ecc_per_page = CONFIG_SYS_NAND_PAGE_SIZE / 512; int config1; @@ -82,6 +82,7 @@ void nfc_nand_init(void) static void nfc_nand_command(unsigned short command) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; writew(command, &nfc->flash_cmd); writew(NFC_CMD, &nfc->nand_flash_config2); nfc_wait_ready(); @@ -89,6 +90,7 @@ static void nfc_nand_command(unsigned short command) static void nfc_nand_page_address(unsigned int page_address) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; unsigned int page_count; writew(0x00, &nfc->flash_add); @@ -122,6 +124,7 @@ static void nfc_nand_page_address(unsigned int page_address) static void nfc_nand_data_output(void) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; int config1 = readw(&nfc->nand_flash_config1); #ifdef NAND_MXC_2K_MULTI_CYCLE int i; @@ -150,11 +153,13 @@ static void nfc_nand_data_output(void) static int nfc_nand_check_ecc(void) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; return readw(&nfc->ecc_status_result); } static int nfc_read_page(unsigned int page_address, unsigned char *buf) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; int i; u32 *src; u32 *dst; @@ -186,6 +191,7 @@ static int nfc_read_page(unsigned int page_address, unsigned char *buf) static int is_badblock(int pagenumber) { + struct fsl_nfc_regs *nfc = (void *)NFC_BASE_ADDR; int page = pagenumber; u32 badblock; u32 *src; @@ -228,8 +234,6 @@ static int nand_load(unsigned int from, unsigned int size, unsigned char *buf) unsigned int maxpages = CONFIG_SYS_NAND_SIZE / CONFIG_SYS_NAND_PAGE_SIZE; - nfc = (void *)NFC_BASE_ADDR; - nfc_nand_init(); /* Convert to page number */ @@ -279,8 +283,6 @@ void nand_boot(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 * be aligned to full pages -- 1.6.2.5 -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany