Dear Wolfgang Grandegger, In message <20091019111913.802418...@denx.de> you wrote: > This patch adds support for the board IPEK01 based on the MPC5200. > The Futjitsu Lime graphics controller is configured in 16 bpp mode. > > Signed-off-by: Wolfgang Grandegger <w...@grandegger.com> > --- > Makefile | 3 > board/ipek01/Makefile | 50 ++++ > board/ipek01/config.mk | 30 ++ > board/ipek01/ipek01.c | 374 ++++++++++++++++++++++++++++++++++++ > board/ipek01/mt46v16m16-75.h | 37 +++ > board/ipek01/mt48lc16m16a2-75.h | 43 ++++ > board/ipek01/u-boot.lds | 125 ++++++++++++ > include/configs/ipek01.h | 411 > ++++++++++++++++++++++++++++++++++++++++ > 8 files changed, 1073 insertions(+) > create mode 100644 board/ipek01/Makefile > create mode 100644 board/ipek01/config.mk > create mode 100644 board/ipek01/ipek01.c > create mode 100644 board/ipek01/mt46v16m16-75.h > create mode 100644 board/ipek01/mt48lc16m16a2-75.h > create mode 100644 board/ipek01/u-boot.lds > create mode 100644 include/configs/ipek01.h
Entries to MAKEALL and MAINTAINERS are missing. > Index: u-boot-mainline/Makefile > =================================================================== > --- u-boot-mainline.orig/Makefile 2009-10-19 13:17:12.185302922 +0200 > +++ u-boot-mainline/Makefile 2009-10-19 13:17:17.519552635 +0200 > @@ -725,6 +725,9 @@ > } > @$(MKCONFIG) -a PM520 ppc mpc5xxx pm520 > > +ipek01_config: unconfig > + @$(MKCONFIG) -a ipek01 ppc mpc5xxx ipek01 > + Please keep list ssorted. > Index: u-boot-mainline/board/ipek01/ipek01.c > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ u-boot-mainline/board/ipek01/ipek01.c 2009-10-19 13:17:17.527552105 > +0200 ... > +#ifndef CONFIG_SYS_RAMBOOT Is RAM-Boot actually a asupported mode of operation on this board, or are you just copuy & pasting dead code here? > +static void sdram_start (int hi_addr) > +{ > + long hi_addr_bit = hi_addr ? 0x01000000 : 0; > + > + /* unlock mode register */ > + *(vu_long *) MPC5XXX_SDRAM_CTRL = > + SDRAM_CONTROL | 0x80000000 | hi_addr_bit; > + __asm__ volatile ("sync"); Please use I/O accessors to write device registers (please fix globally). ... > +phys_size_t initdram (int board_type) > +{ > + ulong dramsize = 0; > + ulong dramsize2 = 0; > + uint svr, pvr; > +#ifndef CONFIG_SYS_RAMBOOT > + ulong test1, test2; > + > + /* setup SDRAM chip selects */ > + *(vu_long *) MPC5XXX_SDRAM_CS0CFG = 0x0000001e; /* 2G at 0x0 */ > + *(vu_long *) MPC5XXX_SDRAM_CS1CFG = 0x00000000; /* disabled */ It might make sense to #define some constants in the board config file. > + > + /* setup config registers */ > + *(vu_long *) MPC5XXX_SDRAM_CONFIG1 = SDRAM_CONFIG1; > + *(vu_long *) MPC5XXX_SDRAM_CONFIG2 = SDRAM_CONFIG2; > + __asm__ volatile ("sync"); > + > +#if SDRAM_DDR I consider this bad style. In U-Boot, we usually use #ifdef, but this collides with your #define SDRAM_DDR 0 versus 1 below. I recommend to clean this up. > + /* > + * On MPC5200B we need to set the special configuration delay in the > + * DDR controller. Please refer to Freescale's AN3221 "MPC5200B SDRAM > + * Initialization and Configuration", 3.3.1 SDelay--MBAR + 0x0190: > + * > + * "The SDelay should be written to a value of 0x00000004. It is > + * required to account for changes caused by normal wafer processing > + * parameters." > + */ > + svr = get_svr (); > + pvr = get_pvr (); > + if ((SVR_MJREV (svr) >= 2) && (PVR_MAJ (pvr) == 1) && > + (PVR_MIN (pvr) == 4)) { > + *(vu_long *) MPC5XXX_SDRAM_SDELAY = 0x04; > + __asm__ volatile ("sync"); > + } Is this test really needed? Are there versions of this board with pre-Rev. B silicon? > +#if defined (CONFIG_CMD_IDE) && defined (CONFIG_IDE_RESET) > + > +void init_ide_reset (void) > +{ > + debug ("init_ide_reset\n"); > +} > + > +void ide_set_reset (int idereset) > +{ > + debug ("ide_reset(%d)\n", idereset); > +} > +#endif /* defined (CONFIG_SYS_CMD_IDE) && defined (CONFIG_IDE_RESET) */ This is just dead code. Please get rid of it. > +#ifdef CONFIG_VIDEO > +#define DISPLAY_WIDTH 800 > +#define DISPLAY_HEIGHT 600 This should go to the board config file. > +#define CONFIG_SYS_LIME_SRST (CONFIG_SYS_LIME_BASE + 0x01FC002C) > +#define CONFIG_SYS_LIME_CCF (CONFIG_SYS_LIME_BASE + 0x01FC0038) > +#define CONFIG_SYS_LIME_MMR (CONFIG_SYS_LIME_BASE + 0x01FCFFFC) > +/* Lime clock frequency */ > +#define CONFIG_SYS_LIME_CLK 0x90000 /* geo 166MHz other 133MHz */ > +/* SDRAM parameter */ > +#define CONFIG_SYS_LIME_MMR_VALUE 0x41c767e3 Please do not use base register plus offset. Use a proper C struct to describe the device registers. > +#define CONFIG_SYS_LIME_CID (CONFIG_SYS_LIME_BASE + 0x01FC00F0) > +#define CONFIG_SYS_LIME_REV (CONFIG_SYS_LIME_BASE + 0x01FF8084) Ditto. > +int lime_probe (void) > +{ > + uint reg; > + > + /* Try to access GDC ID/Revision registers */ > + reg = in_be32 ((void *)CONFIG_SYS_LIME_CID); > + reg = in_be32 ((void *)CONFIG_SYS_LIME_CID); > + if (reg == 0x303) { > + reg = in_be32 ((void *)CONFIG_SYS_LIME_REV); > + reg = in_be32 ((void *)CONFIG_SYS_LIME_REV); > + reg = ((reg & ~0xff) == 0x20050100) ? 1 : 0; Please see above - using a proper C struct we can get rid of these casts. > +#if defined(CONFIG_CONSOLE_EXTRA_INFO) > +/* > + * Return text to be printed besides the logo. > + */ > +void video_get_info_str (int line_number, char *info) > +{ > + if (line_number == 1) { > + strcpy (info, " Board: IPEK01"); > + } else { > + info[0] = '\0'; > + } Please use TABs for indentation. And no braces are needed here. > Index: u-boot-mainline/board/ipek01/mt46v16m16-75.h > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ u-boot-mainline/board/ipek01/mt46v16m16-75.h 2009-10-19 > 13:17:17.529553509 +0200 Seems we are adding the 8th copy of this file? Can you please move this to a common place? Thanks. > +#define SDRAM_DDR 1 /* is DDR */ Dangerous. See somment above. > Index: u-boot-mainline/board/ipek01/mt48lc16m16a2-75.h > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ u-boot-mainline/board/ipek01/mt48lc16m16a2-75.h 2009-10-19 > 13:17:17.530552255 +0200 Seems we are adding the 9th copy of this file? Can you please move this to a common place? Thanks. > +#define SDRAM_DDR 0 /* is SDR */ Very dangerous. See somment above. > Index: u-boot-mainline/board/ipek01/u-boot.lds > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ u-boot-mainline/board/ipek01/u-boot.lds 2009-10-19 13:17:17.540334101 > +0200 Does this board really need a private linker script? I don't think so. > Index: u-boot-mainline/include/configs/ipek01.h > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ u-boot-mainline/include/configs/ipek01.h 2009-10-19 13:17:17.541552432 > +0200 ... > +#define CONFIG_MPC5200_DDR 1 /* ... use DDR RAM */ Seems to be redundant with the SDRAM_DDR above. Please decide for one solution. > +#define CONFIG_CMD_DATE /* support for RTC, date/time...*/ > +#define CONFIG_CMD_DHCP /* DHCP Support */ > +#define CONFIG_CMD_FAT /* FAT support */ > +#define CONFIG_CMD_I2C /* I2C serial bus support */ > +#define CONFIG_CMD_IRQ /* irqinfo */ > +#define CONFIG_CMD_IDE /* IDE harddisk support */ > +#define CONFIG_CMD_MII /* MII support */ > +#define CONFIG_CMD_PCI /* pciinfo */ > +#define CONFIG_CMD_USB /* USB Support */ Maybe you could sort this list? Thanks. > +#if (TEXT_BASE == 0xFC000000) /* Boot low */ > +# define CONFIG_SYS_LOWBOOT 1 > +#endif Needed or dead code? > + "rootpath=/opt/eldk41/ppc_6xx\0" \ Is this intentional? Or did you just forget to s/41// ? > + "loadaddr=300000\0" \ This is pretty low; be careful when your kernel grows a bit... > +#define OF_CPU "PowerPC,5...@0" > +#define OF_SOC "soc5...@f0000000" > +#define OF_TBCLK (bd->bi_busfreq / 4) > +#define OF_STDOUT_PATH "/soc5...@f0000000/ser...@2000" Is all this really needed? > +/* Disk-On-Chip currently not supported by U-Boot */ > +#define CONFIG_SYS_DOC_BASE 0xE0000000 > +#define CONFIG_SYS_DOC_SIZE 0x00100000 Dead code? Please remove. > +#define CONFIG_SYS_INIT_RAM_END MPC5XXX_SRAM_SIZE /* End > of used area in DPRAM */ Line too long. There are more too long lines in this patch. Please check globally. > +#undef CONFIG_IDE_8xx_PCCARD /* Use IDE with PC Card Adapter > */ > + > +#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported > */ > +#undef CONFIG_IDE_LED /* LED for ide not supported > */ No need to #undef what is not defined anyway. Please clean up and resubmit. Thanks. 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 How does a project get to be a year late? ... One day at a time. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot