[U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board
Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548 processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash memory, real time clock and additional serial EEPROM on i2c bus (enabled). USB controller is available, but not presently enabled. Additional board information is available at: http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx Environment is configured to precede the actual u-boot image so that it's located at the beginning of flash erase block (made necessary by the recent changes to the embedded environment handling). Signed-off-by: Alex Dubov oa...@yahoo.com --- Changes for v4: - Replace config.mk supplied linker flags with custom linker script. - Fix checkpatch errors. Changes for v3: - Use io accessor functions for all mmio accesses. - Add configuration options for RTC and EEPROM on I2C buses. Changes for v2: - Remove some stale configuration code from board initialization functions. MAINTAINERS |3 + board/mercury/mpq101/Makefile | 53 + board/mercury/mpq101/law.c | 55 ++ board/mercury/mpq101/mpq101.c | 140 ++ board/mercury/mpq101/tlb.c | 82 board/mercury/mpq101/u-boot.lds | 132 + boards.cfg |1 + include/configs/mpq101.h| 398 +++ 8 files changed, 864 insertions(+), 0 deletions(-) create mode 100644 board/mercury/mpq101/Makefile create mode 100644 board/mercury/mpq101/law.c create mode 100644 board/mercury/mpq101/mpq101.c create mode 100644 board/mercury/mpq101/tlb.c create mode 100644 board/mercury/mpq101/u-boot.lds create mode 100644 include/configs/mpq101.h diff --git a/MAINTAINERS b/MAINTAINERS index d7cd09c..220c39d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -138,6 +138,9 @@ Jon Diekema jon.diek...@smiths-aerospace.com sbc8260 MPC8260 +Alex Dubov oa...@yahoo.com + mpq101 MPC8548 + Dirk Eibach eib...@gdsys.de devconcenterPPC460EX diff --git a/board/mercury/mpq101/Makefile b/board/mercury/mpq101/Makefile new file mode 100644 index 000..58bc1b3 --- /dev/null +++ b/board/mercury/mpq101/Makefile @@ -0,0 +1,53 @@ +# +# Copyright 2007 Freescale Semiconductor, Inc. +# (C) Copyright 2001-2006 +# Wolfgang Denk, DENX Software Engineering, w...@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB= $(obj)lib$(BOARD).o + +COBJS-y+= $(BOARD).o +COBJS-y+= law.o +COBJS-y+= tlb.o + +SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS-y)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB):$(obj).depend $(OBJS) $(SOBJS) + $(call cmd_link_o_target, $(OBJS)) + +clean: + rm -f $(OBJS) $(SOBJS) + +distclean: clean + rm -f $(LIB) core *.bak .depend + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/board/mercury/mpq101/law.c b/board/mercury/mpq101/law.c new file mode 100644 index 000..726b5c2 --- /dev/null +++ b/board/mercury/mpq101/law.c @@ -0,0 +1,55 @@ +/* + * Copyright 2008 Freescale Semiconductor, Inc. + * + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, w...@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple
Re: [U-Boot] [PATCH 2/2 v2] mpc5200, digsy_mtc: add support for rev5 board version
Hi Heiko, difference to previous board version: - M29W128GH flash from Numonyx - SDRAM ISSI IS45S16800 (Option A2 105°C) - rev5 uses RTC RV-3029-C2 - update cs0 and cs1 baseaddr and length depending on the detected flash size. - added Werner Pfister pfister_wer...@intercontrol.de as maintainer for the digsy board variants - As the M29W128GH needs a special flash_cmd_reset() document that in the new file doc/README.cfi. - move #endif /* CONFIG_CMD_IDE */ to the right place - remove LOWBOOT config option for digsy_mtc and digsy_mtc_rev5 boards - change doc/README.cfi as Stefan Roese suggested Signed-off-by: Heiko Schocher h...@denx.de Signed-off-by: Stefan Roese s...@denx.de cc: Wolfgang Denk h...@denx.de cc: Stefan Roese s...@denx.de cc: Werner Pfister pfister_wer...@intercontrol.de cc: Detlev Zundel d...@denx.de Acked-by: Detlev Zundel d...@denx.de Thanks! Detlev -- LISP has jokingly been described as the most intelligent way to misuse a computer. I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts. - Edsger W. Dijkstra -- 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: d...@denx.de ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] new board with common code
Hi I'm adding a new board. It's very similar to freescale's P2020DS, that's why I used this code as starting point. The problem is now that it still uses some code from board/freescale/common. At the first try this didn't get built and therefore I get link errors. What's the preferred way in this case? - Is it allowed to use sources inside another board/vendor? - Is it better to link to it or should I just copy the files into our vendor or board directory? - If it's okay to link to objects from another place, how can I adjust the makefiles/config.mk so the freescale's common lib is built as well? I know makefiles but u-boot is quite high level usage. Once we have it adjusted and running I will create a patch to have it added to the official version. Thanks bye Fabi ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] new board with common code
Dear Fabian Cenedese, In message 5.2.0.9.1.20110114115035.036b5778@localhost you wrote: I'm adding a new board. It's very similar to freescale's P2020DS, that's why I used this code as starting point. The problem is now that it still uses some code from board/freescale/common. At the first try this didn't get built and therefore I get link errors. What's the preferred way in this case? - Is it allowed to use sources inside another board/vendor? It is allowed, but not recommended. You are running the risk that the board vendor may make arbitrary changes to his board code, which may work fine for him, but break your board. And you cannot even blame him, because he probably is not even aware that this code gets used by others who rely on it. It is recommended to move such code to a common directory. - Is it better to link to it or should I just copy the files into our vendor or board directory? Please do not copy any files. Duplication of code is the worst that can be done in such a szenario. - If it's okay to link to objects from another place, how can I adjust the makefiles/config.mk so the freescale's common lib is built as well? I know makefiles but u-boot is quite high level usage. Before we go into details we should define a strategy. Can you please be specific: which exact files are you talking about? Then we can dicuss with the Freescale guys how to handle this situation. 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 Logic and practical information do not seem to apply here. You admit that? To deny the facts would be illogical, Doctor -- Spock and McCoy, A Piece of the Action, stardate unknown ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board
On Jan 14, 2011, at 3:10 AM, Alex Dubov wrote: Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548 processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash memory, real time clock and additional serial EEPROM on i2c bus (enabled). USB controller is available, but not presently enabled. Additional board information is available at: http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx Environment is configured to precede the actual u-boot image so that it's located at the beginning of flash erase block (made necessary by the recent changes to the embedded environment handling). Signed-off-by: Alex Dubov oa...@yahoo.com --- Changes for v4: - Replace config.mk supplied linker flags with custom linker script. - Fix checkpatch errors. Changes for v3: - Use io accessor functions for all mmio accesses. - Add configuration options for RTC and EEPROM on I2C buses. Changes for v2: - Remove some stale configuration code from board initialization functions. MAINTAINERS |3 + board/mercury/mpq101/Makefile | 53 + board/mercury/mpq101/law.c | 55 ++ board/mercury/mpq101/mpq101.c | 140 ++ board/mercury/mpq101/tlb.c | 82 board/mercury/mpq101/u-boot.lds | 132 + boards.cfg |1 + include/configs/mpq101.h| 398 +++ 8 files changed, 864 insertions(+), 0 deletions(-) create mode 100644 board/mercury/mpq101/Makefile create mode 100644 board/mercury/mpq101/law.c create mode 100644 board/mercury/mpq101/mpq101.c create mode 100644 board/mercury/mpq101/tlb.c create mode 100644 board/mercury/mpq101/u-boot.lds create mode 100644 include/configs/mpq101.h Can you update this against the u-boot-mpc85xx.git and use the new common SRIO init code I assume customer linker script is because of where you have the environment. If so might be useful to add that to the commit comment. - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v4] mpq101: initial support for Mercury Computer Systems MPQ101 board
On Jan 14, 2011, at 3:10 AM, Alex Dubov wrote: Mpq101 is a RapidIO development board in AMC form factor, featuring MPC8548 processor, 512MB of hardwired DDR2 RAM, 128MB of hardwired NAND flash memory, real time clock and additional serial EEPROM on i2c bus (enabled). USB controller is available, but not presently enabled. Additional board information is available at: http://www.mc.com/products/boards/ensemble_mpq101_rapidio_powerquicc_iii.aspx Environment is configured to precede the actual u-boot image so that it's located at the beginning of flash erase block (made necessary by the recent changes to the embedded environment handling). Signed-off-by: Alex Dubov oa...@yahoo.com --- Changes for v4: - Replace config.mk supplied linker flags with custom linker script. - Fix checkpatch errors. Changes for v3: - Use io accessor functions for all mmio accesses. - Add configuration options for RTC and EEPROM on I2C buses. Changes for v2: - Remove some stale configuration code from board initialization functions. MAINTAINERS |3 + board/mercury/mpq101/Makefile | 53 + board/mercury/mpq101/law.c | 55 ++ board/mercury/mpq101/mpq101.c | 140 ++ board/mercury/mpq101/tlb.c | 82 board/mercury/mpq101/u-boot.lds | 132 + boards.cfg |1 + include/configs/mpq101.h| 398 +++ 8 files changed, 864 insertions(+), 0 deletions(-) create mode 100644 board/mercury/mpq101/Makefile create mode 100644 board/mercury/mpq101/law.c create mode 100644 board/mercury/mpq101/mpq101.c create mode 100644 board/mercury/mpq101/tlb.c create mode 100644 board/mercury/mpq101/u-boot.lds create mode 100644 include/configs/mpq101.h diff --git a/MAINTAINERS b/MAINTAINERS index d7cd09c..220c39d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -138,6 +138,9 @@ Jon Diekema jon.diek...@smiths-aerospace.com sbc8260 MPC8260 +Alex Dubov oa...@yahoo.com + mpq101 MPC8548 + Dirk Eibach eib...@gdsys.de devconcenterPPC460EX diff --git a/board/mercury/mpq101/Makefile b/board/mercury/mpq101/Makefile new file mode 100644 index 000..58bc1b3 --- /dev/null +++ b/board/mercury/mpq101/Makefile @@ -0,0 +1,53 @@ +# +# Copyright 2007 Freescale Semiconductor, Inc. +# (C) Copyright 2001-2006 +# Wolfgang Denk, DENX Software Engineering, w...@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS-y += $(BOARD).o +COBJS-y += law.o +COBJS-y += tlb.o + +SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS-y)) +SOBJS:= $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(call cmd_link_o_target, $(OBJS)) + +clean: + rm -f $(OBJS) $(SOBJS) + +distclean: clean + rm -f $(LIB) core *.bak .depend + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/board/mercury/mpq101/law.c b/board/mercury/mpq101/law.c new file mode 100644 index 000..726b5c2 --- /dev/null +++ b/board/mercury/mpq101/law.c @@ -0,0 +1,55 @@ +/* + * Copyright 2008 Freescale Semiconductor, Inc. + * + * (C) Copyright 2000 + * Wolfgang Denk, DENX Software Engineering, w...@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have
Re: [U-Boot] new board with common code
On Jan 14, 2011, at 5:39 AM, Wolfgang Denk wrote: Dear Fabian Cenedese, In message 5.2.0.9.1.20110114115035.036b5778@localhost you wrote: I'm adding a new board. It's very similar to freescale's P2020DS, that's why I used this code as starting point. The problem is now that it still uses some code from board/freescale/common. At the first try this didn't get built and therefore I get link errors. What's the preferred way in this case? - Is it allowed to use sources inside another board/vendor? It is allowed, but not recommended. You are running the risk that the board vendor may make arbitrary changes to his board code, which may work fine for him, but break your board. And you cannot even blame him, because he probably is not even aware that this code gets used by others who rely on it. It is recommended to move such code to a common directory. - Is it better to link to it or should I just copy the files into our vendor or board directory? Please do not copy any files. Duplication of code is the worst that can be done in such a szenario. - If it's okay to link to objects from another place, how can I adjust the makefiles/config.mk so the freescale's common lib is built as well? I know makefiles but u-boot is quite high level usage. Before we go into details we should define a strategy. Can you please be specific: which exact files are you talking about? Then we can dicuss with the Freescale guys how to handle this situation. Agreed, if we know what code is common we could see about how best to refactor it for sharing. - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 3/7] mxc_i2c: Add support for the i.MX35 processor
Signed-off-by: Stefano Babic sba...@denx.de --- drivers/i2c/mxc_i2c.c | 16 ++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 8e10fbb..74a984d 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -26,8 +26,13 @@ #if defined(CONFIG_HARD_I2C) +#if defined(CONFIG_MX31) #include asm/arch/mx31.h #include asm/arch/mx31-regs.h +#else +#include asm/arch/imx-regs.h +#include asm/arch/clock.h +#endif #define IADR 0x00 #define IFDR 0x04 @@ -56,8 +61,10 @@ #elif defined (CONFIG_SYS_I2C_MX31_PORT3) #define I2C_BASE 0x43f84000 #define I2C_CLK_OFFSET 30 +#elif defined (CONFIG_SYS_I2C_MX35_PORT1) +#define I2C_BASE I2C_BASE_ADDR #else -#error define CONFIG_SYS_I2C_MX31_PORTx to use the mx31 I2C driver +#error define CONFIG_SYS_I2C_MXXX_PORTx to use the mx I2C driver #endif #ifdef DEBUG @@ -72,11 +79,16 @@ static u16 div[] = { 30, 32, 36, 42, 48, 52, 60, 72, 80, 88, 104, 128, 144, void i2c_init(int speed, int unused) { - int freq = mx31_get_ipg_clk(); + int freq; int i; +#ifdef CONFIG_MX31 + freq = mx31_get_ipg_clk(); /* start the required I2C clock */ __REG(CCM_CGR0) = __REG(CCM_CGR0) | (3 I2C_CLK_OFFSET); +#else + freq = mxc_get_clock(MXC_IPG_PERCLK); +#endif for (i = 0; i 0x1f; i++) if (freq / div[i] = speed) -- 1.7.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 2/7] serial_mxc: add support for Freescale's i.MX35 processor
The patch adds UART support for the i.MX35 processor. Signed-off-by: Stefano Babic sba...@denx.de --- drivers/serial/serial_mxc.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c index f96b21f..2dcae40 100644 --- a/drivers/serial/serial_mxc.c +++ b/drivers/serial/serial_mxc.c @@ -50,9 +50,9 @@ #define UART_PHYS 0x1001b000 #elif defined(CONFIG_SYS_MX27_UART6) #define UART_PHYS 0x1001c000 -#elif defined(CONFIG_SYS_MX51_UART1) +#elif defined(CONFIG_SYS_MX51_UART1) || defined(CONFIG_SYS_MX35_UART1) #define UART_PHYS UART1_BASE_ADDR -#elif defined(CONFIG_SYS_MX51_UART2) +#elif defined(CONFIG_SYS_MX51_UART2) || defined(CONFIG_SYS_MX35_UART2) #define UART_PHYS UART2_BASE_ADDR #elif defined(CONFIG_SYS_MX51_UART3) #define UART_PHYS UART3_BASE_ADDR -- 1.7.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 6/7] mxc_spi: add support for i.MX35 processor
Signed-off-by: Stefano Babic sba...@denx.de --- drivers/spi/mxc_spi.c | 96 + 1 files changed, 73 insertions(+), 23 deletions(-) diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c index d558137..b353c83 100644 --- a/drivers/spi/mxc_spi.c +++ b/drivers/spi/mxc_spi.c @@ -70,6 +70,8 @@ static unsigned long spi_bases[] = { 0x53f84000, }; +#define spi_cfgspi_cfg_mx3 + #elif defined(CONFIG_MX51) #include asm/arch/imx-regs.h #include asm/arch/clock.h @@ -111,6 +113,47 @@ static unsigned long spi_bases[] = { CSPI2_BASE_ADDR, CSPI3_BASE_ADDR, }; +#define spi_cfgspi_cfg_mx51 + +#elif defined(CONFIG_MX35) + +#include asm/arch/imx-regs.h +#include asm/arch/clock.h + +#define MXC_CSPIRXDATA 0x00 +#define MXC_CSPITXDATA 0x04 +#define MXC_CSPICTRL 0x08 +#define MXC_CSPIINT0x0C +#define MXC_CSPIDMA0x10 +#define MXC_CSPISTAT 0x14 +#define MXC_CSPIPERIOD 0x18 +#define MXC_CSPITEST 0x1C +#define MXC_CSPIRESET 0x00 + +#define MXC_CSPICTRL_EN(1 0) +#define MXC_CSPICTRL_MODE (1 1) +#define MXC_CSPICTRL_XCH (1 2) +#define MXC_CSPICTRL_SMC (1 3) +#define MXC_CSPICTRL_POL (1 4) +#define MXC_CSPICTRL_PHA (1 5) +#define MXC_CSPICTRL_SSCTL (1 6) +#define MXC_CSPICTRL_SSPOL (1 7) +#define MXC_CSPICTRL_CHIPSELECT(x) (((x) 0x3) 12) +#define MXC_CSPICTRL_BITCOUNT(x) (((x) 0xfff) 20) +#define MXC_CSPICTRL_DATARATE(x) (((x) 0x7) 16) +#define MXC_CSPICTRL_TC(1 7) +#define MXC_CSPICTRL_RXOVF (1 6) +#define MXC_CSPICTRL_MAXBITS 0xfff + +#define MXC_CSPIPERIOD_32KHZ (1 15) +#define MAX_SPI_BYTES 4 + +static unsigned long spi_bases[] = { + 0x43fa4000, + 0x5001, +}; +#define spi_cfgspi_cfg_mx3 + #else #error Unsupported architecture #endif @@ -158,8 +201,35 @@ void spi_cs_deactivate(struct spi_slave *slave) !(mxcs-ss_pol)); } -#ifdef CONFIG_MX51 -static s32 spi_cfg(struct mxc_spi_slave *mxcs, unsigned int cs, +#if defined(CONFIG_MX31) || defined(CONFIG_MX35) +static s32 spi_cfg_mx3(struct mxc_spi_slave *mxcs, unsigned int cs, + unsigned int max_hz, unsigned int mode) +{ + unsigned int ctrl_reg; + + ctrl_reg = MXC_CSPICTRL_CHIPSELECT(cs) | + MXC_CSPICTRL_BITCOUNT(MXC_CSPICTRL_MAXBITS) | + MXC_CSPICTRL_DATARATE(7) | /* FIXME: calculate data rate */ + MXC_CSPICTRL_EN | +#ifdef CONFIG_MX35 + MXC_CSPICTRL_SSCTL | +#endif + MXC_CSPICTRL_MODE; + + if (mode SPI_CPHA) + ctrl_reg |= MXC_CSPICTRL_PHA; + if (mode SPI_CPOL) + ctrl_reg |= MXC_CSPICTRL_POL; + if (mode SPI_CS_HIGH) + ctrl_reg |= MXC_CSPICTRL_SSPOL; + mxcs-ctrl_reg = ctrl_reg; + + return 0; +} +#endif + +#if defined(CONFIG_MX51) +static s32 spi_cfg_mx51(struct mxc_spi_slave *mxcs, unsigned int cs, unsigned int max_hz, unsigned int mode) { u32 clk_src = mxc_get_clock(MXC_CSPI_CLK); @@ -227,7 +297,7 @@ static s32 spi_cfg(struct mxc_spi_slave *mxcs, unsigned int cs, /* * Configuration register setup -* The MX51 has support different setup for each SS +* The MX51 supports different setup for each SS */ reg_config = (reg_config ~(1 (cs + MXC_CSPICON_SSPOL))) | (ss_pol (cs + MXC_CSPICON_SSPOL)); @@ -363,7 +433,6 @@ int spi_xchg_single(struct spi_slave *slave, unsigned int bitlen, } - int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { @@ -441,7 +510,6 @@ static int decode_cs(struct mxc_spi_slave *mxcs, unsigned int cs) struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, unsigned int max_hz, unsigned int mode) { - unsigned int ctrl_reg; struct mxc_spi_slave *mxcs; int ret; @@ -467,30 +535,12 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, mxcs-base = spi_bases[bus]; mxcs-ss_pol = (mode SPI_CS_HIGH) ? 1 : 0; -#ifdef CONFIG_MX51 - /* Can be used for i.MX31 too ? */ - ctrl_reg = 0; ret = spi_cfg(mxcs, cs, max_hz, mode); if (ret) { printf(mxc_spi: cannot setup SPI controller\n); free(mxcs); return NULL; } -#else - ctrl_reg = MXC_CSPICTRL_CHIPSELECT(cs) | - MXC_CSPICTRL_BITCOUNT(31) | - MXC_CSPICTRL_DATARATE(7) | /* FIXME: calculate data rate */ - MXC_CSPICTRL_EN | - MXC_CSPICTRL_MODE; - - if (mode SPI_CPHA) - ctrl_reg |= MXC_CSPICTRL_PHA; - if (mode SPI_CPOL) - ctrl_reg |= MXC_CSPICTRL_POL; - if (mode
[U-Boot] [PATCH 7/7] Add support for Freescale's mx35pdk board.
The patch adds suupport for the Freescale's mx35pdk board (known as well as mx35_3stack). The board boots from the NOR flash. Following devices are supported: - two ethernet devices (FEC and SMC911x on debug board) - I2C - PMIC (MC13892) via I2C interface - UART - NOR flash (64MB) - NAND flash (2GB) - basic access to mc9sdz60 registers via I2C interface Signed-off-by: Stefano Babic sba...@denx.de --- MAINTAINERS |1 + MAKEALL |1 + arch/arm/include/asm/arch-mx35/mmu.h| 172 -- board/freescale/mx35pdk/Makefile| 49 board/freescale/mx35pdk/config.mk | 25 ++ board/freescale/mx35pdk/imximage.cfg| 62 + board/freescale/mx35pdk/lowlevel_init.S | 382 +++ board/freescale/mx35pdk/mx35pdk.c | 313 + board/freescale/mx35pdk/mx35pdk.h | 101 boards.cfg |1 + doc/README.mx35pdk | 185 +++ include/configs/mx35pdk.h | 269 ++ 12 files changed, 1389 insertions(+), 172 deletions(-) delete mode 100644 arch/arm/include/asm/arch-mx35/mmu.h create mode 100644 board/freescale/mx35pdk/Makefile create mode 100644 board/freescale/mx35pdk/config.mk create mode 100644 board/freescale/mx35pdk/imximage.cfg create mode 100644 board/freescale/mx35pdk/lowlevel_init.S create mode 100644 board/freescale/mx35pdk/mx35pdk.c create mode 100644 board/freescale/mx35pdk/mx35pdk.h create mode 100644 doc/README.mx35pdk create mode 100644 include/configs/mx35pdk.h diff --git a/MAINTAINERS b/MAINTAINERS index d7cd09c..3abb4cb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -554,6 +554,7 @@ Stefano Babic sba...@denx.de ea20davinci polaris xscale trizepsiv xscale + mx35pdk i.MX35 mx51evk i.MX51 vision2 i.MX51 diff --git a/MAKEALL b/MAKEALL index a732e6a..31dbfe1 100755 --- a/MAKEALL +++ b/MAKEALL @@ -409,6 +409,7 @@ LIST_ARM11=\ mx31ads \ mx31pdk \ mx31pdk_nand\ + mx35pdk \ qong\ smdk6400\ tnetv107x_evm \ diff --git a/arch/arm/include/asm/arch-mx35/mmu.h b/arch/arm/include/asm/arch-mx35/mmu.h deleted file mode 100644 index 1b15dba..000 --- a/arch/arm/include/asm/arch-mx35/mmu.h +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved. - */ - -/* - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -#ifndef __ARM_ARCH_MMU_H -#define __ARM_ARCH_MMU_H - -/* - * Translation Table Base Bit Masks - */ -#define ARM_TRANSLATION_TABLE_MASK 0xC000 - -/* - * Domain Access Control Bit Masks - */ -#define ARM_ACCESS_TYPE_NO_ACCESS(domain_num)(0x0 (domain_num)*2) -#define ARM_ACCESS_TYPE_CLIENT(domain_num) (0x1 (domain_num)*2) -#define ARM_ACCESS_TYPE_MANAGER(domain_num) (0x3 (domain_num)*2) - -struct ARM_MMU_FIRST_LEVEL_FAULT { - unsigned int id:2; - unsigned int sbz:30; -}; - -#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0 - -struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE { - unsigned int id:2; - unsigned int imp:2; - unsigned int domain:4; - unsigned int sbz:1; - unsigned int base_address:23; -}; - -#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1 - -struct ARM_MMU_FIRST_LEVEL_SECTION { - unsigned int id:2; - unsigned int b:1; - unsigned int c:1; - unsigned int imp:1; - unsigned int domain:4; - unsigned int sbz0:1; - unsigned int ap:2; - unsigned int sbz1:8; - unsigned int base_address:12; -}; - -#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2 - -struct ARM_MMU_FIRST_LEVEL_RESERVED { - unsigned int id:2; - unsigned int sbz:30; -}; - -#define ARM_MMU_FIRST_LEVEL_RESERVED_ID 0x3 - -#define ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, table_index) \ - (unsigned long *)((unsigned long)(ttb_base) + ((table_index) 2)) - -#define ARM_FIRST_LEVEL_PAGE_TABLE_SIZE 0x4000 - -#define ARM_MMU_SECTION(ttb_base, actual_base, virtual_base, \ - cacheable, bufferable, perm)\ - { \ - register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc; \ - desc.word = 0; \ - desc.section.id = ARM_MMU_FIRST_LEVEL_SECTION_ID; \ - desc.section.domain = 0;
[U-Boot] [PATCH 4/7] mxc_nand: add support for i.MX35 processor
Signed-off-by: Stefano Babic sba...@denx.de --- drivers/mtd/nand/mxc_nand.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index ec71cfc..2a8dd7e 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -22,7 +22,7 @@ #include nand.h #include linux/err.h #include asm/io.h -#if defined(CONFIG_MX25) || defined(CONFIG_MX27) +#if defined(CONFIG_MX25) || defined(CONFIG_MX27) || defined(CONFIG_MX35) #include asm/arch/imx-regs.h #endif @@ -50,7 +50,7 @@ */ #if defined(CONFIG_MX31) || defined(CONFIG_MX27) #define MXC_NFC_V1 -#elif defined(CONFIG_MX25) +#elif defined(CONFIG_MX25) || defined(CONFIG_MX35) #define MXC_NFC_V1_1 #else #warning MXC NFC version not defined @@ -265,7 +265,7 @@ static int is_16bit_nand(void) else return 0; } -#elif defined(CONFIG_MX25) +#elif defined(CONFIG_MX25) || defined(CONFIG_MX35) static int is_16bit_nand(void) { struct ccm_regs *ccm = -- 1.7.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 5/7] Add basic support for Freescale's mc9sdz60
The patch adds helper funtions for basic access to the registers of the MC9sdz60 chip (multifunctional device with RTC and CAN) via I2C interface. Signed-off-by: Stefano Babic sba...@denx.de --- drivers/misc/Makefile |1 + drivers/misc/mc9sdz60.c | 51 include/mc9sdz60.h | 84 +++ 3 files changed, 136 insertions(+), 0 deletions(-) create mode 100644 drivers/misc/mc9sdz60.c create mode 100644 include/mc9sdz60.h diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index a76bd4e..311c373 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -32,6 +32,7 @@ COBJS-$(CONFIG_GPIO_LED) += gpio_led.o COBJS-$(CONFIG_NS87308) += ns87308.o COBJS-$(CONFIG_STATUS_LED) += status_led.o COBJS-$(CONFIG_TWL4030_LED) += twl4030_led.o +COBJS-$(CONFIG_FSL_MC9SDZ60) += mc9sdz60.o COBJS-$(CONFIG_FSL_PMIC) += fsl_pmic.o COBJS-$(CONFIG_PDSP188x) += pdsp188x.o diff --git a/drivers/misc/mc9sdz60.c b/drivers/misc/mc9sdz60.c new file mode 100644 index 000..439d5a6 --- /dev/null +++ b/drivers/misc/mc9sdz60.c @@ -0,0 +1,51 @@ +/* + * (C) Copyright 2010 Stefano Babic sba...@denx.de + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + + +#include config.h +#include common.h +#include asm/errno.h +#include linux/types.h +#include i2c.h +#include mc9sdz60.h + +#ifndef CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR +#error You have to configure I2C address for MC9SDZ60 +#endif + + +u8 mc9sdz60_reg_read(enum mc9sdz60_reg reg) +{ + u8 val; + + if (i2c_read(CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR, reg, 1, val, 1)) { + puts(Error reading MC9SDZ60 register\n); + return -1; + } + + return val; +} + +void mc9sdz60_reg_write(enum mc9sdz60_reg reg, u8 val) +{ + i2c_write(CONFIG_SYS_FSL_MC9SDZ60_I2C_ADDR, reg, 1, val, 1); +} diff --git a/include/mc9sdz60.h b/include/mc9sdz60.h new file mode 100644 index 000..31b894c --- /dev/null +++ b/include/mc9sdz60.h @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2009 Marc Kleine-Budde m...@pengutronix.de + * + * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ + +#ifndef __ASM_ARCH_MC9SDZ60_H +#define __ASM_ARCH_MC9SDZ60_H + +/** + * Register addresses for the MC9SDZ60 + * + * @note: these match those in the kernel drivers/mxc/mcu_pmic/mc9s08dz60.h + * but not include/linux/mfd/mc9s08dz60/pmic.h + * + */ +enum mc9sdz60_reg { + MC9SDZ60_REG_VERSION= 0x00, + /* reserved 0x01 */ + MC9SDZ60_REG_SECS = 0x02, + MC9SDZ60_REG_MINS = 0x03, + MC9SDZ60_REG_HRS= 0x04, + MC9SDZ60_REG_DAY= 0x05, + MC9SDZ60_REG_DATE = 0x06, + MC9SDZ60_REG_MONTH = 0x07, + MC9SDZ60_REG_YEAR = 0x08, + MC9SDZ60_REG_ALARM_SECS = 0x09, + MC9SDZ60_REG_ALARM_MINS = 0x0a, + MC9SDZ60_REG_ALARM_HRS = 0x0b, + /* reserved 0x0c */ + /* reserved 0x0d */ + MC9SDZ60_REG_TS_CONTROL = 0x0e, + MC9SDZ60_REG_X_LOW = 0x0f, + MC9SDZ60_REG_Y_LOW = 0x10, + MC9SDZ60_REG_XY_HIGH= 0x11, + MC9SDZ60_REG_X_LEFT_LOW = 0x12, + MC9SDZ60_REG_X_LEFT_HIGH= 0x13, +
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB= $(obj)lib$(SOC).o SOBJS= reset.o -COBJS-$(CONFIG_S3C6400)+= cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400)+= speed.o COBJS-y+= timer.o +CPUINIT= cpu_init.o + OBJS:= $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all:$(obj).depend $(START) $(LIB) +all:$(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB):$(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. I have two method to solve it. first: see the patch second: Modify the link script But I feel, the first method is safe. I asked a question. I will RR on next, The patch1 and patch3 have already ok, Do I only send patch2 and patch4? Amicalement, ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 4/4] SMDK6400: Fix SMDK6400 SDRAM init
On 01/14/2011 08:53 AM, Minkyu Kang wrote: Dear seedshope, On 13 January 2011 22:36, seedshopebocui...@gmail.com wrote: Since SDRAM init function have already change, So the SDRAM initial function must be change. Signed-off-by: seedshopebocui...@gmail.com diff --git a/board/samsung/smdk6400/smdk6400.c b/board/samsung/smdk6400/smdk6400.c index 35aa40b..043d553 100644 --- a/board/samsung/smdk6400/smdk6400.c +++ b/board/samsung/smdk6400/smdk6400.c @@ -78,10 +78,18 @@ int board_init(void) return 0; } -int dram_init(void) +void dram_init_banksize(void) { + DECLARE_GLOBAL_DATA_PTR; Please move it to out of function. I am sorry, DECLARE_GLOBAL_DATA_PTR have already defind in the head of the file, I will drop this declare. + gd-bd-bi_dram[0].start = PHYS_SDRAM_1; gd-bd-bi_dram[0].size = PHYS_SDRAM_1_SIZE; +} + +int dram_init(void) +{ + gd-ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, \ Please remove \. ok Thanks, seedshope + PHYS_SDRAM_1_SIZE); return 0; } -- 1.7.1 Thanks Minkyu Kang ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
On 01/14/2011 11:45 PM, seedshope wrote: On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB= $(obj)lib$(SOC).o SOBJS= reset.o -COBJS-$(CONFIG_S3C6400)+= cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400)+= speed.o COBJS-y+= timer.o +CPUINIT= cpu_init.o + OBJS:= $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all:$(obj).depend $(START) $(LIB) +all:$(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB):$(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The part of u-boot-nand.lds as following: . = ALIGN(4); .text : { arch/arm/cpu/arm1176/start.o (.text) arch/arm/cpu/arm1176/s3c64xx/cpu_init.o (.text) *(.text) } I reference start.s to get the patch.;-) Thanks, seedshope The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. I have two method to solve it. first: see the patch second: Modify the link script But I feel, the first method is safe. I asked a question. I will RR on next, The patch1 and patch3 have already ok, Do I only send patch2 and patch4? Amicalement, ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] new board with common code
I'm adding a new board. It's very similar to freescale's P2020DS, that's why I used this code as starting point. The problem is now that it still uses some code from board/freescale/common. At the first try this didn't get built and therefore I get link errors. What's the preferred way in this case? - Is it allowed to use sources inside another board/vendor? It is allowed, but not recommended. You are running the risk that the board vendor may make arbitrary changes to his board code, which may work fine for him, but break your board. And you cannot even blame him, because he probably is not even aware that this code gets used by others who rely on it. It is recommended to move such code to a common directory. - Is it better to link to it or should I just copy the files into our vendor or board directory? Please do not copy any files. Duplication of code is the worst that can be done in such a szenario. - If it's okay to link to objects from another place, how can I adjust the makefiles/config.mk so the freescale's common lib is built as well? I know makefiles but u-boot is quite high level usage. Before we go into details we should define a strategy. Can you please be specific: which exact files are you talking about? One thing was pixis, but as we don't have that FPGA I could remove all references to it. Also missing was the eeprom so I got a link error for mac_read_from_eeprom. We mainly want to use U-Boot to initialize the CPU and DRAM. As this is a PCIe-card for the PC we can then download all other things we need. So I could also remove the EEPROM support. I cleaned the config file up and removed things we don't have. I can now build for my board without using anything from freescale/common, so the problem is solved for now. I will think about it if we need to add something and the error comes up again. Thanks for your help. bye Fabi ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] new board with common code
On Jan 14, 2011, at 10:12 AM, Fabian Cenedese wrote: Before we go into details we should define a strategy. Can you please be specific: which exact files are you talking about? One thing was pixis, but as we don't have that FPGA I could remove all references to it. Also missing was the eeprom so I got a link error for mac_read_from_eeprom. We mainly want to use U-Boot to initialize the CPU and DRAM. As this is a PCIe-card for the PC we can then download all other things we need. So I could also remove the EEPROM support. I cleaned the config file up and removed things we don't have. I can now build for my board without using anything from freescale/common, so the problem is solved for now. I will think about it if we need to add something and the error comes up again. Thanks for your help. bye Fabi Ok, I'd be surprised if you need anything in freescale/common - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 2/8] 8xxx/ddr: add support to only compute the ddr sdram size
On Dec 1, 2010, at 9:35 AM, haiying.w...@freescale.com haiying.w...@freescale.com wrote: From: Haiying Wang haiying.w...@freescale.com This patch adds fsl_ddr_sdram_size to only calculate the ddr sdram size, in case that the DDR SDRAM is initialized in the 2nd stage uboot and should not be intialized again in the final stage uboot. Signed-off-by: Haiying Wang haiying.w...@freescale.com --- arch/powerpc/cpu/mpc8xxx/ddr/ctrl_regs.c | 10 - arch/powerpc/cpu/mpc8xxx/ddr/ddr.h |8 -- arch/powerpc/cpu/mpc8xxx/ddr/main.c | 31 + 3 files changed, 40 insertions(+), 9 deletions(-) applied - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
Hi seedshope, Le 14/01/2011 16:45, seedshope a écrit : On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o SOBJS = reset.o -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400) += speed.o COBJS-y += timer.o +CPUINIT = cpu_init.o + OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all: $(obj).depend $(START) $(LIB) +all: $(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB): $(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. From what follows it seems the problem is rather cpu_init.o being linked in twice. Correct? At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. Then you should fix the double linking by i) determining why the double linking happens and ii) properly linking once only. I have two method to solve it. first: see the patch second: Modify the link script But I feel, the first method is safe. It may be safe, but IIUC it does not properly address the issue and its root cause. I asked a question. I will RR on next, The patch1 and patch3 have already ok, Do I only send patch2 and patch4? My personal practice is to re-send the whole patchset for each new version, because i) people can easily see the whole of the changes without having to go pick parts of previous versions and ii) it makes clear when a patch is removed or added to the set. Amicalement, Amicalement, -- Albert. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 1/2] powerpc/85xx: Add Support for Freescale P1010 Processor
From: Poonam Aggrwal poonam.aggr...@freescale.com Key Features include of the P1010: * e500v2 core frequency operation of 500 to 800 MHz * Power consumption less than 5.0 W at 800 MHz core speed * Dual SATA 3 Gbps controllers with integrated PHY * Dual PCI Express controllers * Three 10/100/1000 Mbps enhanced triple-speed Ethernet controllers (eTSECs) * TCP/IP acceleration and classification capabilities * IEEE 1588 support * Lossless flow control * RGMII, SGMII * DDR3 with support for a 32-bit data interface (40 bits including ECC), up to 800 MHz data rate 32/16-bit DDR3 memory controller * Dedicated security engine featuring trusted boot * TDM interface * Dual controller area networks (FlexCAN) controller * SD/MMC card controller supporting booting from Flash cards * USB 2.0 host and device controller with an on-chip, high-speed PHY * Integrated Flash controller (IFC) * Power Management Controller (PMC) * Four-channel, general-purpose DMA controller * I2C controller * Serial peripheral interface (SPI) controller with master and slave support * System timers including a periodic interrupt timer, real-time clock, software watchdog timer, and four general-purpose timers * Dual DUARTs Signed-off-by: Poonam Aggrwal poonam.aggr...@freescale.com Signed-off-by: Dipen Dudhat dipen.dud...@freescale.com Signed-off-by: Kumar Gala ga...@kernel.crashing.org --- arch/powerpc/cpu/mpc85xx/Makefile|1 + arch/powerpc/cpu/mpc8xxx/cpu.c |2 ++ arch/powerpc/include/asm/config.h|6 -- arch/powerpc/include/asm/processor.h |2 ++ drivers/misc/fsl_law.c |1 + 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/cpu/mpc85xx/Makefile b/arch/powerpc/cpu/mpc85xx/Makefile index af7bc09..e1261cf 100644 --- a/arch/powerpc/cpu/mpc85xx/Makefile +++ b/arch/powerpc/cpu/mpc85xx/Makefile @@ -50,6 +50,7 @@ COBJS-$(CONFIG_MPC8544) += ddr-gen2.o COBJS-$(CONFIG_MPC8572) += ddr-gen3.o COBJS-$(CONFIG_MPC8536) += ddr-gen3.o COBJS-$(CONFIG_MPC8569)+= ddr-gen3.o +COBJS-$(CONFIG_P1010) += ddr-gen3.o COBJS-$(CONFIG_P1011) += ddr-gen3.o COBJS-$(CONFIG_P1012) += ddr-gen3.o COBJS-$(CONFIG_P1013) += ddr-gen3.o diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c index 5b30fbd..ac720a5 100644 --- a/arch/powerpc/cpu/mpc8xxx/cpu.c +++ b/arch/powerpc/cpu/mpc8xxx/cpu.c @@ -64,6 +64,8 @@ struct cpu_type cpu_type_list [] = { CPU_TYPE_ENTRY(8569, 8569_E, 1), CPU_TYPE_ENTRY(8572, 8572, 2), CPU_TYPE_ENTRY(8572, 8572_E, 2), + CPU_TYPE_ENTRY(P1010, P1010, 1), + CPU_TYPE_ENTRY(P1010, P1010_E, 1), CPU_TYPE_ENTRY(P1011, P1011, 1), CPU_TYPE_ENTRY(P1011, P1011_E, 1), CPU_TYPE_ENTRY(P1012, P1012, 1), diff --git a/arch/powerpc/include/asm/config.h b/arch/powerpc/include/asm/config.h index 76dedeb..d80fc97 100644 --- a/arch/powerpc/include/asm/config.h +++ b/arch/powerpc/include/asm/config.h @@ -69,14 +69,16 @@ /* Enable TSEC2.0 for the platforms that have it if we are using TSEC */ #if defined(CONFIG_TSEC_ENET) \ -(defined(CONFIG_P1020) || defined(CONFIG_P1011)) +(defined(CONFIG_P1010) || \ + defined(CONFIG_P1020) || defined(CONFIG_P1011)) #define CONFIG_TSECV2 #endif /* * SEC (crypto unit) major compatible version determination */ -#if defined(CONFIG_FSL_CORENET) +#if defined(CONFIG_FSL_CORENET) || \ +defined(CONFIG_P1010) #define CONFIG_SYS_FSL_SEC_COMPAT 4 #elif defined(CONFIG_MPC85xx) || defined(CONFIG_MPC83xx) #define CONFIG_SYS_FSL_SEC_COMPAT 2 diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index 71fafa3..6b43dc5 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h @@ -1038,6 +1038,8 @@ #define SVR_8569_E 0x808800 #define SVR_8572 0x80E000 #define SVR_8572_E 0x80E800 +#define SVR_P1010 0x80F100 +#define SVR_P1010_E0x80F900 #define SVR_P1011 0x80E500 #define SVR_P1011_E0x80ED00 #define SVR_P1012 0x80E501 diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c index 6589076..931cc71 100644 --- a/drivers/misc/fsl_law.c +++ b/drivers/misc/fsl_law.c @@ -38,6 +38,7 @@ DECLARE_GLOBAL_DATA_PTR; defined(CONFIG_MPC8641) || defined(CONFIG_MPC8610) #define FSL_HW_NUM_LAWS 10 #elif defined(CONFIG_MPC8536) || defined(CONFIG_MPC8572) || \ + defined(CONFIG_P1010) || \ defined(CONFIG_P1011) || defined(CONFIG_P1020) || \ defined(CONFIG_P1012) || defined(CONFIG_P1021) || \ defined(CONFIG_P1013) || defined(CONFIG_P1022) || \ -- 1.7.2.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 2/2] powerpc/85xx: Add Support for Freescale P1014 Processor
From: Poonam Aggrwal poonam.aggr...@freescale.com The P1014 is similar to the P1010 processor with the following differences: - 16bit DDR with ECC. (P1010 has 32bit DDR w/o ECC) - no eCAN interface. (P1010 has 2 eCAN interfaces) - Two SGMII interface (P1010 has 3 SGMII) - No secure boot Signed-off-by: Poonam Aggrwal poonam.aggr...@freescale.com Signed-off-by: Kumar Gala ga...@kernel.crashing.org --- arch/powerpc/cpu/mpc85xx/Makefile|1 + arch/powerpc/cpu/mpc8xxx/cpu.c |2 ++ arch/powerpc/include/asm/config.h|4 ++-- arch/powerpc/include/asm/processor.h |2 ++ drivers/misc/fsl_law.c |2 +- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/cpu/mpc85xx/Makefile b/arch/powerpc/cpu/mpc85xx/Makefile index e1261cf..3f118db 100644 --- a/arch/powerpc/cpu/mpc85xx/Makefile +++ b/arch/powerpc/cpu/mpc85xx/Makefile @@ -54,6 +54,7 @@ COBJS-$(CONFIG_P1010) += ddr-gen3.o COBJS-$(CONFIG_P1011) += ddr-gen3.o COBJS-$(CONFIG_P1012) += ddr-gen3.o COBJS-$(CONFIG_P1013) += ddr-gen3.o +COBJS-$(CONFIG_P1014) += ddr-gen3.o COBJS-$(CONFIG_P1020) += ddr-gen3.o COBJS-$(CONFIG_P1021) += ddr-gen3.o COBJS-$(CONFIG_P1022) += ddr-gen3.o diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c index ac720a5..0ec1c16 100644 --- a/arch/powerpc/cpu/mpc8xxx/cpu.c +++ b/arch/powerpc/cpu/mpc8xxx/cpu.c @@ -71,6 +71,8 @@ struct cpu_type cpu_type_list [] = { CPU_TYPE_ENTRY(P1012, P1012, 1), CPU_TYPE_ENTRY(P1012, P1012_E, 1), CPU_TYPE_ENTRY(P1013, P1013, 1), + CPU_TYPE_ENTRY(P1014, P1014_E, 1), + CPU_TYPE_ENTRY(P1014, P1014, 1), CPU_TYPE_ENTRY(P1013, P1013_E, 1), CPU_TYPE_ENTRY(P1020, P1020, 2), CPU_TYPE_ENTRY(P1020, P1020_E, 2), diff --git a/arch/powerpc/include/asm/config.h b/arch/powerpc/include/asm/config.h index d80fc97..965c874 100644 --- a/arch/powerpc/include/asm/config.h +++ b/arch/powerpc/include/asm/config.h @@ -69,7 +69,7 @@ /* Enable TSEC2.0 for the platforms that have it if we are using TSEC */ #if defined(CONFIG_TSEC_ENET) \ -(defined(CONFIG_P1010) || \ +(defined(CONFIG_P1010) || defined(CONFIG_P1014) || \ defined(CONFIG_P1020) || defined(CONFIG_P1011)) #define CONFIG_TSECV2 #endif @@ -78,7 +78,7 @@ * SEC (crypto unit) major compatible version determination */ #if defined(CONFIG_FSL_CORENET) || \ -defined(CONFIG_P1010) +defined(CONFIG_P1010) || defined(CONFIG_P1014) #define CONFIG_SYS_FSL_SEC_COMPAT 4 #elif defined(CONFIG_MPC85xx) || defined(CONFIG_MPC83xx) #define CONFIG_SYS_FSL_SEC_COMPAT 2 diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index 6b43dc5..646e0db 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h @@ -1046,6 +1046,8 @@ #define SVR_P1012_E0x80ED01 #define SVR_P1013 0x80E700 #define SVR_P1013_E0x80EF00 +#define SVR_P1014 0x80F101 +#define SVR_P1014_E0x80F901 #define SVR_P1020 0x80E400 #define SVR_P1020_E0x80EC00 #define SVR_P1021 0x80E401 diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c index 931cc71..d2b0cde 100644 --- a/drivers/misc/fsl_law.c +++ b/drivers/misc/fsl_law.c @@ -38,7 +38,7 @@ DECLARE_GLOBAL_DATA_PTR; defined(CONFIG_MPC8641) || defined(CONFIG_MPC8610) #define FSL_HW_NUM_LAWS 10 #elif defined(CONFIG_MPC8536) || defined(CONFIG_MPC8572) || \ - defined(CONFIG_P1010) || \ + defined(CONFIG_P1010) || defined(CONFIG_P1014) || \ defined(CONFIG_P1011) || defined(CONFIG_P1020) || \ defined(CONFIG_P1012) || defined(CONFIG_P1021) || \ defined(CONFIG_P1013) || defined(CONFIG_P1022) || \ -- 1.7.2.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] uboot load ftb
On Fri, 14 Jan 2011 09:44:44 +0800 张扬 w90p...@gmail.com wrote: Dear Scott Wood 2011/1/13 Scott Wood scottw...@freescale.com: On Wed, 12 Jan 2011 09:00:52 +0100 Wolfgang Denk w...@denx.de wrote: Dear =?UTF-8?B?5byg5oms?=, In message AANLkTinUx-NmpundBm=scYeahCkBAd9=dx8b3ro7g...@mail.gmail.com you wrote: i trying to sue the kernel's Makefile rule, but the issue is not solved. WARNING: could not set linux,stdout-path FDT_ERR_NOTFOUND. ERROR: /chosen node create failed - must RESET the board to recover. Well, seems your device tree has some problem. My guess is it's an old U-Boot that can't create properties in /chosen if /chosen doesn't already exist. i use lastest version of u-boot, booting process gives the error. but i use u-boot-1.3.0 that's ok. OK, check whether you have a serial0 alias (or serial1 if using what U-Boot thinks of as the second serial port, etc) in your device tree. -Scott ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
On 01/15/2011 12:39 AM, Albert ARIBAUD wrote: Hi seedshope, Le 14/01/2011 16:45, seedshope a écrit : On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o SOBJS = reset.o -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400) += speed.o COBJS-y += timer.o +CPUINIT = cpu_init.o + OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all: $(obj).depend $(START) $(LIB) +all: $(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB): $(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. From what follows it seems the problem is rather cpu_init.o being linked in twice. Correct? maybe At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. Then you should fix the double linking by i) determining why the double linking happens and ii) properly linking once only. Hi Alvert ARIBAUD, I see the code for smdk6400. I found this code is very old. Before It can not add cmd_link_o_target in Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to compile. So the link script is ok. But, Now, It is not. As far as I know, The linker script can do to link the first specified file for user. Since I do not full understand the cmd_link_o_target mechanism. So I only guess the command do some link work. Maybe I am correct. I have two method to solve it. first: see the patch second: Modify the link script But I feel, the first method is safe. It may be safe, but IIUC it does not properly address the issue and its root cause. yes I asked a question. I will RR on next, The patch1 and patch3 have already ok, Do I only send patch2 and patch4? My personal practice is to re-send the whole patchset for each new version, because i) people can easily see the whole of the changes without having to go pick parts of previous versions and ii) it makes clear when a patch is removed or added to the set. ok Thanks, seedshope Amicalement, Amicalement, ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
This series of patches adds preliminary/baseline support for NVIDIA's Tegra2 SoC. Basic CPU (AVP), RAM and UART init are covered so that the system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt. Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow. V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj. Tom Warren (4): arm: Tegra2: Add basic NVIDIA Tegra2 SoC support serial: Add Tegra2 serial port support arm: Tegra2: Add support for NVIDIA Harmony board arm: Tegra2: Add support for NVIDIA Seaboard board MAINTAINERS |5 + arch/arm/cpu/armv7/tegra2/Makefile | 48 ++ arch/arm/cpu/armv7/tegra2/board.c| 91 ++ arch/arm/cpu/armv7/tegra2/config.mk | 28 +++ arch/arm/cpu/armv7/tegra2/lowlevel_init.S| 66 +++ arch/arm/cpu/armv7/tegra2/sys_info.c | 35 arch/arm/cpu/armv7/tegra2/timer.c| 122 + arch/arm/include/asm/arch-tegra2/clk_rst.h | 155 + arch/arm/include/asm/arch-tegra2/pinmux.h| 52 ++ arch/arm/include/asm/arch-tegra2/pmc.h | 125 ++ arch/arm/include/asm/arch-tegra2/sys_proto.h | 33 arch/arm/include/asm/arch-tegra2/tegra2.h| 49 ++ arch/arm/include/asm/arch-tegra2/uart.h | 45 + board/nvidia/common/board.c | 234 ++ board/nvidia/common/board.h | 57 +++ board/nvidia/harmony/Makefile| 50 ++ board/nvidia/seaboard/Makefile | 50 ++ boards.cfg |2 + common/serial.c |3 +- include/configs/harmony.h| 48 ++ include/configs/seaboard.h | 43 + include/configs/tegra2-common.h | 160 ++ include/serial.h |3 +- 23 files changed, 1502 insertions(+), 2 deletions(-) create mode 100644 arch/arm/cpu/armv7/tegra2/Makefile create mode 100644 arch/arm/cpu/armv7/tegra2/board.c create mode 100644 arch/arm/cpu/armv7/tegra2/config.mk create mode 100644 arch/arm/cpu/armv7/tegra2/lowlevel_init.S create mode 100644 arch/arm/cpu/armv7/tegra2/sys_info.c create mode 100644 arch/arm/cpu/armv7/tegra2/timer.c create mode 100644 arch/arm/include/asm/arch-tegra2/clk_rst.h create mode 100644 arch/arm/include/asm/arch-tegra2/pinmux.h create mode 100644 arch/arm/include/asm/arch-tegra2/pmc.h create mode 100644 arch/arm/include/asm/arch-tegra2/sys_proto.h create mode 100644 arch/arm/include/asm/arch-tegra2/tegra2.h create mode 100644 arch/arm/include/asm/arch-tegra2/uart.h create mode 100644 board/nvidia/common/board.c create mode 100644 board/nvidia/common/board.h create mode 100644 board/nvidia/harmony/Makefile create mode 100644 board/nvidia/seaboard/Makefile create mode 100644 include/configs/harmony.h create mode 100644 include/configs/seaboard.h create mode 100644 include/configs/tegra2-common.h -- 1.7.3.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 3/4 V2] arm: Tegra2: Add support for NVIDIA Harmony board
Basic support for the NVIDIA Harmony board. U-Boot will load and respond to serial console commands with this patch. Further peripheral support (USB, SD/MMC, NAND, etc.) to follow. Signed-off-by: Tom Warren twar...@nvidia.com --- MAINTAINERS |4 + board/nvidia/harmony/Makefile | 50 boards.cfg |1 + include/configs/harmony.h | 48 include/configs/tegra2-common.h | 160 +++ 5 files changed, 263 insertions(+), 0 deletions(-) create mode 100644 board/nvidia/harmony/Makefile create mode 100644 include/configs/harmony.h create mode 100644 include/configs/tegra2-common.h diff --git a/MAINTAINERS b/MAINTAINERS index ba83f71..b5cff19 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -841,6 +841,10 @@ Prafulla Wadaskar prafu...@marvell.com rd6281a ARM926EJS (Kirkwood SoC) sheevaplug ARM926EJS (Kirkwood SoC) +Tom Warren twar...@nvidia.com + + harmony Tegra2 (ARM7 A9 Dual Core) + Matthias Weisser weiss...@arcor.de jadecpu ARM926EJS (MB86R01 SoC) diff --git a/board/nvidia/harmony/Makefile b/board/nvidia/harmony/Makefile new file mode 100644 index 000..3a146cb --- /dev/null +++ b/board/nvidia/harmony/Makefile @@ -0,0 +1,50 @@ +# +# (C) Copyright 2010,2011 +# NVIDIA Corporation www.nvidia.com +# +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB= $(obj)lib$(BOARD).o + +COBJS += ../common/board.o + +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +$(LIB):$(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +clean: + rm -f $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/boards.cfg b/boards.cfg index 94b8745..ee7c4b7 100644 --- a/boards.cfg +++ b/boards.cfg @@ -122,6 +122,7 @@ omap4_panda arm armv7 panda ti omap4_sdp4430arm armv7 sdp4430 ti omap4 s5p_goni arm armv7 goni samsungs5pc1xx smdkc100 arm armv7 smdkc100 samsungs5pc1xx +harmony arm armv7 harmony nvidia tegra2 actux1 arm ixp actux2 arm ixp actux3 arm ixp diff --git a/include/configs/harmony.h b/include/configs/harmony.h new file mode 100644 index 000..7d8f27a --- /dev/null +++ b/include/configs/harmony.h @@ -0,0 +1,48 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation www.nvidia.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#include asm/sizes.h +#include tegra2-common.h + +/* High-level configuration options */ +#define TEGRA2_SYSMEM mem=384M@0M nvmem=128M@384M mem=512M@512M +#define V_PROMPT Tegra2 (Harmony) # +#define CONFIG_TEGRA2_BOARD_STRING NVIDIA Harmony + +/* Board-specific serial config */ +#define CONFIG_SERIAL_MULTI +#define
[U-Boot] [PATCH 4/4 V2] arm: Tegra2: Add support for NVIDIA Seaboard board
Basic support for the NVIDIA Seaboard board. U-Boot will load and respond to serial console commands with this patch. Further peripheral support (USB, SD/MMC, SPI, etc.) to follow. Signed-off-by: Tom Warren twar...@nvidia.com --- MAINTAINERS|1 + board/nvidia/seaboard/Makefile | 50 boards.cfg |1 + include/configs/seaboard.h | 43 ++ 4 files changed, 95 insertions(+), 0 deletions(-) create mode 100644 board/nvidia/seaboard/Makefile create mode 100644 include/configs/seaboard.h diff --git a/MAINTAINERS b/MAINTAINERS index b5cff19..f4795d3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -844,6 +844,7 @@ Prafulla Wadaskar prafu...@marvell.com Tom Warren twar...@nvidia.com harmony Tegra2 (ARM7 A9 Dual Core) + seaboardTegra2 (ARM7 A9 Dual Core) Matthias Weisser weiss...@arcor.de diff --git a/board/nvidia/seaboard/Makefile b/board/nvidia/seaboard/Makefile new file mode 100644 index 000..3a146cb --- /dev/null +++ b/board/nvidia/seaboard/Makefile @@ -0,0 +1,50 @@ +# +# (C) Copyright 2010,2011 +# NVIDIA Corporation www.nvidia.com +# +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB= $(obj)lib$(BOARD).o + +COBJS += ../common/board.o + +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +$(LIB):$(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +clean: + rm -f $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/boards.cfg b/boards.cfg index ee7c4b7..3c4c249 100644 --- a/boards.cfg +++ b/boards.cfg @@ -123,6 +123,7 @@ omap4_sdp4430arm armv7 sdp4430 ti s5p_goni arm armv7 goni samsungs5pc1xx smdkc100 arm armv7 smdkc100 samsungs5pc1xx harmony arm armv7 harmony nvidia tegra2 +seaboard arm armv7 seaboard nvidia tegra2 actux1 arm ixp actux2 arm ixp actux3 arm ixp diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h new file mode 100644 index 000..ee3ae25 --- /dev/null +++ b/include/configs/seaboard.h @@ -0,0 +1,43 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation www.nvidia.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#include asm/sizes.h +#include tegra2-common.h + +/* High-level configuration options */ +#define TEGRA2_SYSMEM mem=384M@0M nvmem=128M@384M mem=512M@512M +#define V_PROMPT Tegra2 (SeaBoard) # +#define CONFIG_TEGRA2_BOARD_STRING NVIDIA Seaboard + +/* Board-specific serial config */ +#define CONFIG_SERIAL_MULTI +#define CONFIG_TEGRA2_ENABLE_UARTD 1 +#define CONFIG_SYS_NS16550_COM1NV_PA_APB_UARTD_BASE + +#define CONFIG_MACH_TYPE MACH_TYPE_TEGRA_SEABOARD +#define
[U-Boot] [PATCH 1/4 V2] arm: Tegra2: Add basic NVIDIA Tegra2 SoC support
Add basic support for NVIDIA Tegra2 SoC chipset Signed-off-by: Tom Warren twar...@nvidia.com --- arch/arm/cpu/armv7/tegra2/Makefile | 48 ++ arch/arm/cpu/armv7/tegra2/board.c| 91 ++ arch/arm/cpu/armv7/tegra2/config.mk | 28 +++ arch/arm/cpu/armv7/tegra2/lowlevel_init.S| 66 +++ arch/arm/cpu/armv7/tegra2/sys_info.c | 35 arch/arm/cpu/armv7/tegra2/timer.c| 122 + arch/arm/include/asm/arch-tegra2/clk_rst.h | 155 + arch/arm/include/asm/arch-tegra2/pinmux.h| 52 ++ arch/arm/include/asm/arch-tegra2/pmc.h | 125 ++ arch/arm/include/asm/arch-tegra2/sys_proto.h | 33 arch/arm/include/asm/arch-tegra2/tegra2.h| 49 ++ arch/arm/include/asm/arch-tegra2/uart.h | 45 + board/nvidia/common/board.c | 234 ++ board/nvidia/common/board.h | 57 +++ 14 files changed, 1140 insertions(+), 0 deletions(-) create mode 100644 arch/arm/cpu/armv7/tegra2/Makefile create mode 100644 arch/arm/cpu/armv7/tegra2/board.c create mode 100644 arch/arm/cpu/armv7/tegra2/config.mk create mode 100644 arch/arm/cpu/armv7/tegra2/lowlevel_init.S create mode 100644 arch/arm/cpu/armv7/tegra2/sys_info.c create mode 100644 arch/arm/cpu/armv7/tegra2/timer.c create mode 100644 arch/arm/include/asm/arch-tegra2/clk_rst.h create mode 100644 arch/arm/include/asm/arch-tegra2/pinmux.h create mode 100644 arch/arm/include/asm/arch-tegra2/pmc.h create mode 100644 arch/arm/include/asm/arch-tegra2/sys_proto.h create mode 100644 arch/arm/include/asm/arch-tegra2/tegra2.h create mode 100644 arch/arm/include/asm/arch-tegra2/uart.h create mode 100644 board/nvidia/common/board.c create mode 100644 board/nvidia/common/board.h diff --git a/arch/arm/cpu/armv7/tegra2/Makefile b/arch/arm/cpu/armv7/tegra2/Makefile new file mode 100644 index 000..75fba0b --- /dev/null +++ b/arch/arm/cpu/armv7/tegra2/Makefile @@ -0,0 +1,48 @@ +# +# (C) Copyright 2010,2011 Nvidia Corporation. +# +# (C) Copyright 2000-2003 +# Wolfgang Denk, DENX Software Engineering, w...@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB= $(obj)lib$(SOC).o + +SOBJS := lowlevel_init.o +COBJS := sys_info.o board.o timer.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) + +all:$(obj).depend $(LIB) + +$(LIB):$(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +# + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +# diff --git a/arch/arm/cpu/armv7/tegra2/board.c b/arch/arm/cpu/armv7/tegra2/board.c new file mode 100644 index 000..e180f05 --- /dev/null +++ b/arch/arm/cpu/armv7/tegra2/board.c @@ -0,0 +1,91 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation www.nvidia.com + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include common.h +#include asm/io.h +#include asm/arch/sys_proto.h +#include asm/arch/tegra2.h +#include asm/arch/pmc.h + +DECLARE_GLOBAL_DATA_PTR; + +/* + * Boot ROM initializes the odmdata in APBDEV_PMC_SCRATCH20_0, + * so we are using this value to identify memory size. + */ + +static unsigned int query_sdram_size(void) +{ + pmc_ctlr *const pmc =
[U-Boot] [PATCH 2/4 V2] serial: Add Tegra2 serial port support
Enable support for serial output on Tegra2 builds Signed-off-by: Tom Warren twar...@nvidia.com --- common/serial.c |3 ++- include/serial.h |3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/serial.c b/common/serial.c index 051ae4e..8ebf9a5 100644 --- a/common/serial.c +++ b/common/serial.c @@ -41,7 +41,8 @@ struct serial_device *__default_serial_console (void) #elif defined(CONFIG_4xx) \ || defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) \ || defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) \ - || defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) + || defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) \ + || defined(CONFIG_TEGRA2) #if defined(CONFIG_CONS_INDEX) defined(CONFIG_SYS_NS16550_SERIAL) #if (CONFIG_CONS_INDEX==1) return eserial1_device; diff --git a/include/serial.h b/include/serial.h index 15ab73c..f21d961 100644 --- a/include/serial.h +++ b/include/serial.h @@ -27,7 +27,8 @@ extern struct serial_device * default_serial_console (void); defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_405EX) || \ defined(CONFIG_MB86R0x) || defined(CONFIG_MPC5xxx) || \ defined(CONFIG_MPC83xx) || defined(CONFIG_MPC85xx) || \ -defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) +defined(CONFIG_MPC86xx) || defined(CONFIG_SYS_SC520) || \ +defined(CONFIG_TEGRA2) extern struct serial_device serial0_device; extern struct serial_device serial1_device; #if defined(CONFIG_SYS_NS16550_SERIAL) -- 1.7.3.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
Le 14/01/2011 17:56, seedshope a écrit : On 01/15/2011 12:39 AM, Albert ARIBAUD wrote: Hi seedshope, Le 14/01/2011 16:45, seedshope a écrit : On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o SOBJS = reset.o -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400) += speed.o COBJS-y += timer.o +CPUINIT = cpu_init.o + OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all: $(obj).depend $(START) $(LIB) +all: $(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB): $(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. From what follows it seems the problem is rather cpu_init.o being linked in twice. Correct? maybe At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. Then you should fix the double linking by i) determining why the double linking happens and ii) properly linking once only. Hi Alvert ARIBAUD, I see the code for smdk6400. I found this code is very old. Before It can not add cmd_link_o_target in Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to compile. So the link script is ok. But, Now, It is not. As far as I know, The linker script can do to link the first specified file for user. Since I do not full understand the cmd_link_o_target mechanism. So I only guess the command do some link work. Maybe I am correct. I don't want to accept this change on the off chance that it might be correct; before your next patch submission, please try building your code without this specific patch and positively find why the build fails. Amicalement, -- Albert. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 4/7] mxc_nand: add support for i.MX35 processor
On Fri, 14 Jan 2011 14:35:21 +0100 Stefano Babic sba...@denx.de wrote: Signed-off-by: Stefano Babic sba...@denx.de --- drivers/mtd/nand/mxc_nand.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Acked-by: Scott Wood scottw...@freescale.com -Scott ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [RFC] ARM: mx31pdk: Use the new relocation scheme
Hi Stefano, On 1/13/2011 11:38 AM, Stefano Babic wrote: On 01/12/2011 01:49 PM, Fabio Estevam wrote: Hi, Hi Fabio, I am trying to make the new relocation scheme to work on the mx31pdk board. With this patch applied the mx31pdk build works, but not able to get a U-boot prompt yet. I have tried to imagine some issues, but I cannot find a clear reason. Building with your patch I checked that nand_spl is still less than 2KB code, and that matches the NAND page, as required by i.MX31 - so it is not a problem. Have you tried to disable the relocation, just to check if the relocation is an issue with CONFIG_SKIP_RELOCATE_UBOOT ? This is not a solution, but only to check what happens. Yes, I tried to disable relocation and U-boot still fails to boot. I copied the nand_spl/board/karo/tx25/u-boot.lds to the mx31pdk one. I am not certain whether the CONFIG_SYS_TEXT_BASE should be changed or not: ifdef CONFIG_NAND_SPL CONFIG_SYS_TEXT_BASE = 0x87ec else CONFIG_SYS_TEXT_BASE = 0x87f0 endif I think they are ok - both addresses are valid RAM addresses. The relocation will move then the code at the end of the RAM. And as I understood from i.MX31 manual, the NFC controller does not use the IRAM at all, so the area pointed by your starting stack pointer should not be overwritten. If anyone has any comments/suggestions I will appreciate it. No great idea, really. Probably you need to attach a JTAG debugger and see what happens. Yes, I am setting up a OpenOCD JTAG here to debug this. Thanks, Fabio Estevam ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error
On 01/15/2011 02:15 AM, Albert ARIBAUD wrote: Le 14/01/2011 17:56, seedshope a écrit : On 01/15/2011 12:39 AM, Albert ARIBAUD wrote: Hi seedshope, Le 14/01/2011 16:45, seedshope a écrit : On 01/14/2011 02:07 AM, Albert ARIBAUD wrote: Le 13/01/2011 14:36, seedshope a écrit : Modify Makefile for cpu_init.c and Start.s use some label,this defined u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script board/samsung/smdk6400/u-boot-nand.lds. So add some label form u-boot.lds to u-boot-nand.lds Signed-off-by: seedshopebocui...@gmail.com diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile b/arch/arm/cpu/arm1176/s3c64xx/Makefile index 0785b19..f4b9574 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o SOBJS = reset.o -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o +COBJS-$(CONFIG_S3C6400) += speed.o COBJS-y += timer.o +CPUINIT = cpu_init.o + OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) +CPUINIT := $(addprefix $(obj),$(CPUINIT)) -all: $(obj).depend $(START) $(LIB) +all: $(obj).depend $(START) $(LIB) $(CPUINIT) $(LIB): $(OBJS) $(call cmd_link_o_target, $(OBJS)) Not sure I get what's the problem and how exactly this changes solves it. Can you detail this particular issue? The issue is mem_ctrl_asm_init redefine in arch/arm/cpu/arm1176/s3c64xx/cpu_init.s. From what follows it seems the problem is rather cpu_init.o being linked in twice. Correct? maybe At first, the link script file include cpu_init.s in board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with cpu_init.o. So the link script will double link the cpu_init file. Then you should fix the double linking by i) determining why the double linking happens and ii) properly linking once only. Hi Alvert ARIBAUD, I see the code for smdk6400. I found this code is very old. Before It can not add cmd_link_o_target in Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to compile. So the link script is ok. But, Now, It is not. As far as I know, The linker script can do to link the first specified file for user. Since I do not full understand the cmd_link_o_target mechanism. So I only guess the command do some link work. Maybe I am correct. I don't want to accept this change on the off chance that it might be correct; before your next patch submission, please try building your code without this specific patch and positively find why the build fails. ok, Thanks seedshope Amicalement, ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
Hi Tom, On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote: This series of patches adds preliminary/baseline support for NVIDIA's Tegra2 SoC. Basic CPU (AVP), RAM and UART init are covered so that the system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt. Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow. V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj. If you didn't use all the feedback to the original patches, you should state explicitly what you changed here, or respond to the original comment email as to why they weren't made. For example, I see you didn't make the suggested change to use IO access functions, or allow compiling out of support for UARTA and UARTD. That should be made clear somewhere (and the logic of why the changes weren't made) so that those reviewing the patches know what changed between v1 and v2 and why. As is its unclear why the v1 comments weren't implemented, so they also apply to this series. Best, Peter ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote: Hi Tom, On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote: This series of patches adds preliminary/baseline support for NVIDIA's Tegra2 SoC. Basic CPU (AVP), RAM and UART init are covered so that the system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt. Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow. V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj. If you didn't use all the feedback to the original patches, you should state explicitly what you changed here, or respond to the original comment email as to why they weren't made. For example, I see you didn't make the suggested change to use IO access functions, or allow compiling out of support for UARTA and UARTD. That should be made clear somewhere (and the logic of why the changes weren't made) so that those reviewing the patches know what changed between v1 and v2 and why. As is its unclear why the v1 comments weren't implemented, so they also apply to this series. Peter, Sorry, since this is my first patch series to U-Boot upstream, I'm still learning the proper etiquette. Let me respond here rather than in the patch comments since there are only 2 unchanged areas WRT comments. 1) IO access functions - I pre-reviewed my patch series with Wolfgang (to hopefully catch any blatant errors and smooth the process) and he indicated that C structs and I/O accessor funcs or macros were preferred to my base+offset original code. Since the ARM is 32-bit, and all of our registers are I/O mapped, it made sense just to cast the necessary HW mem-mapped regs as volatile structs and access the members directly. Works well, is easy to read understand, etc. Let me know (with examples, if possible) how I can make it better. 2) Compiling out support for UARTA or UARTD - didn't seem necessary - size isn't an issue at this point with Tegra2 U-Boot, and some boards (Harmony, for example) are populated w/hardware for both UARTA and UARTD, and can have both on at U-Boot runtime (perhaps for debug out to UARTA whilst normal console I/O goes to UARTD), so I chose to leave the init code for both intact. Plus I've never liked code with too many unnecessary ifdef's - makes it less readable, IMO. I was going to respond to your review w/a direct, inline reply, but I thought it better to get the V2 patch out there before the weekend (we're off for MLK, as well). I'm under some pressure to get a baseline Tegra2 patchset in before the merge window closes. I'll be sure to respond to each issue directly on the list in the future, though. Thanks for the thorough review, Tom Best, Peter ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] Aggiorna il tuo account e-mail
Gentile Utente Webmail Abbiamo temporaneamente limitato l'accesso a tutte le caratteristiche Sensibile a tutti gli account webmail. Per ripristinare il tuo account di accesso, è necessario rispondere subito a questa e-mail con la vostra Nome utente e password. Nickname: () Password: (). Perché un sacco di spam o di spam che si riceve ogni giorno, noi Aggiorna tutti gli account e-mail spam filtro per limitare non-mails chiesto, per ragioni di sicurezza e per migliorare il nostro nuovo Funzionalità migliorate account di webmail / e-mail per assicurarsi che non fare esperienza di interruzione del servizio. È necessario rispondere a questa email immediatamente e inserire il nome utente e password nello spazio apposito per permetterci di aggiornare il vostro account di posta elettronica correttamente. Un link verrà inviata la conferma per la ri-attivazione del tuo account e-mail, ottenere la vostra risposta Grazie per la vostra comprensione. 3xepyl Errore 506: codice di allarme Grazie Webmail Administrator Supporto Copyright 2010. ListenRead foneticamente ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
On Fri, 2011-01-14 at 13:41 -0700, Tom Warren wrote: On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote: Hi Tom, On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote: This series of patches adds preliminary/baseline support for NVIDIA's Tegra2 SoC. Basic CPU (AVP), RAM and UART init are covered so that the system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt. Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow. V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj. If you didn't use all the feedback to the original patches, you should state explicitly what you changed here, or respond to the original comment email as to why they weren't made. For example, I see you didn't make the suggested change to use IO access functions, or allow compiling out of support for UARTA and UARTD. That should be made clear somewhere (and the logic of why the changes weren't made) so that those reviewing the patches know what changed between v1 and v2 and why. As is its unclear why the v1 comments weren't implemented, so they also apply to this series. Peter, Sorry, since this is my first patch series to U-Boot upstream, I'm still learning the proper etiquette. Let me respond here rather than in the patch comments since there are only 2 unchanged areas WRT comments. No worries. I'm glad to see you're pushing your changes upstream. 1) IO access functions - I pre-reviewed my patch series with Wolfgang (to hopefully catch any blatant errors and smooth the process) and he indicated that C structs and I/O accessor funcs or macros were preferred to my base+offset original code. Since the ARM is 32-bit, and all of our registers are I/O mapped, it made sense just to cast the necessary HW mem-mapped regs as volatile structs and access the members directly. Works well, is easy to read understand, etc. Let me know (with examples, if possible) how I can make it better. Both Linux and U-Boot recommend using IO access functions instead pointer accesses, at least in PPC-land, and even for memory mapped registers. I'm not too familiar with ARM, but assume they have the same recommendation. If pointers are used, some CPUs may optimize the access order, thus causing problems. Using IO accessors also ensures that the code is portable. Even if the Tegra doesn't re-order accesses, a driver you write for use in a Tegra could be used on other CPUs that do. eg: http://www.mail-archive.com/u-boot@lists.denx.de/msg18435.html http://lists.denx.de/pipermail/u-boot/2007-December/027595.html It looks like other ARM processors use IO accessors too, eg the recent armada CPU: arch/arm/cpu/arm926ejs/armada100/* A grep of writel in arch/arm shows a number of references. Similarly in the Linux code in arch/arm. ARM maintainers, feel free to chime in if you have comments. 2) Compiling out support for UARTA or UARTD - didn't seem necessary - size isn't an issue at this point with Tegra2 U-Boot, and some boards (Harmony, for example) are populated w/hardware for both UARTA and UARTD, and can have both on at U-Boot runtime (perhaps for debug out to UARTA whilst normal console I/O goes to UARTD), so I chose to leave the init code for both intact. Plus I've never liked code with too many unnecessary ifdef's - makes it less readable, IMO. Yeah, this is grey - I see both sides of the coin. U-Boot generally strives to be as small as possible. You may use a large flash on your eval boards and not care about space, but other system designers may place as small of flash as possible to save cost. It looked like UART_A-UART_E were also going to be supported at some time, which is quite a chunk of code. You also already are defining which serial ports are available at compile time via CONFIG_TEGRA2_ENABLE_UARTA and CONFIG_TEGRA2_ENABLE_UARTD. Anyway, I don't really care much which way you go, just wanted to make sure you were making a conscious decision to not add the ifdefs. I was going to respond to your review w/a direct, inline reply, but I thought it better to get the V2 patch out there before the weekend (we're off for MLK, as well). I'm under some pressure to get a baseline Tegra2 patchset in before the merge window closes. I'll be sure to respond to each issue directly on the list in the future, though. As long as you initially submit your patches during the merge window they will generally be merged, even if there are multiple revisions and discussion that lasts past the end of official merge window. So this stuff should get in. Best, Peter ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
On Fri, Jan 14, 2011 at 2:36 PM, Peter Tyser pty...@xes-inc.com wrote: On Fri, 2011-01-14 at 13:41 -0700, Tom Warren wrote: On Fri, Jan 14, 2011 at 12:59 PM, Peter Tyser pty...@xes-inc.com wrote: Hi Tom, On Fri, 2011-01-14 at 10:11 -0700, Tom Warren wrote: This series of patches adds preliminary/baseline support for NVIDIA's Tegra2 SoC. Basic CPU (AVP), RAM and UART init are covered so that the system (Harmony or Seaboard) can boot to the U-Boot serial cmd prompt. Further support (for Cortex-A9 CPU(s), USB, SD/MMC, etc.) to follow. V2: Make changes based on feedback from Peter Tyser and Sandeep Paulraj. If you didn't use all the feedback to the original patches, you should state explicitly what you changed here, or respond to the original comment email as to why they weren't made. For example, I see you didn't make the suggested change to use IO access functions, or allow compiling out of support for UARTA and UARTD. That should be made clear somewhere (and the logic of why the changes weren't made) so that those reviewing the patches know what changed between v1 and v2 and why. As is its unclear why the v1 comments weren't implemented, so they also apply to this series. Peter, Sorry, since this is my first patch series to U-Boot upstream, I'm still learning the proper etiquette. Let me respond here rather than in the patch comments since there are only 2 unchanged areas WRT comments. No worries. I'm glad to see you're pushing your changes upstream. 1) IO access functions - I pre-reviewed my patch series with Wolfgang (to hopefully catch any blatant errors and smooth the process) and he indicated that C structs and I/O accessor funcs or macros were preferred to my base+offset original code. Since the ARM is 32-bit, and all of our registers are I/O mapped, it made sense just to cast the necessary HW mem-mapped regs as volatile structs and access the members directly. Works well, is easy to read understand, etc. Let me know (with examples, if possible) how I can make it better. Both Linux and U-Boot recommend using IO access functions instead pointer accesses, at least in PPC-land, and even for memory mapped registers. I'm not too familiar with ARM, but assume they have the same recommendation. If pointers are used, some CPUs may optimize the access order, thus causing problems. Using IO accessors also ensures that the code is portable. Even if the Tegra doesn't re-order accesses, a driver you write for use in a Tegra could be used on other CPUs that do. eg: http://www.mail-archive.com/u-boot@lists.denx.de/msg18435.html http://lists.denx.de/pipermail/u-boot/2007-December/027595.html It looks like other ARM processors use IO accessors too, eg the recent armada CPU: arch/arm/cpu/arm926ejs/armada100/* A grep of writel in arch/arm shows a number of references. Similarly in the Linux code in arch/arm. So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr), where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) = (v))? Is that different enough from 'uart-lcr = 0' to warrant the change? Does it add some HW barriers or forced read-before-write that the 'volatile' struct doesn't? I've done a ton of embedded work, but all in x86 asm (and C) on PCs, so pardon my ignorance questions. ARM maintainers, feel free to chime in if you have comments. 2) Compiling out support for UARTA or UARTD - didn't seem necessary - size isn't an issue at this point with Tegra2 U-Boot, and some boards (Harmony, for example) are populated w/hardware for both UARTA and UARTD, and can have both on at U-Boot runtime (perhaps for debug out to UARTA whilst normal console I/O goes to UARTD), so I chose to leave the init code for both intact. Plus I've never liked code with too many unnecessary ifdef's - makes it less readable, IMO. Yeah, this is grey - I see both sides of the coin. U-Boot generally strives to be as small as possible. You may use a large flash on your eval boards and not care about space, but other system designers may place as small of flash as possible to save cost. It looked like UART_A-UART_E were also going to be supported at some time, which is quite a chunk of code. You also already are defining which serial ports are available at compile time via CONFIG_TEGRA2_ENABLE_UARTA and CONFIG_TEGRA2_ENABLE_UARTD. Anyway, I don't really care much which way you go, just wanted to make sure you were making a conscious decision to not add the ifdefs. As conscious I get before noon. ;) I was going to respond to your review w/a direct, inline reply, but I thought it better to get the V2 patch out there before the weekend (we're off for MLK, as well). I'm under some pressure to get a baseline Tegra2 patchset in before the merge window closes. I'll be sure to respond to each issue directly on the list in the future, though. As long as you initially submit your patches during the merge
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
Hello, Le 14/01/2011 23:39, Tom Warren a écrit : So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr), where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) = (v))? Is that different enough from 'uart-lcr = 0' to warrant the change? Does it add some HW barriers or forced read-before-write that the 'volatile' struct doesn't? writel() and readl() do not introduce read-before-write, that is, they do not perform any more than what their names imply, but yes they do introduce barriers, or more precisely, they force the compiler to do so. Amicalement, -- Albert. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] I quit Network Marketing!
I've been a top producer in Network Marketing, I've had who knows how many day jobs and I have always had to work harder for less money. You've heard, stop working harder and start working smarter... This is smarter, and easier too! Do yourself a favor and check this easy turn key system out! No need to chase family and friends again, no selling and no phone calls. Complete plug in system! And there's no need for major computer skills. Check it out! http://direct-information-5.info/link.php?M=505491N=16L=9F=T See ya on the inside! Bryce Oh, again, here's the website: http://direct-information-5.info/link.php?M=505491N=16L=9F=T Click this link to unsubscribe: http://direct-information-5.info/unsubscribe.php?M=505491C=2c1344fb18e95bd24ca12a41a0c88b0fL=14N=16 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
On Sat, 2011-01-15 at 00:00 +0100, Albert ARIBAUD wrote: Hello, Le 14/01/2011 23:39, Tom Warren a écrit : So instead of, say uart-lcr = 0, you'd prefer writel(0, uart-lcr), where writel = __arch_putl(v, a) = (*(volatile unsigned int *)(a) = (v))? Is that different enough from 'uart-lcr = 0' to warrant the change? Does it add some HW barriers or forced read-before-write that the 'volatile' struct doesn't? writel() and readl() do not introduce read-before-write, that is, they do not perform any more than what their names imply, but yes they do introduce barriers, or more precisely, they force the compiler to do so. Agreed, I should have dug deeper. On PPC we use out_be32() or similar to access memory mapped registers, which does have an explicit barrier. I'm not familiar with ARM so don't know what the proper access functions are, but it looks like the defacto standard writel()/readl(). I'd personally use writel()/readl() in this patch. Functionally it may be the same as your volatile accesses, but its the generally recommended practice. It looks like most of the Tegra support in the Linux kernel also uses writel()/readl() for what its worth. Ultimately its up to the ARM U-Boot maintainer to decide if they require the access functions or not - I'm just giving my opinions from PPC experience. Regards, Peter ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2 v2] BLOCK: Add freescale IMX51 PATA driver
Am 13.01.2011 18:27, schrieb Marek Vasut: Signed-off-by: Marek Vasut marek.va...@gmail.com --- v2: Fixed line-too-long bugs as proposed by Stefano drivers/block/Makefile |1 + drivers/block/mxc_ata.c | 149 +++ 2 files changed, 150 insertions(+), 0 deletions(-) create mode 100644 drivers/block/mxc_ata.c Acked-by: Stefano Babic sba...@denx.de Regards, Stefano -- = 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: off...@denx.de = ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 0/4 V2] Add basic NVIDIA Tegra2 SoC support
Dear Peter Tyser, In message 1295047406.29642.6729.camel@petert you wrote: Agreed, I should have dug deeper. On PPC we use out_be32() or similar to access memory mapped registers, which does have an explicit barrier. I'm not familiar with ARM so don't know what the proper access functions are, but it looks like the defacto standard writel()/readl(). I have a patch waiting o be applied that adds proper memory barriers for ARM, too. They are necessary. I'd personally use writel()/readl() in this patch. Functionally it may be the same as your volatile accesses, but its the generally recommended practice. It looks like most of the Tegra support in the Linux kernel also uses writel()/readl() for what its worth. Ultimately its up to the ARM U-Boot maintainer to decide if they require the access functions or not - I'm just giving my opinions from PPC experience. It's not only recommended, it is mandatory. I/O accesors _MUST_ be used. 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 The most difficult thing in the world is to know how to do a thing and to watch someone else doing it wrong, without commenting. -- T.H. White ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] USB storage performance EHCI question
On 1/14/2011 1:19 AM, Wolfgang Denk wrote: Dear Aaron Williams, please always keep the ML on cc: In message4d2fa7f0.7020...@caviumnetworks.com you wrote: It is based off of 2010.09 but I have applied all of the latest USB updates from GIT with the exception of the multiple LUN support (this breaks the SanDisk Cruzer because the Cruzer reports max lun=1). All caches are enabled and this is on a 1.2GHz MIPS which is cache-coherent (no need to flush/invalidate). Maybe there are other issues with your code. It's hard to comment on onknown out-of-tree ports. Best regards, Wolfgang Denk I don't think so. The only changes I made were to the register access macros to use a couple assembly functions since our EHCI registers require 64-bit addressing and a very quick virtual to physical conversion for the descriptors which is quite fast. Other than that, the code is stock from GIT. Note that we do not use interrupts either but polling. Unless I'm reading it wrong it also looks like in EHCI it only uses one descriptor and I wonder if this might have something to do with it? I can provide a diff when I return to the office next week. -Aaron ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot