]> git.karo-electronics.de Git - karo-tx-uboot.git/commitdiff
Merge with git://www.denx.de/git/u-boot.git
authorPeter Pearse <peter.pearse@arm.com>
Fri, 7 Sep 2007 12:26:51 +0000 (13:26 +0100)
committerPeter Pearse <peter.pearse@arm.com>
Fri, 7 Sep 2007 12:26:51 +0000 (13:26 +0100)
board/at91rm9200dk/led.c
cpu/arm920t/start.S [changed mode: 0644->0755]
drivers/at45.c
include/asm-arm/coloured_led.h [moved from include/led.h with 97% similarity, mode: 0755]
include/config_cmd_all.h [changed mode: 0644->0755]
lib_arm/board.c

index 051891883f664f10d730509cfafa52cd925ef5f0..47a3bfce68b5eea9895c142d92a6a704d3beb4fd 100644 (file)
@@ -66,7 +66,7 @@ void  red_LED_off(void)
 }
 
 
-void LED_init (void)
+void coloured_LED_init (void)
 {
        AT91PS_PIO      PIOB    = AT91C_BASE_PIOB;
        AT91PS_PMC      PMC     = AT91C_BASE_PMC;
old mode 100644 (file)
new mode 100755 (executable)
index b9c364b..df2ee20
@@ -27,9 +27,7 @@
 
 #include <config.h>
 #include <version.h>
-#if    defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
-#include       <led.h>
-#endif
+#include <asm/coloured_led.h>
 
 /*
  *************************************************************************
@@ -41,7 +39,7 @@
 
 
 .globl _start
-_start:        b       reset
+_start:        b       start_code
        ldr     pc, _undefined_instruction
        ldr     pc, _software_interrupt
        ldr     pc, _prefetch_abort
@@ -64,7 +62,7 @@ _fiq:                 .word fiq
 /*
  *************************************************************************
  *
- * Startup Code (reset vector)
+ * Startup Code (called from the ARM reset exception vector)
  *
  * do important init only if we don't start from memory!
  * relocate armboot to ram
@@ -106,10 +104,10 @@ FIQ_STACK_START:
 
 
 /*
- * the actual reset code
+ * the actual start code
  */
 
-reset:
+start_code:
        /*
         * set the cpu to SVC32 mode
         */
@@ -118,58 +116,12 @@ reset:
        orr     r0,r0,#0xd3
        msr     cpsr,r0
 
-#if    CONFIG_AT91RM9200
-#if    defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
-       bl LED_init
+       bl coloured_LED_init
        bl red_LED_on
-#endif
 
-#ifdef CONFIG_BOOTBINFUNC
-/* code based on entry.S from ATMEL */
-#define AT91C_BASE_CKGR 0xFFFFFC20
-#define CKGR_MOR 0
-       /* Get the CKGR Base Address */
-       ldr     r1, =AT91C_BASE_CKGR
-
-/* Main oscillator Enable register     APMC_MOR : Enable main oscillator , OSCOUNT = 0xFF */
-/*     ldr     r0, = AT91C_CKGR_MOSCEN:OR:AT91C_CKGR_OSCOUNT */
-       ldr     r0, =0x0000FF01
-       str     r0, [r1, #CKGR_MOR]
-       /* Add loop to compensate Main Oscillator startup time */
-       ldr     r0, =0x00000010
-LoopOsc:
-       subs    r0, r0, #1
-       bhi     LoopOsc
-       /* scratch stack */
-       ldr     r1, =0x00204000
-       /* Insure word alignment */
-       bic     r1, r1, #3
-       /* Init stack SYS        */
-       mov     sp, r1
-       /*
-        * This does a lot more than just set up the memory, which
-        * is why it's called lowlevelinit
-        */
-       bl      lowlevelinit /* in memsetup.S */
-       bl      icache_enable;
-       /* ------------------------------------
-        * Read/modify/write CP15 control register
-        * -------------------------------------
-        * read cp15 control register (cp15 r1) in r0
-        * ------------------------------------
-        */
-       mrc     p15, 0, r0, c1, c0, 0
-       /* Reset bit :Little Endian end fast bus mode */
-       ldr     r3, =0xC0000080
-       /* Set bit :Asynchronous clock mode, Not Fast Bus */
-       ldr     r4, =0xC0000000
-       bic     r0, r0, r3
-       orr     r0, r0, r4
-       /* write r0 in cp15 control register (cp15 r1) */
-       mcr     p15, 0, r0, c1, c0, 0
-#endif /* CONFIG_BOOTBINFUNC */
+#if    defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
        /*
-        * relocate exeception table
+        * relocate exception table
         */
        ldr     r0, =_start
        ldr     r1, =0x0
@@ -181,19 +133,20 @@ copyex:
        bne     copyex
 #endif
 
-/* turn off the watchdog */
-#if defined(CONFIG_S3C2400)
-# define pWTCON                0x15300000
-# define INTMSK                0x14400008      /* Interupt-Controller base addresses */
-# define CLKDIVN       0x14800014      /* clock divisor register */
-#elif defined(CONFIG_S3C2410)
-# define pWTCON                0x53000000
-# define INTMSK                0x4A000008      /* Interupt-Controller base addresses */
-# define INTSUBMSK     0x4A00001C
-# define CLKDIVN       0x4C000014      /* clock divisor register */
-#endif
-
 #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
+       /* turn off the watchdog */
+
+# if defined(CONFIG_S3C2400)
+#  define pWTCON               0x15300000
+#  define INTMSK               0x14400008      /* Interupt-Controller base addresses */
+#  define CLKDIVN      0x14800014      /* clock divisor register */
+#else
+#  define pWTCON               0x53000000
+#  define INTMSK               0x4A000008      /* Interupt-Controller base addresses */
+#  define INTSUBMSK    0x4A00001C
+#  define CLKDIVN      0x4C000014      /* clock divisor register */
+# endif
+
        ldr     r0, =pWTCON
        mov     r1, #0x0
        str     r1, [r0]
@@ -226,25 +179,7 @@ copyex:
 #endif
 
 #ifdef CONFIG_AT91RM9200
-#ifdef CONFIG_BOOTBINFUNC
-relocate:                              /* relocate U-Boot to RAM           */
-       adr     r0, _start              /* r0 <- current position of code   */
-       ldr     r1, _TEXT_BASE          /* test if we run from flash or RAM */
-       cmp     r0, r1                  /* don't reloc during debug         */
-       beq     stack_setup
-
-       ldr     r2, _armboot_start
-       ldr     r3, _bss_start
-       sub     r2, r3, r2              /* r2 <- size of armboot            */
-       add     r2, r0, r2              /* r2 <- source end address         */
 
-copy_loop:
-       ldmia   r0!, {r3-r10}           /* copy from source address [r0]    */
-       stmia   r1!, {r3-r10}           /* copy to   target address [r1]    */
-       cmp     r0, r2                  /* until source end addreee [r2]    */
-       ble     copy_loop
-#endif /* CONFIG_BOOTBINFUNC */
-#else
 #ifndef CONFIG_SKIP_RELOCATE_UBOOT
 relocate:                              /* relocate U-Boot to RAM           */
        adr     r0, _start              /* r0 <- current position of code   */
@@ -284,27 +219,6 @@ clbss_l:str        r2, [r0]                /* clear loop...                    */
        cmp     r0, r1
        ble     clbss_l
 
-#if 0
-       /* try doing this stuff after the relocation */
-       ldr     r0, =pWTCON
-       mov     r1, #0x0
-       str     r1, [r0]
-
-       /*
-        * mask all IRQs by setting all bits in the INTMR - default
-        */
-       mov     r1, #0xffffffff
-       ldr     r0, =INTMR
-       str     r1, [r0]
-
-       /* FCLK:HCLK:PCLK = 1:2:4 */
-       /* default FCLK is 120 MHz ! */
-       ldr     r0, =CLKDIVN
-       mov     r1, #3
-       str     r1, [r0]
-       /* END stuff after relocation */
-#endif
-
        ldr     pc, _start_armboot
 
 _start_armboot:        .word start_armboot
index 507ff36d478367a63c64236da979977c891f3e6b..f48d31776f20584d862d7f78ea7e0cbd721a18f0 100755 (executable)
 /*
  * spi.c API
  */
-extern unsigned int    AT91F_SpiWrite (AT91PS_DataflashDesc pDesc);
-extern void            AT91F_SpiEnable(int cs);
+extern unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc);
+extern void AT91F_SpiEnable(int cs);
 
 #define AT91C_TIMEOUT_WRDY                     200000
 
-
 /*----------------------------------------------------------------------*/
 /* \fn    AT91F_DataFlashSendCommand                                   */
 /* \brief Generic function to send a command to the dataflash          */
 /*----------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_DataFlashSendCommand(
-       AT91PS_DataFlash pDataFlash,
-       unsigned char OpCode,
-       unsigned int CmdSize,
-       unsigned int DataflashAddress)
+AT91S_DataFlashStatus AT91F_DataFlashSendCommand(AT91PS_DataFlash pDataFlash,
+                                                unsigned char OpCode,
+                                                unsigned int CmdSize,
+                                                unsigned int DataflashAddress)
 {
        unsigned int adr;
 
-       if ( (pDataFlash->pDataFlashDesc->state) != IDLE)
+       if ((pDataFlash->pDataFlashDesc->state) != IDLE)
                return DATAFLASH_BUSY;
 
        /* process the address to obtain page address and byte address */
        adr = ((DataflashAddress / (pDataFlash->pDevice->pages_size)) <<
-               pDataFlash->pDevice->page_offset) + (DataflashAddress %
-               (pDataFlash->pDevice->pages_size));
+              pDataFlash->pDevice->page_offset) + (DataflashAddress %
+                                                   (pDataFlash->pDevice->
+                                                    pages_size));
 
        /* fill the  command  buffer */
        pDataFlash->pDataFlashDesc->command[0] = OpCode;
        if (pDataFlash->pDevice->pages_number >= 16384) {
                pDataFlash->pDataFlashDesc->command[1] =
-                       (unsigned char)((adr & 0x0F000000) >> 24);
+                   (unsigned char)((adr & 0x0F000000) >> 24);
                pDataFlash->pDataFlashDesc->command[2] =
-                       (unsigned char)((adr & 0x00FF0000) >> 16);
+                   (unsigned char)((adr & 0x00FF0000) >> 16);
                pDataFlash->pDataFlashDesc->command[3] =
-                       (unsigned char)((adr & 0x0000FF00) >> 8);
+                   (unsigned char)((adr & 0x0000FF00) >> 8);
                pDataFlash->pDataFlashDesc->command[4] =
-                       (unsigned char)(adr & 0x000000FF);
+                   (unsigned char)(adr & 0x000000FF);
        } else {
                pDataFlash->pDataFlashDesc->command[1] =
-                       (unsigned char)((adr & 0x00FF0000) >> 16);
+                   (unsigned char)((adr & 0x00FF0000) >> 16);
                pDataFlash->pDataFlashDesc->command[2] =
-                       (unsigned char)((adr & 0x0000FF00) >> 8);
+                   (unsigned char)((adr & 0x0000FF00) >> 8);
                pDataFlash->pDataFlashDesc->command[3] =
-                       (unsigned char)(adr & 0x000000FF);
+                   (unsigned char)(adr & 0x000000FF);
                pDataFlash->pDataFlashDesc->command[4] = 0;
        }
        pDataFlash->pDataFlashDesc->command[5] = 0;
@@ -78,16 +77,16 @@ AT91S_DataFlashStatus AT91F_DataFlashSendCommand(
        pDataFlash->pDataFlashDesc->command[7] = 0;
 
        /* Initialize the SpiData structure for the spi write fuction */
-       pDataFlash->pDataFlashDesc->tx_cmd_pt   =
-               pDataFlash->pDataFlashDesc->command;
-       pDataFlash->pDataFlashDesc->tx_cmd_size =  CmdSize;
-       pDataFlash->pDataFlashDesc->rx_cmd_pt   =
-               pDataFlash->pDataFlashDesc->command;
-       pDataFlash->pDataFlashDesc->rx_cmd_size =  CmdSize;
+       pDataFlash->pDataFlashDesc->tx_cmd_pt =
+           pDataFlash->pDataFlashDesc->command;
+       pDataFlash->pDataFlashDesc->tx_cmd_size = CmdSize;
+       pDataFlash->pDataFlashDesc->rx_cmd_pt =
+           pDataFlash->pDataFlashDesc->command;
+       pDataFlash->pDataFlashDesc->rx_cmd_size = CmdSize;
 
        /* send the command and read the data */
-       return AT91F_SpiWrite (pDataFlash->pDataFlashDesc); }
-
+       return AT91F_SpiWrite(pDataFlash->pDataFlashDesc);
+}
 
 /*----------------------------------------------------------------------*/
 /* \fn    AT91F_DataFlashGetStatus                                     */
@@ -98,50 +97,49 @@ AT91S_DataFlashStatus AT91F_DataFlashGetStatus(AT91PS_DataflashDesc pDesc)
        AT91S_DataFlashStatus status;
 
        /* if a transfert is in progress ==> return 0 */
-       if(pDesc->state) != IDLE)
+       if ((pDesc->state) != IDLE)
                return DATAFLASH_BUSY;
 
        /* first send the read status command (D7H) */
        pDesc->command[0] = DB_STATUS;
        pDesc->command[1] = 0;
 
-       pDesc->DataFlash_state  = GET_STATUS;
-       pDesc->tx_data_size     = 0;    /* Transmit the command */
-                                       /* and receive response */
-       pDesc->tx_cmd_pt                = pDesc->command;
-       pDesc->rx_cmd_pt                = pDesc->command;
-       pDesc->rx_cmd_size              = 2;
-       pDesc->tx_cmd_size              = 2;
-       status = AT91F_SpiWrite (pDesc);
+       pDesc->DataFlash_state = GET_STATUS;
+       pDesc->tx_data_size = 0;        /* Transmit the command */
+       /* and receive response */
+       pDesc->tx_cmd_pt = pDesc->command;
+       pDesc->rx_cmd_pt = pDesc->command;
+       pDesc->rx_cmd_size = 2;
+       pDesc->tx_cmd_size = 2;
+       status = AT91F_SpiWrite(pDesc);
 
-       pDesc->DataFlash_state = *( (unsigned char *) (pDesc->rx_cmd_pt) +1);
+       pDesc->DataFlash_state = *((unsigned char *)(pDesc->rx_cmd_pt) + 1);
 
        return status;
 }
 
-
 /*----------------------------------------------------------------------*/
 /* \fn    AT91F_DataFlashWaitReady                                     */
 /* \brief wait for dataflash ready (bit7 of the status register == 1)  */
 /*----------------------------------------------------------------------*/
 AT91S_DataFlashStatus AT91F_DataFlashWaitReady(AT91PS_DataflashDesc
-pDataFlashDesc, unsigned int timeout)
+                                              pDataFlashDesc,
+                                              unsigned int timeout)
 {
        pDataFlashDesc->DataFlash_state = IDLE;
 
        do {
                AT91F_DataFlashGetStatus(pDataFlashDesc);
                timeout--;
-       } while((pDataFlashDesc->DataFlash_state & 0x80) != 0x80) &&
-                       (timeout > 0) );
+       } while (((pDataFlashDesc->DataFlash_state & 0x80) != 0x80) &&
+                (timeout > 0));
 
-       if((pDataFlashDesc->DataFlash_state & 0x80) != 0x80)
+       if ((pDataFlashDesc->DataFlash_state & 0x80) != 0x80)
                return DATAFLASH_ERROR;
 
        return DATAFLASH_OK;
 }
 
-
 /*--------------------------------------------------------------------------*/
 /* Function Name       : AT91F_DataFlashContinuousRead                             */
 /* Object              : Continuous stream Read                            */
@@ -151,17 +149,16 @@ pDataFlashDesc, unsigned int timeout)
 /*                     : <sizeToRead> = data buffer size                   */
 /* Return value                : State of the dataflash                            */
 /*--------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_DataFlashContinuousRead (
-       AT91PS_DataFlash pDataFlash,
-       int src,
-       unsigned char *dataBuffer,
-       int sizeToRead )
+AT91S_DataFlashStatus AT91F_DataFlashContinuousRead(AT91PS_DataFlash pDataFlash,
+                                                   int src,
+                                                   unsigned char *dataBuffer,
+                                                   int sizeToRead)
 {
        AT91S_DataFlashStatus status;
        /* Test the size to read in the device */
-       if ( (src + sizeToRead) >
-               (pDataFlash->pDevice->pages_size *
-               (pDataFlash->pDevice->pages_number)))
+       if ((src + sizeToRead) >
+           (pDataFlash->pDevice->pages_size *
+            (pDataFlash->pDevice->pages_number)))
                return DATAFLASH_MEMORY_OVERFLOW;
 
        pDataFlash->pDataFlashDesc->rx_data_pt = dataBuffer;
@@ -170,12 +167,11 @@ AT91S_DataFlashStatus AT91F_DataFlashContinuousRead (
        pDataFlash->pDataFlashDesc->tx_data_size = sizeToRead;
 
        status = AT91F_DataFlashSendCommand
-                       (pDataFlash, DB_CONTINUOUS_ARRAY_READ, 8, src);
+           (pDataFlash, DB_CONTINUOUS_ARRAY_READ, 8, src);
        /* Send the command to the dataflash */
-       return(status);
+       return (status);
 }
 
-
 /*---------------------------------------------------------------------------*/
 /* Function Name       : AT91F_DataFlashPagePgmBuf                          */
 /* Object              : Main memory page program thru buffer 1 or buffer 2  */
@@ -185,11 +181,10 @@ AT91S_DataFlashStatus AT91F_DataFlashContinuousRead (
 /*                     : <SizeToWrite> = data buffer size                   */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_DataFlashPagePgmBuf(
-       AT91PS_DataFlash pDataFlash,
-       unsigned char *src,
-       unsigned int dest,
-       unsigned int SizeToWrite)
+AT91S_DataFlashStatus AT91F_DataFlashPagePgmBuf(AT91PS_DataFlash pDataFlash,
+                                               unsigned char *src,
+                                               unsigned int dest,
+                                               unsigned int SizeToWrite)
 {
        int cmdsize;
        pDataFlash->pDataFlashDesc->tx_data_pt = src;
@@ -201,9 +196,9 @@ AT91S_DataFlashStatus AT91F_DataFlashPagePgmBuf(
        /* Send the command to the dataflash */
        if (pDataFlash->pDevice->pages_number >= 16384)
                cmdsize = 5;
-       return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_PGM_BUF1,
-cmdsize, dest)); }
-
+       return (AT91F_DataFlashSendCommand(pDataFlash, DB_PAGE_PGM_BUF1,
+                                          cmdsize, dest));
+}
 
 /*---------------------------------------------------------------------------*/
 /* Function Name       : AT91F_MainMemoryToBufferTransfert                  */
@@ -213,15 +208,16 @@ cmdsize, dest)); }
 /*                     :                                                    */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_MainMemoryToBufferTransfert(
-       AT91PS_DataFlash pDataFlash,
-       unsigned char BufferCommand,
-       unsigned int page)
+AT91S_DataFlashStatus AT91F_MainMemoryToBufferTransfert(AT91PS_DataFlash
+                                                       pDataFlash,
+                                                       unsigned char
+                                                       BufferCommand,
+                                                       unsigned int page)
 {
        int cmdsize;
        /* Test if the buffer command is legal */
        if ((BufferCommand != DB_PAGE_2_BUF1_TRF)
-               && (BufferCommand != DB_PAGE_2_BUF2_TRF))
+           && (BufferCommand != DB_PAGE_2_BUF2_TRF))
                return DATAFLASH_BAD_COMMAND;
 
        /* no data to transmit or receive */
@@ -229,11 +225,11 @@ AT91S_DataFlashStatus AT91F_MainMemoryToBufferTransfert(
        cmdsize = 4;
        if (pDataFlash->pDevice->pages_number >= 16384)
                cmdsize = 5;
-       return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize,
-page*pDataFlash->pDevice->pages_size));
+       return (AT91F_DataFlashSendCommand(pDataFlash, BufferCommand, cmdsize,
+                                          page *
+                                          pDataFlash->pDevice->pages_size));
 }
 
-
 /*-------------------------------------------------------------------------- */
 /* Function Name       : AT91F_DataFlashWriteBuffer                         */
 /* Object              : Write data to the internal sram buffer 1 or 2      */
@@ -244,58 +240,59 @@ page*pDataFlash->pDevice->pages_size));
 /*                     : <SizeToWrite> = data buffer size                   */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_DataFlashWriteBuffer (
-       AT91PS_DataFlash pDataFlash,
-       unsigned char BufferCommand,
-       unsigned char *dataBuffer,
-       unsigned int bufferAddress,
-       int SizeToWrite )
+AT91S_DataFlashStatus AT91F_DataFlashWriteBuffer(AT91PS_DataFlash pDataFlash,
+                                                unsigned char BufferCommand,
+                                                unsigned char *dataBuffer,
+                                                unsigned int bufferAddress,
+                                                int SizeToWrite)
 {
        int cmdsize;
        /* Test if the buffer command is legal */
        if ((BufferCommand != DB_BUF1_WRITE)
-               && (BufferCommand != DB_BUF2_WRITE))
+           && (BufferCommand != DB_BUF2_WRITE))
                return DATAFLASH_BAD_COMMAND;
 
        /* buffer address must be lower than page size */
        if (bufferAddress > pDataFlash->pDevice->pages_size)
                return DATAFLASH_BAD_ADDRESS;
 
-       if ( (pDataFlash->pDataFlashDesc->state)  != IDLE)
+       if ((pDataFlash->pDataFlashDesc->state) != IDLE)
                return DATAFLASH_BUSY;
 
        /* Send first Write Command */
        pDataFlash->pDataFlashDesc->command[0] = BufferCommand;
        pDataFlash->pDataFlashDesc->command[1] = 0;
        if (pDataFlash->pDevice->pages_number >= 16384) {
-               pDataFlash->pDataFlashDesc->command[2] = 0;
-               pDataFlash->pDataFlashDesc->command[3] =
-                       (unsigned char)(((unsigned int)(bufferAddress &
-                               pDataFlash->pDevice->byte_mask)) >> 8);
-               pDataFlash->pDataFlashDesc->command[4] =
-                       (unsigned char)((unsigned int)bufferAddress  & 0x00FF);
+               pDataFlash->pDataFlashDesc->command[2] = 0;
+               pDataFlash->pDataFlashDesc->command[3] =
+                   (unsigned char)(((unsigned int)(bufferAddress &
+                                                   pDataFlash->pDevice->
+                                                   byte_mask)) >> 8);
+               pDataFlash->pDataFlashDesc->command[4] =
+                   (unsigned char)((unsigned int)bufferAddress & 0x00FF);
                cmdsize = 5;
        } else {
-               pDataFlash->pDataFlashDesc->command[2] =
-                       (unsigned char)(((unsigned int)(bufferAddress &
-                               pDataFlash->pDevice->byte_mask)) >> 8);
-               pDataFlash->pDataFlashDesc->command[3] =
-                       (unsigned char)((unsigned int)bufferAddress  & 0x00FF);
-               pDataFlash->pDataFlashDesc->command[4] = 0;
+               pDataFlash->pDataFlashDesc->command[2] =
+                   (unsigned char)(((unsigned int)(bufferAddress &
+                                                   pDataFlash->pDevice->
+                                                   byte_mask)) >> 8);
+               pDataFlash->pDataFlashDesc->command[3] =
+                   (unsigned char)((unsigned int)bufferAddress & 0x00FF);
+               pDataFlash->pDataFlashDesc->command[4] = 0;
                cmdsize = 4;
        }
 
-       pDataFlash->pDataFlashDesc->tx_cmd_pt    =
-               pDataFlash->pDataFlashDesc->command;
+       pDataFlash->pDataFlashDesc->tx_cmd_pt =
+           pDataFlash->pDataFlashDesc->command;
        pDataFlash->pDataFlashDesc->tx_cmd_size = cmdsize;
-       pDataFlash->pDataFlashDesc->rx_cmd_pt    =
-               pDataFlash->pDataFlashDesc->command;
+       pDataFlash->pDataFlashDesc->rx_cmd_pt =
+           pDataFlash->pDataFlashDesc->command;
        pDataFlash->pDataFlashDesc->rx_cmd_size = cmdsize;
 
-       pDataFlash->pDataFlashDesc->rx_data_pt  = dataBuffer;
-       pDataFlash->pDataFlashDesc->tx_data_pt  = dataBuffer;
-       pDataFlash->pDataFlashDesc->rx_data_size        = SizeToWrite;
-       pDataFlash->pDataFlashDesc->tx_data_size        = SizeToWrite;
+       pDataFlash->pDataFlashDesc->rx_data_pt = dataBuffer;
+       pDataFlash->pDataFlashDesc->tx_data_pt = dataBuffer;
+       pDataFlash->pDataFlashDesc->rx_data_size = SizeToWrite;
+       pDataFlash->pDataFlashDesc->tx_data_size = SizeToWrite;
 
        return AT91F_SpiWrite(pDataFlash->pDataFlashDesc);
 }
@@ -308,23 +305,22 @@ AT91S_DataFlashStatus AT91F_DataFlashWriteBuffer (
 /*                     :                                                    */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_PageErase(
-       AT91PS_DataFlash pDataFlash,
-       unsigned int page)
+AT91S_DataFlashStatus AT91F_PageErase(AT91PS_DataFlash pDataFlash,
+                                     unsigned int page)
 {
        int cmdsize;
        /* Test if the buffer command is legal */
        /* no data to transmit or receive */
-       pDataFlash->pDataFlashDesc->tx_data_size = 0;
+       pDataFlash->pDataFlashDesc->tx_data_size = 0;
 
        cmdsize = 4;
        if (pDataFlash->pDevice->pages_number >= 16384)
                cmdsize = 5;
-       return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_ERASE, cmdsize,
-page*pDataFlash->pDevice->pages_size));
+       return (AT91F_DataFlashSendCommand(pDataFlash, DB_PAGE_ERASE, cmdsize,
+                                          page *
+                                          pDataFlash->pDevice->pages_size));
 }
 
-
 /*---------------------------------------------------------------------------*/
 /* Function Name       : AT91F_BlockErase                                    */
 /* Object              : Erase a Block                                              */
@@ -333,19 +329,19 @@ page*pDataFlash->pDevice->pages_size));
 /*                     :                                                    */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_BlockErase(
-       AT91PS_DataFlash pDataFlash,
-       unsigned int block)
+AT91S_DataFlashStatus AT91F_BlockErase(AT91PS_DataFlash pDataFlash,
+                                      unsigned int block)
 {
        int cmdsize;
        /* Test if the buffer command is legal */
        /* no data to transmit or receive */
-       pDataFlash->pDataFlashDesc->tx_data_size = 0;
+       pDataFlash->pDataFlashDesc->tx_data_size = 0;
        cmdsize = 4;
        if (pDataFlash->pDevice->pages_number >= 16384)
                cmdsize = 5;
-       return(AT91F_DataFlashSendCommand (pDataFlash, DB_BLOCK_ERASE,cmdsize,
-block*8*pDataFlash->pDevice->pages_size));
+       return (AT91F_DataFlashSendCommand(pDataFlash, DB_BLOCK_ERASE, cmdsize,
+                                          block * 8 *
+                                          pDataFlash->pDevice->pages_size));
 }
 
 /*---------------------------------------------------------------------------*/
@@ -356,17 +352,16 @@ block*8*pDataFlash->pDevice->pages_size));
 /*                     : <dest> = main memory address                       */
 /* Return value                : State of the dataflash                             */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_WriteBufferToMain (
-       AT91PS_DataFlash pDataFlash,
-       unsigned char BufferCommand,
-       unsigned int dest )
+AT91S_DataFlashStatus AT91F_WriteBufferToMain(AT91PS_DataFlash pDataFlash,
+                                             unsigned char BufferCommand,
+                                             unsigned int dest)
 {
        int cmdsize;
        /* Test if the buffer command is correct */
        if ((BufferCommand != DB_BUF1_PAGE_PGM) &&
            (BufferCommand != DB_BUF1_PAGE_ERASE_PGM) &&
            (BufferCommand != DB_BUF2_PAGE_PGM) &&
-           (BufferCommand != DB_BUF2_PAGE_ERASE_PGM) )
+           (BufferCommand != DB_BUF2_PAGE_ERASE_PGM))
                return DATAFLASH_BAD_COMMAND;
 
        /* no data to transmit or receive */
@@ -376,9 +371,9 @@ AT91S_DataFlashStatus AT91F_WriteBufferToMain (
        if (pDataFlash->pDevice->pages_number >= 16384)
                cmdsize = 5;
        /* Send the command to the dataflash */
-       return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize,
-                                               dest)); }
-
+       return (AT91F_DataFlashSendCommand(pDataFlash, BufferCommand, cmdsize,
+                                          dest));
+}
 
 /*---------------------------------------------------------------------------*/
 /* Function Name       : AT91F_PartialPageWrite                                     */
@@ -387,11 +382,10 @@ AT91S_DataFlashStatus AT91F_WriteBufferToMain (
 /*                     : <AdrInpage> = adr to begin the fading              */
 /*                     : <length> = Number of bytes to erase                */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_PartialPageWrite (
-       AT91PS_DataFlash pDataFlash,
-       unsigned char *src,
-       unsigned int dest,
-       unsigned int size)
+AT91S_DataFlashStatus AT91F_PartialPageWrite(AT91PS_DataFlash pDataFlash,
+                                            unsigned char *src,
+                                            unsigned int dest,
+                                            unsigned int size)
 {
        unsigned int page;
        unsigned int AdrInPage;
@@ -400,28 +394,28 @@ AT91S_DataFlashStatus AT91F_PartialPageWrite (
        AdrInPage = dest % (pDataFlash->pDevice->pages_size);
 
        /* Read the contents of the page in the Sram Buffer */
-       AT91F_MainMemoryToBufferTransfert(pDataFlash,
-                                               DB_PAGE_2_BUF1_TRF, page);
+       AT91F_MainMemoryToBufferTransfert(pDataFlash, DB_PAGE_2_BUF1_TRF, page);
        AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                AT91C_TIMEOUT_WRDY);
        /*Update the SRAM buffer */
        AT91F_DataFlashWriteBuffer(pDataFlash, DB_BUF1_WRITE, src,
-                                       AdrInPage, size);
+                                  AdrInPage, size);
 
        AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                       AT91C_TIMEOUT_WRDY);
+                                AT91C_TIMEOUT_WRDY);
 
        /* Erase page if a 128 Mbits device */
        if (pDataFlash->pDevice->pages_number >= 16384) {
                AT91F_PageErase(pDataFlash, page);
                /* Rewrite the modified Sram Buffer in the main memory */
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
        }
 
        /* Rewrite the modified Sram Buffer in the main memory */
-       return(AT91F_WriteBufferToMain(pDataFlash, DB_BUF1_PAGE_ERASE_PGM,
-                               (page*pDataFlash->pDevice->pages_size)));
+       return (AT91F_WriteBufferToMain(pDataFlash, DB_BUF1_PAGE_ERASE_PGM,
+                                       (page *
+                                        pDataFlash->pDevice->pages_size)));
 }
 
 /*---------------------------------------------------------------------------*/
@@ -431,11 +425,9 @@ AT91S_DataFlashStatus AT91F_PartialPageWrite (
 /*                     : <dest> = dataflash adress                          */
 /*                     : <size> = data buffer size                          */
 /*---------------------------------------------------------------------------*/
-AT91S_DataFlashStatus AT91F_DataFlashWrite(
-       AT91PS_DataFlash pDataFlash,
-       unsigned char *src,
-       int dest,
-       int size )
+AT91S_DataFlashStatus AT91F_DataFlashWrite(AT91PS_DataFlash pDataFlash,
+                                          unsigned char *src,
+                                          int dest, int size)
 {
        unsigned int length;
        unsigned int page;
@@ -443,26 +435,24 @@ AT91S_DataFlashStatus AT91F_DataFlashWrite(
 
        AT91F_SpiEnable(pDataFlash->pDevice->cs);
 
-       if ( (dest + size) > (pDataFlash->pDevice->pages_size *
-                                       (pDataFlash->pDevice->pages_number)))
+       if ((dest + size) > (pDataFlash->pDevice->pages_size *
+                            (pDataFlash->pDevice->pages_number)))
                return DATAFLASH_MEMORY_OVERFLOW;
 
        /* If destination does not fit a page start address */
-       if ((dest % ((unsigned int)(pDataFlash->pDevice->pages_size)))  != 0 )
-       {
+       if ((dest % ((unsigned int)(pDataFlash->pDevice->pages_size))) != 0) {
                length = pDataFlash->pDevice->pages_size -
-                               (dest %
-                               ((unsigned int)
-                               (pDataFlash->pDevice->pages_size)));
+                   (dest % ((unsigned int)
+                            (pDataFlash->pDevice->pages_size)));
 
                if (size < length)
                        length = size;
 
-               if(!AT91F_PartialPageWrite(pDataFlash,src, dest, length))
+               if (!AT91F_PartialPageWrite(pDataFlash, src, dest, length))
                        return DATAFLASH_ERROR;
 
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                       AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
 
                /* Update size, source and destination pointers */
                size -= length;
@@ -470,78 +460,77 @@ AT91S_DataFlashStatus AT91F_DataFlashWrite(
                src += length;
        }
 
-       while (( size - pDataFlash->pDevice->pages_size ) >= 0 ) {
+       while ((size - pDataFlash->pDevice->pages_size) >= 0) {
                /* program dataflash page */
                page = (unsigned int)dest / (pDataFlash->pDevice->pages_size);
 
                status = AT91F_DataFlashWriteBuffer(pDataFlash,
-                               DB_BUF1_WRITE, src, 0,
-                               pDataFlash->pDevice->pages_size);
+                                                   DB_BUF1_WRITE, src, 0,
+                                                   pDataFlash->pDevice->
+                                                   pages_size);
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
 
                status = AT91F_PageErase(pDataFlash, page);
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
                if (!status)
                        return DATAFLASH_ERROR;
 
-               status = AT91F_WriteBufferToMain (pDataFlash,
-                                               DB_BUF1_PAGE_PGM, dest);
-               if(!status)
+               status = AT91F_WriteBufferToMain(pDataFlash,
+                                                DB_BUF1_PAGE_PGM, dest);
+               if (!status)
                        return DATAFLASH_ERROR;
 
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
 
                /* Update size, source and destination pointers */
                size -= pDataFlash->pDevice->pages_size;
                dest += pDataFlash->pDevice->pages_size;
-               src  += pDataFlash->pDevice->pages_size;
+               src += pDataFlash->pDevice->pages_size;
        }
 
        /* If still some bytes to read */
-       if ( size > 0 ) {
+       if (size > 0) {
                /* program dataflash page */
-               if(!AT91F_PartialPageWrite(pDataFlash, src, dest, size) )
+               if (!AT91F_PartialPageWrite(pDataFlash, src, dest, size))
                        return DATAFLASH_ERROR;
 
                AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                               AT91C_TIMEOUT_WRDY);
+                                        AT91C_TIMEOUT_WRDY);
        }
        return DATAFLASH_OK;
 }
 
-
 /*---------------------------------------------------------------------------*/
 /* Function Name       : AT91F_DataFlashRead                                */
 /* Object              : Read a block in dataflash                          */
 /* Input Parameters    :                                                    */
 /* Return value                :                                                    */
 /*---------------------------------------------------------------------------*/
-int AT91F_DataFlashRead(
-       AT91PS_DataFlash pDataFlash,
-       unsigned long addr,
-       unsigned long size,
-       char *buffer)
+int AT91F_DataFlashRead(AT91PS_DataFlash pDataFlash,
+                       unsigned long addr, unsigned long size, char *buffer)
 {
        unsigned long SizeToRead;
 
        AT91F_SpiEnable(pDataFlash->pDevice->cs);
 
-       if(AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                       AT91C_TIMEOUT_WRDY) != DATAFLASH_OK)
+       if (AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
+                                    AT91C_TIMEOUT_WRDY) != DATAFLASH_OK)
                return -1;
 
        while (size) {
-               SizeToRead = (size < 0x8000)? size:0x8000;
+               SizeToRead = (size < 0x8000) ? size : 0x8000;
 
                if (AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc,
-                                       AT91C_TIMEOUT_WRDY) != DATAFLASH_OK)
+                                            AT91C_TIMEOUT_WRDY) !=
+                   DATAFLASH_OK)
                        return -1;
 
-               if (AT91F_DataFlashContinuousRead (pDataFlash, addr,
-                               (uchar *) buffer, SizeToRead) != DATAFLASH_OK)
+               if (AT91F_DataFlashContinuousRead(pDataFlash, addr,
+                                                 (uchar *) buffer,
+                                                 SizeToRead) != DATAFLASH_OK)
                        return -1;
 
                size -= SizeToRead;
@@ -558,9 +547,10 @@ int AT91F_DataFlashRead(
 /* Input Parameters    :                                                    */
 /* Return value               : Dataflash status register                           */
 /*---------------------------------------------------------------------------*/
-int AT91F_DataflashProbe(int cs, AT91PS_DataflashDesc pDesc) {
+int AT91F_DataflashProbe(int cs, AT91PS_DataflashDesc pDesc)
+{
        AT91F_SpiEnable(cs);
        AT91F_DataFlashGetStatus(pDesc);
-       return((pDesc->command[1] == 0xFF)? 0: pDesc->command[1] & 0x3C);
+       return ((pDesc->command[1] == 0xFF) ? 0 : pDesc->command[1] & 0x3C);
 }
 #endif
old mode 100644 (file)
new mode 100755 (executable)
similarity index 97%
rename from include/led.h
rename to include/asm-arm/coloured_led.h
index 57c2b4a..f78a4b1
@@ -26,7 +26,7 @@
 #define __LED_H
 
 #ifndef        __ASSEMBLY__
-extern void    LED_init (void);
+extern void    coloured_LED_init (void);
 extern void    red_LED_on(void);
 extern void    red_LED_off(void);
 extern void    green_LED_on(void);
old mode 100644 (file)
new mode 100755 (executable)
index 3d91e99..77ea025
@@ -76,6 +76,6 @@
 #define CONFIG_CMD_USB         /* USB Support                  */
 #define CONFIG_CMD_VFD         /* VFD support (TRAB)           */
 #define CONFIG_CMD_XIMG                /* Load part of Multi Image     */
-#define CONFIG_CMD_MUX         /* AT91 MMC/SPI Mux Support     */
+#define CONFIG_CMD_AT91_SPIMUX /* AT91 MMC/SPI Mux Support     */
 
 #endif /* _CONFIG_CMD_ALL_H */
index d28afc52f9f492ec2a5c3f8de193fedfec5614fe..87848d94c0480de7f567273095aa3c172830a000 100644 (file)
@@ -111,6 +111,30 @@ void *sbrk (ptrdiff_t increment)
        return ((void *) old);
 }
 
+/************************************************************************
+ * Coloured LED functionality
+ ************************************************************************
+ * May be supplied by boards if desired
+ */
+void inline __coloured_LED_init (void) {}
+void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init"))); 
+void inline __red_LED_on (void) {}
+void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
+void inline __red_LED_off(void) {}
+void inline red_LED_off(void)       __attribute__((weak, alias("__red_LED_off"))); 
+void inline __green_LED_on(void) {}
+void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on"))); 
+void inline __green_LED_off(void) {}
+void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off"))); 
+void inline __yellow_LED_on(void) {}
+void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on"))); 
+void inline __yellow_LED_off(void) {}
+void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off"))); 
+
+
+
+
+
 /************************************************************************
  * Init Utilities                                                      *
  ************************************************************************