Re: [U-Boot] Support for ARM940T core
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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()
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
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
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)
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
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
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)
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
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
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
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
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
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
+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
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
[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
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
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
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
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
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
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
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
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
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
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