> > Plz pull the patch mentioned above, and much of things should be cleaned up > http://lists.denx.de/pipermail/u-boot/2013-November/167696.html >
Thank you for the reply Pekon, but sadly even after applying your patch the earlier compile issue is still present. Starting from a copy of mainline u-boot source code here are the minimal steps required to reproduce the issue. 1. Apply following patches, http://lists.denx.de/pipermail/u-boot/2013-November/167697.html http://lists.denx.de/pipermail/u-boot/2013-November/167698.html http://lists.denx.de/pipermail/u-boot/2013-November/167700.html http://lists.denx.de/pipermail/u-boot/2013-November/167699.html http://lists.denx.de/pipermail/u-boot/2013-November/167701.html After this is done compiling for all the omap4 boards happens without issue (example output below). > ./MAKEALL -s omap4 Configuring for omap4_panda board... text data bss dec hex filename 193830 9970 305496 509296 7c570 ./u-boot 32923 2200 197972 233095 38e87 ./spl/u-boot-spl Configuring for omap4_sdp4430 board... text data bss dec hex filename 154677 9800 214704 379181 5c92d ./u-boot 32378 2200 197972 232550 38c66 ./spl/u-boot-spl --------------------- SUMMARY ---------------------------- Boards compiled: 2 ---------------------------------------------------------- 2. Since we're interested in bundling in NAND support for the pandaboard, please apply the following patch (pass on NAND as a compilation parameter), diff --git a/boards.cfg b/boards.cfg index e742746..7bad4a0 100644 --- a/boards.cfg +++ b/boards.cfg @@ -334,7 +334,7 @@ Active arm armv7 omap3 ti evm Active arm armv7 omap3 ti evm omap3_evm_quick_nand - Active arm armv7 omap3 ti sdp3430 omap3_sdp3430 - Active arm armv7 omap3 timll devkit8000 devkit8000 - -Active arm armv7 omap4 ti panda omap4_panda - +Active arm armv7 omap4 ti panda omap4_panda omap4_panda:NAND Active arm armv7 omap4 ti sdp4430 omap4_sdp4430 - Active arm armv7 omap5 ti dra7xx dra7xx_evm dra7xx_evm:CONS_INDEX=1 Active arm armv7 omap5 ti dra7xx dra7xx_evm_uart3 dra7xx_evm:CONS_INDEX=3,S > 3. Compiling for omap4 boards now gives an error about "asm/arch/mem.h" missing. A simple work-around is to copy over the file from the omap3 directory (command below) > cp arch/arm/include/asm/arch-omap3/mem.h arch/arm/include/asm/arch-omap4/mem.h 4. At this point we'll get some complaints about missing static definitions, so apply the following patch to add them in the common configuration file; diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h index ea56eeb..80f5d03 100644 --- a/include/configs/omap4_common.h +++ b/include/configs/omap4_common.h @@ -154,4 +154,49 @@ #define CONFIG_SPL_DISPLAY_PRINT #define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds" +#ifdef CONFIG_NAND +#define CONFIG_NAND_OMAP_GPMC +#define CONFIG_NAND_OMAP_ELM +#define CONFIG_SYS_NAND_5_ADDR_CYCLE +#define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \ + CONFIG_SYS_NAND_PAGE_SIZE) +#define CONFIG_SYS_NAND_PAGE_SIZE 2048 +#define CONFIG_SYS_NAND_OOBSIZE 64 +#define CONFIG_SYS_NAND_BLOCK_SIZE (128*1024) +#define CONFIG_SYS_NAND_BAD_BLOCK_POS NAND_LARGE_BADBLOCK_POS +#define CONFIG_SYS_NAND_ECCPOS { 2, 3, 4, 5, 6, 7, 8, 9, \ + 10, 11, 12, 13, 14, 15, 16, 17, \ + 18, 19, 20, 21, 22, 23, 24, 25, \ + 26, 27, 28, 29, 30, 31, 32, 33, \ + 34, 35, 36, 37, 38, 39, 40, 41, \ + 42, 43, 44, 45, 46, 47, 48, 49, \ + 50, 51, 52, 53, 54, 55, 56, 57, } + +#define CONFIG_SYS_NAND_ECCSIZE 512 +#define CONFIG_SYS_NAND_ECCBYTES 14 +#define CONFIG_SYS_NAND_ONFI_DETECTION +#define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW +#define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE +#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 +#endif + +/* NAND support */ +#ifdef CONFIG_NAND +#define CONFIG_CMD_NAND +#if !defined(CONFIG_SPI_BOOT) && !defined(CONFIG_NOR_BOOT) +#define MTDIDS_DEFAULT "nand0=omap2-nand.0" +#define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:128k(SPL)," \ + "128k(SPL.backup1)," \ + "128k(SPL.backup2)," \ + "128k(SPL.backup3),1792k(u-boot)," \ + "128k(u-boot-spl-os)," \ + "128k(u-boot-env),5m(kernel),-(rootfs)" +#undef CONFIG_ENV_IS_NOWHERE +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_OFFSET 0x260000 /* environment starts here */ +#define CONFIG_SYS_ENV_SECT_SIZE (128 << 10) /* 128 KiB */ +#endif +#endif + #endif /* __CONFIG_OMAP4_COMMON_H */ The following edit is also needed in the panda configuration file (it won't work from the common file as the panda configuration will over-ride it) diff --git a/include/configs/omap4_panda.h b/include/configs/omap4_panda.h index 6820e42..d356cfd 100644 --- a/include/configs/omap4_panda.h +++ b/include/configs/omap4_panda.h @@ -45,8 +45,10 @@ /* GPIO */ #define CONFIG_CMD_GPIO +#ifndef CONFIG_NAND /* ENV related config options */ #define CONFIG_ENV_IS_NOWHERE +#endif #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG 5. Now, we get a complaint about a missing "hardware.h". Only ELM_BASE is used from there, so I created the header file with that sole entry as follows > echo "#define ELM_BASE 0x48078000" > > arch/arm/include/asm/arch-omap4/hardware.h (I updated the value for ELM_BASE from the public OMAP4460 manual, page 310 - it looks different from that used on the am335) And at this point, I encounter the same error I mentioned last time (output below). Quite frankly, I'm stuck on how to proceed. I *suspect* that the SPL build has some extra configuration file where I need to mention the NAND support, but am not sure where to look. :( > make -s omap4_panda Configuring for omap4_panda - Board: omap4_panda, Options: NAND Image Name: U-Boot 2014.01-rc1-dirty for pan Created: Fri Nov 29 16:48:34 2013 Image Type: ARM U-Boot Firmware (uncompressed) Data Size: 260136 Bytes = 254.04 kB = 0.25 MB Load Address: 80800000 Entry Point: 00000000 arch/arm/cpu/armv7/built-in.o: In function `spl_board_init': /home/abraham/SPACE/patch_uboot_panda/arch/arm/cpu/armv7/omap-common/boot-common.c:75: undefined reference to `gpmc_init' drivers/mtd/nand/built-in.o: In function `omap_nand_hwcontrol': /home/abraham/SPACE/patch_uboot_panda/drivers/mtd/nand/omap_gpmc.c:51: undefined reference to `gpmc_cfg' drivers/mtd/nand/built-in.o: In function `omap_spl_dev_ready': /home/abraham/SPACE/patch_uboot_panda/drivers/mtd/nand/omap_gpmc.c:59: undefined reference to `gpmc_cfg' drivers/mtd/nand/built-in.o: In function `omap_enable_ecc_bch': /home/abraham/SPACE/patch_uboot_panda/drivers/mtd/nand/omap_gpmc.c:361: undefined reference to `gpmc_cfg' drivers/mtd/nand/built-in.o: In function `omap_calculate_ecc_bch': /home/abraham/SPACE/patch_uboot_panda/drivers/mtd/nand/omap_gpmc.c:478: undefined reference to `gpmc_cfg' drivers/mtd/nand/built-in.o: In function `board_nand_init': /home/abraham/SPACE/patch_uboot_panda/drivers/mtd/nand/omap_gpmc.c:1026: undefined reference to `gpmc_cfg' make[2]: *** [/home/abraham/SPACE/patch_uboot_panda/spl/u-boot-spl] Error 1 make[1]: *** [spl/u-boot-spl.bin] Error 2 make: *** [omap4_panda] Error 2 > Help? -Abraham PS: Sorry about the HTML in my last reply. Hope this is better? _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot