Re: [U-Boot] Support for ARM940T core

2011-02-18 Thread Albert ARIBAUD
Hi Srinidhi,

Le 18/02/2011 07:51, Srinidhi M a écrit :
 Dear All,

 We did not find the support for ARM940T architecture in the u-boot sources.
 Is there any ARM cores which are equivalent to ARM940T? Do we need to
 modify any existing ARM core files to support ARM940T?

You should start a new CPU support (say in arch/arm/cpu/arm940t) based 
off what exists for the ARM920T, which has the same ARM9TDMI and differs 
from ARM940T in that the 920T has an MMU while the 940T has a protection 
unit instead.

Whatever code you find common to 920t and 940t you could possibly put in 
a common ARM9TDMI location. If eventually most of the code is common, 
maybe a single arch/arm/cpu/ subdirectory could cater for both 920t and 
940t.

 Regards,
 Srinidhi.

Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] omap3_beagle: Switch default console from ttyS2 to ttyO2

2011-02-18 Thread Alexander Holler
Linux kernels = 2.6.36 are using ttyOn instead ttySn for the
serials on OMAPs.

Signed-off-by: Alexander Holler hol...@ahsoftware.de
---
 include/configs/omap3_beagle.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 5cfa4cb..e442e5b 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -189,7 +189,7 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
loadaddr=0x8200\0 \
usbtty=cdc_acm\0 \
-   console=ttyS2,115200n8\0 \
+   console=ttyO2,115200n8\0 \
mpurate=500\0 \
vram=12M\0 \
dvimode=1024x768MR-16@60\0 \
-- 
1.7.3.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 01/15] AT91: rework at91sam9260.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91sam9260.h |  252 ++
 1 files changed, 132 insertions(+), 120 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91sam9260.h 
b/arch/arm/include/asm/arch-at91/at91sam9260.h
index 7fd60b7..dd68485 100644
--- a/arch/arm/include/asm/arch-at91/at91sam9260.h
+++ b/arch/arm/include/asm/arch-at91/at91sam9260.h
@@ -2,9 +2,15 @@
  * [origin: Linux kernel include/asm-arm/arch-at91/at91sam9260.h]
  *
  * (C) 2006 Andrew Victor
+ * (C) Copyright 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.me...@emk-elektronik.de
  *
- * Common definitions.
- * Based on AT91SAM9260 datasheet revision A (Preliminary).
+ * Definitions for the SoCs:
+ * AT91SAM9260, AT91SAM9G20, AT91SAM9XE
+ *
+ * Note that those SoCs are mostly software and pin compatible,
+ * therefore this file applies to all of them. Differences between
+ * those SoCs are concentrated at the end of this file.
  *
  * 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
@@ -16,145 +22,151 @@
 #define AT91SAM9260_H
 
 /*
- * Peripheral identifiers/interrupts.
+ * defines to be used in other places
  */
-#define AT91_ID_FIQ0   /* Advanced Interrupt Controller (FIQ) 
*/
-#define AT91_ID_SYS1   /* System Peripherals */
-#define AT91SAM9260_ID_PIOA2   /* Parallel IO Controller A */
-#define AT91SAM9260_ID_PIOB3   /* Parallel IO Controller B */
-#define AT91SAM9260_ID_PIOC4   /* Parallel IO Controller C */
-#define AT91SAM9260_ID_ADC 5   /* Analog-to-Digital Converter */
-#define AT91SAM9260_ID_US0 6   /* USART 0 */
-#define AT91SAM9260_ID_US1 7   /* USART 1 */
-#define AT91SAM9260_ID_US2 8   /* USART 2 */
-#define AT91SAM9260_ID_MCI 9   /* Multimedia Card Interface */
-#define AT91SAM9260_ID_UDP 10  /* USB Device Port */
-#define AT91SAM9260_ID_TWI 11  /* Two-Wire Interface */
-#define AT91SAM9260_ID_SPI012  /* Serial Peripheral Interface 0 */
-#define AT91SAM9260_ID_SPI113  /* Serial Peripheral Interface 1 */
-#define AT91SAM9260_ID_SSC 14  /* Serial Synchronous Controller */
-#define AT91SAM9260_ID_TC0 17  /* Timer Counter 0 */
-#define AT91SAM9260_ID_TC1 18  /* Timer Counter 1 */
-#define AT91SAM9260_ID_TC2 19  /* Timer Counter 2 */
-#define AT91SAM9260_ID_UHP 20  /* USB Host port */
-#define AT91SAM9260_ID_EMAC21  /* Ethernet */
-#define AT91SAM9260_ID_ISI 22  /* Image Sensor Interface */
-#define AT91SAM9260_ID_US3 23  /* USART 3 */
-#define AT91SAM9260_ID_US4 24  /* USART 4 */
-#define AT91SAM9260_ID_US5 25  /* USART 5 */
-#define AT91SAM9260_ID_TC3 26  /* Timer Counter 3 */
-#define AT91SAM9260_ID_TC4 27  /* Timer Counter 4 */
-#define AT91SAM9260_ID_TC5 28  /* Timer Counter 5 */
-#define AT91SAM9260_ID_IRQ029  /* Advanced Interrupt Controller (IRQ0) 
*/
-#define AT91SAM9260_ID_IRQ130  /* Advanced Interrupt Controller (IRQ1) 
*/
-#define AT91SAM9260_ID_IRQ231  /* Advanced Interrupt Controller (IRQ2) 
*/
+#define CONFIG_ARM926EJS   /* ARM926EJS Core */
+#define CONFIG_AT91FAMILY  /* it's a member of AT91 */
 
-#define AT91_EMAC_BASE 0xfffc4000
-#define AT91_SDRAMC_BASE   0xea00
-#define AT91_SMC_BASE  0xec00
-#define AT91_MATRIX_BASE   0xee00
-#define AT91_PIO_BASE  0xf400
-#define AT91_PMC_BASE  0xfc00
-#define AT91_RSTC_BASE 0xfd00
-#define AT91_SHDWN_BASE0xfd10
-#define AT91_RTT_BASE  0xfd20
-#define AT91_PIT_BASE  0xfd30
-#define AT91_WDT_BASE  0xfd40
 /*
- * The AT91SAM9XE has the GPBRs at a different address than
- * the AT91SAM9260/9G20.
+ * Peripheral identifiers/interrupts.
  */
-#ifdef CONFIG_AT91SAM9XE
-# define AT91_GPR_BASE 0xfd60
-#else
-# define AT91_GPR_BASE 0xfd50
-#endif
-
-#ifdef CONFIG_AT91_LEGACY
+#define ATMEL_ID_FIQ   0   /* Advanced Interrupt Controller (FIQ) */
+#define ATMEL_ID_SYS   1   /* System Peripherals */
+#define ATMEL_ID_PIOA  2   /* Parallel IO Controller A */
+#define ATMEL_ID_PIOB  3   /* Parallel IO Controller B */
+#define ATMEL_ID_PIOC  4   /* Parallel IO Controller C */
+#define ATMEL_ID_ADC   5   /* Analog-to-Digital Converter */
+#define ATMEL_ID_USART06   /* USART 0 */
+#define ATMEL_ID_USART17   /* USART 1 */
+#define ATMEL_ID_USART28   /* USART 2 */
+#define ATMEL_ID_MCI   9   /* Multimedia Card Interface */
+#define ATMEL_ID_UDP   10  /* USB Device Port */
+#define ATMEL_ID_TWI0  11  /* Two-Wire Interface 0 */
+#define ATMEL_ID_SPI0  12  /* Serial Peripheral Interface 0 */
+#define ATMEL_ID_SPI1  13  /* Serial 

[U-Boot] [PATCH 0/15] ATMEL rework

2011-02-18 Thread Reinhard Meyer
These are all the reworks on the ATMEL parts done by me so far.
They are now officially posted as patches for commenting.
They are the patches found in u-boot-atmel so far, with minor
whitespace and long line fixes complained about by checkpatch.

The following files are affected:

(Output of git-diff-tree --stat HEAD~15 HEAD~0)

 arch/arm/cpu/arm926ejs/at91/Makefile   |1 +
 arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c  |   47 +---
 arch/arm/cpu/arm926ejs/at91/clock.c|8 +-
 arch/arm/cpu/arm926ejs/at91/cpu.c  |   11 +-
 arch/arm/cpu/arm926ejs/at91/eflash.c   |   16 +-
 arch/arm/cpu/arm926ejs/at91/led.c  |2 +-
 arch/arm/cpu/arm926ejs/at91/reset.c|4 +-
 arch/arm/cpu/arm926ejs/at91/timer.c|   37 ++--
 arch/arm/include/asm/arch-at91/at91_common.h   |3 +-
 arch/arm/include/asm/arch-at91/at91_pio.h  |   19 +--
 arch/arm/include/asm/arch-at91/at91_rstc.h |   25 --
 arch/arm/include/asm/arch-at91/at91sam9260.h   |  252 ++--
 .../arm/include/asm/arch-at91/at91sam9260_matrix.h |  102 -
 arch/arm/include/asm/arch-at91/at91sam9261.h   |  187 ---
 arch/arm/include/asm/arch-at91/at91sam9263.h   |  218 -
 arch/arm/include/asm/arch-at91/at91sam9g45.h   |  225 +-
 arch/arm/include/asm/arch-at91/gpio.h  |   18 +-
 arch/arm/include/asm/arch-at91/hardware.h  |   96 +++-
 arch/arm/include/asm/arch-at91/io.h|   43 
 arch/arm/include/asm/arch-at91/memory-map.h|   36 ---
 drivers/gpio/at91_gpio.c   |   54 +++--
 drivers/mmc/gen_atmel_mci.c|2 +-
 drivers/net/macb.c |   14 +-
 drivers/rtc/at91sam9_rtt.c |   14 +-
 drivers/serial/atmel_usart.c   |   28 +--
 drivers/spi/atmel_dataflash_spi.c  |   94 +---
 drivers/spi/atmel_spi.c|   16 +-
 drivers/usb/host/ohci-at91.c   |   18 +-
 drivers/watchdog/at91sam9_wdt.c|6 +-
 include/dataflash.h|1 -
 30 files changed, 714 insertions(+), 883 deletions(-)

If no complaints are received, they will be formally accepted and a git-pull
request will be issued to Albert.

Best Regards
Reinhard
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 02/15] AT91: rework at91sam9261.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91sam9261.h |  187 ++
 1 files changed, 102 insertions(+), 85 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91sam9261.h 
b/arch/arm/include/asm/arch-at91/at91sam9261.h
index 7ca0283..f8048d5 100644
--- a/arch/arm/include/asm/arch-at91/at91sam9261.h
+++ b/arch/arm/include/asm/arch-at91/at91sam9261.h
@@ -2,9 +2,15 @@
  * [origin: Linux kernel include/asm-arm/arch-at91/at91sam9261.h]
  *
  * Copyright (C) SAN People
+ * (C) Copyright 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.me...@emk-elektronik.de
  *
- * Common definitions.
- * Based on AT91SAM9261 datasheet revision E. (Preliminary)
+ * Definitions for the SoCs:
+ * AT91SAM9261, AT91SAM9G10
+ *
+ * Note that those SoCs are mostly software and pin compatible,
+ * therefore this file applies to all of them. Differences between
+ * those SoCs are concentrated at the end of this file.
  *
  * 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
@@ -16,106 +22,117 @@
 #define AT91SAM9261_H
 
 /*
- * Peripheral identifiers/interrupts.
+ * defines to be used in other places
  */
-#define AT91_ID_FIQ0   /* Advanced Interrupt Controller (FIQ) 
*/
-#define AT91_ID_SYS1   /* System Peripherals */
-#define AT91SAM9261_ID_PIOA2   /* Parallel IO Controller A */
-#define AT91SAM9261_ID_PIOB3   /* Parallel IO Controller B */
-#define AT91SAM9261_ID_PIOC4   /* Parallel IO Controller C */
-#define AT91SAM9261_ID_US0 6   /* USART 0 */
-#define AT91SAM9261_ID_US1 7   /* USART 1 */
-#define AT91SAM9261_ID_US2 8   /* USART 2 */
-#define AT91SAM9261_ID_MCI 9   /* Multimedia Card Interface */
-#define AT91SAM9261_ID_UDP 10  /* USB Device Port */
-#define AT91SAM9261_ID_TWI 11  /* Two-Wire Interface */
-#define AT91SAM9261_ID_SPI012  /* Serial Peripheral Interface 0 */
-#define AT91SAM9261_ID_SPI113  /* Serial Peripheral Interface 1 */
-#define AT91SAM9261_ID_SSC014  /* Serial Synchronous Controller 0 */
-#define AT91SAM9261_ID_SSC115  /* Serial Synchronous Controller 1 */
-#define AT91SAM9261_ID_SSC216  /* Serial Synchronous Controller 2 */
-#define AT91SAM9261_ID_TC0 17  /* Timer Counter 0 */
-#define AT91SAM9261_ID_TC1 18  /* Timer Counter 1 */
-#define AT91SAM9261_ID_TC2 19  /* Timer Counter 2 */
-#define AT91SAM9261_ID_UHP 20  /* USB Host port */
-#define AT91SAM9261_ID_LCDC21  /* LDC Controller */
-#define AT91SAM9261_ID_IRQ029  /* Advanced Interrupt Controller (IRQ0) 
*/
-#define AT91SAM9261_ID_IRQ130  /* Advanced Interrupt Controller (IRQ1) 
*/
-#define AT91SAM9261_ID_IRQ231  /* Advanced Interrupt Controller (IRQ2) 
*/
+#define CONFIG_ARM926EJS   /* ARM926EJS Core */
+#define CONFIG_AT91FAMILY  /* it's a member of AT91 */
 
-#define AT91_SDRAMC_BASE   0xea00
-#define AT91_SMC_BASE  0xec00
-#define AT91_MATRIX_BASE   0xee00
-#define AT91_PIO_BASE  0xf400
-#define AT91_PMC_BASE  0xfc00
-#define AT91_RSTC_BASE 0xfd00
-#define AT91_RTT_BASE  0xfd20
-#define AT91_PIT_BASE  0xfd30
-#define AT91_WDT_BASE  0xfd40
-#define AT91_GPBR_BASE 0xfd50
+/*
+ * Peripheral identifiers/interrupts.
+ */
+#define ATMEL_ID_FIQ   0   /* Advanced Interrupt Controller (FIQ) */
+#define ATMEL_ID_SYS   1   /* System Peripherals */
+#define ATMEL_ID_PIOA  2   /* Parallel IO Controller A */
+#define ATMEL_ID_PIOB  3   /* Parallel IO Controller B */
+#define ATMEL_ID_PIOC  4   /* Parallel IO Controller C */
+/* Reserved:   5 */
+#define ATMEL_ID_USART06   /* USART 0 */
+#define ATMEL_ID_USART17   /* USART 1 */
+#define ATMEL_ID_USART28   /* USART 2 */
+#define ATMEL_ID_MCI   9   /* Multimedia Card Interface */
+#define ATMEL_ID_UDP   10  /* USB Device Port */
+#define ATMEL_ID_TWI0  11  /* Two-Wire Interface 0 */
+#define ATMEL_ID_SPI0  12  /* Serial Peripheral Interface 0 */
+#define ATMEL_ID_SPI1  13  /* Serial Peripheral Interface 1 */
+#define ATMEL_ID_SSC0  14  /* Serial Synchronous Controller 0 */
+#define ATMEL_ID_SSC1  15  /* Serial Synchronous Controller 1 */
+#define ATMEL_ID_SSC2  16  /* Serial Synchronous Controller 2 */
+#define ATMEL_ID_TC0   17  /* Timer Counter 0 */
+#define ATMEL_ID_TC1   18  /* Timer Counter 1 */
+#define ATMEL_ID_TC2   19  /* Timer Counter 2 */
+#define ATMEL_ID_UHP   20  /* USB Host port */
+#define ATMEL_ID_LCDC  21  /* LDC Controller */
+/* Reserved:   22-28 */
+#define ATMEL_ID_IRQ0  29  /* Advanced Interrupt Controller (IRQ0) */
+#define ATMEL_ID_IRQ1  30  /* Advanced Interrupt 

[U-Boot] [PATCH 03/15] AT91: rework at91sam9263.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91sam9263.h |  218 --
 1 files changed, 100 insertions(+), 118 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91sam9263.h 
b/arch/arm/include/asm/arch-at91/at91sam9263.h
index 4ada1ce..bfd408b 100644
--- a/arch/arm/include/asm/arch-at91/at91sam9263.h
+++ b/arch/arm/include/asm/arch-at91/at91sam9263.h
@@ -2,9 +2,11 @@
  * [origin: Linux kernel include/asm-arm/arch-at91/at91sam9263.h]
  *
  * (C) 2007 Atmel Corporation.
+ * (C) Copyright 2010
+ * Reinhard Meyer, EMK Elektronik, reinhard.me...@emk-elektronik.de
  *
- * Common definitions.
- * Based on AT91SAM9263 datasheet revision B (Preliminary).
+ * Definitions for the SoC:
+ * AT91SAM9263
  *
  * 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
@@ -16,140 +18,120 @@
 #define AT91SAM9263_H
 
 /*
- * Peripheral identifiers/interrupts.
+ * defines to be used in other places
  */
-#define AT91_ID_FIQ0   /* Advanced Interrupt Controller (FIQ) 
*/
-#define AT91_ID_SYS1   /* System Peripherals */
-#define AT91SAM9263_ID_PIOA2   /* Parallel IO Controller A */
-#define AT91SAM9263_ID_PIOB3   /* Parallel IO Controller B */
-#define AT91SAM9263_ID_PIOCDE  4   /* Parallel IO Controller C, D and E */
-#define AT91SAM9263_ID_US0 7   /* USART 0 */
-#define AT91SAM9263_ID_US1 8   /* USART 1 */
-#define AT91SAM9263_ID_US2 9   /* USART 2 */
-#define AT91SAM9263_ID_MCI010  /* Multimedia Card Interface 0 */
-#define AT91SAM9263_ID_MCI111  /* Multimedia Card Interface 1 */
-#define AT91SAM9263_ID_CAN 12  /* CAN */
-#define AT91SAM9263_ID_TWI 13  /* Two-Wire Interface */
-#define AT91SAM9263_ID_SPI014  /* Serial Peripheral Interface 0 */
-#define AT91SAM9263_ID_SPI115  /* Serial Peripheral Interface 1 */
-#define AT91SAM9263_ID_SSC016  /* Serial Synchronous Controller 0 */
-#define AT91SAM9263_ID_SSC117  /* Serial Synchronous Controller 1 */
-#define AT91SAM9263_ID_AC97C   18  /* AC97 Controller */
-#define AT91SAM9263_ID_TCB 19  /* Timer Counter 0, 1 and 2 */
-#define AT91SAM9263_ID_PWMC20  /* Pulse Width Modulation Controller */
-#define AT91SAM9263_ID_EMAC21  /* Ethernet */
-#define AT91SAM9263_ID_2DGE23  /* 2D Graphic Engine */
-#define AT91SAM9263_ID_UDP 24  /* USB Device Port */
-#define AT91SAM9263_ID_ISI 25  /* Image Sensor Interface */
-#define AT91SAM9263_ID_LCDC26  /* LCD Controller */
-#define AT91SAM9263_ID_DMA 27  /* DMA Controller */
-#define AT91SAM9263_ID_UHP 29  /* USB Host port */
-#define AT91SAM9263_ID_IRQ030  /* Advanced Interrupt Controller (IRQ0) 
*/
-#define AT91SAM9263_ID_IRQ131  /* Advanced Interrupt Controller (IRQ1) 
*/
-
-#define AT91_EMAC_BASE 0xfffbc000
-#define AT91_ECC0_BASE 0xe000
-#define AT91_SDRAMC0_BASE  0xe200
-#define AT91_SMC0_BASE 0xe400
-#define AT91_ECC1_BASE 0xe600
-#define AT91_SDRAMC1_BASE  0xe800
-#define AT91_SMC1_BASE 0xea00
-#define AT91_MATRIX_BASE   0xec00
-#define AT91_CCFG_BASE 0xed10
-#define AT91_DBGU_BASE 0xee00
-#define AT91_AIC_BASE  0xf000
-#define AT91_PIO_BASE  0xf200
-#define AT91_PMC_BASE  0xfc00
-#define AT91_RSTC_BASE 0xfd00
-#define AT91_RTT0_BASE 0xfd20
-#define AT91_PIT_BASE  0xfd30
-#define AT91_WDT_BASE  0xfd40
-#define AT91_RTT1_BASE 0xfd50
-#define AT91_GPBR_BASE 0xfd60
-
-#ifdef CONFIG_AT91_LEGACY
+#define CONFIG_ARM926EJS   /* ARM926EJS Core */
+#define CONFIG_AT91FAMILY  /* it's a member of AT91 */
 
 /*
- * User Peripheral physical base addresses.
+ * Peripheral identifiers/interrupts.
  */
-#define AT91SAM9263_BASE_UDP   0xfff78000
-#define AT91SAM9263_BASE_TCB0  0xfff7c000
-#define AT91SAM9263_BASE_TC0   0xfff7c000
-#define AT91SAM9263_BASE_TC1   0xfff7c040
-#define AT91SAM9263_BASE_TC2   0xfff7c080
-#define AT91SAM9263_BASE_MCI0  0xfff8
-#define AT91SAM9263_BASE_MCI1  0xfff84000
-#define AT91SAM9263_BASE_TWI   0xfff88000
-#define AT91SAM9263_BASE_US0   0xfff8c000
-#define AT91SAM9263_BASE_US1   0xfff9
-#define AT91SAM9263_BASE_US2   0xfff94000
-#define AT91SAM9263_BASE_SSC0  0xfff98000
-#define AT91SAM9263_BASE_SSC1  0xfff9c000
-#define AT91SAM9263_BASE_AC97C 0xfffa
-#define AT91SAM9263_BASE_SPI0  0xfffa4000
-#define AT91SAM9263_BASE_SPI1  0xfffa8000
-#define AT91SAM9263_BASE_CAN   0xfffac000
-#define AT91SAM9263_BASE_PWMC  0xfffb8000
-#define AT91SAM9263_BASE_EMAC  

[U-Boot] [PATCH 04/15] AT91: rework at91sam9g45.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91sam9g45.h |  225 --
 1 files changed, 107 insertions(+), 118 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91sam9g45.h 
b/arch/arm/include/asm/arch-at91/at91sam9g45.h
index 445f4b2..364b86c 100644
--- a/arch/arm/include/asm/arch-at91/at91sam9g45.h
+++ b/arch/arm/include/asm/arch-at91/at91sam9g45.h
@@ -1,10 +1,10 @@
 /*
  * Chip-specific header file for the AT91SAM9M1x family
  *
- *  Copyright (C) 2008 Atmel Corporation.
+ * (C) 2008 Atmel Corporation.
  *
- * Common definitions.
- * Based on AT91SAM9G45 preliminary datasheet.
+ * Definitions for the SoC:
+ * AT91SAM9G45
  *
  * 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
@@ -16,137 +16,126 @@
 #define AT91SAM9G45_H
 
 /*
- * Peripheral identifiers/interrupts.
+ * defines to be used in other places
  */
-#define AT91_ID_FIQ0   /* Advanced Interrupt Controller (FIQ) 
*/
-#define AT91_ID_SYS1   /* System Controller Interrupt */
-#define AT91SAM9G45_ID_PIOA2   /* Parallel I/O Controller A */
-#define AT91SAM9G45_ID_PIOB3   /* Parallel I/O Controller B */
-#define AT91SAM9G45_ID_PIOC4   /* Parallel I/O Controller C */
-#define AT91SAM9G45_ID_PIODE   5   /* Parallel I/O Controller D and E */
-#define AT91SAM9G45_ID_TRNG6   /* True Random Number Generator */
-#define AT91SAM9G45_ID_US0 7   /* USART 0 */
-#define AT91SAM9G45_ID_US1 8   /* USART 1 */
-#define AT91SAM9G45_ID_US2 9   /* USART 2 */
-#define AT91SAM9G45_ID_US3 10  /* USART 3 */
-#define AT91SAM9G45_ID_MCI011  /* High Speed Multimedia Card Interface 
0 */
-#define AT91SAM9G45_ID_TWI012  /* Two-Wire Interface 0 */
-#define AT91SAM9G45_ID_TWI113  /* Two-Wire Interface 1 */
-#define AT91SAM9G45_ID_SPI014  /* Serial Peripheral Interface 0 */
-#define AT91SAM9G45_ID_SPI115  /* Serial Peripheral Interface 1 */
-#define AT91SAM9G45_ID_SSC016  /* Synchronous Serial Controller 0 */
-#define AT91SAM9G45_ID_SSC117  /* Synchronous Serial Controller 1 */
-#define AT91SAM9G45_ID_TCB 18  /* Timer Counter 0, 1, 2, 3, 4 and 5 */
-#define AT91SAM9G45_ID_PWMC19  /* Pulse Width Modulation Controller */
-#define AT91SAM9G45_ID_TSC 20  /* Touch Screen ADC Controller */
-#define AT91SAM9G45_ID_DMA 21  /* DMA Controller */
-#define AT91SAM9G45_ID_UHPHS   22  /* USB Host High Speed */
-#define AT91SAM9G45_ID_LCDC23  /* LCD Controller */
-#define AT91SAM9G45_ID_AC97C   24  /* AC97 Controller */
-#define AT91SAM9G45_ID_EMAC25  /* Ethernet MAC */
-#define AT91SAM9G45_ID_ISI 26  /* Image Sensor Interface */
-#define AT91SAM9G45_ID_UDPHS   27  /* USB Device High Speed */
-#define AT91SAM9G45_ID_AESTDESSHA 28   /* AES + T-DES + SHA */
-#define AT91SAM9G45_ID_MCI129  /* High Speed Multimedia Card Interface 
1 */
-#define AT91SAM9G45_ID_VDEC30  /* Video Decoder */
-#define AT91SAM9G45_ID_IRQ031  /* Advanced Interrupt Controller */
-
-#define AT91_EMAC_BASE 0xfffbc000
-#define AT91_SMC_BASE  0xe800
-#define AT91_MATRIX_BASE   0xea00
-#define AT91_PIO_BASE  0xf200
-#define AT91_PMC_BASE  0xfc00
-#define AT91_RSTC_BASE 0xfd00
-#define AT91_PIT_BASE  0xfd30
-#define AT91_WDT_BASE  0xfd40
-
-#ifdef CONFIG_AT91_LEGACY
+#define CONFIG_ARM926EJS   /* ARM926EJS Core */
+#define CONFIG_AT91FAMILY  /* it's a member of AT91 */
 
 /*
- * User Peripheral physical base addresses.
+ * Peripheral identifiers/interrupts.
  */
-#define AT91SAM9G45_BASE_UDPHS 0xfff78000
-#define AT91SAM9G45_BASE_TC0   0xfff7c000
-#define AT91SAM9G45_BASE_TC1   0xfff7c040
-#define AT91SAM9G45_BASE_TC2   0xfff7c080
-#define AT91SAM9G45_BASE_MCI0  0xfff8
-#define AT91SAM9G45_BASE_TWI0  0xfff84000
-#define AT91SAM9G45_BASE_TWI1  0xfff88000
-#define AT91SAM9G45_BASE_US0   0xfff8c000
-#define AT91SAM9G45_BASE_US1   0xfff9
-#define AT91SAM9G45_BASE_US2   0xfff94000
-#define AT91SAM9G45_BASE_US3   0xfff98000
-#define AT91SAM9G45_BASE_SSC0  0xfff9c000
-#define AT91SAM9G45_BASE_SSC1  0xfffa
-#define AT91SAM9G45_BASE_SPI0  0xfffa4000
-#define AT91SAM9G45_BASE_SPI1  0xfffa8000
-#define AT91SAM9G45_BASE_AC97C 0xfffac000
-#define AT91SAM9G45_BASE_TSC   0xfffb
-#define AT91SAM9G45_BASE_ISI   0xfffb4000
-#define AT91SAM9G45_BASE_PWMC  0xfffb8000
-#define AT91SAM9G45_BASE_EMAC  0xfffbc000
-#define AT91SAM9G45_BASE_AES   0xfffc
-#define AT91SAM9G45_BASE_TDES  0xfffc4000
-#define AT91SAM9G45_BASE_SHA   0xfffc8000
-#define 

[U-Boot] [PATCH 05/15] AT91: cleanup hardware.h, remove memory-map.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/hardware.h   |   96 +--
 arch/arm/include/asm/arch-at91/memory-map.h |   36 --
 2 files changed, 32 insertions(+), 100 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-at91/memory-map.h

diff --git a/arch/arm/include/asm/arch-at91/hardware.h 
b/arch/arm/include/asm/arch-at91/hardware.h
index 6b44d61..c69c451 100644
--- a/arch/arm/include/asm/arch-at91/hardware.h
+++ b/arch/arm/include/asm/arch-at91/hardware.h
@@ -1,80 +1,48 @@
 /*
- * [origin: Linux kernel include/asm-arm/arch-at91/hardware.h]
+ * (C) Copyright 2007-2008
+ * Stelian Pop stelian@leadtechdesign.com
+ * Lead Tech Design www.leadtechdesign.com
  *
- *  Copyright (C) 2003 SAN People
- *  Copyright (C) 2003 ATMEL
+ * 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 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_HARDWARE_H
-#define __ASM_ARCH_HARDWARE_H
-
-#include asm/sizes.h
+#ifndef __ASM_ARM_ARCH_HARDWARE_H__
+#define __ASM_ARM_ARCH_HARDWARE_H__
 
 #if defined(CONFIG_AT91RM9200)
-#include asm/arch-at91/at91rm9200.h
-#define AT91_PMC_UHP   AT91RM9200_PMC_UHP
-#elif defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9G20)
-#include asm/arch/at91sam9260.h
-#define AT91_BASE_MCI  AT91SAM9260_BASE_MCI
-#define AT91_BASE_SPI  AT91SAM9260_BASE_SPI0
-#define AT91_BASE_SPI1 AT91SAM9260_BASE_SPI1
-#define AT91_ID_UHPAT91SAM9260_ID_UHP
-#define AT91_PMC_UHP   AT91SAM926x_PMC_UHP
+# include asm/arch/at91rm9200.h
+#elif defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9G20) || \
+   defined(CONFIG_AT91SAM9XE)
+# include asm/arch/at91sam9260.h
 #elif defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
-#include asm/arch/at91sam9261.h
-#define AT91_BASE_SPI  AT91SAM9261_BASE_SPI0
-#define AT91_ID_UHPAT91SAM9261_ID_UHP
-#define AT91_PMC_UHP   AT91SAM926x_PMC_UHP
+# include asm/arch/at91sam9261.h
 #elif defined(CONFIG_AT91SAM9263)
-#include asm/arch/at91sam9263.h
-#define AT91_BASE_SPI  AT91SAM9263_BASE_SPI0
-#define AT91_ID_UHPAT91SAM9263_ID_UHP
-#define AT91_PMC_UHP   AT91SAM926x_PMC_UHP
+# include asm/arch/at91sam9263.h
 #elif defined(CONFIG_AT91SAM9RL)
-#include asm/arch/at91sam9rl.h
-#define AT91_BASE_SPI  AT91SAM9RL_BASE_SPI
-#define AT91_ID_UHPAT91SAM9RL_ID_UHP
+# include asm/arch/at91sam9rl.h
 #elif defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45)
-#include asm/arch/at91sam9g45.h
-#define AT91_BASE_EMAC  AT91SAM9G45_BASE_EMAC
-#define AT91_BASE_SPI   AT91SAM9G45_BASE_SPI0
-#define AT91_ID_UHP AT91SAM9G45_ID_UHPHS
-#define AT91_PMC_UHPAT91SAM926x_PMC_UHP
+# include asm/arch/at91sam9g45.h
 #elif defined(CONFIG_AT91CAP9)
-#include asm/arch/at91cap9.h
-#define AT91_BASE_SPI  AT91CAP9_BASE_SPI0
-#define AT91_ID_UHPAT91CAP9_ID_UHP
-#define AT91_PMC_UHP   AT91CAP9_PMC_UHP
+# include asm/arch/at91cap9.h
 #elif defined(CONFIG_AT91X40)
-#include asm/arch/at91x40.h
+# include asm/arch/at91x40.h
 #else
-#error Unsupported AT91 processor
+# error Unsupported AT91 processor
 #endif
 
-/* External Memory Map */
-#define AT91_CHIPSELECT_0  0x1000
-#define AT91_CHIPSELECT_1  0x2000
-#define AT91_CHIPSELECT_2  0x3000
-#define AT91_CHIPSELECT_3  0x4000
-#define AT91_CHIPSELECT_4  0x5000
-#define AT91_CHIPSELECT_5  0x6000
-#define AT91_CHIPSELECT_6  0x7000
-#define AT91_CHIPSELECT_7  0x8000
-
-/* SDRAM */
-#ifdef CONFIG_DRAM_BASE
-#define AT91_SDRAM_BASECONFIG_DRAM_BASE
-#else
-#define AT91_SDRAM_BASEAT91_CHIPSELECT_1
-#endif
-
-/* Clocks */
-#define AT91_SLOW_CLOCK32768   /* slow clock */
-
-#endif
+#endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */
diff --git a/arch/arm/include/asm/arch-at91/memory-map.h 
b/arch/arm/include/asm/arch-at91/memory-map.h
deleted file mode 100644
index d489fa2..000
--- a/arch/arm/include/asm/arch-at91/memory-map.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * (C) 

[U-Boot] [PATCH 06/15] AT91: fix related arch-at91 header files

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91_common.h |3 +--
 arch/arm/include/asm/arch-at91/at91_pio.h|   19 +++
 arch/arm/include/asm/arch-at91/gpio.h|   18 +-
 arch/arm/include/asm/arch-at91/io.h  |4 ++--
 4 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91_common.h 
b/arch/arm/include/asm/arch-at91/at91_common.h
index 0067190..330edd8 100644
--- a/arch/arm/include/asm/arch-at91/at91_common.h
+++ b/arch/arm/include/asm/arch-at91/at91_common.h
@@ -28,11 +28,10 @@
 void at91_can_hw_init(void);
 void at91_macb_hw_init(void);
 void at91_mci_hw_init(void);
-void at91_serial_hw_init(void);
 void at91_serial0_hw_init(void);
 void at91_serial1_hw_init(void);
 void at91_serial2_hw_init(void);
-void at91_serial3_hw_init(void);
+void at91_seriald_hw_init(void);
 void at91_spi0_hw_init(unsigned long cs_mask);
 void at91_spi1_hw_init(unsigned long cs_mask);
 void at91_uhp_hw_init(void);
diff --git a/arch/arm/include/asm/arch-at91/at91_pio.h 
b/arch/arm/include/asm/arch-at91/at91_pio.h
index f7915a3..0b5bd69 100644
--- a/arch/arm/include/asm/arch-at91/at91_pio.h
+++ b/arch/arm/include/asm/arch-at91/at91_pio.h
@@ -76,32 +76,19 @@ typedef struct at91_port {
u32 reserved6[85];
 } at91_port_t;
 
-#if defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9261) || \
-   defined(CONFIG_AT91SAM9G10) || defined(CONFIG_AT91SAM9G20)
-#define AT91_PIO_PORTS 3
-#elif defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G45) || \
-   defined(CONFIG_AT91SAM9M10G45)
-#define AT91_PIO_PORTS 5
-#elif defined(CONFIG_AT91RM9200) || defined(CONFIG_AT91CAP9) || \
-   defined(CONFIG_AT91SAM9RL)
-#define AT91_PIO_PORTS 4
-#else
-#error Unsupported cpu. Please update at91_pio.h
-#endif
-
 typedef union at91_pio {
struct {
at91_port_t pioa;
at91_port_t piob;
at91_port_t pioc;
-   #if (AT91_PIO_PORTS  3)
+   #if (ATMEL_PIO_PORTS  3)
at91_port_t piod;
#endif
-   #if (AT91_PIO_PORTS  4)
+   #if (ATMEL_PIO_PORTS  4)
at91_port_t pioe;
#endif
} ;
-   at91_port_t port[AT91_PIO_PORTS];
+   at91_port_t port[ATMEL_PIO_PORTS];
 } at91_pio_t;
 
 #ifdef CONFIG_AT91_GPIO
diff --git a/arch/arm/include/asm/arch-at91/gpio.h 
b/arch/arm/include/asm/arch-at91/gpio.h
index 716f81f..293d0bf 100644
--- a/arch/arm/include/asm/arch-at91/gpio.h
+++ b/arch/arm/include/asm/arch-at91/gpio.h
@@ -18,7 +18,7 @@
 #include asm/arch/at91_pio.h
 #include asm/arch/hardware.h
 
-#ifdef CONFIG_AT91_LEGACY
+#ifdef CONFIG_ATMEL_LEGACY
 
 #define PIN_BASE   32
 
@@ -192,13 +192,13 @@
 #defineAT91_PIN_PE31   (PIN_BASE + 0x80 + 31)
 
 static unsigned long at91_pios[] = {
-   AT91_PIOA,
-   AT91_PIOB,
-   AT91_PIOC,
-#ifdef AT91_PIOD
-   AT91_PIOD,
-#ifdef AT91_PIOE
-   AT91_PIOE
+   ATMEL_BASE_PIOA,
+   ATMEL_BASE_PIOB,
+   ATMEL_BASE_PIOC,
+#ifdef ATMEL_BASE_PIOD
+   ATMEL_BASE_PIOD,
+#ifdef ATMEL_BASE_PIOE
+   ATMEL_BASE_PIOE
 #endif
 #endif
 };
@@ -207,7 +207,7 @@ static inline void *pin_to_controller(unsigned pin)
 {
pin -= PIN_BASE;
pin /= 32;
-   return (void *)(AT91_BASE_SYS + at91_pios[pin]);
+   return (void *)(at91_pios[pin]);
 }
 
 static inline unsigned pin_to_mask(unsigned pin)
diff --git a/arch/arm/include/asm/arch-at91/io.h 
b/arch/arm/include/asm/arch-at91/io.h
index 38d185e..d0daa4e 100644
--- a/arch/arm/include/asm/arch-at91/io.h
+++ b/arch/arm/include/asm/arch-at91/io.h
@@ -27,14 +27,14 @@
 
 static inline unsigned int at91_sys_read(unsigned int reg_offset)
 {
-   void *addr = (void *)AT91_BASE_SYS;
+   void *addr = (void *)ATMEL_BASE_SYS;
 
return __raw_readl(addr + reg_offset);
 }
 
 static inline void at91_sys_write(unsigned int reg_offset, unsigned long value)
 {
-   void *addr = (void *)AT91_BASE_SYS;
+   void *addr = (void *)ATMEL_BASE_SYS;
 
__raw_writel(value, addr + reg_offset);
 }
-- 
1.5.6.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 07/15] AT91: fix related at91 system/driver files

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/cpu/arm926ejs/at91/Makefile  |1 +
 arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c |   45 ++---
 arch/arm/cpu/arm926ejs/at91/clock.c   |6 +-
 arch/arm/cpu/arm926ejs/at91/cpu.c |8 ++--
 arch/arm/cpu/arm926ejs/at91/eflash.c  |   14 +++---
 arch/arm/cpu/arm926ejs/at91/reset.c   |2 +-
 arch/arm/cpu/arm926ejs/at91/timer.c   |8 ++--
 7 files changed, 33 insertions(+), 51 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/at91/Makefile 
b/arch/arm/cpu/arm926ejs/at91/Makefile
index be9f6dd..f333753 100644
--- a/arch/arm/cpu/arm926ejs/at91/Makefile
+++ b/arch/arm/cpu/arm926ejs/at91/Makefile
@@ -28,6 +28,7 @@ LIB   = $(obj)lib$(SOC).o
 COBJS-$(CONFIG_AT91CAP9)   += at91cap9_devices.o
 COBJS-$(CONFIG_AT91SAM9260)+= at91sam9260_devices.o
 COBJS-$(CONFIG_AT91SAM9G20)+= at91sam9260_devices.o
+COBJS-$(CONFIG_AT91SAM9XE) += at91sam9260_devices.o
 COBJS-$(CONFIG_AT91SAM9261)+= at91sam9261_devices.o
 COBJS-$(CONFIG_AT91SAM9G10)+= at91sam9261_devices.o
 COBJS-$(CONFIG_AT91SAM9263)+= at91sam9263_devices.o
diff --git a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c 
b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
index c1822b7..54e8ee9 100644
--- a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
+++ b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
@@ -45,70 +45,51 @@
 
 void at91_serial0_hw_init(void)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTB, 4, 1);/* TXD0 */
at91_set_a_periph(AT91_PIO_PORTB, 5, PUP);  /* RXD0 */
-   writel(1  AT91SAM9260_ID_US0, pmc-pcer);
+   writel(1  ATMEL_ID_USART0, pmc-pcer);
 }
 
 void at91_serial1_hw_init(void)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTB, 6, 1);/* TXD1 */
at91_set_a_periph(AT91_PIO_PORTB, 7, PUP);  /* RXD1 */
-   writel(1  AT91SAM9260_ID_US1, pmc-pcer);
+   writel(1  ATMEL_ID_USART1, pmc-pcer);
 }
 
 void at91_serial2_hw_init(void)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTB, 8, 1);/* TXD2 */
at91_set_a_periph(AT91_PIO_PORTB, 9, PUP);  /* RXD2 */
-   writel(1  AT91SAM9260_ID_US2, pmc-pcer);
+   writel(1  ATMEL_ID_USART2, pmc-pcer);
 }
 
-void at91_serial3_hw_init(void)
+void at91_seriald_hw_init(void)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTB, 14, PUP); /* DRXD */
at91_set_a_periph(AT91_PIO_PORTB, 15, 1);   /* DTXD */
-   writel(1  AT91_ID_SYS, pmc-pcer);
-}
-
-void at91_serial_hw_init(void)
-{
-#ifdef CONFIG_USART0
-   at91_serial0_hw_init();
-#endif
-
-#ifdef CONFIG_USART1
-   at91_serial1_hw_init();
-#endif
-
-#ifdef CONFIG_USART2
-   at91_serial2_hw_init();
-#endif
-
-#ifdef CONFIG_USART3   /* DBGU */
-   at91_serial3_hw_init();
-#endif
+   writel(1  ATMEL_ID_SYS, pmc-pcer);
 }
 
 #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI)
 void at91_spi0_hw_init(unsigned long cs_mask)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTA, 0, PUP);  /* SPI0_MISO */
at91_set_a_periph(AT91_PIO_PORTA, 1, PUP);  /* SPI0_MOSI */
at91_set_a_periph(AT91_PIO_PORTA, 2, PUP);  /* SPI0_SPCK */
 
/* Enable clock */
-   writel(1  AT91SAM9260_ID_SPI0, pmc-pcer);
+   writel(1  ATMEL_ID_SPI0, pmc-pcer);
 
if (cs_mask  (1  0)) {
at91_set_a_periph(AT91_PIO_PORTA, 3, 1);
@@ -138,14 +119,14 @@ void at91_spi0_hw_init(unsigned long cs_mask)
 
 void at91_spi1_hw_init(unsigned long cs_mask)
 {
-   at91_pmc_t  *pmc= (at91_pmc_t *) AT91_PMC_BASE;
+   at91_pmc_t  *pmc= (at91_pmc_t *) ATMEL_BASE_PMC;
 
at91_set_a_periph(AT91_PIO_PORTB, 0, PUP);  /* SPI1_MISO */
at91_set_a_periph(AT91_PIO_PORTB, 1, PUP);  /* SPI1_MOSI */
at91_set_a_periph(AT91_PIO_PORTB, 2, PUP);  /* SPI1_SPCK */
 
/* Enable clock */
-   writel(1  AT91SAM9260_ID_SPI1, pmc-pcer);
+   writel(1  ATMEL_ID_SPI1, pmc-pcer);
 
if (cs_mask  (1  0)) {
at91_set_a_periph(AT91_PIO_PORTB, 3, 1);
diff --git a/arch/arm/cpu/arm926ejs/at91/clock.c 
b/arch/arm/cpu/arm926ejs/at91/clock.c
index 7a10a77..06c63e5 100644
--- 

[U-Boot] [PATCH 08/15] AT91: fix related at91 driver files

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 drivers/gpio/at91_gpio.c|   52 +++---
 drivers/rtc/at91sam9_rtt.c  |   12 
 drivers/usb/host/ohci-at91.c|   16 ++--
 drivers/watchdog/at91sam9_wdt.c |4 +-
 4 files changed, 47 insertions(+), 37 deletions(-)

diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c
index c0a97bc..1631687 100644
--- a/drivers/gpio/at91_gpio.c
+++ b/drivers/gpio/at91_gpio.c
@@ -24,6 +24,16 @@
  * MA 02111-1307 USA
  */
 
+/*
+ * WARNING:
+ *
+ * As the code is right now, it expects all PIO ports A,B,C,...
+ * to be evenly spaced in the memory map:
+ * ATMEL_BASE_PIOA + port * sizeof at91pio_t
+ * This might not necessaryly be true in future Atmel SoCs.
+ * This code should be fixed to use a pointer array to the ports.
+ */
+
 #include config.h
 #include common.h
 #include asm/sizes.h
@@ -33,10 +43,10 @@
 
 int at91_set_pio_pullup(unsigned port, unsigned pin, int use_pullup)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
if (use_pullup)
writel(1  pin, pio-port[port].puer);
@@ -52,10 +62,10 @@ int at91_set_pio_pullup(unsigned port, unsigned pin, int 
use_pullup)
  */
 int at91_set_pio_periph(unsigned port, unsigned pin, int use_pullup)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
writel(mask, pio-port[port].idr);
at91_set_pio_pullup(port, pin, use_pullup);
@@ -69,10 +79,10 @@ int at91_set_pio_periph(unsigned port, unsigned pin, int 
use_pullup)
  */
 int at91_set_a_periph(unsigned port, unsigned pin, int use_pullup)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
writel(mask, pio-port[port].idr);
at91_set_pio_pullup(port, pin, use_pullup);
@@ -87,10 +97,10 @@ int at91_set_a_periph(unsigned port, unsigned pin, int 
use_pullup)
  */
 int at91_set_b_periph(unsigned port, unsigned pin, int use_pullup)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
writel(mask, pio-port[port].idr);
at91_set_pio_pullup(port, pin, use_pullup);
@@ -106,10 +116,10 @@ int at91_set_b_periph(unsigned port, unsigned pin, int 
use_pullup)
  */
 int at91_set_pio_input(unsigned port, u32 pin, int use_pullup)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
writel(mask, pio-port[port].idr);
at91_set_pio_pullup(port, pin, use_pullup);
@@ -125,10 +135,10 @@ int at91_set_pio_input(unsigned port, u32 pin, int 
use_pullup)
  */
 int at91_set_pio_output(unsigned port, u32 pin, int value)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
writel(mask, pio-port[port].idr);
writel(mask, pio-port[port].pudr);
@@ -147,10 +157,10 @@ int at91_set_pio_output(unsigned port, u32 pin, int value)
  */
 int at91_set_pio_deglitch(unsigned port, unsigned pin, int is_on)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) ATMEL_BASE_PIOA;
u32 mask;
 
-   if ((port  AT91_PIO_PORTS)  (pin  32)) {
+   if ((port  ATMEL_PIO_PORTS)  (pin  32)) {
mask = 1  pin;
if (is_on)
writel(mask, pio-port[port].ifer);
@@ -166,10 +176,10 @@ int at91_set_pio_deglitch(unsigned port, unsigned pin, 
int is_on)
  */
 int at91_set_pio_multi_drive(unsigned port, unsigned pin, int is_on)
 {
-   at91_pio_t  *pio= (at91_pio_t *) AT91_PIO_BASE;
+   at91_pio_t  *pio = (at91_pio_t *) 

[U-Boot] [PATCH 10/15] AT91: cleanup at91sam9260_matrix.h to struct SoC access

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 .../arm/include/asm/arch-at91/at91sam9260_matrix.h |  102 +---
 1 files changed, 45 insertions(+), 57 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91sam9260_matrix.h 
b/arch/arm/include/asm/arch-at91/at91sam9260_matrix.h
index f8b023d..be28ad1 100644
--- a/arch/arm/include/asm/arch-at91/at91sam9260_matrix.h
+++ b/arch/arm/include/asm/arch-at91/at91sam9260_matrix.h
@@ -15,66 +15,54 @@
 #ifndef AT91SAM9260_MATRIX_H
 #define AT91SAM9260_MATRIX_H
 
-#define AT91_MATRIX_MCFG0  (AT91_MATRIX + 0x00)/* Master Configuration 
Register 0 */
-#define AT91_MATRIX_MCFG1  (AT91_MATRIX + 0x04)/* Master Configuration 
Register 1 */
-#define AT91_MATRIX_MCFG2  (AT91_MATRIX + 0x08)/* Master Configuration 
Register 2 */
-#define AT91_MATRIX_MCFG3  (AT91_MATRIX + 0x0C)/* Master Configuration 
Register 3 */
-#define AT91_MATRIX_MCFG4  (AT91_MATRIX + 0x10)/* Master Configuration 
Register 4 */
-#define AT91_MATRIX_MCFG5  (AT91_MATRIX + 0x14)/* Master Configuration 
Register 5 */
-#defineAT91_MATRIX_ULBT(7  0)/* 
Undefined Length Burst Type */
-#defineAT91_MATRIX_ULBT_INFINITE   (0  0)
-#defineAT91_MATRIX_ULBT_SINGLE (1  0)
-#defineAT91_MATRIX_ULBT_FOUR   (2  0)
-#defineAT91_MATRIX_ULBT_EIGHT  (3  0)
-#defineAT91_MATRIX_ULBT_SIXTEEN(4  0)
+#ifndef __ASSEMBLY__
 
-#define AT91_MATRIX_SCFG0  (AT91_MATRIX + 0x40)/* Slave Configuration 
Register 0 */
-#define AT91_MATRIX_SCFG1  (AT91_MATRIX + 0x44)/* Slave Configuration 
Register 1 */
-#define AT91_MATRIX_SCFG2  (AT91_MATRIX + 0x48)/* Slave Configuration 
Register 2 */
-#define AT91_MATRIX_SCFG3  (AT91_MATRIX + 0x4C)/* Slave Configuration 
Register 3 */
-#define AT91_MATRIX_SCFG4  (AT91_MATRIX + 0x50)/* Slave Configuration 
Register 4 */
-#defineAT91_MATRIX_SLOT_CYCLE  (0xff   0)/* 
Maximum Number of Allowed Cycles for a Burst */
-#defineAT91_MATRIX_DEFMSTR_TYPE(3 16)/* 
Default Master Type */
-#defineAT91_MATRIX_DEFMSTR_TYPE_NONE   (0  16)
-#defineAT91_MATRIX_DEFMSTR_TYPE_LAST   (1  16)
-#defineAT91_MATRIX_DEFMSTR_TYPE_FIXED  (2  16)
-#defineAT91_MATRIX_FIXED_DEFMSTR   (7 18)/* 
Fixed Index of Default Master */
-#defineAT91_MATRIX_ARBT(3 24)/* 
Arbitration Type */
-#defineAT91_MATRIX_ARBT_ROUND_ROBIN(0  24)
-#defineAT91_MATRIX_ARBT_FIXED_PRIORITY (1  24)
+/*
+ * This struct defines access to the matrix' maximum of
+ * 16 masters and 16 slaves.
+ * However, on the AT91SAM9260/9G20/9XE there exist only
+ * 6 Masters and 5 Slaves!
+ */
+struct at91_matrix {
+   u32 mcfg[16];   /* Master Configuration Registers */
+   u32 scfg[16];   /* Slave Configuration Registers */
+   u32 pras[16][2];/* Priority Assignment Slave Registers */
+   u32 mrcr;   /* Master Remap Control Register */
+   u32 filler[0x06];
+   u32 ebicsa; /* EBI Chip Select Assignment Register */
+};
+
+#endif /* __ASSEMBLY__ */
+
+#define AT91_MATRIX_ULBT_INFINITE  (0  0)
+#define AT91_MATRIX_ULBT_SINGLE(1  0)
+#define AT91_MATRIX_ULBT_FOUR  (2  0)
+#define AT91_MATRIX_ULBT_EIGHT (3  0)
+#define AT91_MATRIX_ULBT_SIXTEEN   (4  0)
+
+#define AT91_MATRIX_DEFMSTR_TYPE_NONE  (0  16)
+#define AT91_MATRIX_DEFMSTR_TYPE_LAST  (1  16)
+#define AT91_MATRIX_DEFMSTR_TYPE_FIXED (2  16)
+#define AT91_MATRIX_FIXED_DEFMSTR_SHIFT18
+#define AT91_MATRIX_ARBT_ROUND_ROBIN   (0  24)
+#define AT91_MATRIX_ARBT_FIXED_PRIORITY(1  24)
 
-#define AT91_MATRIX_PRAS0  (AT91_MATRIX + 0x80)/* Priority Register A 
for Slave 0 */
-#define AT91_MATRIX_PRAS1  (AT91_MATRIX + 0x88)/* Priority Register A 
for Slave 1 */
-#define AT91_MATRIX_PRAS2  (AT91_MATRIX + 0x90)/* Priority Register A 
for Slave 2 */
-#define AT91_MATRIX_PRAS3  (AT91_MATRIX + 0x98)/* Priority Register A 
for Slave 3 */
-#define AT91_MATRIX_PRAS4  (AT91_MATRIX + 0xA0)/* Priority Register A 
for Slave 4 */
-#defineAT91_MATRIX_M0PR(3  0)/* 
Master 0 Priority */
-#defineAT91_MATRIX_M1PR(3  4)/* 
Master 1 Priority */
-#defineAT91_MATRIX_M2PR(3  8)/* 
Master 2 Priority */
-#defineAT91_MATRIX_M3PR(3  12)   /* 
Master 3 Priority */
-#defineAT91_MATRIX_M4PR(3  16)   /* 
Master 4 Priority */
-#define

[U-Boot] [PATCH 11/15] AT91: change includes from asm/arch/io.h to asm/io.h

2011-02-18 Thread Reinhard Meyer
and remove the now unused asm/arch-at91/io.h

Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c |2 +-
 arch/arm/cpu/arm926ejs/at91/clock.c   |2 +-
 arch/arm/cpu/arm926ejs/at91/cpu.c |3 +-
 arch/arm/cpu/arm926ejs/at91/eflash.c  |2 +-
 arch/arm/cpu/arm926ejs/at91/led.c |2 +-
 arch/arm/cpu/arm926ejs/at91/reset.c   |2 +-
 arch/arm/cpu/arm926ejs/at91/timer.c   |2 +-
 arch/arm/include/asm/arch-at91/io.h   |   43 -
 drivers/gpio/at91_gpio.c  |2 +-
 drivers/rtc/at91sam9_rtt.c|2 +-
 drivers/usb/host/ohci-at91.c  |2 +-
 11 files changed, 10 insertions(+), 54 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-at91/io.h

diff --git a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c 
b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
index 54e8ee9..6bdc75c 100644
--- a/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
+++ b/arch/arm/cpu/arm926ejs/at91/at91sam9260_devices.c
@@ -23,10 +23,10 @@
  */
 
 #include common.h
+#include asm/io.h
 #include asm/arch/at91_common.h
 #include asm/arch/at91_pmc.h
 #include asm/arch/gpio.h
-#include asm/arch/io.h
 
 /*
  * if CONFIG_AT91_GPIO_PULLUP ist set, keep pullups on on all
diff --git a/arch/arm/cpu/arm926ejs/at91/clock.c 
b/arch/arm/cpu/arm926ejs/at91/clock.c
index 06c63e5..608af2c 100644
--- a/arch/arm/cpu/arm926ejs/at91/clock.c
+++ b/arch/arm/cpu/arm926ejs/at91/clock.c
@@ -12,8 +12,8 @@
  */
 
 #include common.h
+#include asm/io.h
 #include asm/arch/hardware.h
-#include asm/arch/io.h
 #include asm/arch/at91_pmc.h
 #include asm/arch/clk.h
 
diff --git a/arch/arm/cpu/arm926ejs/at91/cpu.c 
b/arch/arm/cpu/arm926ejs/at91/cpu.c
index 4c8664d..c47fb31 100644
--- a/arch/arm/cpu/arm926ejs/at91/cpu.c
+++ b/arch/arm/cpu/arm926ejs/at91/cpu.c
@@ -24,13 +24,12 @@
  */
 
 #include common.h
-
+#include asm/io.h
 #include asm/arch/hardware.h
 #include asm/arch/at91_pmc.h
 #include asm/arch/at91_pit.h
 #include asm/arch/at91_gpbr.h
 #include asm/arch/clk.h
-#include asm/arch/io.h
 
 #ifndef CONFIG_SYS_AT91_MAIN_CLOCK
 #define CONFIG_SYS_AT91_MAIN_CLOCK 0
diff --git a/arch/arm/cpu/arm926ejs/at91/eflash.c 
b/arch/arm/cpu/arm926ejs/at91/eflash.c
index a6e0501..b0c1e1e 100644
--- a/arch/arm/cpu/arm926ejs/at91/eflash.c
+++ b/arch/arm/cpu/arm926ejs/at91/eflash.c
@@ -60,8 +60,8 @@
  * do a read-modify-write for partially programmed pages
  */
 #include common.h
+#include asm/io.h
 #include asm/arch/hardware.h
-#include asm/arch/io.h
 #include asm/arch/at91_common.h
 #include asm/arch/at91_eefc.h
 #include asm/arch/at91_dbu.h
diff --git a/arch/arm/cpu/arm926ejs/at91/led.c 
b/arch/arm/cpu/arm926ejs/at91/led.c
index 0a315c4..6bcfa7f 100644
--- a/arch/arm/cpu/arm926ejs/at91/led.c
+++ b/arch/arm/cpu/arm926ejs/at91/led.c
@@ -23,10 +23,10 @@
  */
 
 #include common.h
+#include asm/io.h
 #include asm/arch/at91_pmc.h
 #include asm/arch/at91_pio.h
 #include asm/arch/gpio.h
-#include asm/arch/io.h
 
 #ifdef CONFIG_RED_LED
 void red_LED_on(void)
diff --git a/arch/arm/cpu/arm926ejs/at91/reset.c 
b/arch/arm/cpu/arm926ejs/at91/reset.c
index 1f918b0..023719a 100644
--- a/arch/arm/cpu/arm926ejs/at91/reset.c
+++ b/arch/arm/cpu/arm926ejs/at91/reset.c
@@ -23,9 +23,9 @@
  */
 
 #include common.h
+#include asm/io.h
 #include asm/arch/hardware.h
 #include asm/arch/at91_rstc.h
-#include asm/arch/io.h
 
 /* Reset the cpu by telling the reset controller to do so */
 void reset_cpu(ulong ignored)
diff --git a/arch/arm/cpu/arm926ejs/at91/timer.c 
b/arch/arm/cpu/arm926ejs/at91/timer.c
index 2634418..87a5b63 100644
--- a/arch/arm/cpu/arm926ejs/at91/timer.c
+++ b/arch/arm/cpu/arm926ejs/at91/timer.c
@@ -23,11 +23,11 @@
  */
 
 #include common.h
+#include asm/io.h
 #include asm/arch/hardware.h
 #include asm/arch/at91_pit.h
 #include asm/arch/at91_pmc.h
 #include asm/arch/clk.h
-#include asm/arch/io.h
 #include div64.h
 
 #if !defined(CONFIG_AT91FAMILY)
diff --git a/arch/arm/include/asm/arch-at91/io.h 
b/arch/arm/include/asm/arch-at91/io.h
deleted file mode 100644
index d0daa4e..000
--- a/arch/arm/include/asm/arch-at91/io.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * [origin: Linux kernel include/asm-arm/arch-at91/io.h]
- *
- *  Copyright (C) 2003 SAN People
- *
- * 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 

[U-Boot] [PATCH 12/15] ATMEL: fix dataflash (dirty)

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 drivers/spi/atmel_dataflash_spi.c |   94 ++--
 include/dataflash.h   |1 -
 2 files changed, 57 insertions(+), 38 deletions(-)

diff --git a/drivers/spi/atmel_dataflash_spi.c 
b/drivers/spi/atmel_dataflash_spi.c
index 4a5c4aa..6e632cc 100644
--- a/drivers/spi/atmel_dataflash_spi.c
+++ b/drivers/spi/atmel_dataflash_spi.c
@@ -21,13 +21,21 @@
 
 #include common.h
 #ifndef CONFIG_AT91_LEGACY
-#define CONFIG_AT91_LEGACY
-#warning Please update to use C structur SoC access !
+# define CONFIG_AT91_LEGACY
+# warning Please update to use C structur SoC access !
 #endif
-#include asm/arch/hardware.h
+#include common.h
+#include spi.h
+#include malloc.h
+
+#include asm/io.h
+
 #include asm/arch/clk.h
+#include asm/arch/hardware.h
+
+#include atmel_spi.h
+
 #include asm/arch/gpio.h
-#include asm/arch/io.h
 #include asm/arch/at91_pio.h
 #include asm/arch/at91_spi.h
 
@@ -41,18 +49,18 @@
 void AT91F_SpiInit(void)
 {
/* Reset the SPI */
-   writel(AT91_SPI_SWRST, AT91_BASE_SPI + AT91_SPI_CR);
+   writel(AT91_SPI_SWRST, ATMEL_BASE_SPI0 + AT91_SPI_CR);
 
/* Configure SPI in Master Mode with No CS selected !!! */
writel(AT91_SPI_MSTR | AT91_SPI_MODFDIS | AT91_SPI_PCS,
-  AT91_BASE_SPI + AT91_SPI_MR);
+  ATMEL_BASE_SPI0 + AT91_SPI_MR);
 
/* Configure CS0 */
writel(AT91_SPI_NCPHA |
   (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
   (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
   ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
-  AT91_BASE_SPI + AT91_SPI_CSR(0));
+  ATMEL_BASE_SPI0 + AT91_SPI_CSR(0));
 
 #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1
/* Configure CS1 */
@@ -60,7 +68,7 @@ void AT91F_SpiInit(void)
   (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
   (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
   ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
-  AT91_BASE_SPI + AT91_SPI_CSR(1));
+  ATMEL_BASE_SPI0 + AT91_SPI_CSR(1));
 #endif
 #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS2
/* Configure CS2 */
@@ -68,7 +76,7 @@ void AT91F_SpiInit(void)
   (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
   (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
   ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
-  AT91_BASE_SPI + AT91_SPI_CSR(2));
+  ATMEL_BASE_SPI0 + AT91_SPI_CSR(2));
 #endif
 #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3
/* Configure CS3 */
@@ -76,21 +84,22 @@ void AT91F_SpiInit(void)
   (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
   (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
   ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
-  AT91_BASE_SPI + AT91_SPI_CSR(3));
+  ATMEL_BASE_SPI0 + AT91_SPI_CSR(3));
 #endif
 
/* SPI_Enable */
-   writel(AT91_SPI_SPIEN, AT91_BASE_SPI + AT91_SPI_CR);
+   writel(AT91_SPI_SPIEN, ATMEL_BASE_SPI0 + AT91_SPI_CR);
 
-   while (!(readl(AT91_BASE_SPI + AT91_SPI_SR)  AT91_SPI_SPIENS));
+   while (!(readl(ATMEL_BASE_SPI0 + AT91_SPI_SR)  AT91_SPI_SPIENS))
+   ;
 
/*
 * Add tempo to get SPI in a safe state.
 * Should not be needed for new silicon (Rev B)
 */
udelay(50);
-   readl(AT91_BASE_SPI + AT91_SPI_SR);
-   readl(AT91_BASE_SPI + AT91_SPI_RDR);
+   readl(ATMEL_BASE_SPI0 + AT91_SPI_SR);
+   readl(ATMEL_BASE_SPI0 + AT91_SPI_RDR);
 
 }
 
@@ -100,33 +109,33 @@ void AT91F_SpiEnable(int cs)
 
switch (cs) {
case 0: /* Configure SPI CS0 for Serial DataFlash AT45DBxx */
-   mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
+   mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
mode = 0xFFF0;
writel(mode | ((AT91_SPI_PCS0_DATAFLASH_CARD16)  
AT91_SPI_PCS),
-  AT91_BASE_SPI + AT91_SPI_MR);
+  ATMEL_BASE_SPI0 + AT91_SPI_MR);
break;
case 1: /* Configure SPI CS1 for Serial DataFlash AT45DBxx */
-   mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
+   mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
mode = 0xFFF0;
writel(mode | ((AT91_SPI_PCS1_DATAFLASH_CARD16)  
AT91_SPI_PCS),
-  AT91_BASE_SPI + AT91_SPI_MR);
+  ATMEL_BASE_SPI0 + AT91_SPI_MR);
break;
case 2: /* Configure SPI CS2 for Serial DataFlash AT45DBxx */
-   mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
+   mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
mode = 0xFFF0;
writel(mode | ((AT91_SPI_PCS2_DATAFLASH_CARD16)  
AT91_SPI_PCS),
-  AT91_BASE_SPI + AT91_SPI_MR);
+  ATMEL_BASE_SPI0 + AT91_SPI_MR);
break;
case 3:
-   mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
+   

[U-Boot] [PATCH 09/15] ATMEL: fix related common atmel driver files

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 drivers/mmc/gen_atmel_mci.c  |2 +-
 drivers/net/macb.c   |   14 --
 drivers/serial/atmel_usart.c |   28 +++-
 drivers/spi/atmel_spi.c  |   16 
 4 files changed, 24 insertions(+), 36 deletions(-)

diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c
index 2984d64..c28c469 100644
--- a/drivers/mmc/gen_atmel_mci.c
+++ b/drivers/mmc/gen_atmel_mci.c
@@ -33,7 +33,7 @@
 #include asm/errno.h
 #include asm/byteorder.h
 #include asm/arch/clk.h
-#include asm/arch/memory-map.h
+#include asm/arch/hardware.h
 #include atmel_mci.h
 
 #ifndef CONFIG_SYS_MMC_CLK_OD
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index acb8d20..72ea1fc 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -469,17 +469,19 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)
 
/* choose RMII or MII mode. This depends on the board */
 #ifdef CONFIG_RMII
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
-   defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45)
+#ifdefined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
+   defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
+   defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
+   defined(CONFIG_AT91SAM9XE)
macb_writel(macb, USRIO, MACB_BIT(RMII) | MACB_BIT(CLKEN));
 #else
macb_writel(macb, USRIO, 0);
 #endif
 #else
-#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
-defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
-   defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45)
+#ifdefined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
+   defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G20) || \
+   defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
+   defined(CONFIG_AT91SAM9XE)
macb_writel(macb, USRIO, MACB_BIT(CLKEN));
 #else
macb_writel(macb, USRIO, MACB_BIT(MII));
diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c
index bfa1f3a..e326b2b 100644
--- a/drivers/serial/atmel_usart.c
+++ b/drivers/serial/atmel_usart.c
@@ -23,21 +23,7 @@
 
 #include asm/io.h
 #include asm/arch/clk.h
-#include asm/arch/memory-map.h
-
-#if defined(CONFIG_USART0)
-# define USART_ID  0
-# define USART_BASEUSART0_BASE
-#elif defined(CONFIG_USART1)
-# define USART_ID  1
-# define USART_BASEUSART1_BASE
-#elif defined(CONFIG_USART2)
-# define USART_ID  2
-# define USART_BASEUSART2_BASE
-#elif defined(CONFIG_USART3)
-# define USART_ID  3
-# define USART_BASEUSART3_BASE
-#endif
+#include asm/arch/hardware.h
 
 #include atmel_usart.h
 
@@ -45,7 +31,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 void serial_setbrg(void)
 {
-   atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
+   atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
unsigned long divisor;
unsigned long usart_hz;
 
@@ -54,14 +40,14 @@ void serial_setbrg(void)
 * Baud Rate = --
 *16 * CD
 */
-   usart_hz = get_usart_clk_rate(USART_ID);
+   usart_hz = get_usart_clk_rate(CONFIG_USART_ID);
divisor = (usart_hz / 16 + gd-baudrate / 2) / gd-baudrate;
writel(USART3_BF(CD, divisor), usart-brgr);
 }
 
 int serial_init(void)
 {
-   atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
+   atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
 
writel(USART3_BIT(RSTRX) | USART3_BIT(RSTTX), usart-cr);
 
@@ -80,7 +66,7 @@ int serial_init(void)
 
 void serial_putc(char c)
 {
-   atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
+   atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
 
if (c == '\n')
serial_putc('\r');
@@ -97,7 +83,7 @@ void serial_puts(const char *s)
 
 int serial_getc(void)
 {
-   atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
+   atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
 
while (!(readl(usart-csr)  USART3_BIT(RXRDY)))
 WATCHDOG_RESET();
@@ -106,6 +92,6 @@ int serial_getc(void)
 
 int serial_tstc(void)
 {
-   atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
+   atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
return (readl(usart-csr)  USART3_BIT(RXRDY)) != 0;
 }
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index d0de931..33e38b6 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -26,7 +26,7 @@
 #include asm/io.h
 
 #include asm/arch/clk.h
-#include asm/arch/memory-map.h
+#include asm/arch/hardware.h
 
 #include atmel_spi.h
 
@@ -48,21 +48,21 @@ struct spi_slave *spi_setup_slave(unsigned int bus, 
unsigned int cs,
 
switch (bus) {
case 0:
-   regs = (void 

[U-Boot] [PATCH 14/15] AT91: fix at91sam_wdt.c to reworked header files

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 drivers/watchdog/at91sam9_wdt.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
index 6254765..80dad07 100644
--- a/drivers/watchdog/at91sam9_wdt.c
+++ b/drivers/watchdog/at91sam9_wdt.c
@@ -21,7 +21,7 @@
 #include common.h
 #include watchdog.h
 #include asm/arch/hardware.h
-#include asm/arch/io.h
+#include asm/io.h
 #include asm/arch/at91_wdt.h
 
 /*
-- 
1.5.6.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 13/15] AT91: remove LEGACY from at91_rstc.h

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/include/asm/arch-at91/at91_rstc.h |   25 -
 1 files changed, 0 insertions(+), 25 deletions(-)

diff --git a/arch/arm/include/asm/arch-at91/at91_rstc.h 
b/arch/arm/include/asm/arch-at91/at91_rstc.h
index 9ff2c5b..510eed5 100644
--- a/arch/arm/include/asm/arch-at91/at91_rstc.h
+++ b/arch/arm/include/asm/arch-at91/at91_rstc.h
@@ -41,29 +41,4 @@ typedef struct at91_rstc {
 
 #define AT91_RSTC_SR_NRSTL 0x0001
 
-#ifdef CONFIG_AT91_LEGACY
-
-#define AT91_RSTC_CR   (AT91_RSTC + 0x00)  /* Reset Controller 
Control Register */
-#defineAT91_RSTC_PROCRST   (1  0)/* 
Processor Reset */
-#defineAT91_RSTC_PERRST(1  2)/* 
Peripheral Reset */
-#defineAT91_RSTC_EXTRST(1  3)/* 
External Reset */
-
-#define AT91_RSTC_SR   (AT91_RSTC + 0x04)  /* Reset Controller 
Status Register */
-#defineAT91_RSTC_URSTS (1  0)/* User 
Reset Status */
-#defineAT91_RSTC_RSTTYP(7  8)/* 
Reset Type */
-#defineAT91_RSTC_RSTTYP_GENERAL(0  8)
-#defineAT91_RSTC_RSTTYP_WAKEUP (1  8)
-#defineAT91_RSTC_RSTTYP_WATCHDOG   (2  8)
-#defineAT91_RSTC_RSTTYP_SOFTWARE   (3  8)
-#defineAT91_RSTC_RSTTYP_USER   (4  8)
-#defineAT91_RSTC_NRSTL (1  16)   /* NRST 
Pin Level */
-#defineAT91_RSTC_SRCMP (1  17)   /* 
Software Reset Command in Progress */
-
-#define AT91_RSTC_MR   (AT91_RSTC + 0x08)  /* Reset Controller 
Mode Register */
-#defineAT91_RSTC_URSTEN(1  0)/* User 
Reset Enable */
-#defineAT91_RSTC_URSTIEN   (1  4)/* User 
Reset Interrupt Enable */
-#defineAT91_RSTC_ERSTL (0xf  8)  /* 
External Reset Length */
-
-#endif /* CONFIG_AT91_LEGACY */
-
 #endif
-- 
1.5.6.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 15/15] AT91: fix timer.c - remove reset_timer()

2011-02-18 Thread Reinhard Meyer
Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
---
 arch/arm/cpu/arm926ejs/at91/timer.c |   27 +++
 1 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/at91/timer.c 
b/arch/arm/cpu/arm926ejs/at91/timer.c
index 87a5b63..a087687 100644
--- a/arch/arm/cpu/arm926ejs/at91/timer.c
+++ b/arch/arm/cpu/arm926ejs/at91/timer.c
@@ -103,33 +103,28 @@ unsigned long long get_ticks(void)
 
 void __udelay(unsigned long usec)
 {
-   unsigned long long tmp;
+   unsigned long long start;
ulong tmo;
 
-   tmo = usec_to_tick(usec);
-   tmp = get_ticks() + tmo;/* get current timestamp */
-
-   while (get_ticks()  tmp)   /* loop till event */
-   ;
+   start = get_ticks();/* get current timestamp */
+   tmo = usec_to_tick(usec);   /* convert usecs to ticks */
+   while ((get_ticks() - start)  tmo)
+   ;   /* loop till time has passed */
 }
 
 /*
- * reset_timer() and get_timer(base) are a pair of functions that are used by
- * some timeout/sleep mechanisms in u-boot.
+ * get_timer(base) can be used to check for timeouts or
+ * to measure elasped time relative to an event:
  *
- * reset_timer() marks the current time as epoch and
- * get_timer(base) works relative to that epoch.
+ * ulong start_time = get_timer(0) sets start_time to the current
+ * time value.
+ * get_timer(start_time) returns the time elapsed since then.
  *
  * The time is used in CONFIG_SYS_HZ units!
  */
-void reset_timer(void)
-{
-   gd-timer_reset_value = get_ticks();
-}
-
 ulong get_timer(ulong base)
 {
-   return tick_to_time(get_ticks() - gd-timer_reset_value) - base;
+   return tick_to_time(get_ticks()) - base;
 }
 
 /*
-- 
1.5.6.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 05/15] AT91: cleanup hardware.h, remove memory-map.h

2011-02-18 Thread Andreas Bießmann
Am 18.02.2011 13:50, schrieb Reinhard Meyer:
 Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
 ---
  arch/arm/include/asm/arch-at91/hardware.h   |   96 
 +--
  arch/arm/include/asm/arch-at91/memory-map.h |   36 --
  2 files changed, 32 insertions(+), 100 deletions(-)
  delete mode 100644 arch/arm/include/asm/arch-at91/memory-map.h
 
 diff --git a/arch/arm/include/asm/arch-at91/hardware.h 
 b/arch/arm/include/asm/arch-at91/hardware.h
 index 6b44d61..c69c451 100644
 --- a/arch/arm/include/asm/arch-at91/hardware.h
 +++ b/arch/arm/include/asm/arch-at91/hardware.h
 @@ -1,80 +1,48 @@
  /*
 - * [origin: Linux kernel include/asm-arm/arch-at91/hardware.h]
 + * (C) Copyright 2007-2008
 + * Stelian Pop stelian@leadtechdesign.com
 + * Lead Tech Design www.leadtechdesign.com
   *
 - *  Copyright (C) 2003 SAN People
 - *  Copyright (C) 2003 ATMEL
 + * 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 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_HARDWARE_H
 -#define __ASM_ARCH_HARDWARE_H
 -
 -#include asm/sizes.h
 +#ifndef __ASM_ARM_ARCH_HARDWARE_H__
 +#define __ASM_ARM_ARCH_HARDWARE_H__
  
  #if defined(CONFIG_AT91RM9200)
 -#include asm/arch-at91/at91rm9200.h
 -#define AT91_PMC_UHP AT91RM9200_PMC_UHP
 -#elif defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9G20)
 -#include asm/arch/at91sam9260.h
 -#define AT91_BASE_MCIAT91SAM9260_BASE_MCI
 -#define AT91_BASE_SPIAT91SAM9260_BASE_SPI0
 -#define AT91_BASE_SPI1   AT91SAM9260_BASE_SPI1
 -#define AT91_ID_UHP  AT91SAM9260_ID_UHP
 -#define AT91_PMC_UHP AT91SAM926x_PMC_UHP
 +# include asm/arch/at91rm9200.h
 +#elif defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9G20) || \
 + defined(CONFIG_AT91SAM9XE)
 +# include asm/arch/at91sam9260.h
  #elif defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
 -#include asm/arch/at91sam9261.h
 -#define AT91_BASE_SPIAT91SAM9261_BASE_SPI0
 -#define AT91_ID_UHP  AT91SAM9261_ID_UHP
 -#define AT91_PMC_UHP AT91SAM926x_PMC_UHP
 +# include asm/arch/at91sam9261.h
  #elif defined(CONFIG_AT91SAM9263)
 -#include asm/arch/at91sam9263.h
 -#define AT91_BASE_SPIAT91SAM9263_BASE_SPI0
 -#define AT91_ID_UHP  AT91SAM9263_ID_UHP
 -#define AT91_PMC_UHP AT91SAM926x_PMC_UHP
 +# include asm/arch/at91sam9263.h
  #elif defined(CONFIG_AT91SAM9RL)
 -#include asm/arch/at91sam9rl.h
 -#define AT91_BASE_SPIAT91SAM9RL_BASE_SPI
 -#define AT91_ID_UHP  AT91SAM9RL_ID_UHP
 +# include asm/arch/at91sam9rl.h
  #elif defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45)
 -#include asm/arch/at91sam9g45.h
 -#define AT91_BASE_EMAC  AT91SAM9G45_BASE_EMAC
 -#define AT91_BASE_SPI   AT91SAM9G45_BASE_SPI0
 -#define AT91_ID_UHP AT91SAM9G45_ID_UHPHS
 -#define AT91_PMC_UHPAT91SAM926x_PMC_UHP
 +# include asm/arch/at91sam9g45.h
  #elif defined(CONFIG_AT91CAP9)
 -#include asm/arch/at91cap9.h
 -#define AT91_BASE_SPIAT91CAP9_BASE_SPI0
 -#define AT91_ID_UHP  AT91CAP9_ID_UHP
 -#define AT91_PMC_UHP AT91CAP9_PMC_UHP
 +# include asm/arch/at91cap9.h
  #elif defined(CONFIG_AT91X40)
 -#include asm/arch/at91x40.h
 +# include asm/arch/at91x40.h
  #else
 -#error Unsupported AT91 processor
 +# error Unsupported AT91 processor
  #endif
  
 -/* External Memory Map */
 -#define AT91_CHIPSELECT_00x1000
 -#define AT91_CHIPSELECT_10x2000
 -#define AT91_CHIPSELECT_20x3000
 -#define AT91_CHIPSELECT_30x4000
 -#define AT91_CHIPSELECT_40x5000
 -#define AT91_CHIPSELECT_50x6000
 -#define AT91_CHIPSELECT_60x7000
 -#define AT91_CHIPSELECT_70x8000
 -
 -/* SDRAM */
 -#ifdef CONFIG_DRAM_BASE
 -#define AT91_SDRAM_BASE  CONFIG_DRAM_BASE
 -#else
 -#define AT91_SDRAM_BASE  AT91_CHIPSELECT_1
 -#endif
 -
 -/* Clocks */
 -#define AT91_SLOW_CLOCK  32768   /* slow clock */
 -
 -#endif
 +#endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */

hardware.h here!

 diff --git a/arch/arm/include/asm/arch-at91/memory-map.h 
 

Re: [U-Boot] [PATCH 06/15] AT91: fix related arch-at91 header files

2011-02-18 Thread Andreas Bießmann
Am 18.02.2011 13:50, schrieb Reinhard Meyer:
 Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
 ---
  arch/arm/include/asm/arch-at91/at91_common.h |3 +--
  arch/arm/include/asm/arch-at91/at91_pio.h|   19 +++
  arch/arm/include/asm/arch-at91/gpio.h|   18 +-
  arch/arm/include/asm/arch-at91/io.h  |4 ++--
  4 files changed, 15 insertions(+), 29 deletions(-)
 
 diff --git a/arch/arm/include/asm/arch-at91/at91_common.h 
 b/arch/arm/include/asm/arch-at91/at91_common.h
 index 0067190..330edd8 100644
 --- a/arch/arm/include/asm/arch-at91/at91_common.h
 +++ b/arch/arm/include/asm/arch-at91/at91_common.h
 @@ -28,11 +28,10 @@
  void at91_can_hw_init(void);
  void at91_macb_hw_init(void);
  void at91_mci_hw_init(void);
 -void at91_serial_hw_init(void);
  void at91_serial0_hw_init(void);
  void at91_serial1_hw_init(void);
  void at91_serial2_hw_init(void);
 -void at91_serial3_hw_init(void);
 +void at91_seriald_hw_init(void);
  void at91_spi0_hw_init(unsigned long cs_mask);
  void at91_spi1_hw_init(unsigned long cs_mask);
  void at91_uhp_hw_init(void);
 diff --git a/arch/arm/include/asm/arch-at91/at91_pio.h 
 b/arch/arm/include/asm/arch-at91/at91_pio.h
 index f7915a3..0b5bd69 100644
 --- a/arch/arm/include/asm/arch-at91/at91_pio.h
 +++ b/arch/arm/include/asm/arch-at91/at91_pio.h
 @@ -76,32 +76,19 @@ typedef struct at91_port {
   u32 reserved6[85];
  } at91_port_t;
  
 -#if defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9261) || \
 - defined(CONFIG_AT91SAM9G10) || defined(CONFIG_AT91SAM9G20)
 -#define AT91_PIO_PORTS   3
 -#elif defined(CONFIG_AT91SAM9263) || defined(CONFIG_AT91SAM9G45) || \
 - defined(CONFIG_AT91SAM9M10G45)
 -#define AT91_PIO_PORTS   5
 -#elif defined(CONFIG_AT91RM9200) || defined(CONFIG_AT91CAP9) || \
 - defined(CONFIG_AT91SAM9RL)
 -#define AT91_PIO_PORTS   4
 -#else
 -#error Unsupported cpu. Please update at91_pio.h
 -#endif
 -
  typedef union at91_pio {
   struct {
   at91_port_t pioa;
   at91_port_t piob;
   at91_port_t pioc;
 - #if (AT91_PIO_PORTS  3)
 + #if (ATMEL_PIO_PORTS  3)
   at91_port_t piod;
   #endif
 - #if (AT91_PIO_PORTS  4)
 + #if (ATMEL_PIO_PORTS  4)
   at91_port_t pioe;
   #endif
   } ;
 - at91_port_t port[AT91_PIO_PORTS];
 + at91_port_t port[ATMEL_PIO_PORTS];
  } at91_pio_t;
  
  #ifdef CONFIG_AT91_GPIO
 diff --git a/arch/arm/include/asm/arch-at91/gpio.h 
 b/arch/arm/include/asm/arch-at91/gpio.h
 index 716f81f..293d0bf 100644
 --- a/arch/arm/include/asm/arch-at91/gpio.h
 +++ b/arch/arm/include/asm/arch-at91/gpio.h
 @@ -18,7 +18,7 @@
  #include asm/arch/at91_pio.h
  #include asm/arch/hardware.h
  
 -#ifdef CONFIG_AT91_LEGACY
 +#ifdef CONFIG_ATMEL_LEGACY

is this still necessary?

  
  #define PIN_BASE 32
  
 @@ -192,13 +192,13 @@
  #define  AT91_PIN_PE31   (PIN_BASE + 0x80 + 31)
  
  static unsigned long at91_pios[] = {
 - AT91_PIOA,
 - AT91_PIOB,
 - AT91_PIOC,
 -#ifdef AT91_PIOD
 - AT91_PIOD,
 -#ifdef AT91_PIOE
 - AT91_PIOE
 + ATMEL_BASE_PIOA,
 + ATMEL_BASE_PIOB,
 + ATMEL_BASE_PIOC,
 +#ifdef ATMEL_BASE_PIOD
 + ATMEL_BASE_PIOD,
 +#ifdef ATMEL_BASE_PIOE
 + ATMEL_BASE_PIOE
  #endif
  #endif
  };
 @@ -207,7 +207,7 @@ static inline void *pin_to_controller(unsigned pin)
  {
   pin -= PIN_BASE;
   pin /= 32;
 - return (void *)(AT91_BASE_SYS + at91_pios[pin]);
 + return (void *)(at91_pios[pin]);
  }
  
  static inline unsigned pin_to_mask(unsigned pin)
 diff --git a/arch/arm/include/asm/arch-at91/io.h 
 b/arch/arm/include/asm/arch-at91/io.h
 index 38d185e..d0daa4e 100644
 --- a/arch/arm/include/asm/arch-at91/io.h
 +++ b/arch/arm/include/asm/arch-at91/io.h
 @@ -27,14 +27,14 @@
  
  static inline unsigned int at91_sys_read(unsigned int reg_offset)
  {
 - void *addr = (void *)AT91_BASE_SYS;
 + void *addr = (void *)ATMEL_BASE_SYS;
  
   return __raw_readl(addr + reg_offset);
  }
  
  static inline void at91_sys_write(unsigned int reg_offset, unsigned long 
 value)
  {
 - void *addr = (void *)AT91_BASE_SYS;
 + void *addr = (void *)ATMEL_BASE_SYS;
  
   __raw_writel(value, addr + reg_offset);
  }

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 12/15] ATMEL: fix dataflash (dirty)

2011-02-18 Thread Andreas Bießmann
Am 18.02.2011 13:50, schrieb Reinhard Meyer:
 Signed-off-by: Reinhard Meyer u-b...@emk-elektronik.de
 ---
  drivers/spi/atmel_dataflash_spi.c |   94 ++--
  include/dataflash.h   |1 -
  2 files changed, 57 insertions(+), 38 deletions(-)
 
 diff --git a/drivers/spi/atmel_dataflash_spi.c 
 b/drivers/spi/atmel_dataflash_spi.c
 index 4a5c4aa..6e632cc 100644
 --- a/drivers/spi/atmel_dataflash_spi.c
 +++ b/drivers/spi/atmel_dataflash_spi.c
 @@ -21,13 +21,21 @@
  
  #include common.h
  #ifndef CONFIG_AT91_LEGACY
 -#define CONFIG_AT91_LEGACY
 -#warning Please update to use C structur SoC access !
 +# define CONFIG_AT91_LEGACY

this would be CONFIG_ATMEL_LEGACY

 +# warning Please update to use C structur SoC access !
  #endif
 -#include asm/arch/hardware.h
 +#include common.h
 +#include spi.h
 +#include malloc.h
 +
 +#include asm/io.h
 +
  #include asm/arch/clk.h
 +#include asm/arch/hardware.h
 +
 +#include atmel_spi.h
 +
  #include asm/arch/gpio.h
 -#include asm/arch/io.h
  #include asm/arch/at91_pio.h
  #include asm/arch/at91_spi.h
  
 @@ -41,18 +49,18 @@
  void AT91F_SpiInit(void)
  {
   /* Reset the SPI */
 - writel(AT91_SPI_SWRST, AT91_BASE_SPI + AT91_SPI_CR);
 + writel(AT91_SPI_SWRST, ATMEL_BASE_SPI0 + AT91_SPI_CR);
  
   /* Configure SPI in Master Mode with No CS selected !!! */
   writel(AT91_SPI_MSTR | AT91_SPI_MODFDIS | AT91_SPI_PCS,
 -AT91_BASE_SPI + AT91_SPI_MR);
 +ATMEL_BASE_SPI0 + AT91_SPI_MR);
  
   /* Configure CS0 */
   writel(AT91_SPI_NCPHA |
  (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
  (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
  ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
 -AT91_BASE_SPI + AT91_SPI_CSR(0));
 +ATMEL_BASE_SPI0 + AT91_SPI_CSR(0));
  
  #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1
   /* Configure CS1 */
 @@ -60,7 +68,7 @@ void AT91F_SpiInit(void)
  (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
  (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
  ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
 -AT91_BASE_SPI + AT91_SPI_CSR(1));
 +ATMEL_BASE_SPI0 + AT91_SPI_CSR(1));
  #endif
  #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS2
   /* Configure CS2 */
 @@ -68,7 +76,7 @@ void AT91F_SpiInit(void)
  (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
  (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
  ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
 -AT91_BASE_SPI + AT91_SPI_CSR(2));
 +ATMEL_BASE_SPI0 + AT91_SPI_CSR(2));
  #endif
  #ifdef CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3
   /* Configure CS3 */
 @@ -76,21 +84,22 @@ void AT91F_SpiInit(void)
  (AT91_SPI_DLYBS  DATAFLASH_TCSS) |
  (AT91_SPI_DLYBCT  DATAFLASH_TCHS) |
  ((get_mck_clk_rate() / AT91_SPI_CLK)  8),
 -AT91_BASE_SPI + AT91_SPI_CSR(3));
 +ATMEL_BASE_SPI0 + AT91_SPI_CSR(3));
  #endif
  
   /* SPI_Enable */
 - writel(AT91_SPI_SPIEN, AT91_BASE_SPI + AT91_SPI_CR);
 + writel(AT91_SPI_SPIEN, ATMEL_BASE_SPI0 + AT91_SPI_CR);
  
 - while (!(readl(AT91_BASE_SPI + AT91_SPI_SR)  AT91_SPI_SPIENS));
 + while (!(readl(ATMEL_BASE_SPI0 + AT91_SPI_SR)  AT91_SPI_SPIENS))
 + ;
  
   /*
* Add tempo to get SPI in a safe state.
* Should not be needed for new silicon (Rev B)
*/
   udelay(50);
 - readl(AT91_BASE_SPI + AT91_SPI_SR);
 - readl(AT91_BASE_SPI + AT91_SPI_RDR);
 + readl(ATMEL_BASE_SPI0 + AT91_SPI_SR);
 + readl(ATMEL_BASE_SPI0 + AT91_SPI_RDR);
  
  }
  
 @@ -100,33 +109,33 @@ void AT91F_SpiEnable(int cs)
  
   switch (cs) {
   case 0: /* Configure SPI CS0 for Serial DataFlash AT45DBxx */
 - mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
 + mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
   mode = 0xFFF0;
   writel(mode | ((AT91_SPI_PCS0_DATAFLASH_CARD16)  
 AT91_SPI_PCS),
 -AT91_BASE_SPI + AT91_SPI_MR);
 +ATMEL_BASE_SPI0 + AT91_SPI_MR);
   break;
   case 1: /* Configure SPI CS1 for Serial DataFlash AT45DBxx */
 - mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
 + mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
   mode = 0xFFF0;
   writel(mode | ((AT91_SPI_PCS1_DATAFLASH_CARD16)  
 AT91_SPI_PCS),
 -AT91_BASE_SPI + AT91_SPI_MR);
 +ATMEL_BASE_SPI0 + AT91_SPI_MR);
   break;
   case 2: /* Configure SPI CS2 for Serial DataFlash AT45DBxx */
 - mode = readl(AT91_BASE_SPI + AT91_SPI_MR);
 + mode = readl(ATMEL_BASE_SPI0 + AT91_SPI_MR);
   mode = 0xFFF0;
   writel(mode | ((AT91_SPI_PCS2_DATAFLASH_CARD16)  
 AT91_SPI_PCS),
 -AT91_BASE_SPI + AT91_SPI_MR);
 +ATMEL_BASE_SPI0 + AT91_SPI_MR);
   break;
   case 3:

Re: [U-Boot] [PATCH 05/15] AT91: cleanup hardware.h, remove memory-map.h

2011-02-18 Thread Reinhard Meyer
Dear Andreas Bießmann,
 +#ifndef __ASM_ARM_ARCH_HARDWARE_H__
 +#define __ASM_ARM_ARCH_HARDWARE_H__
...
 +#endif /* __ASM_ARM_ARCH_MEMORYMAP_H__ */

 hardware.h here!

Thanks for discovering this!
I'll lowercase and remove the rather pointless comment.
Reinhard
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 06/15] AT91: fix related arch-at91 header files

2011-02-18 Thread Reinhard Meyer
Dear Andreas Bießmann,
 +#ifdef CONFIG_ATMEL_LEGACY

 is this still necessary?
I am afraid so. The ATMEL GPIO code should be reworked.
Reinhard
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 12/15] ATMEL: fix dataflash (dirty)

2011-02-18 Thread Reinhard Meyer
Dear Andreas Bießmann,
   #ifndef CONFIG_AT91_LEGACY
 -#define CONFIG_AT91_LEGACY
 -#warning Please update to use C structur SoC access !
 +# define CONFIG_AT91_LEGACY

 this would be CONFIG_ATMEL_LEGACY

 +# warning Please update to use C structur SoC access !
   #endif
Interesting.. It did build although the (wrong) define should not have been set.
Either it is set somewhere, or it is actually not required.

Anyway, when the driver is converted to struct SoC access, this will be removed.
Reinhard
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] building enc28j60 for omap3: undefined references

2011-02-18 Thread jacopo mondi
On Thu, 17 Feb 2011 13:37:27 +0100
Stefano Babic sba...@denx.de wrote:
 It seems to me that the driver goes out from receive function when no
 data are available. pkn_cnt is read directly from HW, and if the
 controller is not broken, it will not return any packets and the loop
 ends up.

You are right..
 
 Best regards,
 Stefano Babic
 
As said I'm trying to enable enc28j60 in beagle C4.
The device did not gets initialized because in eth.c, the
board_eth_init function is defined as __def_eth_init through an
__attribute__ weak statements (always return -1).

This is because in board/ti/beagle.c no board_eth_init function is
defined and libbeagle.o is not linked to libnet.o (where board_eth_init
gets called).
My question: have I to implement that function myself? Is it worth to
introduce a new #define statements in omap3_beagle.h that enables the
function in board specific file? I will be happy to do so, if it's
worth (I'm looking at top900 board specific file as an example).

Thank you

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] Reading from NAND

2011-02-18 Thread D Kesselring
Hello,
I am trying to add some code to U-Boot that will read a NAND location
to determine how to setup some environment variables. I am using a
LogicPD SOM board with an OMAP3503 (very similar to Zoom). I have
found the code that handles the user nand commands and am trying to
use ‘nand_read_skip_bad’.  This needs a ‘nand_info_t*’ which I was
trying to get from the global ‘nand_info[]’ but it does not seem to be
initialized. My questions are (1) is the the best way to do this and
(2) if so, how do I get ‘nand_info[]’ initialized. I am adding my code
to main_loop() just after ‘getenv (“bootcmd”)’.
Thanks for any pointers.

Regards,
David Kesselring


-- 
W. David Kesselring
919-349-1079
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Reading from NAND

2011-02-18 Thread Wolfgang Denk
Dear D Kesselring,

In message AANLkTikvgGvhgf-K04mn75EEYXEzwvOFHsy=uZ=1h...@mail.gmail.com you 
wrote:
 I am trying to add some code to U-Boot that will read a NAND location
 to determine how to setup some environment variables. I am using a

Why are you adding any code to do that in the fist place?

A few lines of shell scripting should be all that's needed?

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
Man is the best computer we can put aboard a spacecraft ...  and  the
only one that can be mass produced with unskilled labor.
  - Wernher von Braun
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [RFC][PATCH] ARMV7: Patch to fix hard float build issues

2011-02-18 Thread Raghuveer Murthy
U-boot built for MeeGo on PandaBoard, with compiler option
-mfloat-abi=hard, caused a build break. Please refer to the bug id:

http://bugs.meego.com/show_bug.cgi?id=13140

Removing the -msoft-float options in the config.mk files, allowed it
to be built for both armv7hl and armv7el compilers on MeeGo

Please refer to the below link for more details:
http://wiki.meego.com/SDK/Toolchains/ToolchainChangeProposal

Signed-off-by: Raghuveer Murthy raghuveer.mur...@ti.com
---
 arch/arm/cpu/armv7/config.mk |2 +-
 arch/arm/cpu/armv7/omap-common/config.mk |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk
index 49ac9c7..07f92a8 100644
--- a/arch/arm/cpu/armv7/config.mk
+++ b/arch/arm/cpu/armv7/config.mk
@@ -20,7 +20,7 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 # MA 02111-1307 USA
 #
-PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float
+PLATFORM_RELFLAGS += -fno-common -ffixed-r8
 
 # Make ARMv5 to allow more compilers to work, even though its v7a.
 PLATFORM_CPPFLAGS += -march=armv5
diff --git a/arch/arm/cpu/armv7/omap-common/config.mk 
b/arch/arm/cpu/armv7/omap-common/config.mk
index 49ac9c7..07f92a8 100644
--- a/arch/arm/cpu/armv7/omap-common/config.mk
+++ b/arch/arm/cpu/armv7/omap-common/config.mk
@@ -20,7 +20,7 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 # MA 02111-1307 USA
 #
-PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float
+PLATFORM_RELFLAGS += -fno-common -ffixed-r8
 
 # Make ARMv5 to allow more compilers to work, even though its v7a.
 PLATFORM_CPPFLAGS += -march=armv5
-- 
1.7.0.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC][PATCH] ARMV7: Patch to fix hard float build issues

2011-02-18 Thread Albert ARIBAUD
Le 18/02/2011 16:16, Raghuveer Murthy a écrit :
 U-boot built for MeeGo on PandaBoard, with compiler option
 -mfloat-abi=hard, caused a build break. Please refer to the bug id:

 http://bugs.meego.com/show_bug.cgi?id=13140

Is this the official U-Boot? Why is it still at 2010.09 ?

 Removing the -msoft-float options in the config.mk files, allowed it
 to be built for both armv7hl and armv7el compilers on MeeGo

 Please refer to the below link for more details:
 http://wiki.meego.com/SDK/Toolchains/ToolchainChangeProposal

 Signed-off-by: Raghuveer Murthyraghuveer.mur...@ti.com

I would like to know which board of mainline U-boot is affected by the 
issue and how I can reproduce it on u-boot[-arm]/master.

However, I can already tell that this 'bug' can only occur upon a mix of 
object files compiled with -msoft-float and -mhard-float; which means 
some files were compiled with -mhard-float; and this should not happen 
at all, since U-Boot should not use any floats at all, so:

- either some files in the case reported were compiled voluntarily with 
hard-float, and this is not a generally supported use case of U-Boot;

- or they were compiled without any float option and the toolchain 
defaulted to hard-float, which may be a meego but is no reason in itself 
for U-Boot to adapt to it.

My feeling at the moment is that U-Boot should keep -msoft-float, to be 
sure that any float code present in the code base, if it has to be, will 
run regardless of hw floating point capabilities, because U-Boot 
binaries should make the least possible assumptions on the hardware they 
are running on.

Now, CPUs/SoCs/boards that know they have a floating point unit may 
justly want to replace -msoft-float with -mhard-float everywhere 
throughout U-Boot; I would welcome a patch that allows U-Boot to default 
to soft float while allowing CPUs/SoCs/boards to override it for hard float.

In no case, however, should -msoft-float be *removed*: that would make 
float support in U-Boot implicit and dependent on the toolchain in use, 
and I think U-Boot float support should always be explicit and not 
depend on the toolchain.

Amicalement,
-- 
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Uboot - USB to Ethernet patch

2011-02-18 Thread Simon Glass
+UBML

Hi Anders,

You will need at least:

/* Enable USB Ethernet dongles */
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX

(and your platform must support USB with CONFIG_CMD_USB and CONFIG_USB_EHCI
for example)

You will also want to enable the network commands:

#define CONFIG_CMD_NET
#define CONFIG_NET_MULTI
#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP

and some bootp options:

#define CONFIG_BOOTP_SUBNETMASK
#define CONFIG_BOOTP_GATEWAY
#define CONFIG_BOOTP_HOSTNAME
#define CONFIG_BOOTP_BOOTPATH

#define CONFIG_IPADDR 10.0.0.2
#define CONFIG_SERVERIP 10.0.0.1
#define CONFIG_BOOTFILE uImage


I might have missed something, but that should be enough to make progress.

'usb start' should identify the Ethernet dongle. Then 'bootp' should use it
to obtain an IP address from DHCP.

Regards,
Simon

On Fri, Feb 18, 2011 at 6:56 AM, Anders Marklund 
anders.markl...@optronic.se wrote:


 Hello Simon!

 I'm trying use use your usb-to-ethernet-adaptor -patch for u-boot
 together with the ASIX driver patch. I have applied the patch but I'm a
 little uncertain about which defines to use and where to put them and how to
 initialize the usb to successfully setup and enumerate the ethernet chip.

 I'm using a processor module from Variscite: VAR-SOM-OM37, that has a
 DM3730 processor with power module: TPS65930B (twl4030). I have connected a
 separate USB hub and a ASIX AX88772b USB to Ethernet chip. My ultimate goal
 is to be able to boot a linux kernel over the network through this setup,
 and I was wondering if you could send me some example code on how to use the
 adaptor support?
 What do I need to change in my board configuration to get it to work?

 Any other tips or ideas are very welcome!

 Thanks in advance and best regards
 /Anders Marklund


   Anders Marklund, M. Sc
 *Product Developer*
  *OPTRONIC*

 Box 733

 PHONE +46 910 835 00

 SE-931 27 SKELLEFTEÅ SWEDEN

 DIRECT %2B46%20910%20835%2061+46 910 835 61

 E-MAIL anders.markl...@optronic.se

 MOBILE

 VISITING ADDRESS Gymnasievägen 34

 FAX

 INTERNET www.optronic.se


 This  message, and/or attachment (-s), may contain confidential
 information. It may not be disclosed to, or used by, anyone other than the
 addressee.If you receive this message in error, please advise the sender
 immediately.

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] problem with loading new user script to memory

2011-02-18 Thread Toan Pham
Hi all,


I am starting to use Uboot for the first time and having a problem
with adding a new bootscr and loading it into memory.
I have a system with a sd-memory card, and add a new bootscr called
'myuser.scr' to the root directory.  I am 100% sure that the user
script is there in the root directory of the mmc; however, uboot can
not detect it.  When i boot to uboot promp and type in 'init mmc 1'
and 'fatls mmc :1'  it shows directory listing of all files under the
root directory, but it does not have the myuser.scr.  Question is, why
is myuser.scr not there?



-toan
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] v2 patch for interactive DDR debugging

2011-02-18 Thread York Sun
[Patch v2 1/2] Adding more SPD registers
[Patch v2 2/2] powerpc/8xxx: Adding interactive DDR debugging

This is v2 patch to add interactive DDR debugging after cleaning up according
to feedback. Please review.

York


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [Patch v2 1/2] Adding more SPD registers

2011-02-18 Thread York Sun
Adding byte 32 and 33. Byte 33 is useful for displaying device type.

Signed-off-by: York Sun york...@freescale.com
---
 include/ddr_spd.h |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/include/ddr_spd.h b/include/ddr_spd.h
index 710e528..d632a1e 100644
--- a/include/ddr_spd.h
+++ b/include/ddr_spd.h
@@ -219,7 +219,9 @@ typedef struct ddr3_spd_eeprom_s {
 Delay Time*/
unsigned char opt_features;/* 30 SDRAM Optional Features */
unsigned char therm_ref_opt;   /* 31 SDRAM Thermal and Refresh Opts */
-   unsigned char res_32_59[28];   /* 32-59 Reserved, General Section */
+   unsigned char therm_sensor;/* 32 Module Thermal Sensor */
+   unsigned char device_type; /* 33 SDRAM device type */
+   unsigned char res_34_59[26];   /* 34-59 Reserved, General Section */
 
/* Module-Specific Section: Bytes 60-116 */
union {
-- 
1.7.0.4


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Reading from NAND

2011-02-18 Thread Scott Wood
On Fri, 18 Feb 2011 08:29:45 -0500
D Kesselring kesselri...@gmail.com wrote:

 Hello,
 I am trying to add some code to U-Boot that will read a NAND location
 to determine how to setup some environment variables. I am using a
 LogicPD SOM board with an OMAP3503 (very similar to Zoom). I have
 found the code that handles the user nand commands and am trying to
 use ‘nand_read_skip_bad’.  This needs a ‘nand_info_t*’ which I was
 trying to get from the global ‘nand_info[]’ but it does not seem to be
 initialized. My questions are (1) is the the best way to do this and
 (2) if so, how do I get ‘nand_info[]’ initialized.

As Wolfgang pointed out, the best way is probably using scripting (and
certainly not by hacking up main_loop()), and thus you won't be calling
nand_raed_skip_bad() directly.  But that still requires NAND to have been
initialized.

You need a NAND controller driver.  This driver supplies board_nand_init(),
or in some cases may be called by board_nand_init() that platform code
supplies.

I'm not familiar with OMAP chips, but perhaps drivers/mtd/nand/omap_gpmc.c
is the driver you want?  In which case your board config file needs to
define CONFIG_NAND_OMAP_GPMC, as well as any driver-specific defines there
may be.

-Scott

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Reading from NAND

2011-02-18 Thread D Kesselring
I understand about scripting. I am trying to implement some somewhat
involved logic that walks a table of valid images. I am not convinced
that the u-boot scripting is sufficient for it. This table is an array
of structs. I need a loop that looks at a struct and determine if it
is valid and then do a couple of setenv.
Nand is working fine. I can execute the nand commands from the command
line without problems.
If you have any insights please let me know.
David

On Fri, Feb 18, 2011 at 1:54 PM, Scott Wood scottw...@freescale.com wrote:
 On Fri, 18 Feb 2011 08:29:45 -0500
 D Kesselring kesselri...@gmail.com wrote:

 Hello,
 I am trying to add some code to U-Boot that will read a NAND location
 to determine how to setup some environment variables. I am using a
 LogicPD SOM board with an OMAP3503 (very similar to Zoom). I have
 found the code that handles the user nand commands and am trying to
 use ‘nand_read_skip_bad’.  This needs a ‘nand_info_t*’ which I was
 trying to get from the global ‘nand_info[]’ but it does not seem to be
 initialized. My questions are (1) is the the best way to do this and
 (2) if so, how do I get ‘nand_info[]’ initialized.

 As Wolfgang pointed out, the best way is probably using scripting (and
 certainly not by hacking up main_loop()), and thus you won't be calling
 nand_raed_skip_bad() directly.  But that still requires NAND to have been
 initialized.

 You need a NAND controller driver.  This driver supplies board_nand_init(),
 or in some cases may be called by board_nand_init() that platform code
 supplies.

 I'm not familiar with OMAP chips, but perhaps drivers/mtd/nand/omap_gpmc.c
 is the driver you want?  In which case your board config file needs to
 define CONFIG_NAND_OMAP_GPMC, as well as any driver-specific defines there
 may be.

 -Scott





-- 
W. David Kesselring
919-349-1079
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Reading from NAND

2011-02-18 Thread Scott Wood
On Fri, 18 Feb 2011 14:48:13 -0500
D Kesselring kesselri...@gmail.com wrote:

 I understand about scripting. I am trying to implement some somewhat
 involved logic that walks a table of valid images. I am not convinced
 that the u-boot scripting is sufficient for it. This table is an array
 of structs. I need a loop that looks at a struct and determine if it
 is valid and then do a couple of setenv.

If scripting is insufficient, then perhaps you could use platform code --
but it should go in your board directory, perhaps registering a command
that triggers the functionality.

 Nand is working fine. I can execute the nand commands from the command
 line without problems.

That means your nand_info[] array has been initialized.

-Scott

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] [v4] powerpc: clean up DIU macro definitions for Freescale reference boards

2011-02-18 Thread Timur Tabi
Timur Tabi wrote:
 Clean up the macro defintions used to enable DIU (video) support on the
 MPC8610HPCD and the MPC5121ADS so that they look more like the P1022DS,
 which is newer.  Add software cursor support to all three boards.
 
 Also document the CONFIG_FSL_DIU_FB in the README.
 
 Signed-off-by: Timur Tabi ti...@freescale.com

Wolfgang,

If you're okay with this patch, could you ACK it so that Kumar can queue it for
-next?

-- 
Timur Tabi
Linux kernel developer at Freescale

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC][PATCH] ARMV7: Patch to fix hard float build issues

2011-02-18 Thread Alexander Holler
Hello,

Am 18.02.2011 18:01, schrieb Albert ARIBAUD:

 In no case, however, should -msoft-float be *removed*: that would make
 float support in U-Boot implicit and dependent on the toolchain in use,
 and I think U-Boot float support should always be explicit and not
 depend on the toolchain.

Beeing no friend of cross-compiling I would prefer to use the default of 
the toolchain and I don't see any problem with that.

Regards,

Alexander
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC][PATCH] ARMV7: Patch to fix hard float build issues

2011-02-18 Thread Wolfgang Denk
Dear Raghuveer Murthy,

In message 1298042212-12260-1-git-send-email-raghuveer.mur...@ti.com you 
wrote:
 U-boot built for MeeGo on PandaBoard, with compiler option
 -mfloat-abi=hard, caused a build break. Please refer to the bug id:

Well, isn't this a typical Don't do that then! situation?
(Cf. http://www.jargon.net/jargonfile/d/Dontdothatthen.html)

If this compiler option causes problems (which is IMHO not a surpise at
all), then why are you using it?

None of the U-Boot build rules contain any such option.

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
UNIX was not designed to stop you from doing stupid things,  because
that would also stop you from doing clever things.   - Doug Gwyn
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Reading from NAND

2011-02-18 Thread Wolfgang Denk
Dear D Kesselring,

please stop top posting / full quoting.

In message AANLkTikgXnuEOQ16zt6T_rDztrFWJKHiwgmXPa1=k...@mail.gmail.com you 
wrote:
 I understand about scripting. I am trying to implement some somewhat
 involved logic that walks a table of valid images. I am not convinced
 that the u-boot scripting is sufficient for it. This table is an array
 of structs. I need a loop that looks at a struct and determine if it
 is valid and then do a couple of setenv.

U-Boot's implementation of the hush shell is a bit limited, that's
true, but you still can do a lot with it.

I am pretty sure that that would be more efficient and easier to
implement instead of adding code.


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
Summit meetings tend to be like panda matings. The expectations  are
always high, and the results usually disappointing.   - Robert Orben
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] u-boot for x86 Core2Duo target

2011-02-18 Thread Zvi Vered
Hello,

I'm using u-boot on PPC405 (ML405) for about 3 years.

It is a great boot loader !

On my next project, the target is Core2Duo (AMPRO's COM840).

Is it a wise decision to use u-boot on this target ?
I prefare u-boot over grub or vxworks bootloader because it has many 
features.

If I understand correctly, sc520 is the only x86 target supported.

Is it a huge project to port it to another x86 target that has a different 
ethernet controller ?

The u-boot image is loader by the BIOS from compact flash via SATA.

What is the procedure for writing u-boot image on this flash ?

Thanks. 

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] u-boot for x86 Core2Duo target

2011-02-18 Thread Graeme Russ
On 19/02/11 11:04, Zvi Vered wrote:
 Hello,
 
 I'm using u-boot on PPC405 (ML405) for about 3 years.
 
 It is a great boot loader !
 
 On my next project, the target is Core2Duo (AMPRO's COM840).
 
 Is it a wise decision to use u-boot on this target ?

I've had a quick look at the board on the Ampro website and it looks like
the type of design well suited to U-Boot

 I prefare u-boot over grub or vxworks bootloader because it has many 
 features.
 
 If I understand correctly, sc520 is the only x86 target supported.

At this point in time, yes

 
 Is it a huge project to port it to another x86 target that has a different 
 ethernet controller ?

Only one way to find out ;)

 
 The u-boot image is loader by the BIOS from compact flash via SATA.

No, U-Boot replaces the BIOS completely

 
 What is the procedure for writing u-boot image on this flash ?

You will need to determine if the BIOS chip in the COM 840 can be
reprogrammed and if so, how

Regards,

Graeme

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot