Dear Alan Carvalho de Assis, In message <37367b3a0909151429h317066ax2efa504d83dbf...@mail.gmail.com> you wrote: > This patch adds support to iMX27ADS development board. This board has > 128MB RAM, 32MB NOR Flash and 128MB NAND Flash. Currently only > booting from NOR is supported. > > Signed-off-by: Alan Carvalho de Assis <acas...@gmail.com>
I will try and mention only the issues not yet covered. ... > --- a/Makefile > +++ b/Makefile > @@ -2965,6 +2965,9 @@ davinci_dm365evm_config : unconfig > imx27lite_config: unconfig > @$(MKCONFIG) $(@:_config=) arm arm926ejs imx27lite logicpd mx27 > > +mx27ads_config : unconfig > + @$(MKCONFIG) $(@:_config=) arm arm926ejs mx27ads freescale mx27 > + > lpd7a400_config \ > lpd7a404_config: unconfig Please keep list sorted. > diff --git a/board/freescale/mx27ads/Makefile > b/board/freescale/mx27ads/Makefile > new file mode 100644 > index 0000000..d142a9e > --- /dev/null > +++ b/board/freescale/mx27ads/Makefile ... > +######################################################################### > + Please don;t add trailing empty lines. > diff --git a/board/freescale/mx27ads/config.mk > b/board/freescale/mx27ads/config.mk > new file mode 100644 > index 0000000..a2e7768 > --- /dev/null > +++ b/board/freescale/mx27ads/config.mk ... > +/* > + * For clock initialization, see chapter 3 of the "MCIMX27 Multimedia > + * Applications Processor Reference Manual, Rev. 0.2". > + * > + */ Please don't add random empty comment lines. ... > + write32 0xA0000F00, 0x00000000 > + write32 0xD8001000, 0xb2100000 > + ldr r0, =0xA0000033 > + mov r1, #0xda > + strb r1, [r0] > + ldr r0, =0xA1000000 > + mov r1, #0xff > + strb r1, [r0] > + write32 0xD8001000, 0x82226080 ... > + mov r10, lr ... > + ldr r0, =CSCR > + ldr r1, [r0] > + bic r1, r1, #0x03 > + str r1, [r0] Please use a consistent style for indentation. I suggest you use the insn name followed by a single TAB character followed by args. > +++ b/board/freescale/mx27ads/mx27ads.c > @@ -0,0 +1,93 @@ ... ... > +# define __REG(x) (*((volatile u32 *)(x))) > + > +#define IMX_CS4_BASE 0xD4000000 > +#define CS4U __REG(IMX_WEIM_BASE + 0x40) /* Chip Select 4 Upper Register > */ > +#define CS4L __REG(IMX_WEIM_BASE + 0x44) /* Chip Select 4 Lower Register > */ > +#define CS4A __REG(IMX_WEIM_BASE + 0x48) /* Chip Select 4 Addition Register > */ Please use proper I/O accessors. Direct register accesses like here are forbidden. Also, you probably want to define a C structure describing the register map. ... > + /* Configure CPLD on CS4 */ > + CS4U = 0x0000DCF6; > + CS4L = 0x444A4541; > + CS4A = 0x44443302; Please never use suchmagic numbers in the code. Provide some #defines for these, together with sufficient comments to explain what the numbers mean. > + /* Select FEC data through data path */ > + writew(0x0020, IMX_CS4_BASE + 0x10); > + > + /* Enable CPLD FEC data path */ > + writew(0x0010, IMX_CS4_BASE + 0x14); Please use C structs for the register mapping; do not use base address plus offsets. > +int dram_init(void) > +{ > + No empty line here. > +#if CONFIG_NR_DRAM_BANKS > 0 > + gd->bd->bi_dram[0].start = PHYS_SDRAM_1; > + gd->bd->bi_dram[0].size = get_ram_size((volatile void *)PHYS_SDRAM_1, > + PHYS_SDRAM_1_SIZE); > +#endif Um... is CONFIG_NR_DRAM_BANKS <= 0 any configuration that is supposed to work? > +#if CONFIG_NR_DRAM_BANKS > 1 > + gd->bd->bi_dram[1].start = PHYS_SDRAM_2; > + gd->bd->bi_dram[1].size = get_ram_size((volatile void *)PHYS_SDRAM_2, > + PHYS_SDRAM_2_SIZE); > +#endif > + > + return 0; You unconditionally return OK< even in case of memory errors? This seems wrong to me. > diff --git a/board/freescale/mx27ads/u-boot.lds > b/board/freescale/mx27ads/u-boot.lds > new file mode 100644 > index 0000000..f66f20e > --- /dev/null > +++ b/board/freescale/mx27ads/u-boot.lds Does this board need a private linke rscript? Why cannot you use the common script in cpu/arm926ejs/u-boot.lds ? > diff --git a/include/configs/mx27ads.h b/include/configs/mx27ads.h > new file mode 100644 > index 0000000..3360d76 > --- /dev/null > +++ b/include/configs/mx27ads.h ... > +/* memtest start address */ > +#define CONFIG_SYS_MEMTEST_START 0xA0000000 > +#define CONFIG_SYS_MEMTEST_END 0xA1000000 /* 16MB RAM > test */ Did you ever test this? Overwriting low memory where exception vectors and such is located is probably a bad idea. ... > +/* Use hardware sector protection */ > +#define CONFIG_SYS_FLASH_PROTECTION 1 > +#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of flash banks */ > +#define CONFIG_SYS_FLASH_SECT_SZ 0x2000 /* 8KB sect size Intel Flash */ > +/* end of flash */ > +#define CONFIG_ENV_OFFSET (PHYS_FLASH_SIZE - 0x20000) > +/* CS2 Base address */ > +#define PHYS_FLASH_1 0xc0000000 > +/* Flash Base for U-Boot */ > +#define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1 > +/* Flash size 32MB */ > +#define PHYS_FLASH_SIZE 0x2000000 > +#define CONFIG_SYS_MAX_FLASH_SECT (PHYS_FLASH_SIZE / \ > + CONFIG_SYS_FLASH_SECT_SZ) > +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE > +#define CONFIG_SYS_MONITOR_LEN 0x40000 /* Reserve > 256KiB */ > +#define CONFIG_ENV_SECT_SIZE 0x10000 /* Env sector Size */ This looks strange to me. Above you state "8KB sect size", but here you set a sector size of 64 kB ? > +/*#define CONFIG_DRIVER_CS8900 1 > +#define CS8900_BASE 0xD4020300 > +#define CS8900_BUS16 1*/ > +#define CONFIG_ETHADDR 02:80:ad:20:31:e8 Drop that. We don't allow setting a fixed MAC address for all boards. > +#define MTDPARTS_DEFAULT \ > + > "mtdparts=physmap-flash.0:256k(U-Boot),3968k(kernel),28416k(user),64k(env1),64k(env2)" Line too long (please check all files). Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de One essential to success is that you desire be an all-obsessing one, your thoughts and aims be co-ordinated, and your energy be concentra- ted and applied without letup. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot