Skip to contentSkip to conversation

Add support for EDB93xx boards

PATCH In review Matthias Kaehlcke 2 participants 7 messages Jan 9, 2010 – Jan 12, 2010

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover Add support for EDB93xx boards

Add support for the following Cirrus Logic EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

This patchset has been tested on boards based on the EDB9301 and EDB9307A designs

Matthias Kaehlcke (5):
ARM: Add support for EP93xx SoCs
Add EP93xx ethernet driver
Add support for EP9xx GPIOs
Add PrimeCell PL010 serial driver
Add support for EDB93xx boards

 Documentation/boards.dox                        |    8 +
 MAINTAINERS                                     |   11 +
 arch/arm/Kconfig                                |    6 +
 arch/arm/Makefile                               |    9 +
 arch/arm/configs/edb93xx_defconfig              |  237 ++++++++
 arch/arm/mach-ep93xx/Kconfig                    |  446 +++++++++++++++
 arch/arm/mach-ep93xx/Makefile                   |    3 +
 arch/arm/mach-ep93xx/clocksource.c              |   96 ++++
 arch/arm/mach-ep93xx/gpio.c                     |  136 +++++
 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h |  600 ++++++++++++++++++++
 arch/arm/mach-ep93xx/include/mach/gpio.h        |   29 +
 arch/arm/mach-ep93xx/led.c                      |   62 ++
 arch/arm/mach-ep93xx/led.h                      |   26 +
 arch/arm/mach-ep93xx/lowlevel_init.S            |   64 +++
 board/edb93xx/Makefile                          |    4 +
 board/edb93xx/barebox.lds.S                     |   79 +++
 board/edb93xx/config.h                          |    4 +
 board/edb93xx/early_udelay.h                    |   34 ++
 board/edb93xx/edb93xx.c                         |  172 ++++++
 board/edb93xx/edb93xx.dox                       |  108 ++++
 board/edb93xx/edb93xx.h                         |   48 ++
 board/edb93xx/env/bin/boot                      |   48 ++
 board/edb93xx/env/bin/flash_partition           |   22 +
 board/edb93xx/env/bin/init                      |   19 +
 board/edb93xx/env/bin/set_nor_parts             |    3 +
 board/edb93xx/env/bin/update_kernel             |   16 +
 board/edb93xx/env/bin/update_rootfs             |   16 +
 board/edb93xx/env/config                        |   16 +
 board/edb93xx/flash_cfg.c                       |   38 ++
 board/edb93xx/pll_cfg.c                         |   58 ++
 board/edb93xx/pll_cfg.h                         |   72 +++
 board/edb93xx/sdram_cfg.c                       |  127 +++++
 board/edb93xx/sdram_cfg.h                       |  144 +++++
 drivers/net/Kconfig                             |    5 +
 drivers/net/Makefile                            |    1 +
 drivers/net/ep93xx.c                            |  686 +++++++++++++++++++++++
 drivers/net/ep93xx.h                            |  155 +++++
 drivers/serial/Kconfig                          |    7 +
 drivers/serial/Makefile                         |    2 +-
 drivers/serial/serial_pl010.c                   |  172 ++++++
 drivers/serial/serial_pl010.h                   |  100 ++++
 include/common.h                                |    1 +
 42 files changed, 3889 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/configs/edb93xx_defconfig
 create mode 100644 arch/arm/mach-ep93xx/Kconfig
 create mode 100644 arch/arm/mach-ep93xx/Makefile
 create mode 100644 arch/arm/mach-ep93xx/clocksource.c
 create mode 100644 arch/arm/mach-ep93xx/gpio.c
 create mode 100644 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
 create mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
 create mode 100644 arch/arm/mach-ep93xx/led.c
 create mode 100644 arch/arm/mach-ep93xx/led.h
 create mode 100644 arch/arm/mach-ep93xx/lowlevel_init.S
 create mode 100644 board/edb93xx/Makefile
 create mode 100644 board/edb93xx/barebox.lds.S
 create mode 100644 board/edb93xx/config.h
 create mode 100644 board/edb93xx/early_udelay.h
 create mode 100644 board/edb93xx/edb93xx.c
 create mode 100644 board/edb93xx/edb93xx.dox
 create mode 100644 board/edb93xx/edb93xx.h
 create mode 100644 board/edb93xx/env/bin/boot
 create mode 100644 board/edb93xx/env/bin/flash_partition
 create mode 100644 board/edb93xx/env/bin/init
 create mode 100644 board/edb93xx/env/bin/set_nor_parts
 create mode 100644 board/edb93xx/env/bin/update_kernel
 create mode 100644 board/edb93xx/env/bin/update_rootfs
 create mode 100644 board/edb93xx/env/config
 create mode 100644 board/edb93xx/flash_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.h
 create mode 100644 board/edb93xx/sdram_cfg.c
 create mode 100644 board/edb93xx/sdram_cfg.h
 create mode 100644 drivers/net/ep93xx.c
 create mode 100644 drivers/net/ep93xx.h
 create mode 100644 drivers/serial/serial_pl010.c
 create mode 100644 drivers/serial/serial_pl010.h

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw

Hello Matthias,

Thanks for the nice work. The patches look mostly fine. I wonder that U-Boot ep93xx support has never made it to the mainline. Some comments about the patches inline.

Sascha

Quoted 20 lines · Matthias Kaehlcke

Add support for the following Cirrus Logic EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

This patchset has been tested on boards based on the EDB9301 and EDB9307A designs

Matthias Kaehlcke (5):
ARM: Add support for EP93xx SoCs
Add EP93xx ethernet driver
Add support for EP9xx GPIOs
Add PrimeCell PL010 serial driver
Add support for EDB93xx boards

Quoted 14 lines
 Documentation/boards.dox                        |    8 +
 MAINTAINERS                                     |   11 +
 arch/arm/Kconfig                                |    6 +
 arch/arm/Makefile                               |    9 +
 arch/arm/configs/edb93xx_defconfig              |  237 ++++++++
 arch/arm/mach-ep93xx/Kconfig                    |  446 +++++++++++++++
 arch/arm/mach-ep93xx/Makefile                   |    3 +
 arch/arm/mach-ep93xx/clocksource.c              |   96 ++++
 arch/arm/mach-ep93xx/gpio.c                     |  136 +++++
 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h |  600 ++++++++++++++++++++
 arch/arm/mach-ep93xx/include/mach/gpio.h        |   29 +
 arch/arm/mach-ep93xx/led.c                      |   62 ++
 arch/arm/mach-ep93xx/led.h                      |   26 +
 arch/arm/mach-ep93xx/lowlevel_init.S            |   64 +++

Aren't the LED functions and thus the lowlevel_init board specific? I can imagine many custom boards do not have LEDs connected to these gpio pins.

Quoted 2 lines
 board/edb93xx/Makefile                          |    4 +
 board/edb93xx/barebox.lds.S                     |   79 +++

I think it's better to add a

#ifdef CONFIG_ARCH_EP93XX
		/* the EP93xx expects to find the pattern 'CRUS' at
		 * 0x1000
		 */
		. = 0x1000;
		LONG(0x53555243) /* 'CRUS' */

#endif

to the generic linker script. We might have to revert this when we're heading to an ifdeffery here, but for now I think it's better be able to make changes to the linker script in only one file.

Quoted 67 lines
 board/edb93xx/config.h                          |    4 +
 board/edb93xx/early_udelay.h                    |   34 ++
 board/edb93xx/edb93xx.c                         |  172 ++++++
 board/edb93xx/edb93xx.dox                       |  108 ++++
 board/edb93xx/edb93xx.h                         |   48 ++
 board/edb93xx/env/bin/boot                      |   48 ++
 board/edb93xx/env/bin/flash_partition           |   22 +
 board/edb93xx/env/bin/init                      |   19 +
 board/edb93xx/env/bin/set_nor_parts             |    3 +
 board/edb93xx/env/bin/update_kernel             |   16 +
 board/edb93xx/env/bin/update_rootfs             |   16 +
 board/edb93xx/env/config                        |   16 +
 board/edb93xx/flash_cfg.c                       |   38 ++
 board/edb93xx/pll_cfg.c                         |   58 ++
 board/edb93xx/pll_cfg.h                         |   72 +++
 board/edb93xx/sdram_cfg.c                       |  127 +++++
 board/edb93xx/sdram_cfg.h                       |  144 +++++
 drivers/net/Kconfig                             |    5 +
 drivers/net/Makefile                            |    1 +
 drivers/net/ep93xx.c                            |  686 +++++++++++++++++++++++
 drivers/net/ep93xx.h                            |  155 +++++
 drivers/serial/Kconfig                          |    7 +
 drivers/serial/Makefile                         |    2 +-
 drivers/serial/serial_pl010.c                   |  172 ++++++
 drivers/serial/serial_pl010.h                   |  100 ++++
 include/common.h                                |    1 +
 42 files changed, 3889 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/configs/edb93xx_defconfig
 create mode 100644 arch/arm/mach-ep93xx/Kconfig
 create mode 100644 arch/arm/mach-ep93xx/Makefile
 create mode 100644 arch/arm/mach-ep93xx/clocksource.c
 create mode 100644 arch/arm/mach-ep93xx/gpio.c
 create mode 100644 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
 create mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
 create mode 100644 arch/arm/mach-ep93xx/led.c
 create mode 100644 arch/arm/mach-ep93xx/led.h
 create mode 100644 arch/arm/mach-ep93xx/lowlevel_init.S
 create mode 100644 board/edb93xx/Makefile
 create mode 100644 board/edb93xx/barebox.lds.S
 create mode 100644 board/edb93xx/config.h
 create mode 100644 board/edb93xx/early_udelay.h
 create mode 100644 board/edb93xx/edb93xx.c
 create mode 100644 board/edb93xx/edb93xx.dox
 create mode 100644 board/edb93xx/edb93xx.h
 create mode 100644 board/edb93xx/env/bin/boot
 create mode 100644 board/edb93xx/env/bin/flash_partition
 create mode 100644 board/edb93xx/env/bin/init
 create mode 100644 board/edb93xx/env/bin/set_nor_parts
 create mode 100644 board/edb93xx/env/bin/update_kernel
 create mode 100644 board/edb93xx/env/bin/update_rootfs
 create mode 100644 board/edb93xx/env/config
 create mode 100644 board/edb93xx/flash_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.h
 create mode 100644 board/edb93xx/sdram_cfg.c
 create mode 100644 board/edb93xx/sdram_cfg.h
 create mode 100644 drivers/net/ep93xx.c
 create mode 100644 drivers/net/ep93xx.h
 create mode 100644 drivers/serial/serial_pl010.c
 create mode 100644 drivers/serial/serial_pl010.h

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#2 lore raw

Hi Sascha,

El Mon, Jan 11, 2010 at 10:49:02AM +0100 Sascha Hauer ha dit:

Quoted 3 lines

Thanks for the nice work. The patches look mostly fine. I wonder that U-Boot ep93xx support has never made it to the mainline. Some comments about the patches inline.

in late december i sent a (new) set of patches to the U-Boot mailing list. i still havn't received feedback, i suppose due to christmas, new year, ... my aim is to mainline ep93xx support, i am confident this will be accomplished soon.

Quoted 36 lines · Matthias Kaehlcke
Quoted 20 lines

Add support for the following Cirrus Logic EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

This patchset has been tested on boards based on the EDB9301 and EDB9307A designs

Matthias Kaehlcke (5):
ARM: Add support for EP93xx SoCs
Add EP93xx ethernet driver
Add support for EP9xx GPIOs
Add PrimeCell PL010 serial driver
Add support for EDB93xx boards

Quoted 14 lines
 Documentation/boards.dox                        |    8 +
 MAINTAINERS                                     |   11 +
 arch/arm/Kconfig                                |    6 +
 arch/arm/Makefile                               |    9 +
 arch/arm/configs/edb93xx_defconfig              |  237 ++++++++
 arch/arm/mach-ep93xx/Kconfig                    |  446 +++++++++++++++
 arch/arm/mach-ep93xx/Makefile                   |    3 +
 arch/arm/mach-ep93xx/clocksource.c              |   96 ++++
 arch/arm/mach-ep93xx/gpio.c                     |  136 +++++
 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h |  600 ++++++++++++++++++++
 arch/arm/mach-ep93xx/include/mach/gpio.h        |   29 +
 arch/arm/mach-ep93xx/led.c                      |   62 ++
 arch/arm/mach-ep93xx/led.h                      |   26 +
 arch/arm/mach-ep93xx/lowlevel_init.S            |   64 +++
Quoted 3 lines

Aren't the LED functions and thus the lowlevel_init board specific? I can imagine many custom boards do not have LEDs connected to these gpio pins.

custom board could do this, but probably shouldn't. the EP93xx explicitly 'reserves' specific GPIOs for a red and a green LED. these LEDs are used by the boot algorithm to give feed back before the bootloader is started.

please tell me if this convinces you to leave the LED functions and lowlevel_init in the SoC part or if you prefer moving them to the board directory.

Quoted 11 lines
Quoted 2 lines
 board/edb93xx/Makefile                          |    4 +
 board/edb93xx/barebox.lds.S                     |   79 +++

I think it's better to add a

#ifdef CONFIG_ARCH_EP93XX
		/* the EP93xx expects to find the pattern 'CRUS' at
		 * 0x1000
		 */
		. = 0x1000;
		LONG(0x53555243) /* 'CRUS' */
Quoted 5 lines

#endif

to the generic linker script. We might have to revert this when we're heading to an ifdeffery here, but for now I think it's better be able to make changes to the linker script in only one file.

that's fine for me

thanks for your review!

Signature · 16 lines
Matthias Kaehlcke
Embedded Linux Developer
Barcelona

             If God had not intended for us to eat animals,
                  how come He made them out of meat?
                           (Sarah Palin)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#3 lore raw
Quoted 49 lines · Matthias Kaehlcke

Hi Sascha,

El Mon, Jan 11, 2010 at 10:49:02AM +0100 Sascha Hauer ha dit:

Quoted 3 lines

Thanks for the nice work. The patches look mostly fine. I wonder that U-Boot ep93xx support has never made it to the mainline. Some comments about the patches inline.

in late december i sent a (new) set of patches to the U-Boot mailing list. i still havn't received feedback, i suppose due to christmas, new year, ... my aim is to mainline ep93xx support, i am confident this will be accomplished soon.

Quoted 36 lines · Matthias Kaehlcke
Quoted 34 lines

Add support for the following Cirrus Logic EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

This patchset has been tested on boards based on the EDB9301 and EDB9307A designs

Matthias Kaehlcke (5):
ARM: Add support for EP93xx SoCs
Add EP93xx ethernet driver
Add support for EP9xx GPIOs
Add PrimeCell PL010 serial driver
Add support for EDB93xx boards

 Documentation/boards.dox                        |    8 +
 MAINTAINERS                                     |   11 +
 arch/arm/Kconfig                                |    6 +
 arch/arm/Makefile                               |    9 +
 arch/arm/configs/edb93xx_defconfig              |  237 ++++++++
 arch/arm/mach-ep93xx/Kconfig                    |  446 +++++++++++++++
 arch/arm/mach-ep93xx/Makefile                   |    3 +
 arch/arm/mach-ep93xx/clocksource.c              |   96 ++++
 arch/arm/mach-ep93xx/gpio.c                     |  136 +++++
 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h |  600 ++++++++++++++++++++
 arch/arm/mach-ep93xx/include/mach/gpio.h        |   29 +
 arch/arm/mach-ep93xx/led.c                      |   62 ++
 arch/arm/mach-ep93xx/led.h                      |   26 +
 arch/arm/mach-ep93xx/lowlevel_init.S            |   64 +++
Quoted 8 lines
Quoted 3 lines

Aren't the LED functions and thus the lowlevel_init board specific? I can imagine many custom boards do not have LEDs connected to these gpio pins.

custom board could do this, but probably shouldn't. the EP93xx explicitly 'reserves' specific GPIOs for a red and a green LED. these LEDs are used by the boot algorithm to give feed back before the bootloader is started.

Ah, I didn't know this. A good move from Cirrus that the software developer can rely on some debug LEDs.

Quoted 4 lines

please tell me if this convinces you to leave the LED functions and lowlevel_init in the SoC part or if you prefer moving them to the board directory.

I'm fine with the LEDs being available for all ep93xx then.

Sascha

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#4 lore raw

PATCH 1/1 Add support for EDB93xx boards [rev2]

Added support for the following Cirrus Logic EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

---

Changes with respect to rev1:
* Use global linker script with EP93xx ifdef instead of a board
specific one

 Documentation/boards.dox              |    8 +
 arch/arm/configs/edb93xx_defconfig    |  236 +++++++++++++++++++++++++++++++++
 arch/arm/lib/barebox.lds.S            |    5 +
 arch/arm/mach-ep93xx/Kconfig          |    8 -
 board/edb93xx/Makefile                |    2 +
 board/edb93xx/config.h                |    4 +
 board/edb93xx/early_udelay.h          |   34 +++++
 board/edb93xx/edb93xx.c               |  172 ++++++++++++++++++++++++
 board/edb93xx/edb93xx.dox             |  108 +++++++++++++++
 board/edb93xx/edb93xx.h               |   48 +++++++
 board/edb93xx/env/bin/boot            |   48 +++++++
 board/edb93xx/env/bin/flash_partition |   22 +++
 board/edb93xx/env/bin/init            |   19 +++
 board/edb93xx/env/bin/set_nor_parts   |    3 +
 board/edb93xx/env/bin/update_kernel   |   16 +++
 board/edb93xx/env/bin/update_rootfs   |   16 +++
 board/edb93xx/env/config              |   16 +++
 board/edb93xx/flash_cfg.c             |   38 ++++++
 board/edb93xx/pll_cfg.c               |   58 ++++++++
 board/edb93xx/pll_cfg.h               |   72 ++++++++++
 board/edb93xx/sdram_cfg.c             |  127 ++++++++++++++++++
 board/edb93xx/sdram_cfg.h             |  144 ++++++++++++++++++++
 22 files changed, 1196 insertions(+), 8 deletions(-)
 create mode 100644 arch/arm/configs/edb93xx_defconfig
 create mode 100644 board/edb93xx/Makefile
 create mode 100644 board/edb93xx/config.h
 create mode 100644 board/edb93xx/early_udelay.h
 create mode 100644 board/edb93xx/edb93xx.c
 create mode 100644 board/edb93xx/edb93xx.dox
 create mode 100644 board/edb93xx/edb93xx.h
 create mode 100644 board/edb93xx/env/bin/boot
 create mode 100644 board/edb93xx/env/bin/flash_partition
 create mode 100644 board/edb93xx/env/bin/init
 create mode 100644 board/edb93xx/env/bin/set_nor_parts
 create mode 100644 board/edb93xx/env/bin/update_kernel
 create mode 100644 board/edb93xx/env/bin/update_rootfs
 create mode 100644 board/edb93xx/env/config
 create mode 100644 board/edb93xx/flash_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.h
 create mode 100644 board/edb93xx/sdram_cfg.c
 create mode 100644 board/edb93xx/sdram_cfg.h
Documentation/boards.dox +8 -0
index dba547f..7c7f4d1 100644
@@ -20,6 +20,14 @@ ARM type:
 @li @subpage a9m2440
 @li @subpage a9m2410
 @li @subpage eukrea_cpuimx27
+@li @subpage edb9301
+@li @subpage edb9302
+@li @subpage edb9302a
+@li @subpage edb9307
+@li @subpage edb9307a
+@li @subpage edb9312
+@li @subpage edb9315
+@li @subpage edb9315a
 
 Blackfin type:
 
arch/arm/configs/edb93xx_defconfig new file +236 -0

236 lines not on this page · raw message

arch/arm/lib/barebox.lds.S +5 -0
index c8d1bb9..a5eaefa 100644
@@ -39,6 +39,11 @@ SECTIONS
 		_stext = .;
 		_text = .;
 		*(.text_entry*)
+#ifdef CONFIG_ARCH_EP93XX
+		/* the EP93xx expects to find the pattern 'CRUS' at 0x1000 */
+	  . = 0x1000;
+	  LONG(0x53555243) /* 'CRUS' */
+#endif
 		*(.text_bare_init*)
 		*(.text*)
 	}
arch/arm/mach-ep93xx/Kconfig +0 -8
index 139b08d..ed6e986 100644
@@ -39,7 +39,6 @@ config MACH_EDB9301
 	bool "Cirrus Logic EDB9301"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9301 Evaluation board
 
@@ -105,7 +104,6 @@ config MACH_EDB9302
 	bool "Cirrus Logic EDB9302"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9302 Evaluation board
 
@@ -113,7 +111,6 @@ config MACH_EDB9302A
 	bool "Cirrus Logic EDB9302A"
 	select EP93XX_SDCE0_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9302A Evaluation board
 
@@ -226,7 +223,6 @@ config MACH_EDB9307
 	bool "Cirrus Logic EDB9307"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9307 Evaluation board
 
@@ -234,7 +230,6 @@ config MACH_EDB9307A
 	bool "Cirrus Logic EDB9307A"
 	select EP93XX_SDCE0_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9307A Evaluation board
 
@@ -315,7 +310,6 @@ config MACH_EDB9312
 	bool "Cirrus Logic EDB9312"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9312 Evaluation board
 
@@ -365,7 +359,6 @@ config MACH_EDB9315
 	bool "Cirrus Logic EDB9315"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9315 Evaluation board
 
@@ -373,7 +366,6 @@ config MACH_EDB9315A
 	bool "Cirrus Logic EDB9315A"
 	select EP93XX_SDCE0_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help
 	  Say y here if you are using Cirrus Logic's EDB9315A Evaluation board
 
board/edb93xx/Makefile new file +2 -0
new file mode 100644
index 0000000..e19cd7b
@@ -0,0 +1,2 @@
+
+obj-y += edb93xx.o flash_cfg.o pll_cfg.o sdram_cfg.o
board/edb93xx/config.h new file +4 -0
new file mode 100644
index 0000000..6ae9a40
@@ -0,0 +1,4 @@
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#endif  /* __CONFIG_H */
board/edb93xx/early_udelay.h new file +34 -0
new file mode 100644
index 0000000..3b26b3f
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 Matthias Kaehlcke <[email protected]>
+ *
+ * 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>
+
+/* delay execution before timers are initialized */
+static inline void early_udelay(uint32_t usecs)
+{
+	/* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */
+	register uint32_t loops = (usecs * 1000) / 20;
+
+	__asm__ volatile ("1:\n"
+			"subs %0, %1, #1\n"
+			"bne 1b":"=r" (loops):"0" (loops));
+}
board/edb93xx/edb93xx.c new file +172 -0

172 lines not on this page · raw message

board/edb93xx/edb93xx.dox new file +108 -0

109 lines not on this page · raw message

board/edb93xx/edb93xx.h new file +48 -0

48 lines not on this page · raw message

board/edb93xx/env/bin/boot new file +48 -0

49 lines not on this page · raw message

board/edb93xx/env/bin/flash_partition new file +22 -0
new file mode 100644
index 0000000..ded40aa
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ $# != 2 ];
+then
+				echo "Usage: $0 <image> <partition>"
+				exit 1
+fi
+
+image=$1
+partition=$2
+
+echo "Unlocking ${partition}"
+unprotect ${partition}
+
+echo "Erasing ${partition}"
+erase ${partition}
+
+echo "Flashing ${image} to ${partition}"
+cp ${image} ${partition}
+
+echo "Locking ${partition}"
+protect ${partition}
board/edb93xx/env/bin/init new file +19 -0
new file mode 100644
index 0000000..c6b5aed
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+PATH=/env/bin
+export PATH
+
+. /env/config
+
+# add partitions to barebox
+. /env/bin/set_nor_parts
+addpart /dev/nor0 ${nor_parts}
+
+echo
+echo -n "Hit any key to stop autoboot: "
+timeout -a $autoboot_timeout
+if [ $? != 0 ]; then
+	exit
+fi
+
+boot
\ No newline at end of file
board/edb93xx/env/bin/set_nor_parts new file +3 -0
new file mode 100644
index 0000000..38321fa
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+nor_parts="256k(barebox)ro,128k(env_boot),128k(env_boot.bak),1664k(kernel_1)${cfg_1_ro},6144k(rootfs_1)${cfg_1_ro},1664k(kernel_2)${cfg_2_ro},6144k(rootfs_2)${cfg_2_ro},128k(cfg_app),128k(cfg_app.bak)"
\ No newline at end of file
board/edb93xx/env/bin/update_kernel new file +16 -0
new file mode 100644
index 0000000..3e4b9b0
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. /env/config
+
+if [ $# != 1 ];
+then
+				echo "Usage: $0 <1/2>"
+				exit 1
+fi
+
+partition=/dev/nor0.kernel_$1
+
+cd /
+tftp ${board}/kernel.img || exit 1
+
+flash_partition kernel.img ${partition}
board/edb93xx/env/bin/update_rootfs new file +16 -0
new file mode 100644
index 0000000..52a3699
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. /env/config
+
+if [ $# != 1 ];
+then
+				echo "Usage: $0 <1/2>"
+				exit 1
+fi
+
+partition=/dev/nor0.rootfs_$1
+
+cd /
+tftp ${board}/rootfs.img || exit 1
+
+flash_partition rootfs.img ${partition}
board/edb93xx/env/config new file +16 -0
new file mode 100644
index 0000000..47ab209
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+eth0.ipaddr=192.168.0.50
+eth0.netmask=255.255.0.0
+eth0.serverip=192.168.0.8
+eth0.ethaddr=80:81:82:83:84:85
+
+board=edb9301
+autoboot_timeout=3
+active_cfg=1
+bootargs_common="console=ttyAM0,115200"
+
+# valid media: flash/net
+kernel_boot_media=flash
+rootfs_boot_media=flash
+
board/edb93xx/flash_cfg.c new file +38 -0
new file mode 100644
index 0000000..91a6a4e
@@ -0,0 +1,38 @@
+/*
+ * Flash setup for Cirrus edb93xx boards
+ *
+ * Copyright (C) 2009 Matthias Kaehlcke <[email protected]>
+ *
+ * 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 <mach/ep93xx-regs.h>
+#include <asm/io.h>
+
+#define SMC_BCR6_VALUE	(2 << SMC_BCR_IDCY_SHIFT | 5 << SMC_BCR_WST1_SHIFT | \
+				SMC_BCR_BLE | 2 << SMC_BCR_WST2_SHIFT | \
+				1 << SMC_BCR_MW_SHIFT)
+
+void flash_cfg(void)
+{
+	struct smc_regs *smc = (struct smc_regs *)SMC_BASE;
+
+	writel(SMC_BCR6_VALUE, &smc->bcr6);
+}
board/edb93xx/pll_cfg.c new file +58 -0

58 lines not on this page · raw message

board/edb93xx/pll_cfg.h new file +72 -0

72 lines not on this page · raw message

board/edb93xx/sdram_cfg.c new file +127 -0

127 lines not on this page · raw message

board/edb93xx/sdram_cfg.h new file +144 -0

144 lines not on this page · raw message

Signature · 7 lines
1.6.3.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#5 lore raw

Re: [PATCH] Add support for EDB93xx boards [rev2]

Hi Matthias,

arch/arm/mach-ep93xx/Kconfig config MACH_EDB9301 · line 42

Quoted 10 lines · Matthias Kaehlcke
arch/arm/mach-ep93xx/Kconfig +0 -1
index 139b08d..ed6e986 100644
@@ -39,7 +39,6 @@ config MACH_EDB9301
 	bool "Cirrus Logic EDB9301"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help

Something went wrong here, this seems to be a fixup patch, at least these hunks.
The rest of the patches is ok now. Can you please resend the whole series? It's easier to apply when it's clear that the original messages are the patches than to dig through the thread and look for patches in replies.

Thanks
Sascha

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#6 lore raw

Re: [PATCH] Add support for EDB93xx boards [rev2]

Hi Sascha,

El Tue, Jan 12, 2010 at 10:52:33AM +0100 Sascha Hauer ha dit:

Quoted 6 lines · Matthias Kaehlcke
Quoted 5 lines
arch/arm/mach-ep93xx/Kconfig +0 -0
index 139b08d..ed6e986 100644
@@ -39,7 +39,6 @@ config MACH_EDB9301
Quoted 8 lines

arch/arm/mach-ep93xx/Kconfig config MACH_EDB9301 · line 42

Quoted 5 lines
arch/arm/mach-ep93xx/Kconfig +0 -1
 	bool "Cirrus Logic EDB9301"
 	select EP93XX_SDCE3_SYNC_PHYS_OFFSET
 	select MACH_HAS_LOWLEVEL_INIT
-	select BOARD_LINKER_SCRIPT
 	help

Something went wrong here, this seems to be a fixup patch, at least these hunks.

sorry, i added applied these changes to the wrong patch of the set

Quoted 4 lines

The rest of the patches is ok now. Can you please resend the whole series? It's easier to apply when it's clear that the original messages are the patches than to dig through the thread and look for patches in replies.

sure, and thanks for pointing me to the right way to send revisions of a patch

Signature · 16 lines
Matthias Kaehlcke
Embedded Linux Developer
Barcelona

    Ma patrie est où je suis, où personne ne me dérange, où personne
    ne me demande que je suis, d'où je viens et ce que je fais
                              (B. Traven)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox