From be129aa71882421ad0b50cd3762915d10ace27ad Mon Sep 17 00:00:00 2001 From: Matthias Weisser Date: Tue, 12 Jan 2010 12:06:31 +0100 Subject: video: Fix console display when splashscreen is used If a splashscreen is used the console scrolling used the scroll size as needed when a logo was displayed. This patch sets the scroll size to the whole screen if a splashscreen is shown. Signed-off-by: Matthias Weisser --- drivers/video/cfb_console.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index c07a26e..49f0a2e 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -260,7 +260,7 @@ void console_cursor (int state); #define CURSOR_ON #define CURSOR_OFF #define CURSOR_SET video_set_hw_cursor(console_col * VIDEO_FONT_WIDTH, \ - (console_row * VIDEO_FONT_HEIGHT) + VIDEO_LOGO_HEIGHT); + (console_row * VIDEO_FONT_HEIGHT) + video_logo_height); #endif /* CONFIG_VIDEO_HW_CURSOR */ #ifdef CONFIG_VIDEO_LOGO @@ -298,7 +298,7 @@ void console_cursor (int state); #define VIDEO_BURST_LEN (VIDEO_COLS/8) #ifdef CONFIG_VIDEO_LOGO -#define CONSOLE_ROWS ((VIDEO_ROWS - VIDEO_LOGO_HEIGHT) / VIDEO_FONT_HEIGHT) +#define CONSOLE_ROWS ((VIDEO_ROWS - video_logo_height) / VIDEO_FONT_HEIGHT) #else #define CONSOLE_ROWS (VIDEO_ROWS / VIDEO_FONT_HEIGHT) #endif @@ -349,6 +349,8 @@ static GraphicDevice *pGD; /* Pointer to Graphic array */ static void *video_fb_address; /* frame buffer address */ static void *video_console_address; /* console buffer start address */ +static int video_logo_height = VIDEO_LOGO_HEIGHT; + static int console_col = 0; /* cursor col */ static int console_row = 0; /* cursor row */ @@ -527,7 +529,7 @@ static inline void video_drawstring (int xx, int yy, unsigned char *s) static void video_putchar (int xx, int yy, unsigned char c) { - video_drawchars (xx, yy + VIDEO_LOGO_HEIGHT, &c, 1); + video_drawchars (xx, yy + video_logo_height, &c, 1); } /*****************************************************************************/ @@ -620,11 +622,11 @@ static void console_scrollup (void) #ifdef VIDEO_HW_BITBLT video_hw_bitblt (VIDEO_PIXEL_SIZE, /* bytes per pixel */ 0, /* source pos x */ - VIDEO_LOGO_HEIGHT + VIDEO_FONT_HEIGHT, /* source pos y */ + video_logo_height + VIDEO_FONT_HEIGHT, /* source pos y */ 0, /* dest pos x */ - VIDEO_LOGO_HEIGHT, /* dest pos y */ + video_logo_height, /* dest pos y */ VIDEO_VISIBLE_COLS, /* frame width */ - VIDEO_VISIBLE_ROWS - VIDEO_LOGO_HEIGHT - VIDEO_FONT_HEIGHT /* frame height */ + VIDEO_VISIBLE_ROWS - video_logo_height - VIDEO_FONT_HEIGHT /* frame height */ ); #else memcpyl (CONSOLE_ROW_FIRST, CONSOLE_ROW_SECOND, @@ -1101,7 +1103,7 @@ void logo_plot (void *screen, int width, int x, int y) int xcount, i; int skip = (width - VIDEO_LOGO_WIDTH) * VIDEO_PIXEL_SIZE; - int ycount = VIDEO_LOGO_HEIGHT; + int ycount = video_logo_height; unsigned char r, g, b, *logo_red, *logo_blue, *logo_green; unsigned char *source; unsigned char *dest = (unsigned char *)screen + @@ -1225,6 +1227,7 @@ static void *video_logo (void) #endif /* CONFIG_SPLASH_SCREEN_ALIGN */ if (video_display_bitmap (addr, x, y) == 0) { + video_logo_height = 0; return ((void *) (video_fb_address)); } } @@ -1249,7 +1252,7 @@ static void *video_logo (void) #ifdef CONFIG_CONSOLE_EXTRA_INFO { - int i, n = ((VIDEO_LOGO_HEIGHT - VIDEO_FONT_HEIGHT) / VIDEO_FONT_HEIGHT); + int i, n = ((video_logo_height - VIDEO_FONT_HEIGHT) / VIDEO_FONT_HEIGHT); for (i = 1; i < n; i++) { video_get_info_str (i, info); @@ -1278,7 +1281,7 @@ static void *video_logo (void) } #endif - return (video_fb_address + VIDEO_LOGO_HEIGHT * VIDEO_LINE_LEN); + return (video_fb_address + video_logo_height * VIDEO_LINE_LEN); } #endif -- cgit v1.1 From 1e67fb32fbdae7949bb423c9e20b3f77c0a61663 Mon Sep 17 00:00:00 2001 From: Thomas Chou Date: Tue, 16 Mar 2010 12:12:48 -0400 Subject: nios2: use generic unaligned.h Signed-off-by: Scott McNutt --- include/asm-nios2/unaligned.h | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 include/asm-nios2/unaligned.h diff --git a/include/asm-nios2/unaligned.h b/include/asm-nios2/unaligned.h new file mode 100644 index 0000000..779117c --- /dev/null +++ b/include/asm-nios2/unaligned.h @@ -0,0 +1,6 @@ +#ifndef _ASM_NIOS2_UNALIGNED_H +#define _ASM_NIOS2_UNALIGNED_H + +#include + +#endif /* _ASM_NIOS2_UNALIGNED_H */ -- cgit v1.1 From 67c7189dd35cb368ef665126fd17816581bd2e92 Mon Sep 17 00:00:00 2001 From: Renato Andreola Date: Tue, 16 Mar 2010 16:01:29 -0400 Subject: nios2: Added support to YANU UART Signed-off-by: Scott McNutt --- cpu/nios2/serial.c | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++- include/nios2-yanu.h | 115 +++++++++++++++++++++++++++++++++++ 2 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 include/nios2-yanu.h diff --git a/cpu/nios2/serial.c b/cpu/nios2/serial.c index 8bbb803..6c835af 100644 --- a/cpu/nios2/serial.c +++ b/cpu/nios2/serial.c @@ -2,6 +2,9 @@ * (C) Copyright 2004, Psyent Corporation * Scott McNutt * + * YANU Support: + * Copyright 2010, Renato Andreola + * * See file CREDITS for list of people who contributed to this * project. * @@ -26,6 +29,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -74,10 +78,172 @@ int serial_getc (void) return (c); } +#elif defined(CONFIG_CONSOLE_YANU) +/*-----------------------------------------------------------------*/ +/* YANU Imagos serial port */ +/*-----------------------------------------------------------------*/ + +static yanu_uart_t *uart = (yanu_uart_t *)CONFIG_SYS_NIOS_CONSOLE; + +#if defined(CONFIG_SYS_NIOS_FIXEDBAUD) + +/* Everything's already setup for fixed-baud PTF assignment*/ + +void serial_setbrg (void) +{ + int n, k; + const unsigned max_uns = 0xFFFFFFFF; + unsigned best_n, best_m, baud; + + /* compute best N and M couple */ + best_n = YANU_MAX_PRESCALER_N; + for (n = YANU_MAX_PRESCALER_N; n >= 0; n--) { + if ((unsigned)CONFIG_SYS_CLK_FREQ / (1 << (n + 4)) >= + (unsigned)CONFIG_BAUDRATE) { + best_n = n; + break; + } + } + for (k = 0;; k++) { + if ((unsigned)CONFIG_BAUDRATE <= (max_uns >> (15+n-k))) + break; + } + best_m = + ((unsigned)CONFIG_BAUDRATE * (1 << (15 + n - k))) / + ((unsigned)CONFIG_SYS_CLK_FREQ >> k); + + baud = best_m + best_n * YANU_BAUDE; + writel(&uart->baud, baud); + + return; +} + +#else + +void serial_setbrg (void) +{ + int n, k; + const unsigned max_uns = 0xFFFFFFFF; + unsigned best_n, best_m, baud; + + /* compute best N and M couple */ + best_n = YANU_MAX_PRESCALER_N; + for (n = YANU_MAX_PRESCALER_N; n >= 0; n--) { + if ((unsigned)CONFIG_SYS_CLK_FREQ / (1 << (n + 4)) >= + gd->baudrate) { + best_n = n; + break; + } + } + for (k = 0;; k++) { + if (gd->baudrate <= (max_uns >> (15+n-k))) + break; + } + best_m = + (gd->baudrate * (1 << (15 + n - k))) / + ((unsigned)CONFIG_SYS_CLK_FREQ >> k); + + baud = best_m + best_n * YANU_BAUDE; + writel(&uart->baud, baud); + + return; +} + + +#endif /* CONFIG_SYS_NIOS_FIXEDBAUD */ + +int serial_init (void) +{ + unsigned action,control; + + /* status register cleanup */ + action = YANU_ACTION_RRRDY | + YANU_ACTION_RTRDY | + YANU_ACTION_ROE | + YANU_ACTION_RBRK | + YANU_ACTION_RFE | + YANU_ACTION_RPE | + YANU_ACTION_RFE | YANU_ACTION_RFIFO_CLEAR | YANU_ACTION_TFIFO_CLEAR; + + writel(&uart->action, action); + + /* control register cleanup */ + /* no interrupts enabled */ + /* one stop bit */ + /* hardware flow control disabled */ + /* 8 bits */ + control = (0x7 << YANU_CONTROL_BITS_POS); + /* enven parity just to be clean */ + control |= YANU_CONTROL_PAREVEN; + /* we set threshold for fifo */ + control |= YANU_CONTROL_RDYDLY * YANU_RXFIFO_DLY; + control |= YANU_CONTROL_TXTHR * YANU_TXFIFO_THR; + + writel(&uart->control, control); + + /* to set baud rate */ + serial_setbrg(); + + return (0); +} + + +/*----------------------------------------------------------------------- + * YANU CONSOLE + *---------------------------------------------------------------------*/ +void serial_putc (char c) +{ + int tx_chars; + unsigned status; + + if (c == '\n') + serial_putc ('\r'); + + while (1) { + status = readl(&uart->status); + tx_chars = (status>>YANU_TFIFO_CHARS_POS) + & ((1<data, (unsigned char)c); +} + +void serial_puts (const char *s) +{ + while (*s != 0) { + serial_putc (*s++); + } +} + + +int serial_tstc(void) +{ + unsigned status ; + + status = readl(&uart->status); + return (((status >> YANU_RFIFO_CHARS_POS) & + ((1 << YANU_RFIFO_CHARS_N) - 1)) > 0); +} + +int serial_getc (void) +{ + while (serial_tstc() == 0) + WATCHDOG_RESET (); + + /* first we pull the char */ + writel(&uart->action, YANU_ACTION_RFIFO_PULL); + + return(readl(&uart->data) & YANU_DATA_CHAR_MASK); +} + +#else /*CONFIG_CONSOLE_YANU*/ + /*------------------------------------------------------------------ * UART the serial port *-----------------------------------------------------------------*/ -#else static nios_uart_t *uart = (nios_uart_t *) CONFIG_SYS_NIOS_CONSOLE; diff --git a/include/nios2-yanu.h b/include/nios2-yanu.h new file mode 100644 index 0000000..1c9a967 --- /dev/null +++ b/include/nios2-yanu.h @@ -0,0 +1,115 @@ +/* + * (C) Copyright 2006, Imagos S.a.s + * Renato Andreola + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/************************************************************************* + * Altera NiosII YANU serial interface by Imagos + * please see http://www.opencores.org/project,yanu for + * information/downloads + ************************************************************************/ + +#ifndef __NIOS2_YANU_H__ +#define __NIOS2_YANU_H__ + +#define YANU_MAX_PRESCALER_N ((1 << 4) - 1) /* 15 */ +#define YANU_MAX_PRESCALER_M ((1 << 11) -1) /* 2047 */ +#define YANU_FIFO_SIZE (16) +#define YANU_RXFIFO_SIZE (YANU_FIFO_SIZE) +#define YANU_TXFIFO_SIZE (YANU_FIFO_SIZE) + +#define YANU_RXFIFO_DLY (10*11) +#define YANU_TXFIFO_THR (10) +#define YANU_DATA_CHAR_MASK (0xFF) + +/* data register */ +#define YANU_DATA_OFFSET (0) /* data register offset */ + +#define YANU_CONTROL_OFFSET (4) /* control register offset */ +/* interrupt enable */ +#define YANU_CONTROL_IE_RRDY (1<<0) /* ie on received character ready */ +#define YANU_CONTROL_IE_OE (1<<1) /* ie on rx overrun */ +#define YANU_CONTROL_IE_BRK (1<<2) /* ie on break detect */ +#define YANU_CONTROL_IE_FE (1<<3) /* ie on framing error */ +#define YANU_CONTROL_IE_PE (1<<4) /* ie on parity error */ +#define YANU_CONTROL_IE_TRDY (1<<5) /* ie interrupt on tranmitter ready */ +/* control bits */ +#define YANU_CONTROL_BITS_POS (6) /* bits number pos */ +#define YANU_CONTROL_BITS (1< Date: Thu, 25 Feb 2010 14:03:08 +0100 Subject: cmd_mmc remove \n This patch removes the \n after the help message for mmcinfo. This resulted in an empty line being displayed after the mmcinfo line when the help command was given. Signed-off-by: Frans Meulenbroeks --- common/cmd_mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 0e3393b..c67c9cf 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -136,7 +136,7 @@ int do_mmcinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } U_BOOT_CMD(mmcinfo, 2, 0, do_mmcinfo, - "mmcinfo -- display MMC info\n", + "mmcinfo -- display MMC info", "" ); -- cgit v1.1 From 252b404d954f91499a4477a3e1064eb237ce5a1c Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Tue, 9 Mar 2010 14:27:25 +0100 Subject: Fix PCI_BASE_ADDRESS_5 handling in pci_hose_config_device() Signed-off-by: FUJITA Kazutoshi Signed-off-by: Acked-by: Stefan Roese --- drivers/pci/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index d6d2d6e..cd64a87 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -388,7 +388,7 @@ int pci_hose_config_device(struct pci_controller *hose, pci_hose_write_config_dword (hose, dev, PCI_COMMAND, 0); - for (bar = PCI_BASE_ADDRESS_0; bar < PCI_BASE_ADDRESS_5; bar += 4) { + for (bar = PCI_BASE_ADDRESS_0; bar <= PCI_BASE_ADDRESS_5; bar += 4) { pci_hose_write_config_dword (hose, dev, bar, 0xffffffff); pci_hose_read_config_dword (hose, dev, bar, &bar_response); -- cgit v1.1 From c96f86eefc215b67dd222694ce2b6f60e6a42b0b Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Sun, 17 Jan 2010 23:55:53 +0100 Subject: TFTP: allow for adjustable retransmission timout So far, TFTP negotiated a fixed retransmission timeout of 5 seconds. In some cases (busy networks, slow TFTP servers) this caused very slow transfers. A new environment variable "tftptimeout" allows to set this timeout. Lowering this value may make downloads succeed faster in networks with high packet loss rates or with unreliable TFTP servers. Signed-off-by: Wolfgang Denk Cc: Ben Warren Signed-off-by: Ben Warren --- README | 19 ++++++++++++++++--- net/tftp.c | 23 ++++++++++++++++++----- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/README b/README index 1158e24..940b507 100644 --- a/README +++ b/README @@ -3005,7 +3005,9 @@ environment. As long as you don't save the environment you are working with an in-memory copy. In case the Flash area containing the environment is erased by accident, a default environment is provided. -Some configuration options can be set using Environment Variables: +Some configuration options can be set using Environment Variables. + +List of environment variables (most likely not complete): baudrate - see CONFIG_BAUDRATE @@ -3117,7 +3119,7 @@ Some configuration options can be set using Environment Variables: available network interfaces. It just stays at the currently selected interface. - netretry - When set to "no" each network operation will + netretry - When set to "no" each network operation will either succeed or fail without retrying. When set to "once" the network operation will fail when all the available network interfaces @@ -3133,7 +3135,18 @@ Some configuration options can be set using Environment Variables: tftpdstport - If this is set, the value is used for TFTP's UDP destination port instead of the Well Know Port 69. - vlan - When set to a value < 4095 the traffic over + tftpblocksize - Block size to use for TFTP transfers; if not set, + we use the TFTP server's default block size + + tftptimeout - Retransmission timeout for TFTP packets (in milli- + seconds, minimum value is 1000 = 1 second). Defines + when a packet is considered to be lost so it has to + be retransmitted. The default is 5000 = 5 seconds. + Lowering this value may make downloads succeed + faster in networks with high packet loss rates or + with unreliable TFTP servers. + + vlan - When set to a value < 4095 the traffic over Ethernet is encapsulated/received over 802.1q VLAN tagged frames. diff --git a/net/tftp.c b/net/tftp.c index a02463b..ed559b7 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -211,7 +211,7 @@ TftpSend (void) pkt += 5 /*strlen("octet")*/ + 1; strcpy ((char *)pkt, "timeout"); pkt += 7 /*strlen("timeout")*/ + 1; - sprintf((char *)pkt, "%lu", TIMEOUT / 1000); + sprintf((char *)pkt, "%lu", TftpTimeoutMSecs / 1000); debug("send option \"timeout %s\"\n", (char *)pkt); pkt += strlen((char *)pkt) + 1; #ifdef CONFIG_TFTP_TSIZE @@ -413,7 +413,6 @@ TftpHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len) } TftpLastBlock = TftpBlock; - TftpTimeoutMSecs = TIMEOUT; TftpTimeoutCountMax = TIMEOUT_COUNT; NetSetTimeout (TftpTimeoutMSecs, TftpTimeout); @@ -528,10 +527,25 @@ TftpStart (void) { char *ep; /* Environment pointer */ - /* Allow the user to choose tftpblocksize */ + /* + * Allow the user to choose TFTP blocksize and timeout. + * TFTP protocol has a minimal timeout of 1 second. + */ if ((ep = getenv("tftpblocksize")) != NULL) TftpBlkSizeOption = simple_strtol(ep, NULL, 10); - debug("tftp block size is %i\n", TftpBlkSizeOption); + + if ((ep = getenv("tftptimeout")) != NULL) + TftpTimeoutMSecs = simple_strtol(ep, NULL, 10); + + if (TftpTimeoutMSecs < 1000) { + printf("TFTP timeout (%ld ms) too low, " + "set minimum = 1000 ms\n", + TftpTimeoutMSecs); + TftpTimeoutMSecs = 1000; + } + + debug("TFTP blocksize = %i, timeout = %ld ms\n", + TftpBlkSizeOption, TftpTimeoutMSecs); TftpServerIP = NetServerIP; if (BootFile[0] == '\0') { @@ -588,7 +602,6 @@ TftpStart (void) puts ("Loading: *\b"); - TftpTimeoutMSecs = TftpRRQTimeoutMSecs; TftpTimeoutCountMax = TftpRRQTimeoutCountMax; NetSetTimeout (TftpTimeoutMSecs, TftpTimeout); -- cgit v1.1 From 99c006a320ceb9ea19135ac1512e4a81e8bebb72 Mon Sep 17 00:00:00 2001 From: Stefano Babic Date: Sat, 13 Mar 2010 21:09:00 +0100 Subject: mxcmmc: fix warnings due to access 32 bit registers with 16 bit accessors Some registers of the mxcmmc driver were accessed using 16 bit accessor functions, because only the LSB is significant. This is not needed and generates warnings. Signed-off-by: Stefano Babic --- drivers/mmc/mxcmmc.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/mmc/mxcmmc.c b/drivers/mmc/mxcmmc.c index d307176..5963953 100644 --- a/drivers/mmc/mxcmmc.c +++ b/drivers/mmc/mxcmmc.c @@ -136,14 +136,14 @@ static void mxcmci_softreset(struct mxcmci_host *host) int i; /* reset sequence */ - writew(STR_STP_CLK_RESET, &host->base->str_stp_clk); - writew(STR_STP_CLK_RESET | STR_STP_CLK_START_CLK, + writel(STR_STP_CLK_RESET, &host->base->str_stp_clk); + writel(STR_STP_CLK_RESET | STR_STP_CLK_START_CLK, &host->base->str_stp_clk); for (i = 0; i < 8; i++) - writew(STR_STP_CLK_START_CLK, &host->base->str_stp_clk); + writel(STR_STP_CLK_START_CLK, &host->base->str_stp_clk); - writew(0xff, &host->base->res_to); + writel(0xff, &host->base->res_to); } static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data) @@ -154,8 +154,8 @@ static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data) host->data = data; - writew(nob, &host->base->nob); - writew(blksz, &host->base->blk_len); + writel(nob, &host->base->nob); + writel(blksz, &host->base->blk_len); host->datasize = datasize; } @@ -185,9 +185,9 @@ static int mxcmci_start_cmd(struct mxcmci_host *host, struct mmc_cmd *cmd, return -EINVAL; } - writew(cmd->cmdidx, &host->base->cmd); + writel(cmd->cmdidx, &host->base->cmd); writel(cmd->cmdarg, &host->base->arg); - writew(cmdat, &host->base->cmd_dat_cont); + writel(cmdat, &host->base->cmd_dat_cont); return 0; } @@ -247,14 +247,14 @@ static int mxcmci_read_response(struct mxcmci_host *host, unsigned int stat) if (cmd->resp_type & MMC_RSP_PRESENT) { if (cmd->resp_type & MMC_RSP_136) { for (i = 0; i < 4; i++) { - a = readw(&host->base->res_fifo); - b = readw(&host->base->res_fifo); + a = readl(&host->base->res_fifo) & 0xFFFF; + b = readl(&host->base->res_fifo) & 0xFFFF; resp[i] = a << 16 | b; } } else { - a = readw(&host->base->res_fifo); - b = readw(&host->base->res_fifo); - c = readw(&host->base->res_fifo); + a = readl(&host->base->res_fifo) & 0xFFFF; + b = readl(&host->base->res_fifo) & 0xFFFF; + c = readl(&host->base->res_fifo) & 0xFFFF; resp[0] = a << 24 | b << 8 | c >> 8; } } @@ -445,7 +445,7 @@ static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios) prescaler <<= 1; } - writew((prescaler << 4) | divider, &host->base->clk_rate); + writel((prescaler << 4) | divider, &host->base->clk_rate); } static void mxcmci_set_ios(struct mmc *mmc) @@ -458,9 +458,9 @@ static void mxcmci_set_ios(struct mmc *mmc) if (mmc->clock) { mxcmci_set_clk_rate(host, mmc->clock); - writew(STR_STP_CLK_START_CLK, &host->base->str_stp_clk); + writel(STR_STP_CLK_START_CLK, &host->base->str_stp_clk); } else { - writew(STR_STP_CLK_STOP_CLK, &host->base->str_stp_clk); + writel(STR_STP_CLK_STOP_CLK, &host->base->str_stp_clk); } host->clock = mmc->clock; @@ -472,7 +472,7 @@ static int mxcmci_init(struct mmc *mmc) mxcmci_softreset(host); - host->rev_no = readw(&host->base->rev_no); + host->rev_no = readl(&host->base->rev_no); if (host->rev_no != 0x400) { printf("wrong rev.no. 0x%08x. aborting.\n", host->rev_no); @@ -480,7 +480,7 @@ static int mxcmci_init(struct mmc *mmc) } /* recommended in data sheet */ - writew(0x2db4, &host->base->read_to); + writel(0x2db4, &host->base->read_to); writel(0, &host->base->int_cntr); -- cgit v1.1 From 5647f78d04174b0b99857d2a7cbf25141bd14a45 Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Sat, 13 Mar 2010 23:14:45 +0100 Subject: mod change 755 => 644 for multiple files I executed 'find . -name "*.[chS]" -perm 755 -exec chmod 644 {} \;' Signed-off-by: Thomas Weber Add some more: neither Makefile nor config.mk need execute permissions. Signed-off-by: Wolfgang Denk --- board/spear/common/spr_lowlevel_init.S | 0 board/spear/common/spr_misc.c | 0 board/spear/spear300/Makefile | 0 board/spear/spear300/config.mk | 0 board/spear/spear300/spear300.c | 0 board/spear/spear310/Makefile | 0 board/spear/spear310/config.mk | 0 board/spear/spear310/spear310.c | 0 board/spear/spear320/Makefile | 0 board/spear/spear320/config.mk | 0 board/spear/spear320/spear320.c | 0 board/spear/spear600/Makefile | 0 board/spear/spear600/config.mk | 0 board/spear/spear600/spear600.c | 0 cpu/arm926ejs/spear/Makefile | 0 cpu/arm926ejs/spear/reset.c | 0 cpu/arm926ejs/spear/timer.c | 0 cpu/arm926ejs/versatile/timer.c | 0 drivers/i2c/Makefile | 0 drivers/i2c/spr_i2c.c | 0 drivers/mtd/Makefile | 0 drivers/mtd/nand/spr_nand.c | 0 drivers/mtd/spr_smi.c | 0 drivers/serial/usbtty.h | 0 drivers/usb/gadget/Makefile | 0 drivers/usb/gadget/spr_udc.c | 0 include/asm-arm/arch-spear/spr_gpt.h | 0 include/asm-arm/arch-spear/spr_i2c.h | 0 include/asm-arm/arch-spear/spr_smi.h | 0 include/asm-arm/arch-spear/spr_xloader_table.h | 0 include/configs/spear3xx.h | 0 include/configs/spear6xx.h | 0 include/usb/spr_udc.h | 0 lib_m68k/bootm.c | 0 34 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 board/spear/common/spr_lowlevel_init.S mode change 100755 => 100644 board/spear/common/spr_misc.c mode change 100755 => 100644 board/spear/spear300/Makefile mode change 100755 => 100644 board/spear/spear300/config.mk mode change 100755 => 100644 board/spear/spear300/spear300.c mode change 100755 => 100644 board/spear/spear310/Makefile mode change 100755 => 100644 board/spear/spear310/config.mk mode change 100755 => 100644 board/spear/spear310/spear310.c mode change 100755 => 100644 board/spear/spear320/Makefile mode change 100755 => 100644 board/spear/spear320/config.mk mode change 100755 => 100644 board/spear/spear320/spear320.c mode change 100755 => 100644 board/spear/spear600/Makefile mode change 100755 => 100644 board/spear/spear600/config.mk mode change 100755 => 100644 board/spear/spear600/spear600.c mode change 100755 => 100644 cpu/arm926ejs/spear/Makefile mode change 100755 => 100644 cpu/arm926ejs/spear/reset.c mode change 100755 => 100644 cpu/arm926ejs/spear/timer.c mode change 100755 => 100644 cpu/arm926ejs/versatile/timer.c mode change 100755 => 100644 drivers/i2c/Makefile mode change 100755 => 100644 drivers/i2c/spr_i2c.c mode change 100755 => 100644 drivers/mtd/Makefile mode change 100755 => 100644 drivers/mtd/nand/spr_nand.c mode change 100755 => 100644 drivers/mtd/spr_smi.c mode change 100755 => 100644 drivers/serial/usbtty.h mode change 100755 => 100644 drivers/usb/gadget/Makefile mode change 100755 => 100644 drivers/usb/gadget/spr_udc.c mode change 100755 => 100644 include/asm-arm/arch-spear/spr_gpt.h mode change 100755 => 100644 include/asm-arm/arch-spear/spr_i2c.h mode change 100755 => 100644 include/asm-arm/arch-spear/spr_smi.h mode change 100755 => 100644 include/asm-arm/arch-spear/spr_xloader_table.h mode change 100755 => 100644 include/configs/spear3xx.h mode change 100755 => 100644 include/configs/spear6xx.h mode change 100755 => 100644 include/usb/spr_udc.h mode change 100755 => 100644 lib_m68k/bootm.c diff --git a/board/spear/common/spr_lowlevel_init.S b/board/spear/common/spr_lowlevel_init.S old mode 100755 new mode 100644 diff --git a/board/spear/common/spr_misc.c b/board/spear/common/spr_misc.c old mode 100755 new mode 100644 diff --git a/board/spear/spear300/Makefile b/board/spear/spear300/Makefile old mode 100755 new mode 100644 diff --git a/board/spear/spear300/config.mk b/board/spear/spear300/config.mk old mode 100755 new mode 100644 diff --git a/board/spear/spear300/spear300.c b/board/spear/spear300/spear300.c old mode 100755 new mode 100644 diff --git a/board/spear/spear310/Makefile b/board/spear/spear310/Makefile old mode 100755 new mode 100644 diff --git a/board/spear/spear310/config.mk b/board/spear/spear310/config.mk old mode 100755 new mode 100644 diff --git a/board/spear/spear310/spear310.c b/board/spear/spear310/spear310.c old mode 100755 new mode 100644 diff --git a/board/spear/spear320/Makefile b/board/spear/spear320/Makefile old mode 100755 new mode 100644 diff --git a/board/spear/spear320/config.mk b/board/spear/spear320/config.mk old mode 100755 new mode 100644 diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c old mode 100755 new mode 100644 diff --git a/board/spear/spear600/Makefile b/board/spear/spear600/Makefile old mode 100755 new mode 100644 diff --git a/board/spear/spear600/config.mk b/board/spear/spear600/config.mk old mode 100755 new mode 100644 diff --git a/board/spear/spear600/spear600.c b/board/spear/spear600/spear600.c old mode 100755 new mode 100644 diff --git a/cpu/arm926ejs/spear/Makefile b/cpu/arm926ejs/spear/Makefile old mode 100755 new mode 100644 diff --git a/cpu/arm926ejs/spear/reset.c b/cpu/arm926ejs/spear/reset.c old mode 100755 new mode 100644 diff --git a/cpu/arm926ejs/spear/timer.c b/cpu/arm926ejs/spear/timer.c old mode 100755 new mode 100644 diff --git a/cpu/arm926ejs/versatile/timer.c b/cpu/arm926ejs/versatile/timer.c old mode 100755 new mode 100644 diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile old mode 100755 new mode 100644 diff --git a/drivers/i2c/spr_i2c.c b/drivers/i2c/spr_i2c.c old mode 100755 new mode 100644 diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile old mode 100755 new mode 100644 diff --git a/drivers/mtd/nand/spr_nand.c b/drivers/mtd/nand/spr_nand.c old mode 100755 new mode 100644 diff --git a/drivers/mtd/spr_smi.c b/drivers/mtd/spr_smi.c old mode 100755 new mode 100644 diff --git a/drivers/serial/usbtty.h b/drivers/serial/usbtty.h old mode 100755 new mode 100644 diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile old mode 100755 new mode 100644 diff --git a/drivers/usb/gadget/spr_udc.c b/drivers/usb/gadget/spr_udc.c old mode 100755 new mode 100644 diff --git a/include/asm-arm/arch-spear/spr_gpt.h b/include/asm-arm/arch-spear/spr_gpt.h old mode 100755 new mode 100644 diff --git a/include/asm-arm/arch-spear/spr_i2c.h b/include/asm-arm/arch-spear/spr_i2c.h old mode 100755 new mode 100644 diff --git a/include/asm-arm/arch-spear/spr_smi.h b/include/asm-arm/arch-spear/spr_smi.h old mode 100755 new mode 100644 diff --git a/include/asm-arm/arch-spear/spr_xloader_table.h b/include/asm-arm/arch-spear/spr_xloader_table.h old mode 100755 new mode 100644 diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h old mode 100755 new mode 100644 diff --git a/include/configs/spear6xx.h b/include/configs/spear6xx.h old mode 100755 new mode 100644 diff --git a/include/usb/spr_udc.h b/include/usb/spr_udc.h old mode 100755 new mode 100644 diff --git a/lib_m68k/bootm.c b/lib_m68k/bootm.c old mode 100755 new mode 100644 -- cgit v1.1 From a74908161a1b37d780d3a826a86807bbc50a3857 Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Tue, 16 Mar 2010 15:29:33 +0100 Subject: console.c: fix problem with splashimage If a board uses cfb_console driver and splash image and also defines CONFIG_SILENT_CONSOLE, the user is locked out even if "silent" is not set. It is not possible to get any output, neither on vga console device nor on serial console after redirecting the output to the serial console, since the GD_FLG_SILENT flag remains set. Fix the problem by redirecting the output from frame buffer to serial console if splashimage is used. Only suppress the output if "silent" environment variable was set and don't set the GD_FLG_SILENT flag arbitrarily. Signed-off-by: Anatolij Gustschin --- common/console.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/common/console.c b/common/console.c index dc0d13b..51c6fb6 100644 --- a/common/console.c +++ b/common/console.c @@ -659,10 +659,14 @@ int console_init_r(void) #ifdef CONFIG_SPLASH_SCREEN /* * suppress all output if splash screen is enabled and we have - * a bmp to display + * a bmp to display. We redirect the output from frame buffer + * console to serial console in this case or suppress it if + * "silent" mode was requested. */ - if (getenv("splashimage") != NULL) - gd->flags |= GD_FLG_SILENT; + if (getenv("splashimage") != NULL) { + if (!(gd->flags & GD_FLG_SILENT)) + outputdev = search_device (DEV_FLAGS_OUTPUT, "serial"); + } #endif /* Scan devices looking for input and output devices */ -- cgit v1.1 From 51c2ac9bb574c1420b993615268392b0c1f829f6 Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Tue, 16 Mar 2010 17:10:08 +0100 Subject: mpc5121: cpu/mpc512x/diu.c: fix warnings Fix warnings while compiling with CONFIG_VIDEO enabled: diu.c: In function 'video_hw_init': diu.c:158: warning: 'return' with no value, in function returning non-void diu.c:162: warning: format '%ld' expects type 'long int', but argument 6 has type 'int' diu.c:162: warning: format '%ld' expects type 'long int', but argument 7 has type 'int' Signed-off-by: Anatolij Gustschin --- cpu/mpc512x/diu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpu/mpc512x/diu.c b/cpu/mpc512x/diu.c index a24f395..ca459a1 100644 --- a/cpu/mpc512x/diu.c +++ b/cpu/mpc512x/diu.c @@ -145,10 +145,10 @@ void *video_hw_init(void) struct fb_info *info; if (mpc5121_diu_init() < 0) - return; + return NULL; /* fill in Graphic device struct */ - sprintf(pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", + sprintf(pGD->modeIdent, "%dx%dx%d %dkHz %dHz", xres, yres, 32, 64, 60); pGD->frameAdrs = (unsigned int)fsl_fb_open(&info); -- cgit v1.1 From 322ff395c9aec7b87a2211fe4333fdf44377c564 Mon Sep 17 00:00:00 2001 From: Jeff Angielski Date: Wed, 17 Mar 2010 15:09:26 -0400 Subject: env: fix endian ordering in crc table The crc table was being built as little endian for big endian targets. This would cause fw_printenv to always fail with "Warning: Bad CRC, using default environment" messages. Signed-off-by: Jeff Angielski Acked-by: Joakim Tjernlund --- lib_generic/crc32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_generic/crc32.c b/lib_generic/crc32.c index 468b397..27335a3 100644 --- a/lib_generic/crc32.c +++ b/lib_generic/crc32.c @@ -163,7 +163,7 @@ const uint32_t * ZEXPORT get_crc_table() #endif /* ========================================================================= */ -# ifdef __LITTLE_ENDIAN +# if __BYTE_ORDER == __LITTLE_ENDIAN # define DO_CRC(x) crc = tab[(crc ^ (x)) & 255] ^ (crc >> 8) # else # define DO_CRC(x) crc = tab[((crc >> 24) ^ (x)) & 255] ^ (crc << 8) -- cgit v1.1 From daa989b47297c9f73426783599c286ef3a1f3f49 Mon Sep 17 00:00:00 2001 From: Asen Dimov Date: Thu, 18 Mar 2010 13:41:47 +0200 Subject: correct a syntax typo in at91_matrix.h Signed-off-by: Asen Dimov --- include/asm-arm/arch-at91/at91_matrix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-arm/arch-at91/at91_matrix.h b/include/asm-arm/arch-at91/at91_matrix.h index 9b3c110..981ec20 100644 --- a/include/asm-arm/arch-at91/at91_matrix.h +++ b/include/asm-arm/arch-at91/at91_matrix.h @@ -80,7 +80,7 @@ typedef struct at91_matrix { u32 mrcr; /* 0x100 Master Remap Control */ u32 reserve4[3]; #if defined(CONFIG_AT91SAM9G45) - u32 ccr[52] /* 0x110 - 0x1E0 Chip Configuration */ + u32 ccr[52]; /* 0x110 - 0x1E0 Chip Configuration */ u32 womr; /* 0x1E4 Write Protect Mode */ u32 wpsr; /* 0x1E8 Write Protect Status */ u32 resg45_1[10]; -- cgit v1.1