Re: [U-Boot] [Announce][RFC] CFG_ macro re naming
On Tue, Sep 02, 2008 at 01:56:24AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote: For USB settings CONFIG_USE or CONFIG_SYS_PCI_ Huh? I guess you meant s/USE/USB/ and s/PCI/USB/ ? Best regards Markus -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: [EMAIL PROTECTED]) ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/1] device: clone device on register
Jean-Christophe PLAGNIOL-VILLARD [EMAIL PROTECTED] wrote: I've plan to cleanup this part during next release. and redesign console management to simplify it and reduce its code. I'm currently designing a generic bus/device/driver mecanism that will simplify the implementation without increase the size. Cool. Something like that is definitely needed. Haavard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] unassigned-patches/24: [PATCH] PHY: Add support for the M88E1121R Marvell chip.
Hi Ben, Hi Detlev, On Mon, Sep 1, 2008 at 3:48 PM, Detlev Zundel [EMAIL PROTECTED] wrote: Hi Ben, It looks like this one slipped through the cracks. I've looked through my e-mails and found one from Wolfgang on 6/8 where he said he'd apply it, so I acked the patch rather than pulling it myself. For whatever reason, it didn't make it in. I've rejigged the patch to apply to TOT, and have applied to the net repo. Please find the fixed-up patch attached, as applied to e99e9575bbeba1b7c48e046547cae065ec0071de Excellent. Any idea on when you will send a pull request? The only thing holding me back is that there are quite a few changes that were posted over the weekend or today (a statutory holiday in the U.S. and Canada) and would like to give people more time to review. If it's OK with you, I'll send a pull request tomorrow night so you guys have it first thing Wednesday morning. Thats fine. If you don't think this precaution is necessary, I can send a request tonight. Don't get me wrong, I did not want to push you. I only wanted to know at what time I'd need to send reminders again ;) Cheers Detlev -- 5.7: Practically speaking, what is the difference between arrays and pointers? About the difference between alcohol and marijuana; they have different characteristics, and that's not a problem if you don't mix them too carelessly. - Infrequently Asked Questions in comp.lang.c -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED] ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Burning U-boot on 460EX using BDI3000
Hi, Victor Victor Gallardo wrote: Hi Felix, Here is my BDI configuration file for Canyonlands. This one should work for you. This one configures OCM instead DDR. -Victor Gallardo Your configuration works fine, thanks a lot. Felix. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Felix Radensky Sent: Monday, September 01, 2008 9:43 AM To: U-Boot Subject: [U-Boot] Burning U-boot on 460EX using BDI3000 Hi, Can U-boot be burned on 460EX based board (using BDI3000) without configuring DDR controller ? The BDI configuration file for Canyonlands board on Denx site http://www.denx.de/wiki/view/DULG/Appendix#Section_13.1. has no DDR setup, but also doesn't work on Canyonlands (fails on flash erase). The configuration file from AMCC site does work, but it contains full DDR setup. Thanks a lot. Felix. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 2/6] avr32: Add clk and portmux infrastructure for the LCDC
Signed-off-by: Haavard Skinnemoen [EMAIL PROTECTED] --- cpu/at32ap/at32ap700x/portmux.c | 14 ++ include/asm-avr32/arch-at32ap700x/chip-features.h |5 + include/asm-avr32/arch-at32ap700x/clk.h |6 ++ include/asm-avr32/arch-at32ap700x/portmux.h |3 +++ 4 files changed, 28 insertions(+), 0 deletions(-) diff --git a/cpu/at32ap/at32ap700x/portmux.c b/cpu/at32ap/at32ap700x/portmux.c index 2a3b004..da0c9c5 100644 --- a/cpu/at32ap/at32ap700x/portmux.c +++ b/cpu/at32ap/at32ap700x/portmux.c @@ -202,3 +202,17 @@ void portmux_enable_spi1(unsigned long cs_mask, unsigned long drive_strength) PORTMUX_DIR_OUTPUT | PORTMUX_INIT_HIGH); } #endif + +#ifdef AT32AP700x_CHIP_HAS_LCDC +void portmux_enable_lcdc(void) +{ + /* +* FIXME: We want to allow the board much more control over +* which pins to enable +*/ + portmux_select_peripheral(PORTMUX_PORT_C, 0xfff8, + PORTMUX_FUNC_A, 0); + portmux_select_peripheral(PORTMUX_PORT_D, 0x0003, + PORTMUX_FUNC_A, 0); +} +#endif diff --git a/include/asm-avr32/arch-at32ap700x/chip-features.h b/include/asm-avr32/arch-at32ap700x/chip-features.h index c47107e..b6bd1cd 100644 --- a/include/asm-avr32/arch-at32ap700x/chip-features.h +++ b/include/asm-avr32/arch-at32ap700x/chip-features.h @@ -32,4 +32,9 @@ #define AT32AP700x_CHIP_HAS_MACB #endif +/* AP7001 doesn't have a LCD controller */ +#if defined(CONFIG_AT32AP7000) || defined(CONFIG_AT32AP7002) +#define AT32AP700x_CHIP_HAS_LCDC +#endif + #endif /* __ASM_AVR32_ARCH_CHIP_FEATURES_H__ */ diff --git a/include/asm-avr32/arch-at32ap700x/clk.h b/include/asm-avr32/arch-at32ap700x/clk.h index 21545a3..83a76f2 100644 --- a/include/asm-avr32/arch-at32ap700x/clk.h +++ b/include/asm-avr32/arch-at32ap700x/clk.h @@ -82,6 +82,12 @@ static inline unsigned long get_spi_clk_rate(unsigned int dev_id) return get_pba_clk_rate(); } #endif +#ifdef AT32AP700x_CHIP_HAS_LCDC +static inline unsigned long get_lcdc_clk_rate(unsigned int dev_id) +{ + return CONFIG_LCDC_PIXCLK_RATE; +} +#endif extern void clk_init(void); diff --git a/include/asm-avr32/arch-at32ap700x/portmux.h b/include/asm-avr32/arch-at32ap700x/portmux.h index 96fe70d..491d588 100644 --- a/include/asm-avr32/arch-at32ap700x/portmux.h +++ b/include/asm-avr32/arch-at32ap700x/portmux.h @@ -85,5 +85,8 @@ void portmux_enable_mmci(unsigned int slot, unsigned long flags, void portmux_enable_spi0(unsigned long cs_mask, unsigned long drive_strength); void portmux_enable_spi1(unsigned long cs_mask, unsigned long drive_strength); #endif +#ifdef AT32AP700x_CHIP_HAS_LCDC +void portmux_enable_lcdc(void); +#endif #endif /* __ASM_AVR32_ARCH_PORTMUX_H__ */ -- 1.5.6.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 4/6] spi: Add spi_xfer_single() convenience wrapper
Quite often, you only want to do a single SPI transfer with chip select toggling before and after. Add a simple convenience wrapper for this purpose. For more advanced usage, the spi_xfer() function is still available. Signed-off-by: Haavard Skinnemoen [EMAIL PROTECTED] --- include/spi.h | 15 ++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/include/spi.h b/include/spi.h index 320e50e..be87173 100644 --- a/include/spi.h +++ b/include/spi.h @@ -176,6 +176,19 @@ void spi_cs_activate(struct spi_slave *slave); void spi_cs_deactivate(struct spi_slave *slave); /*--- + * Single SPI Transfer + * + * Convenience wrapper for doing a single SPI transfer, i.e. asserting + * CS before, and deasserting it after the transfer. + */ +static inline int spi_xfer_single(struct spi_slave *slave, + unsigned int bitlen, const void *dout, void *din) +{ + return spi_xfer(slave, bitlen, dout, din, + SPI_XFER_BEGIN | SPI_XFER_END); +} + +/*--- * Write 8 bits, then read 8 bits. * slave:The SPI slave we're communicating with * byte: Byte to be written @@ -193,7 +206,7 @@ static inline int spi_w8r8(struct spi_slave *slave, unsigned char byte) dout[0] = byte; dout[1] = 0; - ret = spi_xfer(slave, 16, dout, din, SPI_XFER_BEGIN | SPI_XFER_END); + ret = spi_xfer_single(slave, 16, dout, din); return ret 0 ? ret : din[1]; } -- 1.5.6.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 0/6] ATSTK1000 LCD panel support
The following series adds support for the LCD panel on the ATSTK1000. To use this, you must first apply both of the following series: http://lists.denx.de/pipermail/u-boot/2008-September/039826.html http://lists.denx.de/pipermail/u-boot/2008-September/039833.html I'm a bit unsure what to do about this. While I certainly want LCD support out of the box on all boards that support it, this patchset brings the U-Boot image size dangerously close to 128k, which is the space we currently have available with the current MTD partitioning layout hardcoded into the kernel. With NAND flash support added on top of this, the ATSTK1006 image ends up at almost 150k, and there are still other features I'd like to support in the future, e.g. libfdt, Hush parser, USB, etc. So this means I can either merge this as-is but disabled by default (which is bad from a testing perspective), disable some other features, or change the partitioning. Doing the latter will also make it possible to introduce redundant environment, but it means current kernels will break. Since the ATSTK1000 doesn't actually ship with a filesystem in flash by default, the breakage will probably be limited to a handful of customized boards, but people who have done this kind of customization probably won't like that the flash layout changes behind their back. What do everyone think about this? Is redundant environment and a boatload of features worth breaking compatibility with current kernels? Haavard Shortlog and diffstat for the whole series follows. Haavard Skinnemoen (6): ATSTK1000: Make the MACBs individually selectable avr32: Add clk and portmux infrastructure for the LCDC avr32: Reserve memory for LCD framebuffer spi: Add spi_xfer_single() convenience wrapper ATSTK1000: Add driver for the onboard LCD panel ATSTK1000: LCD support board/atmel/atstk1000/Makefile|1 + board/atmel/atstk1000/atstk1000.c | 105 ++- board/atmel/atstk1000/ltv350qv.c | 157 + board/atmel/atstk1000/ltv350qv.h | 95 + cpu/at32ap/at32ap700x/portmux.c | 14 ++ include/asm-avr32/arch-at32ap700x/chip-features.h |5 + include/asm-avr32/arch-at32ap700x/clk.h |6 + include/asm-avr32/arch-at32ap700x/portmux.h |3 + include/asm-avr32/global_data.h |1 + include/configs/atstk1002.h | 25 include/configs/atstk1006.h | 26 include/spi.h | 15 ++- lib_avr32/board.c |6 + 13 files changed, 457 insertions(+), 2 deletions(-) create mode 100644 board/atmel/atstk1000/ltv350qv.c create mode 100644 board/atmel/atstk1000/ltv350qv.h ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCHv2] Don't tftp to unknown flash
If a board has a variable number of flash banks, there are empty entries in flash_info[] and CFG_DIRECT_FLASH_TFTP is set, tftp boot fails with Outside available Flash. This patch skips flash banks with unknown flash ids. Signed-off-by: Jochen Friedrich [EMAIL PROTECTED] --- net/tftp.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/net/tftp.c b/net/tftp.c index 84d83ca..9aeecb8 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -111,6 +111,8 @@ store_block (unsigned block, uchar * src, unsigned len) for (i=0; iCFG_MAX_FLASH_BANKS; i++) { /* start address in flash? */ + if (flash_info[i].flash_id == FLASH_UNKNOWN) + continue; if (load_addr + offset = flash_info[i].start[0]) { rc = 1; break; -- 1.5.6.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 3/6] 4xx: Cleanup PLU405 linker script
Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- board/esd/plu405/u-boot.lds | 14 -- 1 files changed, 0 insertions(+), 14 deletions(-) diff --git a/board/esd/plu405/u-boot.lds b/board/esd/plu405/u-boot.lds index d70d379..d52b51a 100644 --- a/board/esd/plu405/u-boot.lds +++ b/board/esd/plu405/u-boot.lds @@ -61,19 +61,6 @@ SECTIONS /* the sector layout of our flash chips! XXX FIXME XXX */ cpu/ppc4xx/start.o (.text) -cpu/ppc4xx/traps.o (.text) -cpu/ppc4xx/interrupts.o(.text) -cpu/ppc4xx/4xx_uart.o (.text) -cpu/ppc4xx/cpu_init.o (.text) -cpu/ppc4xx/speed.o (.text) -cpu/ppc4xx/4xx_enet.o (.text) -common/dlmalloc.o (.text) -lib_generic/crc32.o(.text) -lib_ppc/extable.o (.text) -lib_generic/zlib.o (.text) - -/*. = env_offset;*/ -/*common/environment.o(.text)*/ *(.text) *(.fixup) @@ -124,7 +111,6 @@ SECTIONS .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; - . = .; __start___ex_table = .; __ex_table : { *(__ex_table) } -- 1.5.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 2/6] 4xx: Add fdt support for PLU405 boards
Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- include/configs/PLU405.h |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/include/configs/PLU405.h b/include/configs/PLU405.h index 0e04691..211d926 100644 --- a/include/configs/PLU405.h +++ b/include/configs/PLU405.h @@ -89,6 +89,8 @@ #define CONFIG_CMD_PING #define CONFIG_CMD_EEPROM +#define CONFIG_OF_LIBFDT +#define CONFIG_OF_BOARD_SETUP #define CONFIG_MAC_PARTITION #define CONFIG_DOS_PARTITION -- 1.5.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 1/6] 4xx: Increase U-Boot size to 384kB for PLU405 boards
Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- board/esd/plu405/config.mk |3 +-- include/configs/PLU405.h |6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/board/esd/plu405/config.mk b/board/esd/plu405/config.mk index 25b2105..0fb4efa 100644 --- a/board/esd/plu405/config.mk +++ b/board/esd/plu405/config.mk @@ -25,5 +25,4 @@ # esd PLU405 boards # -TEXT_BASE = 0xFFFC -#TEXT_BASE = 0x00FC +TEXT_BASE = 0xFFFA diff --git a/include/configs/PLU405.h b/include/configs/PLU405.h index a3d1c56..0e04691 100644 --- a/include/configs/PLU405.h +++ b/include/configs/PLU405.h @@ -262,10 +262,10 @@ * Please note that CFG_SDRAM_BASE _must_ start at 0 */ #define CFG_SDRAM_BASE 0x -#define CFG_FLASH_BASE 0xFFFC +#define CFG_FLASH_BASE 0xFFFA #define CFG_MONITOR_BASE TEXT_BASE -#define CFG_MONITOR_LEN(256 * 1024)/* Reserve 256 kB for Monitor */ -#define CFG_MALLOC_LEN (256 * 1024)/* Reserve 256 kB for malloc() */ +#define CFG_MONITOR_LEN(384 * 1024)/* Reserve 256 kB for Monitor */ +#define CFG_MALLOC_LEN (384 * 1024)/* Reserve 256 kB for malloc() */ #if (CFG_MONITOR_BASE FLASH_BASE0_PRELIM) # define CFG_RAMBOOT 1 -- 1.5.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 4/6] 4xx: Cleanup PLU405 platform file
This patch - wraps some long lines - removes unused/obsolete functions: misc_init_f() and initdram() Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- board/esd/plu405/plu405.c | 58 1 files changed, 21 insertions(+), 37 deletions(-) diff --git a/board/esd/plu405/plu405.c b/board/esd/plu405/plu405.c index fc71e9a..3db9c0a 100644 --- a/board/esd/plu405/plu405.c +++ b/board/esd/plu405/plu405.c @@ -65,11 +65,9 @@ au_image_t au_image[] = { int N_AU_IMAGES = (sizeof(au_image) / sizeof(au_image[0])); - /* Prototypes */ int gunzip(void *, int, unsigned char *, unsigned long *); - int board_early_init_f (void) { /* @@ -89,24 +87,18 @@ int board_early_init_f (void) mtdcr(uiccr, 0x); /* set all to be non-critical*/ mtdcr(uicpr, 0xFF99); /* set int polarities */ mtdcr(uictr, 0x1000); /* set int trigger levels */ - mtdcr(uicvcr, 0x0001); /* set vect base=0,INT0 highest priority*/ + mtdcr(uicvcr, 0x0001); /* set vect base=0,INT0 highest prio */ mtdcr(uicsr, 0x); /* clear all ints */ /* -* EBC Configuration Register: set ready timeout to 512 ebc-clks - ca. 15 us +* EBC Configuration Register: set ready timeout to +* 512 ebc-clks - ca. 15 us */ mtebc (epcr, 0xa840); /* ebc always driven */ return 0; } - -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - - int misc_init_r (void) { unsigned char *duart0_mcr = (unsigned char *)((ulong)DUART0_BA + 4); @@ -132,13 +124,16 @@ int misc_init_r (void) printf(\nFPGA: Booting failed ); switch (status) { case ERROR_FPGA_PRG_INIT_LOW: - printf((Timeout: INIT not low after asserting PROGRAM*)\n ); + printf((Timeout: INIT not low + after asserting PROGRAM*)\n); break; case ERROR_FPGA_PRG_INIT_HIGH: - printf((Timeout: INIT not high after deasserting PROGRAM*)\n ); + printf((Timeout: INIT not high + after deasserting PROGRAM*)\n); break; case ERROR_FPGA_PRG_DONE: - printf((Timeout: DONE not high after programming FPGA)\n ); + printf((Timeout: DONE not high + after programming FPGA)\n); break; } @@ -184,15 +179,16 @@ int misc_init_r (void) /* * Reset external DUARTs */ - out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) | CFG_DUART_RST); /* set reset to high */ - udelay(10); /* wait 10us */ - out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) ~CFG_DUART_RST); /* set reset to low */ - udelay(1000); /* wait 1ms */ + out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) | CFG_DUART_RST); + udelay(10); + out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) ~CFG_DUART_RST); + udelay(1000); /* * Set NAND-FLASH GPIO signals to default */ - out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) ~(CFG_NAND_CLE | CFG_NAND_ALE)); + out_be32((void*)GPIO0_OR, +in_be32((void*)GPIO0_OR) ~(CFG_NAND_CLE | CFG_NAND_ALE)); out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) | CFG_NAND_CE); /* @@ -210,7 +206,6 @@ int misc_init_r (void) return (0); } - /* * Check Board Identity: */ @@ -231,18 +226,6 @@ int checkboard (void) return 0; } - -phys_size_t initdram (int board_type) -{ - unsigned long val; - - mtdcr(memcfga, mem_mb0cf); - val = mfdcr(memcfgd); - - return (4*1024*1024 ((val 0x000e) 17)); -} - - #ifdef CONFIG_IDE_RESET void ide_set_reset(int on) { @@ -260,7 +243,6 @@ void ide_set_reset(int on) } #endif /* CONFIG_IDE_RESET */ - void reset_phy(void) { #ifdef CONFIG_LXT971_NO_SLEEP @@ -272,7 +254,6 @@ void reset_phy(void) #endif } - #if defined(CFG_EEPROM_WREN) /* Input: dev_addr I2C address of EEPROM device to enable. * state -1: deliver current state @@ -290,17 +271,20 @@ int eeprom_write_enable (unsigned dev_addr, int state) switch (state) { case 1: /* Enable write access, clear bit GPIO0. */ - out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) ~CFG_EEPROM_WP); + out_be32((void*)GPIO0_OR, +in_be32((void*)GPIO0_OR) ~CFG_EEPROM_WP); state = 0; break; case 0: /* Disable write access, set bit GPIO0. */ - out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) |
[U-Boot] [PATCH 5/6] 4xx: Enable USB on PLU405 boards
This patch enables the PCI-OHCI controller on PLU405 board. Also the default CPU frequency is updated to 266 MHz and command line editing is enabled. Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- include/configs/PLU405.h | 20 1 files changed, 16 insertions(+), 4 deletions(-) diff --git a/include/configs/PLU405.h b/include/configs/PLU405.h index 211d926..4d302ef 100644 --- a/include/configs/PLU405.h +++ b/include/configs/PLU405.h @@ -88,6 +88,7 @@ #define CONFIG_CMD_MII #define CONFIG_CMD_PING #define CONFIG_CMD_EEPROM +#define CONFIG_CMD_USB #define CONFIG_OF_LIBFDT #define CONFIG_OF_BOARD_SETUP @@ -150,6 +151,7 @@ #define CFG_HZ 1000/* decrementer freq: 1 ms ticks */ +#define CONFIG_CMDLINE_EDITING 1 /* add command line history */ #define CONFIG_ZERO_BOOTDELAY_CHECK/* check for keypress on bootdelay==0 */ #define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */ @@ -192,7 +194,7 @@ #define PCI_HOST_AUTO 2 /* detected via arbiter enable */ #define CONFIG_PCI /* include pci support */ -#define CONFIG_PCI_HOSTPCI_HOST_HOST /* select pci host function */ +#define CONFIG_PCI_HOSTPCI_HOST_FORCE /* select pci host function */ #define CONFIG_PCI_PNP /* do pci plug-and-play */ /* resource configuration */ @@ -208,7 +210,7 @@ #define CFG_PCI_PTM1PCI 0x /* Host: use this pci address */ #define CFG_PCI_PTM2LA 0xffc0 /* point to flash */ #define CFG_PCI_PTM2MS 0xffc1 /* 4MB, enable */ -#define CFG_PCI_PTM2PCI 0x0400 /* Host: use this pci address */ +#define CFG_PCI_PTM2PCI 0x0800 /* Host: use this pci address */ /*--- * IDE/ATA stuff @@ -406,7 +408,7 @@ * Default speed selection (cpu_plb_opb_ebc) in mhz. * This value will be set if iic boot eprom is disabled. */ -#if 0 +#if 1 #define PLLMR0_DEFAULT PLLMR0_266_133_66_33 #define PLLMR1_DEFAULT PLLMR1_266_133_66_33 #endif @@ -414,9 +416,19 @@ #define PLLMR0_DEFAULT PLLMR0_200_100_50_33 #define PLLMR1_DEFAULT PLLMR1_200_100_50_33 #endif -#if 1 +#if 0 #define PLLMR0_DEFAULT PLLMR0_133_66_66_33 #define PLLMR1_DEFAULT PLLMR1_133_66_66_33 #endif +/* + * PCI OHCI controller + */ +#define CONFIG_USB_OHCI_NEW1 +#define CONFIG_PCI_OHCI1 +#define CFG_OHCI_SWAP_REG_ACCESS 1 +#define CFG_USB_OHCI_MAX_ROOT_PORTS 15 +#define CFG_USB_OHCI_SLOT_NAME ohci_pci +#define CONFIG_USB_STORAGE 1 + #endif /* __CONFIG_H */ -- 1.5.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/6] ATSTK1000 LCD panel support
Eirik Aanonsen [EMAIL PROTECTED] wrote: I would prefer more testing over user/developer compability. Yes. I don't feel good about merging something which no boards use by default. But if you resize the partition for u-boot be sure to resize to 256k and not 192k, since this would cause a lot more problems than needed for us using flash chips with 128k block size. Not a big problem but an issue. I'm talking about changing the partitioning specifically on ATSTK1000. Other boards can do whatever they want. But it may be a good idea to reserve 256k anyway since it becomes less likely that we'll have to do the same thing all over again in the future. Also note that we're not talking about increasing the size of the boot loader in general -- if you have a custom board and don't want to spend 256k of flash on the boot loader, you'll just have to not enable these space-consuming features. I have to say I was a bit surprised by the size of the NAND code though. The LCD code is sort of excused since it sucks in a big uncompressed logo... I would love to see USB support implemented. Yeah...maybe I shouldn't have said that ;-) It would be cool to be able to run console over USB, but I don't know if U-Boot has any USB gadget support...so it might take a while to implement. Haavard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 2/5] atmel_lcdfb: Straighten out funky vl_sync logic
Hi Haavard, If the board _didn't_ request INVLINE_INVERTED, we set INVLINE_INVERTED, otherwise we don't. WTF? Signed-off-by: Haavard Skinnemoen [EMAIL PROTECTED] --- drivers/video/atmel_lcdfb.c |5 + 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c index 7f0dceb..3a51cc7 100644 --- a/drivers/video/atmel_lcdfb.c +++ b/drivers/video/atmel_lcdfb.c @@ -107,10 +107,7 @@ void lcd_ctrl_init(void *lcdbase) if (panel_info.vl_tft) value |= ATMEL_LCDC_DISTYPE_TFT; - if (!(panel_info.vl_sync ATMEL_LCDC_INVLINE_INVERTED)) - value |= ATMEL_LCDC_INVLINE_INVERTED; - if (!(panel_info.vl_sync ATMEL_LCDC_INVFRAME_INVERTED)) - value |= ATMEL_LCDC_INVFRAME_INVERTED; + value |= panel_info.vl_sync; What about value |= panel_info.vl_sync (ATMEL_LCDC_INVLINE_INVERTED | ATMEL_LCDC_INVFRAME_INVERTED); [break lines where convenient] Apart from this being the formal equivalent to the original code, this would make it more clear what can go in, no? Cheers Detlev -- [From 2.4 to 2.6 to 2.7 discussing release numbering of the Linux kernel] Let the bike-shed-painting begin. -- Linus Torvalds -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED] ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/6] ATSTK1000 LCD panel support
I would prefer more testing over user/developer compability. Yes. I don't feel good about merging something which no boards use by default. But if you resize the partition for u-boot be sure to resize to 256k and not 192k, since this would cause a lot more problems than needed for us using flash chips with 128k block size. Not a big problem but an issue. I'm talking about changing the partitioning specifically on ATSTK1000. Other boards can do whatever they want. But it may be a good idea to reserve 256k anyway since it becomes less likely that we'll have to do the same thing all over again in the future. But making it more likely to have equal partitions makes it easier to test kernels on different boards for debugging. I use my kernel on both the stk1000 and my own custom board. Then again no big deal but makes compliance/testing easier. ... I have to say I was a bit surprised by the size of the NAND code though. The LCD code is sort of excused since it sucks in a big uncompressed logo... Is there any plans for supporting the UBI/UBIFS, or is it planned? ( prob. not but yes it is large, but too large? ) I would love to see USB support implemented. Yeah...maybe I shouldn't have said that ;-) It would be cool to be able to run console over USB, but I don't know if U-Boot has any USB gadget support...so it might take a while to implement. I think besides a usb core there is not much useful released relating to gadget drivers at least. No, pressure :) Haavard Eirik Aa ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 2/5] atmel_lcdfb: Straighten out funky vl_sync logic
Detlev Zundel [EMAIL PROTECTED] wrote: What about value |= panel_info.vl_sync (ATMEL_LCDC_INVLINE_INVERTED | ATMEL_LCDC_INVFRAME_INVERTED); [break lines where convenient] Apart from this being the formal equivalent to the original code, this would make it more clear what can go in, no? Well, there's also INVVD, INVCLK and INVDVAL which the original code doesn't care about at all. I'm not sure if all of them are suitable for the vl_sync field, but perhaps the field should be renamed. In Linux, there's just a default_lcdcon2 field which the board code can use to set any flags it wants. I'm not sure if the driver should really bother too much about those flags anyway -- almost all of them depend on the type of display, how it's hooked up, etc. Haavard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] MACB and DM9000 support for AT91SAM9260
Hi All, We have a board with 2 ethernet ports: one on the macb and the other on a dm9000-chip. Got them both working under linux but the dm9000 doesn't get a MAC-address assigned now. I would like to give the dm9000 its MAC-address in U-Boot via a environment-variable. Because I'm new to U-Boot, I do not see how I can initialise the dm9000 (eth_init()) and macb (which is initialised via eth_init() in eth.c). To me it looks like macb dm9000 driver are using a different type of driver concept. How can this problem be tackled? Greetings Frank ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 4/4] 4xx: Update VOM405 board configuration
From: Matthias Fuchs [EMAIL PROTECTED] - remove PCI code - add command line editing - minor cleanup Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- include/configs/VOM405.h | 52 -- 1 files changed, 9 insertions(+), 43 deletions(-) diff --git a/include/configs/VOM405.h b/include/configs/VOM405.h index 43404fc..f235890 100644 --- a/include/configs/VOM405.h +++ b/include/configs/VOM405.h @@ -24,7 +24,6 @@ /* * board/config.h - configuration options, board specific */ - #ifndef __CONFIG_H #define __CONFIG_H @@ -32,7 +31,6 @@ * High Level Configuration Options * (easy to change) */ - #define CONFIG_405EP 1 /* This is a PPC405 CPU */ #define CONFIG_4xx 1 /* ...member of PPC4xx family */ #define CONFIG_VOM405 1 /* ...on a VOM405 board */ @@ -71,7 +69,6 @@ #define CONFIG_BOOTP_DNS2 #define CONFIG_BOOTP_SEND_HOSTNAME - /* * Command line configuration. */ @@ -79,7 +76,6 @@ #define CONFIG_CMD_DHCP #define CONFIG_CMD_BSP -#define CONFIG_CMD_PCI #define CONFIG_CMD_IRQ #define CONFIG_CMD_ELF #define CONFIG_CMD_I2C @@ -138,44 +134,20 @@ #define CFG_HZ 1000/* decrementer freq: 1 ms ticks */ +#define CONFIG_CMDLINE_EDITING 1 /* add command line history */ #define CONFIG_ZERO_BOOTDELAY_CHECK/* check for keypress on bootdelay==0 */ #define CONFIG_VERSION_VARIABLE 1 /* include version env variable */ #define CFG_RX_ETH_BUFFER 16 /* use 16 rx buffer on 405 emac */ -/*--- - * PCI stuff - *--- - */ -#define PCI_HOST_ADAPTER 0 /* configure as pci adapter */ -#define PCI_HOST_FORCE 1 /* configure as pci host*/ -#define PCI_HOST_AUTO 2 /* detected via arbiter enable */ - -#define CONFIG_PCI /* include pci support */ -#define CONFIG_PCI_HOST PCI_HOST_HOST /* select pci host function */ -#undef CONFIG_PCI_PNP /* do pci plug-and-play */ - /* resource configuration */ - -#undef CONFIG_PCI_SCAN_SHOW/* print pci devices @ startup */ - -#define CFG_PCI_SUBSYS_VENDORID 0x12FE /* PCI Vendor ID: esd gmbh */ -#define CFG_PCI_SUBSYS_DEVICEID 0x0405 /* PCI Device ID: CPCI-405 */ -#define CFG_PCI_CLASSCODE 0x0b20 /* PCI Class Code: Processor/PPC*/ -#define CFG_PCI_PTM1LA 0x /* point to sdram */ -#define CFG_PCI_PTM1MS 0xfc01 /* 64MB, enable hard-wired to 1 */ -#define CFG_PCI_PTM1PCI 0x /* Host: use this pci address */ -#define CFG_PCI_PTM2LA 0xffc0 /* point to flash */ -#define CFG_PCI_PTM2MS 0xffc1 /* 4MB, enable */ -#define CFG_PCI_PTM2PCI 0x0400 /* Host: use this pci address */ - /* * For booting Linux, the board info and command line data * have to be in the first 8 MB of memory, since this is * the maximum mapped by the Linux kernel during initialization. */ #define CFG_BOOTMAPSZ (8 20) /* Initial Memory map for Linux */ -/*--- +/* * FLASH organization */ #define FLASH_BASE0_PRELIM 0xFFC0 /* FLASH bank #0*/ @@ -199,12 +171,7 @@ #define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */ -#if 0 /* test-only */ -#define CFG_JFFS2_FIRST_BANK 0 /* use for JFFS2 */ -#define CFG_JFFS2_NUM_BANKS1 /* ! second bank contains U-Boot */ -#endif - -/*--- +/* * Start addresses for the final memory configuration * (Set up by the startup code) * Please note that CFG_SDRAM_BASE _must_ start at 0 @@ -221,7 +188,7 @@ # undef CFG_RAMBOOT #endif -/*--- +/* * Environment Variable setup */ #define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */ @@ -232,7 +199,7 @@ #define CFG_NVRAM_BASE_ADDR0xF500 /* NVRAM base address */ #define CFG_NVRAM_SIZE 242 /* NVRAM size */ -/*--- +/* * I2C EEPROM (CAT24WC16) for environment */ #define CONFIG_HARD_I2C/* I2c with hardware support */ @@ -249,10 +216,9 @@ #define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10 /* and takes up to 10 msec */ #define CFG_EEPROM_PAGE_WRITE_ENABLE -/*--- +/* * External Bus Controller (EBC) Setup */ - #define CAN_BA 0xF000 /* CAN Base Address */ /*
[U-Boot] [PATCH 1/4] 4xx: Add fdt support for VOM405 boards
From: Matthias Fuchs [EMAIL PROTECTED] Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- include/configs/VOM405.h |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/include/configs/VOM405.h b/include/configs/VOM405.h index ec6f205..43404fc 100644 --- a/include/configs/VOM405.h +++ b/include/configs/VOM405.h @@ -87,6 +87,8 @@ #define CONFIG_CMD_PING #define CONFIG_CMD_EEPROM +#define CONFIG_OF_LIBFDT +#define CONFIG_OF_BOARD_SETUP #undef CONFIG_WATCHDOG /* watchdog disabled*/ -- 1.5.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] MACB and DM9000 support for AT91SAM9260
Frank v/d Schoot [EMAIL PROTECTED] wrote: We have a board with 2 ethernet ports: one on the macb and the other on a dm9000-chip. Got them both working under linux but the dm9000 doesn't get a MAC-address assigned now. I would like to give the dm9000 its MAC-address in U-Boot via a environment-variable. Because I'm new to U-Boot, I do not see how I can initialise the dm9000 (eth_init()) and macb (which is initialised via eth_init() in eth.c). To me it looks like macb dm9000 driver are using a different type of driver concept. How can this problem be tackled? I don't know much about dm9000, but the macb driver is initialized by calling macb_eth_initalize() once for each instance you want to use. So assuming dm9000 has something similar, you'll just have to call both of them from board_eth_init() in the order you prefer. Haavard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] 4xx: Remove obsolete or unused functions from some esd boards
This patch removes initdram() and testdram() from most esd 405 platforms. Some boards also have an empty dummy implementation of misc_init_f(). This is also removed. Signed-off-by: Matthias Fuchs [EMAIL PROTECTED] --- board/esd/apc405/apc405.c | 10 -- board/esd/ash405/ash405.c | 23 --- board/esd/cms700/cms700.c | 21 - board/esd/cpci2dp/cpci2dp.c | 21 - board/esd/cpci405/cpci405.c | 19 --- board/esd/cpciiser4/cpciiser4.c | 19 --- board/esd/dasa_sim/dasa_sim.c | 20 board/esd/dp405/dp405.c | 36 board/esd/du405/du405.c | 15 --- board/esd/hh405/hh405.c | 17 - board/esd/hub405/hub405.c | 18 -- board/esd/ocrtc/ocrtc.c | 32 board/esd/pmc405/pmc405.c | 18 -- board/esd/voh405/voh405.c | 36 board/esd/wuh405/wuh405.c | 21 - 15 files changed, 0 insertions(+), 326 deletions(-) diff --git a/board/esd/apc405/apc405.c b/board/esd/apc405/apc405.c index 83657c8..e629fd9 100644 --- a/board/esd/apc405/apc405.c +++ b/board/esd/apc405/apc405.c @@ -423,16 +423,6 @@ int checkboard (void) return 0; } -phys_size_t initdram (int board_type) -{ - unsigned long val; - - mtdcr(memcfga, mem_mb0cf); - val = mfdcr(memcfgd); - - return (4*1024*1024 ((val 0x000e) 17)); -} - #ifdef CONFIG_IDE_RESET void ide_set_reset(int on) { diff --git a/board/esd/ash405/ash405.c b/board/esd/ash405/ash405.c index 25360a6..c3710ab 100644 --- a/board/esd/ash405/ash405.c +++ b/board/esd/ash405/ash405.c @@ -82,15 +82,6 @@ int board_early_init_f (void) return 0; } - -/* - */ - -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - - int misc_init_r (void) { volatile unsigned char *duart0_mcr = (unsigned char *)((ulong)DUART0_BA + 4); @@ -205,20 +196,6 @@ int checkboard (void) return 0; } -/* - */ - -phys_size_t initdram (int board_type) -{ - unsigned long val; - - mtdcr(memcfga, mem_mb0cf); - val = mfdcr(memcfgd); - - return (4*1024*1024 ((val 0x000e) 17)); -} - -/* - */ - void reset_phy(void) { #ifdef CONFIG_LXT971_NO_SLEEP diff --git a/board/esd/cms700/cms700.c b/board/esd/cms700/cms700.c index ba27c03..806c755 100644 --- a/board/esd/cms700/cms700.c +++ b/board/esd/cms700/cms700.c @@ -77,15 +77,6 @@ int board_early_init_f (void) return 0; } - -/* - */ - -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - - int misc_init_r (void) { /* adjust flash start and offset */ @@ -141,18 +132,6 @@ int checkboard (void) /* - */ -phys_size_t initdram (int board_type) -{ - unsigned long val; - - mtdcr(memcfga, mem_mb0cf); - val = mfdcr(memcfgd); - - return (4*1024*1024 ((val 0x000e) 17)); -} - -/* - */ - #if defined(CFG_EEPROM_WREN) /* Input: dev_addr I2C address of EEPROM device to enable. * state -1: deliver current state diff --git a/board/esd/cpci2dp/cpci2dp.c b/board/esd/cpci2dp/cpci2dp.c index 54de0b8..8bc40d5 100644 --- a/board/esd/cpci2dp/cpci2dp.c +++ b/board/esd/cpci2dp/cpci2dp.c @@ -67,13 +67,6 @@ int board_early_init_f (void) return 0; } - -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - - int misc_init_r (void) { unsigned long cntrl0Reg; @@ -115,20 +108,6 @@ int checkboard (void) return 0; } -/* - */ - -phys_size_t initdram (int board_type) -{ - unsigned long val; - - mtdcr(memcfga, mem_mb0cf); - val = mfdcr(memcfgd); - - return (4*1024*1024 ((val 0x000e) 17)); -} - -/* - */ - #if defined(CFG_EEPROM_WREN) /* Input: dev_addr I2C address of EEPROM device to enable. *state -1: deliver current state diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c index b856705..005871c 100644 --- a/board/esd/cpci405/cpci405.c +++ b/board/esd/cpci405/cpci405.c @@ -255,11 +255,6 @@ int cpci405_version(void) } } -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - int misc_init_r (void) {
[U-Boot] [PATCH] at91rm9200: fix errors with CONFIG_CMD_I2C_TREE
This patch prevents linker error on AT91RM9200 boards, if CONFIG_CMD_I2_TREE is set. It implements i2c_set_bus_speed and i2c_get_bus_speed as a dummy function. Signed-off-by: Jens Scharsig [EMAIL PROTECTED] --- diff --git a/cpu/arm920t/at91rm9200/i2c.c b/cpu/arm920t/at91rm9200/i2c.c index 826cea8..48d3986 100644 --- a/cpu/arm920t/at91rm9200/i2c.c +++ b/cpu/arm920t/at91rm9200/i2c.c @@ -203,4 +203,14 @@ void i2c_reg_write(uchar i2c_addr, uchar reg, uchar val) i2c_write(i2c_addr, reg, 1, val, 1); } +int i2c_set_bus_speed(unsigned int speed) +{ + return -1; +} + +unsigned int i2c_get_bus_speed(void) +{ + return 0; +} + #endif /* CONFIG_HARD_I2C */ ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] MACB and DM9000 support for AT91SAM9260
[Re-adding mailing list to Cc] Frank van der Schoot [EMAIL PROTECTED] wrote: Well after some more investigation: the macb-driver is creating an eth_device-structure and this structure is initialised in macb_eth_initialize() and then registered with eth_register(). So this gives it some abstraction. Dm9000 driver doesn't have this. It has eth_init() (To my opinionL it collides with eth_init() of eth.c), eth_send() and doesn't register itself with eth_register(). Question: Should all ethernet devices register itself via eth_register() (and the dm9000-driver is not updated yet for this method)? Right...it looks like the dm9000 driver uses some sort of pre-net/eth.c interface which doesn't play well along with other drivers... Via hacking I can of course rename the eth_init() of dm9000x.c to dm9000_eth_init() and call it from eth_initialize(). But first I like to try it via a decent construction and maybe I should update the dm9000-driver for working with eth_register(). That would be great. By the way I'm working with Uboot 1.3.3 on which I cannot find board_eth_init() but here eth_initialize() does the initialisation of macb_eth_initialize(). I did have a short peek to the trunk but it looks like the dm9000-driver hasn't changed there. I think 1.3.4 should have the board_eth_init() stuff in place. Ben's latest eth-initialization patches are probably worth a look too: http://lists.denx.de/pipermail/u-boot/2008-September/039792.html ...though it looks like dm9000 is one of the more complicated ones. Haavard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/6] Support NAND in fw_printenv/fw_setenv
On Sun, 31 Aug 2008, Wolfgang Denk wrote: Dear Guennadi Liakhovetski, In message [EMAIL PROTECTED] you wrote: What follows is a patch series to support NAND environment under Linux, including bad blocks. In principle, this is just one logical change, but it is a big one... So I split it into 6 smaller patches, which should be easier to review. Tested with and without redundant environment, with an injected bad block, crossing block border, read and write. I just tried building for older kernels - it doesn't work: - make env MTD_VERSION=old I am not sure if I am doing this right - maybe I have to point U-Boot to older kernel headers too, or it has to be done with an older tolchain, in any case, this doesn't seem to work also with the current mainline version: $ make env MTD_VERSION=old make -C tools/env all MTD_VERSION=old || exit 1 make[1]: Entering directory `/home/lyakh/project/17/src/u-boot/tools/env' ppc_4xx-gcc -Wall -DUSE_HOSTCC -I/home/lyakh/project/17/src/u-boot/include -DMTD_OLD crc32.c fw_env.c fw_env_main.c -o fw_printenv In file included from /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd.h:13, from fw_env.c:36: /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:15: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:20: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:57: error: expected specifier-qualifier-list before 'uint8_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:70: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:78: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:108: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:115: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:125: error: expected specifier-qualifier-list before 'uint32_t' /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd-abi.h:140: error: expected specifier-qualifier-list before 'uint32_t' In file included from fw_env.c:36: /home/lyakh/project/17/src/u-boot/include/linux/mtd/mtd.h:107: error: expected specifier-qualifier-list before 'uint32_t' fw_env.c: In function 'fw_setenv': fw_env.c:386: error: 'uint8_t' undeclared (first use in this function) fw_env.c:386: error: (Each undeclared identifier is reported only once fw_env.c:386: error: for each function it appears in.) fw_env.c:386: error: expected expression before ')' token fw_env.c:386: error: too few arguments to function 'crc32' fw_env.c: In function 'flash_io': fw_env.c:400: error: 'erase_info_t' undeclared (first use in this function) fw_env.c:400: error: expected ';' before 'erase' fw_env.c:431: error: 'erase' undeclared (first use in this function) fw_env.c: In function 'env_init': fw_env.c:621: error: 'uint8_t' undeclared (first use in this function) fw_env.c:621: error: expected expression before ')' token fw_env.c:621: error: too few arguments to function 'crc32' fw_env.c:645: error: expected expression before ')' token fw_env.c:645: error: too few arguments to function 'crc32' make[1]: *** [fw_printenv] Error 1 make[1]: Leaving directory `/home/lyakh/project/17/src/u-boot/tools/env' make: *** [env] Error 1 Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: [EMAIL PROTECTED] ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] fw_env: add NAND support
Add support for environment in NAND with automatic NOR / NAND recognition, including unaligned environment, bad-block skipping, redundant environment copy. Signed-off-by: Guennadi Liakhovetski [EMAIL PROTECTED] --- This is now a single patch. No union any more, instead a struct with pointers into a flat image buffer is used. Still, MTD_VERSION=old doesn't work, it looks it is also broken in the current version. diff --git a/tools/env/README b/tools/env/README index f8a644e..f32f872 100644 --- a/tools/env/README +++ b/tools/env/README @@ -22,9 +22,11 @@ following lines are relevant: #define DEVICE1_OFFSET0x #define ENV1_SIZE 0x4000 #define DEVICE1_ESIZE 0x4000 +#define DEVICE1_ENVSECTORS 2 #define DEVICE2_OFFSET0x #define ENV2_SIZE 0x4000 #define DEVICE2_ESIZE 0x4000 +#define DEVICE2_ENVSECTORS 2 Current configuration matches the environment layout of the TRAB board. @@ -46,3 +48,7 @@ then 1 sector. DEVICEx_ESIZE defines the size of the first sector in the flash partition where the environment resides. + +DEVICEx_ENVSECTORS defines the number of sectors that may be used for +this environment instance. On NAND this is used to limit the range +within which bad blocks are skipped, on NOR it is unused. diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index b8bca91..7479dbe 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -44,36 +44,57 @@ #defineCMD_GETENV fw_printenv #defineCMD_SETENV fw_setenv +#define min(x, y) ({ \ + typeof(x) _min1 = (x); \ + typeof(y) _min2 = (y); \ + (void) (_min1 == _min2); \ + _min1 _min2 ? _min1 : _min2; }) + typedef struct envdev_s { char devname[16]; /* Device name */ ulong devoff; /* Device offset */ ulong env_size; /* environment size */ ulong erase_size; /* device erase size */ + ulong env_sectors; /* number of environment sectors */ } envdev_t; static envdev_t envdevices[2]; -static int curdev; +static int dev_current; #define DEVNAME(i)envdevices[(i)].devname #define DEVOFFSET(i) envdevices[(i)].devoff #define ENVSIZE(i)envdevices[(i)].env_size #define DEVESIZE(i) envdevices[(i)].erase_size +#define ENVSECTORS(i) envdevices[(i)].env_sectors -#define CFG_ENV_SIZE ENVSIZE(curdev) +#define CFG_ENV_SIZE ENVSIZE(dev_current) #define ENV_SIZE getenvsize() -typedef struct environment_s { - ulong crc; /* CRC32 over data bytes*/ - unsigned char flags;/* active or obsolete */ - char *data; -} env_t; +struct env_image_single { + uint32_tcrc;/* CRC32 over data bytes*/ + chardata[]; +}; + +struct env_image_redundant { + uint32_tcrc;/* CRC32 over data bytes*/ + unsigned char flags; /* active or obsolete */ + chardata[]; +}; + +struct environment { + void*image; + uint32_t*crc; + unsigned char *flags; + char*data; +}; -static env_t environment; +static struct environment environment; static int HaveRedundEnv = 0; static unsigned char active_flag = 1; +/* obsolete_flag must be 0 to efficiently set it on NOR flash without erasing */ static unsigned char obsolete_flag = 0; @@ -156,10 +177,11 @@ static char default_environment[] = { #ifdef CONFIG_EXTRA_ENV_SETTINGS CONFIG_EXTRA_ENV_SETTINGS #endif - \0/* Termimate env_t data with 2 NULs */ + \0/* Termimate struct environment data with 2 NULs */ }; -static int flash_io (int mode); +static int flash_write (void); +static int flash_read (void); static char *envmatch (char * s1, char * s2); static int env_init (void); static int parse_config (void); @@ -185,7 +207,7 @@ char *fw_getenv (char *name) char *env, *nxt; if (env_init ()) - return (NULL); + return NULL; for (env = environment.data; *env; env = nxt + 1) { char *val; @@ -194,15 +216,15 @@ char *fw_getenv (char *name) if (nxt = environment.data[ENV_SIZE]) { fprintf (stderr, ## Error: environment not terminated\n); - return (NULL); + return NULL; } } val = envmatch (name, env); if (!val) continue; - return (val); + return val; } - return (NULL); + return NULL; } /* @@ -216,7 +238,7 @@ int fw_printenv (int argc, char *argv[]) int rc = 0; if (env_init ()) - return
Re: [U-Boot] [PATCH 1/1] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY
Hi Ben, OK. You are correct. I will update this area and resubmit. -Victor Gallardo -Original Message- From: Ben Warren [mailto:[EMAIL PROTECTED] Sent: Saturday, August 30, 2008 9:34 AM To: Victor Gallardo Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH 1/1] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY On Fri, Aug 29, 2008 at 11:20 PM, Victor Gallardo [EMAIL PROTECTED] wrote: This patch adds GPCS, SGMII and M88E1112 PHY support for the AMCC PPC460GT/EX processors. Signed-off-by: Victor Gallardo [EMAIL PROTECTED] --- cpu/ppc4xx/4xx_enet.c | 116 - cpu/ppc4xx/miiphy.c | 40 - include/ppc4xx_enet.h |4 ++ 3 files changed, 155 insertions(+), 5 deletions(-) diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c index 8a38335..4729800 100644 --- a/cpu/ppc4xx/4xx_enet.c +++ b/cpu/ppc4xx/4xx_enet.c @@ -198,6 +198,7 @@ #define BI_PHYMODE_RMII 8 #endif #endif +#define BI_PHYMODE_SGMII 9 #if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \ defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \ @@ -216,6 +217,12 @@ #define MAL_RX_CHAN_MUL1 #endif +#if !defined(CONFIG_PHY_LESS) +#define CONFIG_PHY_LESS0x /* PHY-less mode */ +#define CONFIG_PHY_LESS_SPEED 1000 +#define CONFIG_PHY_LESS_DUPLEX FULL +#endif + Sorry, but this is not scalable. There are many real-world examples of boards where one controller is connected to a PHY, and another has a FIXED link to a switch or something else. This driver is already an unwieldy mess and adding this sort of thing only makes it worse. If you want to add fixed-link capabilities, please re-direct your efforts towards a more generic, scalable solution. regards, Ben ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot Versioning
On Tue, Sep 02, 2008 at 09:37:04AM +0200, Luigi 'Comio' Mantellini wrote: good idea... but I would like to clarify that we (italians) don't eat Spaghetti with Bolognese but we prefer to use Tagliatelle or Tortellini or Ravioli pasta, and the Sugo Bolognese's ingredients are: - Onion - Olive Oil (Extra-virgin!) - Celery - Carrot - Wine - (little bit) milk (if you want) - minced meet (beef) - (litte bit) lard or bacon (if you want) - tomato Well, that surely qualifies for the releases for the next couple of years. - a lot of time Uuuh, that's not so easy. Code incredients tend to rot quickly when not being served freshly from a rcs repository. Using the Sugo alla Bolognese we can give a name for each file of the toolchain... So it might be an innovative model, thanks, we'll reconsider! 8-) rsc -- Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de Pengutronix - Linux Solutions for Science and Industry Handelsregister: Amtsgericht Hildesheim, HRA 2686 Hannoversche Str. 2, 31134 Hildesheim, Germany Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH V2] ARM DaVinci: Remove duplicate code in cpu/arm926ejs/davinci/dp83848.c
ARM DaVinci: Remove duplicate code in cpu/arm926ejs/davinci/dp83848.c Signed-off-by: Hugo Villeneuve [EMAIL PROTECTED] --- Remove duplicate code in a if/else block in cpu/arm926ejs/davinci/dp83848.c. cpu/arm926ejs/davinci/dp83848.c | 27 +++ 1 files changed, 7 insertions(+), 20 deletions(-) diff --git a/cpu/arm926ejs/davinci/dp83848.c b/cpu/arm926ejs/davinci/dp83848.c index 59f039b..c71c685 100644 --- a/cpu/arm926ejs/davinci/dp83848.c +++ b/cpu/arm926ejs/davinci/dp83848.c @@ -64,29 +64,16 @@ int dp83848_get_link_speed(int phy_addr) return(0); /* Speed doesn't matter, there is no setting for it in EMAC... */ - if (tmp DP83848_SPEED) { - if (tmp DP83848_DUPLEX) { - /* set DM644x EMAC for Full Duplex */ - emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE | EMAC_MACCONTROL_FULLDUPLEX_ENABLE; - } else { - /*set DM644x EMAC for Half Duplex */ - emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE; - } - - return(1); + if (tmp DP83848_DUPLEX) { + /* set DM644x EMAC for Full Duplex */ + emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE | + EMAC_MACCONTROL_FULLDUPLEX_ENABLE; } else { - if (tmp DP83848_DUPLEX) { - /* set DM644x EMAC for Full Duplex */ - emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE | EMAC_MACCONTROL_FULLDUPLEX_ENABLE; - } else { - /*set DM644x EMAC for Half Duplex */ - emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE; - } - - return(1); + /*set DM644x EMAC for Half Duplex */ + emac-MACCONTROL = EMAC_MACCONTROL_MIIEN_ENABLE; } - return(0); + return(1); } ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] DM9161BMSR must be read twice ?
Hi, I'm developing a custom board based on the AT91RM9200dk. In u-boot prompt, every time a enter a network command such as tftp or ping I get a message like this: MAC: error during MII initialization Although the command actually seems to work I was a little concerned. After taking a look at cpu/arm920t/at91rm9200/ether.c and cpu/arm920t/at91rm9200/dm9161.c I realized the problem was at the function UCHAR dm9161_GetLinkSpeed (AT91PS_EMAC p_mac) in dm9161.c. Apparently, the link status bit at BMSR register is indicating link down even when it's not. I googled for it and found at http://www.davicom.com.tw/page1.aspx?no=149749 a FAQ for dm9000A-8 related to a similar register as follows: (...) Q1: There are two methods for checking Link status as below: 1) NSR: 01H bit 6 2) PHY BMSR: 01 bit 2 Could you explain what difference is between 1) and 2)? A1: 1) NSR: 01H bit: PHY link status now 2) PHY BMSR: 01 bit 2: the register will read two times. You can see below table for the meaning Read first times Read second time meaning 0 0 Link fail 0 1 Link fail before and link ok now 1 0 No any meaning 1 1 Link ok (...) So I tried reading the BMSR register twice and it got the job done. Did anybody notice this issue ? --- a/cpu/arm920t/at91rm9200/dm9161.c 2008-08-12 11:08:38.0 -0300 +++ b/cpu/arm920t/at91rm9200/dm9161.c 2008-09-02 16:26:05.0 -0300 @@ -70,13 +70,16 @@ */ UCHAR dm9161_GetLinkSpeed (AT91PS_EMAC p_mac) { - unsigned short stat1, stat2; - - if (!at91rm9200_EmacReadPhy (p_mac, DM9161_BMSR, stat1)) - return FALSE; + unsigned short stat1, stat2, i; + +for (i = 2; i; --i) + if (!at91rm9200_EmacReadPhy (p_mac, DM9161_BMSR, stat1)) + return FALSE; - if (!(stat1 DM9161_LINK_STATUS)) /* link status up? */ + if (!(stat1 DM9161_LINK_STATUS)) { /* link status up? */ + printf(Link down\n); return FALSE; + } if (!at91rm9200_EmacReadPhy (p_mac, DM9161_DSCSR, stat2)) return FALSE; -- Regards Nícolas ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Changing u-boot parameter from linux.
Hi Brian, Brian S. Park wrote: Hi all, What is the recommended way to update u-boot parameter (such as network IP) from linux? In the past, I just updated the parameter sector in the flash by calculating the check sum and wrote the new data to the flash directly from linux application. This works ok if u-boot is not updated. I realized that u-boot has changed the way it writes the parameter to the flash since we used in on our last hardware (version 1.0.0) and am wondering if there is a better way to do this. Use the fw_printenv/fw_setenv application in the tools/env directory. It's a user-space app that can access your environment if you make it visible through MTD. regards, Ben ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] fw_env: add NAND support
Dear Guennadi Liakhovetski, In message [EMAIL PROTECTED] you wrote: Add support for environment in NAND with automatic NOR / NAND recognition, including unaligned environment, bad-block skipping, redundant environment copy. Signed-off-by: Guennadi Liakhovetski [EMAIL PROTECTED] --- This is now a single patch. No union any more, instead a struct with pointers into a flat image buffer is used. Still, MTD_VERSION=old doesn't work, it looks it is also broken in the current version. I wonder why you didn't even try to fix it. See [PATCH] fw_env.c: fix build problems with MTD_VERSION=old Please rebase your patch and resubmit. diff --git a/tools/env/README b/tools/env/README index f8a644e..f32f872 100644 --- a/tools/env/README +++ b/tools/env/README @@ -22,9 +22,11 @@ following lines are relevant: #define DEVICE1_OFFSET0x #define ENV1_SIZE 0x4000 #define DEVICE1_ESIZE 0x4000 +#define DEVICE1_ENVSECTORS 2 #define DEVICE2_OFFSET0x #define ENV2_SIZE 0x4000 #define DEVICE2_ESIZE 0x4000 +#define DEVICE2_ENVSECTORS 2 Current configuration matches the environment layout of the TRAB board. @@ -46,3 +48,7 @@ then 1 sector. DEVICEx_ESIZE defines the size of the first sector in the flash partition where the environment resides. + +DEVICEx_ENVSECTORS defines the number of sectors that may be used for +this environment instance. On NAND this is used to limit the range +within which bad blocks are skipped, on NOR it is unused. I think ...on NOR it is not used would be clearer ? +static int flash_read_buf (int dev, int fd, void *buf, size_t count, +off_t offset) +{ + struct mtd_info_user mtdinfo; + /* erase / write length - one block on NAND, 0 on NOR */ + size_t blocklen; + /* progress counter */ + size_t processed = 0; + /* current read length */ + size_t readlen = count; + /* end of the last block we may use */ + off_t top_of_range; + /* offset inside the current block to the start of the data */ + off_t block_seek; + /* running start of the current block - MEMGETBADBLOCK needs 64 bits */ + loff_t blockstart; + int rc; That's difficult to read. Please reformat (comments on smae line with code, if necessary continued on next line). + /* + * Start of the first block to be read, relies on the fact, that + * erase sector size is always a power of 2 + */ + blockstart = offset ~(DEVESIZE (dev) - 1); Insert empty line here. + /* Offset inside a block */ + block_seek = offset - blockstart; ... + /* Limit to one block for the first read */ Why? + if (readlen blocklen - block_seek) + readlen = blocklen - block_seek; + } else { + blocklen = 0; + top_of_range = offset + count; + } + + /* This only runs once on NOR flash */ + while (processed count) { + rc = flash_bad_block (dev, fd, mtdinfo, blockstart); + if (rc 0) { + return -1; + } else if (blockstart + block_seek + readlen top_of_range) { + /* End of range is reached */ fprintf (stderr, + Too few good blocks within range\n); + return -1; + } else if (rc) { + blockstart += blocklen; + continue; } Please rewrite as: if (rc 0) /* block test failed */ return -1; if (blockstart + block_seek + readlen top_of_range) { /* End of range is reached */ fprintf (stderr, Too few good blocks within range\n); return -1; } if (rc) { /* block is bad */ blockstart += blocklen; continue; } I can much easier follow the flow when written that way. + + /* + * If a block is bad, we retry in the next block at the same + * offset - see common/env_nand.c::writeenv() + */ + lseek (fd, blockstart + block_seek, SEEK_SET); Hm... there was a continue for the badblock case just above, so do we really try the _next_ block here? +static int __flash_write_buf (int dev, int fd, void *buf, size_t count, + off_t offset, struct mtd_info_user *mtdinfo) +{ + char *data = NULL; + erase_info_t erase; + /* length of NAND block / NOR erase sector */ + size_t blocklen; + /* whole area that can be erased - may include bad blocks */ + size_t erase_len; + /* erase / write length - one block on NAND, whole area on NOR */ + size_t erasesize; +
Re: [U-Boot] ppc4xx: Optimizations/Cleanups for IBM DDR2 Memory Controller
On Sat, 2008-08-30 at 11:22 +0200, Stefan Roese wrote: I used Evolution on Linux to send the patch using the instructions given in Documentation/email-clients in Linux kernel tree. I have problems using git send-email because we send emails using the Exchange server. OK, then this Evolution step seems to have introduced this problem. Too bad that even the instructions in the Linux Documention describe this correctly. Sorry, I can't help you here, I have no experience with Evolution. Perhaps somebody else can jump in here. Just make sure to select preformat instead of normal before you insert - text file on your patch. jdl ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] fw_env: add NAND support
On Tue, 2 Sep 2008, Wolfgang Denk wrote: + /* Offset inside a block */ + block_seek = offset - blockstart; ... + /* Limit to one block for the first read */ Why? Because this is on NAND, there we have to perform all IO block at a time. + + /* +* If a block is bad, we retry in the next block at the same +* offset - see common/env_nand.c::writeenv() +*/ + lseek (fd, blockstart + block_seek, SEEK_SET); Hm... there was a continue for the badblock case just above, so do we really try the _next_ block here? I meant, if the first block with non-zero offset (block_seek) was bad, then in the _next_ after it block we try at the same offset. + /* +* Data size we actually have to write: from the start of the block +* to the start of the data, then count bytes ob data, and to the ---^ f +* end of the block +*/ Hm... sounds as if this was always exactly one full block, then? or two, or three... + write_total = (block_seek + count + blocklen - 1) ~(blocklen - 1); + + /* +* Support data anywhere within erase sectors: read out the complete +* area to be erased, replace the environment image, write the whole +* block back again. +*/ + if (write_total count) { + data = malloc (erase_len); My understanding is, that erase_len can be block size. Is this correct? Yes. I don't see where the actual size of the environment data is taken into considration? in the count function parameter, which is then used to calculate write_total. + } else { + /* Offset is block-aligned by construction here */ What does block-aligned by construction mean? It means, by the way I constructed (calculated) lengths above this place, we land here only if offset is block-aligned. + erase.length = erasesize; + + /* This only runs once on NOR flash */ How comes that? Because on NOR I set erasesize to the total length of the data plus alignment. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: [EMAIL PROTECTED] ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/6] ATSTK1000 LCD panel support
On Tue, 2008-09-02 at 14:09 +0200, Haavard Skinnemoen wrote: Right. I was thinking maybe we could extend the boot protocol to pass partitioning information from u-boot to the kernel -- that should make it possible to run the same kernel on boards with different flash layout as long as the in-flash u-boot is consistent with the flash layout. If we do end up with libfdt on avr32 then we solve our problems here too, we can encapsulate this partitioning in the fdt image. But, as I understand it, that involves not only the actual libfdt support but making all avr32 driver nice and OF compatible. At least, if we want the fdt support to be _useful_ then that needs to happen (CMIIW). One problem this doesn't solve is that if you load an older kernel which doesn't understand the extended boot protocol, it will keep using the old flash layout. Doesn't the MTD system have facility to override partitioning information from the boot arguments? If so then any big u-boots can just ship with such a clause in their default bootargs, job done. Have to look in to that... --Ben. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] ARM OMAP : Correct Invalid Timer Register Field Declaration in omap1510.h omap730.h
Hi, Any update on this patch. I even checked Linux Source for this define way back in Linux 2.6.11, same kind of patch was applied. More info @ http://www.linuxhq.com/kernel/v2.6/11/include/asm-arm/arch-omap/hardware.h TIA Regards Gururaja ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] U-Boot version for a new port
Hello, I'm planning to make a port on a ARM926EJ-S based board. What is the recommended way: take release or GIT version as a base ? Thanks. -- Roman Mashak ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot version for a new port
Hi, From: Roman Mashak [EMAIL PROTECTED] Subject: [U-Boot] U-Boot version for a new port I'm planning to make a port on a ARM926EJ-S based board. What is the recommended way: take release or GIT version as a base ? Depends on what processor you are using, atmel at91sam9 series or omap or ti davinci If s, then check if your board/processor configs match with any of these. Try to port their configuration files to your board. Look at arm versatile board, ti davinci boards for reference. Hope this helps Regards Gururaja ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] ARM - Remove references to CONFIG_INIT_CRITICAL from ARM based boards
Hi, - CONFIG_INIT_CRITICAL is deprecated - remove all references to CONFIG_INIT_CRITICAL for ARM based boards - replace by CONFIG_SKIP_LOWLEVEL_INIT Signed-off-by: Gururaja Hebbar [EMAIL PROTECTED] --- cpu/arm946es/start.S|6 +++--- cpu/arm_intcm/start.S |2 +- include/configs/SMN42.h |2 +- include/configs/armadillo.h |2 +- include/configs/gcplus.h|2 +- include/configs/integratorap.h |2 +- include/configs/lpc2292sodimm.h |2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cpu/arm946es/start.S b/cpu/arm946es/start.S index 9e97f53..582cf18 100755 --- a/cpu/arm946es/start.S +++ b/cpu/arm946es/start.S @@ -133,15 +133,15 @@ reset: * we do sys-critical inits only at reboot, * not when booting from ram! */ -#ifdef CONFIG_INIT_CRITICAL +#ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit #endif relocate: /* relocate U-Boot to RAM */ adr r0, _start /* r0 - current position of code */ ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ - cmp r0, r1 /* don't reloc during debug */ - beq stack_setup + cmp r0, r1 /* don't reloc during debug */ + beq stack_setup ldr r2, _armboot_start ldr r3, _bss_start diff --git a/cpu/arm_intcm/start.S b/cpu/arm_intcm/start.S index d5778a0..2ee2c86 100755 --- a/cpu/arm_intcm/start.S +++ b/cpu/arm_intcm/start.S @@ -131,7 +131,7 @@ reset: * we do sys-critical inits only at reboot, * not when booting from ram! */ -#ifdef CONFIG_INIT_CRITICAL +#ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit #endif diff --git a/include/configs/SMN42.h b/include/configs/SMN42.h index a5d3d69..53d7c7b 100755 --- a/include/configs/SMN42.h +++ b/include/configs/SMN42.h @@ -30,7 +30,7 @@ * If we are developing, we might want to start u-boot from ram * so we MUST NOT initialize critical regs like mem-timing ... */ -#undef CONFIG_INIT_CRITICAL/* undef for developing */ +#define CONFIG_SKIP_LOWLEVEL_INIT 1 #undef CONFIG_SKIP_LOWLEVEL_INIT #undef CONFIG_SKIP_RELOCATE_UBOOT diff --git a/include/configs/armadillo.h b/include/configs/armadillo.h index 98a83db..ab06ecf 100755 --- a/include/configs/armadillo.h +++ b/include/configs/armadillo.h @@ -34,7 +34,7 @@ * If we are developing, we might want to start armboot from ram * so we MUST NOT initialize critical regs like mem-timing ... */ -/*#define CONFIG_INIT_CRITICAL*/ /* undef for developing */ +#define CONFIG_SKIP_LOWLEVEL_INIT 1 /* * High Level Configuration Options diff --git a/include/configs/gcplus.h b/include/configs/gcplus.h index 3b1b4ab..b7bd274 100755 --- a/include/configs/gcplus.h +++ b/include/configs/gcplus.h @@ -36,7 +36,7 @@ * e.g. bootp/tftp download of the kernel is a far more convenient * when testing new kernels on this target. However the ADS GCPlus Linux * boot ROM leaves the MMU enabled when it passes control to U-Boot. So - * we use lowlevel_init (CONFIG_INIT_CRITICAL) to remedy that problem. + * we use lowlevel_init (CONFIG_SKIP_LOWLEVEL_INIT) to remedy that problem. */ #undef CONFIG_SKIP_LOWLEVEL_INIT #define CONFIG_SKIP_RELOCATE_UBOOT 1 diff --git a/include/configs/integratorap.h b/include/configs/integratorap.h index 1452bf2..c877a01 100755 --- a/include/configs/integratorap.h +++ b/include/configs/integratorap.h @@ -44,7 +44,7 @@ #define CONFIG_SETUP_MEMORY_TAGS 1 #define CONFIG_MISC_INIT_R 1 /* call misc_init_r during start up */ -#undef CONFIG_INIT_CRITICAL +#define CONFIG_SKIP_LOWLEVEL_INIT 1 #define CONFIG_CM_INIT 1 #define CONFIG_CM_REMAP1 #undef CONFIG_CM_SPD_DETECT diff --git a/include/configs/lpc2292sodimm.h b/include/configs/lpc2292sodimm.h index e3fef5e..3ce3c97 100755 --- a/include/configs/lpc2292sodimm.h +++ b/include/configs/lpc2292sodimm.h @@ -30,7 +30,7 @@ * If we are developing, we might want to start u-boot from ram * so we MUST NOT initialize critical regs like mem-timing ... */ -#undef CONFIG_INIT_CRITICAL/* undef for developing */ +#define CONFIG_SKIP_LOWLEVEL_INIT 1 #undef CONFIG_SKIP_LOWLEVEL_INIT #undef CONFIG_SKIP_RELOCATE_UBOOT -- 1.5.6.4 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot version for a new port
Hi, 2008/9/2 Gururaja Hebbar K R [EMAIL PROTECTED]: Depends on what processor you are using, atmel at91sam9 series or omap or ti davinci It's LG's system-on-chip, consisting of main CPU (ARM926EJ-S based), running at 216MHz, mpeg2/mpeg4/audio decoding engines, LCD interface, UART. On-chip ROM available serves for preliminary bootloader, which copies NAND flash content in to SDRAM. If s, then check if your board/processor configs match with any of these. Try to port their configuration files to your board. Look at arm versatile board, ti davinci boards for reference. I was considering this, but thought there would probably be something more specific. Anyway, I need to investigate H/W more thoroughly. -- Roman Mashak ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot version for a new port
Hello, 2008/9/2 Jerry Van Baren [EMAIL PROTECTED]: [skip] I didn't work with 'git' before, mainly subversion and CVS -- need time to master up this tool. Is it correct to issue git clone git://www.denx.de/git/u-boot.git u-boot/ in order to obtain local copy of the current sources ? The current window for changes is (almost) closed: there will be a period of stabilization. The ToT is generally stable despite the change What is ToT ? -- Roman Mashak ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [T-Engine] UBoot configuration for T-Engine/SH7727 MS7727CP02 DevKit
Hi Nobuhiro Iwamatsu, Now I'm porting USB on board T-Engine(SH7727) - My configure following : #define CONFIG_CMD_USB #define CONFIG_USB_OHCI_NEW 1 #define CONFIG_USB_STORAGE 1 #define CFG_USB_OHCI_REGS_BASE 0x04000400 #define CFG_USB_OHCI_SLOT_NAME s3c2400 #define CFG_USB_OHCI_MAX_ROOT_PORTS 15 #define CONFIG_DOS_PARTITION1 #define CONFIG_SYS_CLK_FREQ #define TMU_CLK_DIVIDER 4 /* 4 (default), 16, 64, 256 or 1024 */ #define CFG_HZ (CONFIG_SYS_CLK_FREQ / TMU_CLK_DIVIDER) - And in lowlevel_init.S, I change USB clock following: UCLKCR_A: .long 0xA40A0008 UCLKCR_D: .long 0xA5C0 mov.l UCLKCR_A,r1 mov.l UCLKCR_D,r0 mov.w r0,@r1 - When I'm starting board with above configue, I see the led of USB device is blinking. Then I run command usb start, the led turn off and u-boot don't find any USB device, with following logs: DEBUG: OHCI controller usb-s3c2400 state DEBUG: control: 0x008f HCFS=operational IE PLE CBSR=3 DEBUG: cmdstatus: 0x SOC=0 DEBUG: intrstatus: 0x0004 SF DEBUG: intrenable: 0x0053 RHSC UE WDH SO DEBUG: hcca frame #0019 DEBUG: roothub.a: 02001202 POTPGT=2 NOCP NPS NDP=2 DEBUG: roothub.b: PPCM= DR= DEBUG: roothub.status: DEBUG: roothub.portstatus [0] = 0x0100 PPS DEBUG: roothub.portstatus [1] = 0x00010101 CSC PPS CCS scanning bus for devices... New Device 0 usb_control_msg: request: 0x6, requesttype: 0x80 value 0x100 index 0x0 length 0x8 INFO: submit_control_msg DEBUG: SUB URB:[ 42] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x8000 DEBUG: SUB(rh) URB:[ 45] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x8000 INFO: Root-Hub: adr: 0 cmd(8): 0680 0001 0800 DEBUG: roothub.a: 02001202 POTPGT=2 NOCP NPS NDP=2 DEBUG: roothub.b: PPCM= DR= DEBUG: roothub.status: DEBUG: roothub.portstatus [0] = 0x0100 PPS DEBUG: roothub.portstatus [1] = 0x00010101 CSC PPS CCS DEBUG: RET(rh) URB:[ 56] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x2 usb_ohci.c: cmd(8): 80 06 01 00 00 00 00 08 usb_ohci.c: data(0/8): USB device not responding, giving up (status=2) 0 USB Device(s) found scanning bus for storage devices... 0 Storage Device (s) found - I don't know what is wrong in my configure, I think the CONFIG_SYS_CLK_FREQ and CFG_HZ is incorrect and I can't start USB device, and clock which I control in lowlevel_init.S following: FRQCR_A:.long 0xA415FF80 /* FRQCR Address(Frequency Control Register) */ FRQCR_D:.long 0x1103 /* I:B:P=8:4:2 */ Can you help me about this problem and tell me about any other wrong things in my configure? why the led turn off when I run command usb start? thanks Nobuhiro Iwamatsu wrote: Hi, 2008/8/20 thaoth [EMAIL PROTECTED]: Hi Nobuhiro Iwamatsu, 1. Clock frequency of board. #define CONFIG_SYS_CLK_FREQ #define TMU_CLK_DIVIDER 4 /* 4 (default), 16, 64, 256 or 1024 */ #define CFG_HZ (CONFIG_SYS_CLK_FREQ / TMU_CLK_DIVIDER) I don't understand how to set CONFIG_SYS_CLK_FREQ value. From T-Engine support, they said clock frequency of board is 144MHz. Please set outside clock to CONFIG_SYS_CLK_FREQ. 2. Cross compiler tool chain : GCC vs T-Engine toolchain There are two tool chains - http://www.superh-linux.org/archive/bsp/sh7721_se/toolchain_sh3_gcc4.2.tar.gz support elf32-sh-linux target. - Tool chain from T-Engine forum support elf32-sh-tkernel Using both cross compilers, we could turn on LED on debug board by setting correct value LED_A and LED_B value. 3. ICE or JTAG debugger and LED debugging. I don't have these debug tools, and so hard for debugging. T-Engine/SH7727 DevKit has debug board with 8 LEDs. I could turn on/off these LEDs by setting correct value to 0xA160 memory. But C function turn on/off LED cannot work. For example int cpu_init(void) { // Turn off LED 1 to notify cpu_init is called. outw(0x00 0xFF, 0xa160); return 0; } I don't know why it isn't called? I think that cpu_init is not carried out. I think that u-boot stopped on lowlevel_init function. Would you please give me your ideas? Thank you a lot. I will get T-Engine board .. Please wait. Best regards, Nobuhiro ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot -- View this message in context: http://www.nabble.com/-T-Engine--UBoot-configuration-for-T-Engine-SH7727-MS7727CP02-DevKit-tp18868090p19282461.html Sent from the Uboot - Users mailing list archive at Nabble.com. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot version for a new port
Roman Mashak wrote: Hello, 2008/9/2 Jerry Van Baren [EMAIL PROTECTED]: [skip] I didn't work with 'git' before, mainly subversion and CVS -- need time to master up this tool. Is it correct to issue git clone git://www.denx.de/git/u-boot.git u-boot/ in order to obtain local copy of the current sources ? git clone git://git.denx.de/u-boot.git u-boot I seem to vaguely remember a message that this one is more guaranteed to be up-to-date, but can't offer any useful details. The current window for changes is (almost) closed: there will be a period of stabilization. The ToT is generally stable despite the change What is ToT ? A young person, or Top Of Tree (most up-to-date) regards, Ben ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] Pull request - NET
Wolfgang, The following changes since commit e99e9575bbeba1b7c48e046547cae065ec0071de: Wolfgang Denk (1): Merge branch 'Makefile' of git://git.denx.de/u-boot-arm are available in the git repository at: git://git.denx.de/u-boot-net.git master Andy Fleming (6): tsec: Move tsec.h to include/ Pass in tsec_info struct through tsec_initialize Add SGMII support to the tsec Add support for Freescale SGMII Riser Card Add SGMII support for the 8544 DS Add pixis_set_sgmii command Ben Warren (17): Introduce netdev.h header file and remove externs Moved initialization of Ethernet controllers on Atmel AT91 to board_eth_init() Moved initialization of RTL8169 Ethernet controller to board_eth_init() Moved initialization of RTL8139 Ethernet controller to board_eth_init() Moved initialization of TSI108 Ethernet controller to board_eth_init() Moved initialization of NS8382X Ethernet controller to board_eth_init() Moved initialization of NATSEMI Ethernet controller to board_eth_init() Moved initialization of PCNET Ethernet controller to board_eth_init() Moved initialization of GT6426x Ethernet controller to board_eth_init() Moved initialization of 3COM Ethernet controller (AmigaOne) to board_eth_init() Moved initialization of IncaIP Ethernet controller to board_eth_init Moved initialization of MPC512x_FEC Ethernet driver to CPU directory Moved initialization of MPC5xxx_FEC Ethernet driver to CPU directory Moved initialization of plb2800 Ethernet driver to board_eth_init Moved initialization of E1000 Ethernet controller to board_eth_init() Moved initialization of TULIP Ethernet controller to board_eth_init() Moved initialization of EEPRO100 Ethernet controller to board_eth_init() Jochen Friedrich (1): Don't tftp to unknown flash Nobuhiro Iwamatsu (1): net: smc911x: Add pkt_data_pull and pkt_data_push function Sergei Poselenov (1): PHY: Add support for the M88E1121R Marvell chip. board/MAI/AmigaOneG3SE/AmigaOneG3SE.c|9 + board/MAI/AmigaOneG3SE/enet.c|1 + board/Marvell/db64360/db64360.c |6 + board/Marvell/db64460/db64460.c |6 + board/a3000/a3000.c |7 + board/amcc/katmai/katmai.c |6 + board/amcc/taihu/taihu.c |6 + board/amcc/taishan/taishan.c |6 + board/amcc/yucca/yucca.c |6 + board/amirix/ap1000/ap1000.c |7 + board/atmel/at91cap9adk/at91cap9adk.c| 11 ++ board/atmel/at91sam9260ek/at91sam9260ek.c| 11 ++ board/atmel/at91sam9263ek/at91sam9263ek.c| 11 ++ board/atmel/atngw100/atngw100.c |3 +- board/atmel/atstk1000/atstk1000.c|3 +- board/bc3450/bc3450.c|7 + board/bf537-stamp/bf537-stamp.c |3 +- board/cpc45/cpc45.c |6 + board/cpu87/cpu87.c |6 + board/cu824/cu824.c |6 + board/eXalion/eXalion.c |6 + board/earthlcd/favr-32-ezkit/favr-32-ezkit.c |3 +- board/eltec/bab7xx/bab7xx.c |6 + board/eltec/elppc/elppc.c|6 + board/esd/adciop/adciop.c|6 + board/esd/cpci5200/cpci5200.c|6 + board/esd/dasa_sim/dasa_sim.c|6 + board/esd/mecp5200/mecp5200.c|6 + board/esd/pf5200/pf5200.c|6 + board/etin/debris/debris.c |6 + board/etin/kvme080/kvme080.c |6 + board/evb64260/eth.c |1 + board/evb64260/evb64260.c|8 +- board/freescale/common/Makefile |1 + board/freescale/common/pixis.c | 55 ++ board/freescale/common/sgmii_riser.c | 26 +++ board/freescale/common/sgmii_riser.h | 15 ++ board/freescale/mpc7448hpc2/mpc7448hpc2.c| 10 + board/freescale/mpc8315erdb/mpc8315erdb.c|7 + board/freescale/mpc8544ds/mpc8544ds.c| 39 board/freescale/mpc8610hpcd/mpc8610hpcd.c|8 +- board/freescale/mpc8641hpcn/mpc8641hpcn.c|8 + board/hidden_dragon/hidden_dragon.c |6 + board/icecube/icecube.c |7 + board/incaip/incaip.c|8 + board/integratorap/integratorap.c|7 + board/ixdp425/ixdp425.c |6 + board/linkstation/linkstation.c |6 + board/matrix_vision/mvbc_p/mvbc_p.c |7 + board/mimc/mimc200/mimc200.c |3 +- board/miromico/hammerhead/hammerhead.c |3 +- board/mousse/mousse.c|6 + board/mpc8540eval/mpc8540eval.c |
Re: [U-Boot] U-Boot version for a new port
Dear Roman, In message [EMAIL PROTECTED] you wrote: I didn't work with 'git' before, mainly subversion and CVS -- need time to master up this tool. Is it correct to issue git clone git://www.denx.de/git/u-boot.git u-boot/ Yes. The current window for changes is (almost) closed: there will be a period of stabilization. The ToT is generally stable despite the change What is ToT ? Top of Tree, or Tip of Tree. 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: [EMAIL PROTECTED] What is tolerance? -- it is the consequence of humanity. We are all formed of frailty and error; let us pardon reciprocally each other's folly -- that is the first law of nature. - Voltaire ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] U-Boot version for a new port
Dear Ben, In message [EMAIL PROTECTED] you wrote: git clone git://www.denx.de/git/u-boot.git u-boot/ in order to obtain local copy of the current sources ? git clone git://git.denx.de/u-boot.git u-boot I seem to vaguely remember a message that this one is more guaranteed to be up-to-date, but can't offer any useful details. You are right - git.denx.de is the better name, as we might decide to split www and git services onto different servers. But for the time being, both addressesare identical. 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: [EMAIL PROTECTED] Minds are like parachutes - they only function when open. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot