On Thursday, November 19, 2015 at 10:35:43 PM, dingu...@opensource.altera.com wrote: > From: Dinh Nguyen <dingu...@opensource.altera.com> > > Add config for the Arria10 SoC Development Kit. > > Signed-off-by: Dinh Nguyen <dingu...@opensource.altera.com> > --- > include/configs/socfpga_arria10_socdk.h | 292 > ++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) > create mode 100644 include/configs/socfpga_arria10_socdk.h
[...] > +#define CONFIG_SYS_TEXT_BASE 0xFFE00000 > +/* using linker to check all image sections fit OCRAM */ > +#define CONFIG_U_BOOT_BINARY_MAX_SIZE (200 * 1024) You mean SPL here ? > +/* > + * Stack and malloc setup > + */ > +/* IRQ stack */ > +#define CONFIG_STACKSIZE_IRQ (1 << 10) > +/* FIQ stack */ > +#define CONFIG_STACKSIZE_FIQ (1 << 10) Is this needed at all ? > +/* SP location before relocation, must use scratch RAM */ > +#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_SYS_TEXT_BASE > +/* Reserving 0x400 space at back of scratch RAM for debug info */ > +#define CONFIG_SYS_INIT_RAM_SIZE (256 * 1024) > +/* Stack pointer at on-chip RAM, leave 16kB behind for page table */ > +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ > + CONFIG_SYS_INIT_RAM_SIZE - 0x4000) > +/* Default load address */ > +#define CONFIG_SYS_LOAD_ADDR 0x8000 > + > +/* > + * Display CPU and Board Info > + */ > +#define CONFIG_DISPLAY_CPUINFO > +#define CONFIG_DISPLAY_BOARDINFO > +#define CONFIG_DISPLAY_BOARDINFO_LATE > + > +/* > + * Kernel Info > + */ > +/* flat device tree */ > +#define CONFIG_OF_LIBFDT > +/* skip updating the FDT blob */ > +#define CONFIG_FDT_BLOB_SKIP_UPDATE Why do we need this? > +/* Initial Memory map size for Linux, minus 4k alignment for DFT blob */ > +#define CONFIG_SYS_BOOTMAPSZ (32 * 1024 * 1024) > + > +/* > + * Environment setup > + */ > +#define CONFIG_ENV_SIZE 4096 > +#define CONFIG_BOOTDELAY 5 > +#define CONFIG_ENV_OVERWRITE > +#define CONFIG_AUTO_COMPLETE > +#define CONFIG_CMDLINE_EDITING > +#define CONFIG_SYS_LONGHELP > +#define CONFIG_SYS_HUSH_PARSER > +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " Looks like this is duplicated from socfpga_common.h , no ? Why don't you just include socfpga_common.h ? > +/* > + * Can't poll in semihosting; so turn off automatic boot command > + */ > +#define CONFIG_BOOTCOMMAND "run callscript; run mmcload;" \ > + "run set_initswstate; run mmcboot" > + > +/* > + * arguments passed to the bootz command. The value of > + * CONFIG_BOOTARGS goes into the environment value "bootargs". > + * Do note the value will overide also the chosen node in FDT blob. > + */ > +#define CONFIG_BOOTARGS "console=ttyS0," __stringify(CONFIG_BAUDRATE) > +#define CONFIG_SYS_DTB_ADDR 0x100 > +#define MAX_DTB_SIZE_IN_RAM 0x7f00 Please don't invent new ad-hoc config options which will permeate the U-Boot build. Just put these as a variable into the extra environment if needed. > +#if ((CONFIG_SYS_DTB_ADDR + MAX_DTB_SIZE_IN_RAM) > CONFIG_SYS_LOAD_ADDR) > +#error "MAX_DTB_SIZE_IN_RAM is too big. It will overwrite zImage in > memory." +#endif > + > +#define CONFIG_EXTRA_ENV_SETTINGS \ > + "verify=y\0" \ > + "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > + "fdtaddr=" __stringify(CONFIG_SYS_DTB_ADDR) "\0" \ > + "bootimage=zImage\0" \ > + "bootimagesize=0x600000\0" \ > + "fdtimage=socfpga_arria10_socdk.dtb\0" \ > + "fdtimagesize=" __stringify(MAX_DTB_SIZE_IN_RAM) "\0" \ > + "fdt_high=0x2000000\0" \ > + "mmcloadcmd=fatload\0" \ > + "mmcloadpart=1\0" \ > + "mmcroot=/dev/mmcblk0p2\0" \ > + "qspiloadcs=0\0" \ > + "qspibootimageaddr=0x120000\0" \ > + "qspifdtaddr=0x100000\0" \ > + "qspiroot=/dev/mtdblock1\0" \ > + "qspirootfstype=jffs2\0" \ > + "mmcload=mmc rescan;" \ > + "${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};" \ > + "${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage}\0" \ > + "mmcboot=setenv bootargs " CONFIG_BOOTARGS \ > + " root=${mmcroot} rw rootwait;" \ > + "fpgabr 1;" \ > + "bootz ${loadaddr} - ${fdtaddr}\0" \ > + "netboot=dhcp ${bootimage} ; " \ > + "tftp ${fdtaddr} ${fdtimage} ; run ramboot\0" \ > + "qspiload=sf probe ${qspiloadcs};" \ > + "sf read ${loadaddr} ${qspibootimageaddr} ${bootimagesize};" \ > + "sf read ${fdtaddr} ${qspifdtaddr} ${fdtimagesize};\0" \ > + "qspiboot=setenv bootargs " CONFIG_BOOTARGS \ > + " root=${qspiroot} rw rootfstype=${qspirootfstype};"\ > + "fpgabr 1;" \ > + "bootz ${loadaddr} - ${fdtaddr}\0" \ > + "nandload=nand read ${loadaddr} ${nandbootimageaddr} ${bootimagesize};"\ > + "nand read ${fdtaddr} ${nandfdtaddr} ${fdtimagesize}\0" \ > + "nandboot=setenv bootargs " CONFIG_BOOTARGS \ > + " root=${nandroot} rw rootfstype=${nandrootfstype};"\ > + "fpgabr 1;" \ > + "bootz ${loadaddr} - ${fdtaddr}\0" \ > + "bootcmd=" CONFIG_BOOTCOMMAND "\0" \ > + "u-boot_swstate_reg=0xffd0620c\0" \ > + "u-boot_image_valid=0x49535756\0" \ > + "fpga=0\0" \ > + "fpgadata=0x2000000\0" \ > + "fpgadatasize=0x700000\0" \ > + "scriptfile=u-boot.scr\0" \ > + "callscript=if fatload mmc 0:1 $fpgadata $scriptfile;" \ > + "then source $fpgadata; " \ > + "else " \ > + "echo Optional boot script not found. " \ > + "Continuing to boot normally; " \ > + "fi;\0" > + > +/* > + * Environment setup > + */ > +#define CONFIG_SYS_CONSOLE_IS_IN_ENV > +#define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE > +#define CONFIG_SYS_CONSOLE_ENV_OVERWRITE > +#undef CONFIG_CMD_IMPORTENV Why do you disable env import ? > +/* > + * Console setup > + */ > +#define CONFIG_SYS_CBSIZE 256 > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ > + sizeof(CONFIG_SYS_PROMPT) + 16) > +/* max number of command args */ > +#define CONFIG_SYS_MAXARGS 16 > + > +/* Boot Argument Buffer Size */ > +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE Again, this is just a copy-paste from socfpga_common.h, no? > +/* > + * Memory configurations > + */ > +#define CONFIG_NR_DRAM_BANKS 1 > +#define CONFIG_SYS_SDRAM_BASE 0x00000000 > +#define PHYS_SDRAM_1_SIZE 0x2000000 > +#define PHYS_SDRAM_1 CONFIG_SYS_SDRAM_BASE > +#define CONFIG_SYS_MALLOC_LEN (64 * 1024 * 1024) [...] > +/* > + * MMC support > + */ > +#ifdef CONFIG_CMD_MMC > +#define CONFIG_MMC > + > +#define CONFIG_ENV_IS_IN_MMC > +#define CONFIG_SYS_MMC_ENV_DEV 0/* device 0 */ > +#define CONFIG_ENV_OFFSET 512/* just after the MBR */ > + > +#define CONFIG_CMD_FAT > +#define CONFIG_CMD_MMC > +/* Enable FAT write support */ > +#define CONFIG_FAT_WRITE > + > +/* configure a clustsize smaller than the default 64k */ > +#define CONFIG_FS_FAT_MAX_CLUSTSIZE 16384 > +/* MMC support */ > +#define CONFIG_SDMMC_BASE (SOCFPGA_SDMMC_ADDRESS) > +#define CONFIG_GENERIC_MMC > +#define CONFIG_SYS_MMC_MAX_BLK_COUNT 256 Is this limit really needed? > +#define CONFIG_DWMMC > +#define CONFIG_SOCFPGA_DWMMC > +#define CONFIG_SOCFPGA_DWMMC_DRVSEL 3 > +#define CONFIG_SOCFPGA_DWMMC_SMPSEL 0 > +#define CONFIG_SOCFPGA_DWMMC_FIFO_DEPTH 1024 > +/* using smaller max blk cnt to avoid flooding the limited stack we have > */ +#define CONFIG_SOCFPGA_DWMMC_BUS_HZ CONFIG_HPS_CLK_SDMMC_HZ > +#define CONFIG_SOCFPGA_DWMMC_BUS_WIDTH 4 > +/* requird for dw_mmc driver */ > +#define CONFIG_BOUNCE_BUFFER > +#else > +#define CONFIG_ENV_IS_NOWHERE > +#endif /* CONFIG_MMC */ > + > +/* > + * NAND > + */ > +#ifdef CONFIG_NAND_DENALI > +#define CONFIG_CMD_NAND > +#define CONFIG_SYS_MAX_NAND_DEVICE 1 > +#define CONFIG_SYS_NAND_USE_FLASH_BBT > +#define CONFIG_SYS_NAND_REGS_BASE 0xff200000 > +#define CONFIG_SYS_NAND_DATA_BASE 0xff300000 > +#define CONFIG_SYS_NAND_BASE 0xff400000 > +#define CONFIG_SYS_NAND_ONFI_DETECTION > +/* The ECC size which either 512 or 1024 */ > +#define CONFIG_NAND_DENALI_ECC_SIZE (512) > +#endif /* CONFIG_NAND_DENALI */ > + > +/* > + * FPGA support > + */ > +#define CONFIG_FPGA > +#define CONFIG_FPGA_ALTERA > +#define CONFIG_FPGA_COUNT 1 > +#define CONFIG_CMD_FPGA_LOADFS > +#endif /* __CONFIG_H */ _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot