* [U-Boot] [PATCH v2 0/7] km82xx mainlining
@ 2011-05-03 8:56 Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation Holger Brunck
` (6 more replies)
0 siblings, 7 replies; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
This series is the second effort of merging the Keymile boards support
back into mainline.
This serie is a smaller serie based on the first patch serie:
http://lists.denx.de/pipermail/u-boot/2011-April/090013.html
The first large serie was split up to three independent series, which
is easier to review and apply for the custodians.
This serie adds the km82xx specific parts of the serie. All changes
here are only km relevant and should not affect other boards.
Holger Brunck (6):
km/common: remove hdlc_enet implementation
powerpc/km82xx: cleanup coding style for mgcoge.c
powerpc/km82xx: rename mgcoge files to km82xx
powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support
powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual
poweprc/km82xx: add board specific environment variable
Huber, Andreas (1):
powerpc/km82xx: rework DIP switch detection
MAINTAINERS | 2 +-
board/keymile/common/common.c | 9 +-
board/keymile/common/common.h | 84 ++++-
board/keymile/common/keymile_hdlc_enet.c | 620 --------------------------
board/keymile/{mgcoge => km82xx}/Makefile | 3 +-
board/keymile/km82xx/km82xx.c | 371 +++++++++++++++
board/keymile/mgcoge/mgcoge.c | 346 --------------
board/keymile/mgcoge/mgcoge_hdlc_enet.c | 276 ------------
boards.cfg | 4 +-
include/configs/km82xx-common.h | 29 +--
include/configs/mgcoge.h | 32 ++-
include/configs/{mgcoge2ne.h => mgcoge3ne.h} | 49 ++-
12 files changed, 528 insertions(+), 1297 deletions(-)
delete mode 100644 board/keymile/common/keymile_hdlc_enet.c
rename board/keymile/{mgcoge => km82xx}/Makefile (94%)
create mode 100644 board/keymile/km82xx/km82xx.c
delete mode 100644 board/keymile/mgcoge/mgcoge.c
delete mode 100644 board/keymile/mgcoge/mgcoge_hdlc_enet.c
rename include/configs/{mgcoge2ne.h => mgcoge3ne.h} (60%)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c Holger Brunck
` (5 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
The hdlc implementation for mgcoge was initially developed,
but later on not used. Remove the C files, the references
in mgcoge.c and the Makefile to decrease maintenance effort.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- no change in the content of this patch
board/keymile/common/common.c | 3 -
board/keymile/common/common.h | 4 -
board/keymile/common/keymile_hdlc_enet.c | 620 ------------------------------
board/keymile/mgcoge/Makefile | 3 +-
board/keymile/mgcoge/mgcoge_hdlc_enet.c | 276 -------------
5 files changed, 1 insertions(+), 905 deletions(-)
delete mode 100644 board/keymile/common/keymile_hdlc_enet.c
delete mode 100644 board/keymile/mgcoge/mgcoge_hdlc_enet.c
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index 4883fe5..dc96489 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -677,9 +677,6 @@ int ethernet_present(void)
int board_eth_init(bd_t *bis)
{
-#ifdef CONFIG_KEYMILE_HDLC_ENET
- (void)keymile_hdlc_enet_initialize(bis);
-#endif
if (ethernet_present())
return cpu_eth_init(bis);
diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 099de98..14768c9 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -46,10 +46,6 @@ struct km_bec_fpga {
int ethernet_present(void);
int ivm_read_eeprom(void);
-#ifdef CONFIG_KEYMILE_HDLC_ENET
-int keymile_hdlc_enet_initialize(bd_t *bis);
-#endif
-
int set_km_env(void);
int fdt_set_node_and_value(void *blob,
char *nodename,
diff --git a/board/keymile/common/keymile_hdlc_enet.c b/board/keymile/common/keymile_hdlc_enet.c
deleted file mode 100644
index a545211..0000000
--- a/board/keymile/common/keymile_hdlc_enet.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
- * (C) Copyright 2008
- * Gary Jennejohn, DENX Software Engineering GmbH, garyj at denx.de.
- *
- * Based in part on arch/powerpc/cpu/mpc8260/ether_scc.c.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <malloc.h>
-#include <net.h>
-
-#ifdef CONFIG_KEYMILE_HDLC_ENET
-#ifdef TEST_IT
-#include <command.h>
-#endif
-
-#include "keymile_hdlc_enet.h"
-
-extern char keymile_slot; /* our slot number in the backplane */
-
-/* Allow up to about 50 ms for sending */
-#define TOUT_LOOP 50000
-
-/*
- * Since, except during initialization, ethact is always HDLC
- * while we're in the driver, just use serial_printf() everywhere for
- * output. This avoids possible conflicts when netconsole is being
- * used.
- */
-#define dprintf(fmt, args...) serial_printf(fmt, ##args)
-
-/* Cannot use the storage from net.c because we allocate larger buffers */
-static volatile uchar MyPktBuf[HDLC_PKTBUFSRX * PKT_MAXBLR_SIZE + PKTALIGN];
-static volatile uchar *MyRxPackets[HDLC_PKTBUFSRX]; /* Receive packet */
-
-static unsigned int keymile_rxIdx; /* index of the current RX buffer */
-
-static IPaddr_t cachedNumbers[CACHEDNUMBERS]; /* 4 bytes per entry */
-void initCachedNumbers(int);
-
-/*
- * SCC Ethernet Tx and Rx buffer descriptors allocated at the
- * immr->udata_bd address on Dual-Port RAM
- * Provide for Double Buffering
- */
-typedef volatile struct CommonBufferDescriptor {
- cbd_t txbd; /* Tx BD */
- cbd_t rxbd[HDLC_PKTBUFSRX]; /* Rx BD */
-} RTXBD;
-
-/*
- * This must be extern because it is allocated in DPRAM using CPM-sepcific
- * code.
- */
-static RTXBD *rtx;
-
-static int keymile_hdlc_enet_send(struct eth_device *, volatile void *, int);
-static int keymile_hdlc_enet_recv(struct eth_device *);
-void keymile_hdlc_enet_init_bds(RTXBD *);
-extern int keymile_hdlc_enet_init(struct eth_device *, bd_t *);
-extern void keymile_hdlc_enet_halt(struct eth_device *);
-
-/* flags in the buffer descriptor not defined anywhere else */
-#define BD_SC_CT BD_SC_CD
-#define BD_SC_CR 0x04
-#define BD_SC_DE 0x80
-#ifndef BD_SC_TC
-#define BD_SC_TC ((ushort)0x0400) /* Transmit CRC */
-#endif
-#define BD_SC_FIRST BD_SC_TC
-#define BD_SC_STATS (BD_SC_BR | BD_SC_FR | BD_SC_PR | BD_SC_CR | BD_SC_CD \
- | BD_SC_OV | BD_SC_DE)
-
-#if defined(TEST_RX) || defined(TEST_TX) || defined(TEST_IT)
-static void hexdump(unsigned char *buf, int len)
-{
- int i;
- const int bytesPerLine = 32;
-
- if (len > 4 * bytesPerLine)
- len = 4 * bytesPerLine;
- dprintf("\t address: %08x\n", (unsigned int)buf);
- for (i = 0; i < len; i++) {
- if (i % bytesPerLine == 0)
- dprintf("%04x: ", (unsigned short)i);
- dprintf("%02x ", buf[i]);
- if ((i + 1) % bytesPerLine == 0) {
- dprintf("\n");
- continue;
- }
- if ((i + 1) % 8 == 0)
- printf(" ");
- }
- if (len % bytesPerLine)
- dprintf("\n");
-}
-#endif
-
-int keymile_hdlc_enet_initialize(bd_t *bis)
-{
- struct eth_device *dev;
-
- dev = (struct eth_device *) malloc(sizeof *dev);
- memset(dev, 0, sizeof *dev);
-#ifdef TEST_IT
- seth = dev;
-#endif
-
- sprintf(dev->name, "HDLC");
- dev->init = keymile_hdlc_enet_init;
- dev->halt = keymile_hdlc_enet_halt;
- dev->send = keymile_hdlc_enet_send;
- dev->recv = keymile_hdlc_enet_recv;
-
- eth_register(dev);
-
- return 1;
-}
-
-/*
- * This is called from the board-specific driver after rtx is allocated.
- */
-void keymile_hdlc_enet_init_bds(RTXBD *board_rtx)
-{
- volatile cbd_t *bdp;
- int i;
-
- rtx = board_rtx;
- keymile_rxIdx = 0;
- /*
- * Initialize the buffer descriptors.
- */
- bdp = &rtx->txbd;
- bdp->cbd_sc = 0;
- bdp->cbd_bufaddr = 0;
- bdp->cbd_sc = BD_SC_WRAP;
-
- /*
- * Setup RX packet buffers, aligned correctly.
- * Borrowed from net/net.c.
- */
- MyRxPackets[0] = &MyPktBuf[0] + (PKTALIGN - 1);
- MyRxPackets[0] -= (ulong)MyRxPackets[0] % PKTALIGN;
- for (i = 1; i < HDLC_PKTBUFSRX; i++)
- MyRxPackets[i] = MyRxPackets[0] + i * PKT_MAXBLR_SIZE;
-
- bdp = &rtx->rxbd[0];
- for (i = 0; i < HDLC_PKTBUFSRX; i++) {
- bdp->cbd_sc = BD_SC_EMPTY;
- /* Leave space at the start for INET header. */
- bdp->cbd_bufaddr = (unsigned int)(MyRxPackets[i] +
- INET_HDR_ALIGN);
- bdp++;
- }
- bdp--;
- bdp->cbd_sc |= BD_SC_WRAP;
-}
-
-/*
- * This returns the current port number for NETCONSOLE. If nc_port
- * in netconsole.c weren't declared static we wouldn't need this.
- */
-static short get_netcons_port(void)
-{
- char *p;
- short nc_port;
-
- nc_port = 6666; /* default */
-
- p = getenv("ncip");
- if (p != NULL) {
- p = strchr(p, ':');
- if (p != NULL)
- nc_port = simple_strtoul(p + 1, NULL, 10);
- }
-
- return htons(nc_port);
-}
-
-/*
- * Read the port numbers from the variables
- */
-void initCachedNumbers(int verbose)
-{
- char *str;
- ushort port;
-
- /* already in network order */
- cachedNumbers[IP_ADDR] = getenv_IPaddr("ipaddr");
- /* already in network order */
- cachedNumbers[IP_SERVER] = getenv_IPaddr("serverip");
- str = getenv("tftpsrcp");
- if (str != NULL) {
- /* avoid doing htons() again and again */
- port = htons((ushort)simple_strtol(str, NULL, 10));
- cachedNumbers[TFTP_SRC_PORT] = port;
- } else
- /* this can never be a valid port number */
- cachedNumbers[TFTP_SRC_PORT] = (ulong)-1;
- str = getenv("tftpdstp");
- if (str != NULL) {
- /* avoid doing htons() again and again */
- port = htons((ushort)simple_strtol(str, NULL, 10));
- cachedNumbers[TFTP_DST_PORT] = port;
- } else
- /* this is the default value */
- cachedNumbers[TFTP_DST_PORT] = htons(WELL_KNOWN_PORT);
- /* already in network order */
- cachedNumbers[NETCONS_PORT] = get_netcons_port();
- if (verbose) {
- dprintf("\nIP Number Initialization:\n");
- dprintf(" ip address %08lx\n", cachedNumbers[IP_ADDR]);
- dprintf(" server ip address %08lx\n",
- cachedNumbers[IP_SERVER]);
- dprintf(" tftp client port %ld\n",
- cachedNumbers[TFTP_SRC_PORT]);
- dprintf(" tftp server port %ld\n",
- cachedNumbers[TFTP_DST_PORT]);
- dprintf(" netcons port %ld\n",
- cachedNumbers[NETCONS_PORT]);
- dprintf(" slot number (hex) %02x\n", keymile_slot);
- }
-}
-
-static void keymile_hdlc_enet_doarp(volatile void *packet, int len)
-{
- ARP_t *arp;
- IPaddr_t src_ip; /* U-Boot's IP */
- IPaddr_t dest_ip; /* the mgcoge's IP */
- unsigned char *packet_copy = malloc(len);
-
- /*
- * Handling an ARP request means that a new transfer has started.
- * Update our cached parameters now.
- */
- initCachedNumbers(0); /* may reinit port numbers */
-
- /* special handling required for ARP */
- arp = (ARP_t *)(packet + ETHER_HDR_SIZE);
- /*
- * XXXX
- * This is pretty dirty! NetReceive only uses
- * a few fields when handling an ARP reply, so
- * we only modify those here. This could
- * result in catastrophic failure at a later
- * time if the handler is modified!
- */
- arp->ar_op = htons(ARPOP_REPLY);
- /* save his/our IP */
- src_ip = NetReadIP(&arp->ar_data[6]);
- dest_ip = NetReadIP(&arp->ar_data[16]);
- /* copy target IP to source IP */
- NetCopyIP(&arp->ar_data[6], &dest_ip);
- /* copy our IP to the right place */
- NetCopyIP(&arp->ar_data[16], &src_ip);
- /* always use 0x7f as the MAC for the coge */
- arp->ar_data[0] = HDLC_UACUA;
- /*
- * copy the packet
- * if NetReceive wants to write to stdout, it may overwrite packet
- * especially if stdout is set to nc!
- *
- * However, if the malloc() above fails then we can still try the
- * original packet, rather than causing the transfer to fail.
- */
- if (packet_copy != NULL) {
- memcpy(packet_copy, (char *)packet, len);
- NetReceive(packet_copy, len);
- free(packet_copy);
- } else
- NetReceive(packet, len);
-}
-
-/*
- * NOTE all callers ignore the returned value!
- * At the moment this only handles ARP Requests, TFTP and NETCONSOLE.
- */
-static int keymile_hdlc_enet_send(struct eth_device *dev, volatile void *packet,
- int len)
-{
- int j;
- uint data_addr;
- int data_len;
- struct icn_hdr header;
- struct icn_frame *frame;
- Ethernet_t *et;
- ARP_t *arp;
- IP_t *ip;
-
- if (len > (MAX_FRAME_LENGTH - sizeof(header)))
- return -1;
-
- frame = NULL;
- et = NULL;
- arp = NULL;
- ip = NULL;
-
- j = 0;
- while ((rtx->txbd.cbd_sc & BD_SC_READY) && (j < TOUT_LOOP)) {
- /* will also trigger Wd if needed, but maybe too often */
- udelay(1);
- j++;
- }
- if (j >= TOUT_LOOP) {
- dprintf("TX not ready sc %x\n", rtx->txbd.cbd_sc);
- return -1;
- }
-
- /*
- * First check for an ARP Request since this requires special handling.
- */
- if (len >= (ARP_HDR_SIZE + ETHER_HDR_SIZE)) {
- et = (Ethernet_t *)packet;
- arp = (ARP_t *)(((char *)et) + ETHER_HDR_SIZE);
- /* ARP and REQUEST? */
- if (et->et_protlen == PROT_ARP &&
- arp->ar_op == htons(ARPOP_REQUEST)) {
- /* just short-circuit the request on the U-Boot side */
- keymile_hdlc_enet_doarp(packet, len);
- return 0;
- }
- }
-
- /*
- * GJ - I suppose the assumption here that len will always be
- * > INET_HDR_SIZE is alright as long as the network stack
- * isn't changed.
- * Do not send INET header.
- */
- data_len = len + sizeof(header) - INET_HDR_SIZE;
- frame = (struct icn_frame *) (((char *)packet) + INET_HDR_SIZE -
- sizeof(header));
-
-#ifdef TEST_TX
- printf("frame: %08x, ", frame);
- hexdump((unsigned char *)packet, data_len + INET_HDR_SIZE);
-#endif
-
- data_addr = (uint)frame;
- if (len >= (IP_HDR_SIZE + ETHER_HDR_SIZE))
- ip = (IP_t *)(packet + ETHER_HDR_SIZE);
- /* Is it TFTP? TFTP always uses UDP and the cached dport */
- if (ip != NULL && ip->ip_p == IPPROTO_UDP && ip->udp_dst ==
- (ushort)cachedNumbers[TFTP_DST_PORT]) {
- /* just in case the port wasn't set in the environment */
- if (cachedNumbers[TFTP_SRC_PORT] == (ulong)-1)
- cachedNumbers[TFTP_SRC_PORT] = ip->udp_src;
- frame->hdr.application = MGS_TFTP;
- }
- /*
- * Is it NETCONSOLE? NETCONSOLE always uses UDP.
- */
- else if (ip != NULL && ip->ip_p == IPPROTO_UDP
- && ip->udp_dst == (ushort)cachedNumbers[NETCONS_PORT]) {
- frame->hdr.application = MGS_NETCONS;
- } else {
- /* reject unknown packets */
- /* may do some check on frame->hdr.application */
- dprintf("Unknown packet type in %s, rejected\n",
- __func__);
- return -1;
- }
- /*
- * Could extract the target's slot ID from its MAC here,
- * but u-boot only wants to talk to the active server.
- *
- * avoid setting new source address when moving to another slot
- */
- frame->hdr.src_addr = keymile_slot;
- frame->hdr.dest_addr = HDLC_UACUA;
-#ifdef TEST_TX
- {
- dprintf("TX: ");
- hexdump((unsigned char *)data_addr, data_len);
- }
-#endif
-
- flush_cache(data_addr, data_len);
- rtx->txbd.cbd_bufaddr = data_addr;
- rtx->txbd.cbd_datlen = data_len;
- rtx->txbd.cbd_sc |= (BD_SC_READY | BD_SC_TC | BD_SC_LAST | BD_SC_WRAP);
-
- while ((rtx->txbd.cbd_sc & BD_SC_READY) && (j < TOUT_LOOP)) {
- /* will also trigger Wd if needed, but maybe too often */
- udelay(1);
- j++;
- }
- if (j >= TOUT_LOOP)
- dprintf("TX timeout\n");
-#ifdef ET_DEBUG
- dprintf("cycles: %d status: %x\n", j, rtx->txbd.cbd_sc);
-#endif
- j = (rtx->txbd.cbd_sc & BD_SC_STATS); /* return only status bits */
- return j;
-}
-
-/*
- * During a receive, the RxIdx points to the current incoming buffer.
- * When we update through the ring, if the next incoming buffer has
- * not been given to the system, we just set the empty indicator,
- * effectively tossing the packet.
- */
-static int keymile_hdlc_enet_recv(struct eth_device *dev)
-{
- int length;
- unsigned char app;
- struct icn_frame *fp;
- Ethernet_t *ep;
- IP_t *ip;
-
- for (;;) {
- if (rtx->rxbd[keymile_rxIdx].cbd_sc & BD_SC_EMPTY) {
- length = -1;
- break; /* nothing received - leave for() loop */
- }
-
- length = rtx->rxbd[keymile_rxIdx].cbd_datlen;
-#ifdef TEST_RX
- dprintf("packet %d bytes long\n", length);
-#endif
-
- /*
- * BD_SC_BR -> LG bit
- * BD_SC_FR -> NO bit
- * BD_SC_PR -> AB bit
- * BD_SC_NAK -> CR bit
- * 0x80 -> DE bit
- */
- if (rtx->rxbd[keymile_rxIdx].cbd_sc & BD_SC_STATS) {
-#ifdef ET_DEBUG
- dprintf("err: %x\n", rtx->rxbd[keymile_rxIdx].cbd_sc);
-#endif
- } else if (length > MAX_FRAME_LENGTH) { /* can't happen */
-#ifdef ET_DEBUG
- dprintf("err: packet too big\n");
-#endif
- } else {
- fp = (struct icn_frame *)(MyRxPackets[keymile_rxIdx] +
- INET_HDR_ALIGN - INET_HDR_SIZE);
-#ifdef TEST_RX
- dprintf("RX %d: ", keymile_rxIdx);
- hexdump((unsigned char *)MyRxPackets[keymile_rxIdx],
- INET_HDR_ALIGN + INET_HDR_SIZE + 4);
-#endif
- /* copy icn header to the beginning */
- memcpy(fp, ((char *)fp + INET_HDR_SIZE),
- sizeof(struct icn_hdr));
- app = fp->hdr.application;
- if (app == MGS_NETCONS || app == MGS_TFTP) {
- struct icn_hdr *ih = &fp->hdr;
- unsigned char icn_src_addr = ih->src_addr;
- unsigned char icn_dest_addr = ih->dest_addr;
-
- /*
- * expand header by INET_HDR_SIZE
- */
- length += INET_HDR_SIZE;
- /* initalize header */
- memset((char *)fp->data, 0x00, INET_HDR_SIZE);
- ep = (Ethernet_t *)fp->data;
- /* set MACs */
- ep->et_dest[0] = icn_dest_addr;
- ep->et_src[0] = icn_src_addr;
- ep->et_protlen = htons(PROT_IP);
- /* set ip stuff */
- ip = (IP_t *)(fp->data + ETHER_HDR_SIZE);
- /* set ip addresses */
- ip->ip_src = cachedNumbers[IP_SERVER];
- ip->ip_dst = cachedNumbers[IP_ADDR];
- /* ip length */
- ip->ip_len = htons(length - ETHER_HDR_SIZE -
- REMOVE);
- /* ip proto */
- ip->ip_p = IPPROTO_UDP;
- switch (app) {
- case MGS_TFTP:
- /* swap src/dst port numbers */
- ip->udp_src = (ushort)
- cachedNumbers[TFTP_DST_PORT];
- ip->udp_dst = (ushort)
- cachedNumbers[TFTP_SRC_PORT];
- ip->udp_len = ip->ip_len -
- IP_HDR_SIZE_NO_UDP;
- ip->udp_xsum = 0;
- break;
- case MGS_NETCONS:
- ip->udp_src = (ushort)
- cachedNumbers[NETCONS_PORT];
- /*
- * in drivers/net/netconsole.c src port
- * equals dest port
- */
- ip->udp_dst = ip->udp_src;
- ip->udp_len = ip->ip_len -
- IP_HDR_SIZE_NO_UDP;
- ip->udp_xsum = 0;
- break;
- }
- /* ip version */
- ip->ip_hl_v = (0x40) | (0x0f &
- (IP_HDR_SIZE_NO_UDP / 4));
- ip->ip_tos = 0;
- ip->ip_id = 0;
- /* flags, fragment offset */
- ip->ip_off = htons(0x4000);
- ip->ip_ttl = 255; /* time to live */
- /* have to fixup the checksum */
- ip->ip_sum = ~NetCksum((uchar *)ip,
- IP_HDR_SIZE_NO_UDP / 2);
- /*
- * Pass the packet up to the protocol layers
- * but remove dest_addr, src_addr, application
- * and the CRC.
- */
-#ifdef TEST_RX
- hexdump((unsigned char *)fp->data,
- INET_HDR_SIZE + 4);
-#endif
- NetReceive(fp->data, length - REMOVE);
- } else {
- /*
- * the other application types are not yet
- * supported by u-boot.
- */
- /* normally drop it */
-#ifdef TEST_NO
- /* send it anyway */
- fp = (struct icn_frame *)
- (MyRxPackets[keymile_rxIdx] +
- INET_HDR_ALIGN);
- NetReceive(fp->data, length - REMOVE);
-#endif
- }
- }
-
- /* Give the buffer back to the SCC. */
- rtx->rxbd[keymile_rxIdx].cbd_datlen = 0;
-
- /* wrap around buffer index when necessary */
- if ((keymile_rxIdx + 1) >= HDLC_PKTBUFSRX) {
- rtx->rxbd[HDLC_PKTBUFSRX - 1].cbd_sc =
- (BD_SC_WRAP | BD_SC_EMPTY);
- keymile_rxIdx = 0;
- } else {
- rtx->rxbd[keymile_rxIdx].cbd_sc = BD_SC_EMPTY;
- keymile_rxIdx++;
- }
- }
- return length;
-}
-
-#ifdef TEST_IT
-/* simple send test routine */
-int hdlc_enet_stest(struct cmd_tbl_s *a, int b, int c, char **d)
-{
- unsigned char pkt[2];
- int ret;
-
- dprintf("enter stest\n");
- /* may have to initialize things */
- if (seth->state != ETH_STATE_ACTIVE) {
- /* the bd_t* is not used */
- if (seth->init(seth, NULL) >= 0)
- seth->state = ETH_STATE_ACTIVE;
- }
- pkt[0] = 0xea;
- pkt[1] = 0xae;
- ret = keymile_hdlc_enet_send(seth, pkt, 2);
- dprintf("return from send %x\n", ret);
- dprintf("exit stest\n");
- return ret;
-}
-U_BOOT_CMD(
- stest, 1, 1, hdlc_enet_stest,
- "simple send test for hdlc_enet",
- ""
-);
-/* simple receive test routine */
-int hdlc_enet_rtest(struct cmd_tbl_s *a, int b, int c, char **d)
-{
- int ret;
-
- dprintf("enter rtest\n");
- /* may have to initialize things */
- if (seth->state != ETH_STATE_ACTIVE) {
- /* the bd_t* is not used */
- if (seth->init(seth, NULL) >= 0)
- seth->state = ETH_STATE_ACTIVE;
- }
- ret = keymile_hdlc_enet_recv(seth);
- dprintf("return from recv %x\n", ret);
- dprintf("exit rtest\n");
- return ret;
-}
-U_BOOT_CMD(
- rtest, 1, 1, hdlc_enet_rtest,
- "simple receive test for hdlc_enet",
- ""
-);
-#endif
-
-#endif /* CONFIG_KEYMILE_HDLC_ENET */
diff --git a/board/keymile/mgcoge/Makefile b/board/keymile/mgcoge/Makefile
index 3308621..a2b9da4 100644
--- a/board/keymile/mgcoge/Makefile
+++ b/board/keymile/mgcoge/Makefile
@@ -28,8 +28,7 @@ endif
LIB = $(obj)lib$(BOARD).o
-COBJS := $(BOARD).o ../common/common.o ../common/keymile_hdlc_enet.o \
- mgcoge_hdlc_enet.o
+COBJS := $(BOARD).o ../common/common.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
diff --git a/board/keymile/mgcoge/mgcoge_hdlc_enet.c b/board/keymile/mgcoge/mgcoge_hdlc_enet.c
deleted file mode 100644
index 98f68a6..0000000
--- a/board/keymile/mgcoge/mgcoge_hdlc_enet.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * (C) Copyright 2008
- * Gary Jennejohn, DENX Software Engineering GmbH, garyj at denx.de.
- *
- * Based in part on arch/powerpc/cpu/mpc8260/ether_scc.c.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <common.h>
-#include <malloc.h>
-#include <net.h>
-
-#ifdef CONFIG_KEYMILE_HDLC_ENET
-
-#include "../common/keymile_hdlc_enet.h"
-
-char keymile_slot; /* our slot number in the backplane */
-
-/*
- * Since, except during initialization, ethact is always HDLC ETHERNET
- * while we're in the driver, just use serial_printf() everywhere for
- * output. This avoids possible conflicts when netconsole is being
- * used.
- */
-#define dprintf(fmt, args...) serial_printf(fmt, ##args)
-
-static int already_inited;
-
-/*
- * SCC Ethernet Tx and Rx buffer descriptors allocated at the
- * immr->udata_bd address on Dual-Port RAM
- * Provide for Double Buffering
- */
-typedef volatile struct CommonBufferDescriptor {
- cbd_t txbd; /* Tx BD */
- cbd_t rxbd[HDLC_PKTBUFSRX]; /* Rx BD */
-} RTXBD;
-
-static RTXBD *rtx;
-
-int keymile_hdlc_enet_init(struct eth_device *, bd_t *);
-void keymile_hdlc_enet_halt(struct eth_device *);
-extern void keymile_hdlc_enet_init_bds(RTXBD *);
-extern void initCachedNumbers(int);
-
-/* Use SCC1 */
-#define CPM_CR_SCC_PAGE CPM_CR_SCC1_PAGE
-#define CPM_CR_SCC_SBLOCK CPM_CR_SCC1_SBLOCK
-#define CMXSCR_MASK (CMXSCR_GR1|CMXSCR_SC1|\
- CMXSCR_RS1CS_MSK|CMXSCR_TS1CS_MSK)
-#define CMXSCR_VALUE (CMXSCR_RS1CS_CLK11|CMXSCR_TS1CS_CLK11)
-#define MGC_PROFF_HDLC PROFF_SCC1
-#define MGC_SCC_HDLC 0 /* Index, not number! */
-
-int keymile_hdlc_enet_init(struct eth_device *dev, bd_t *bis)
-{
- /* int i; */
- uint dpr;
- /* volatile cbd_t *bdp; */
- volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR;
- volatile cpm8260_t *cp = &(im->im_cpm);
- volatile scc_t *sccp;
- volatile scc_hdlc_t *hpr;
- volatile iop8260_t *iop;
-
- if (already_inited)
- return 0;
-
- hpr = (scc_hdlc_t *)(&im->im_dprambase[MGC_PROFF_HDLC]);
- sccp = (scc_t *)(&im->im_scc[MGC_SCC_HDLC]);
- iop = &im->im_ioport;
-
- /*
- * Disable receive and transmit just in case.
- */
- sccp->scc_gsmrl &= ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT);
-
- /*
- * Avoid exhausting DPRAM, which would cause a panic.
- */
- if (rtx == NULL) {
- /* dpr is an offset into dpram */
- dpr = m8260_cpm_dpalloc(sizeof(RTXBD), 8);
- rtx = (RTXBD *)&im->im_dprambase[dpr];
- }
-
- /* We need the slot number for addressing. */
- keymile_slot = *(char *)(CONFIG_SYS_SLOT_ID_BASE +
- CONFIG_SYS_SLOT_ID_OFF) & CONFIG_SYS_SLOT_ID_MASK;
- /*
- * Be consistent with the Linux driver and set
- * only enetaddr[0].
- *
- * Always add 1 to the slot number so that
- * there are no problems with an ethaddr which
- * is all 0s. This should be acceptable because
- * a board should never have a slot number of 255,
- * which is the broadcast address. The HDLC addressing
- * uses only the slot number.
- */
- dev->enetaddr[0] = keymile_slot + 1;
-#ifdef TEST_IT
- dprintf("slot %d\n", keymile_slot);
-#endif
-
- /* use pd30, pd31 pins for TXD1, RXD1 respectively */
- iop->iop_ppard |= (0x80000000 >> 30) | (0x80000000 >> 31);
- iop->iop_pdird |= (0x80000000 >> 30);
- iop->iop_psord |= (0x80000000 >> 30);
-
- /* use pc21 as CLK11 */
- iop->iop_pparc |= (0x80000000 >> 21);
- iop->iop_pdirc &= ~(0x80000000 >> 21);
- iop->iop_psorc &= ~(0x80000000 >> 21);
-
- /* use pc15 as CTS1 */
- iop->iop_pparc |= (0x80000000 >> 15);
- iop->iop_pdirc &= ~(0x80000000 >> 15);
- iop->iop_psorc &= ~(0x80000000 >> 15);
-
- /*
- * SI clock routing
- * use CLK11
- * this also connects SCC1 to NMSI
- */
- im->im_cpmux.cmx_scr = (im->im_cpmux.cmx_scr & ~CMXSCR_MASK) |
- CMXSCR_VALUE;
-
- /* keymile_rxIdx = 0; */
-
- /*
- * Initialize function code registers for big-endian.
- */
- hpr->sh_genscc.scc_rfcr = CPMFCR_EB;
- hpr->sh_genscc.scc_tfcr = CPMFCR_EB;
-
- /*
- * Set maximum bytes per receive buffer.
- */
- hpr->sh_genscc.scc_mrblr = MAX_FRAME_LENGTH;
-
- /* Setup CRC generator values for HDLC */
- hpr->sh_cmask = 0x0000F0B8;
- hpr->sh_cpres = 0x0000FFFF;
-
- /* Initialize all error counters to 0 */
- hpr->sh_disfc = 0;
- hpr->sh_crcec = 0;
- hpr->sh_abtsc = 0;
- hpr->sh_nmarc = 0;
- hpr->sh_retrc = 0;
-
- /* Set maximum frame length size */
- hpr->sh_mflr = MAX_FRAME_LENGTH;
-
- /* set to 1 for per frame processing change later if needed */
- hpr->sh_rfthr = 1;
-
- hpr->sh_hmask = 0xff;
-
- hpr->sh_haddr2 = SET_HDLC_UUA(keymile_slot);
- hpr->sh_haddr3 = hpr->sh_haddr2;
- hpr->sh_haddr4 = hpr->sh_haddr2;
- /* broadcast */
- hpr->sh_haddr1 = HDLC_BCAST;
-
- hpr->sh_genscc.scc_rbase = (unsigned int) &rtx->rxbd[0];
- hpr->sh_genscc.scc_tbase = (unsigned int) &rtx->txbd;
-
-#if 0
- /*
- * Initialize the buffer descriptors.
- */
- bdp = &rtx->txbd;
- bdp->cbd_sc = 0;
- bdp->cbd_bufaddr = 0;
- bdp->cbd_sc = BD_SC_WRAP;
-
- /*
- * Setup RX packet buffers, aligned correctly.
- * Borrowed from net/net.c.
- */
- MyRxPackets[0] = &MyPktBuf[0] + (PKTALIGN - 1);
- MyRxPackets[0] -= (ulong)MyRxPackets[0] % PKTALIGN;
- for (i = 1; i < HDLC_PKTBUFSRX; i++)
- MyRxPackets[i] = MyRxPackets[0] + i * PKT_MAXBLR_SIZE;
-
- bdp = &rtx->rxbd[0];
- for (i = 0; i < HDLC_PKTBUFSRX; i++) {
- bdp->cbd_sc = BD_SC_EMPTY;
- /* Leave space at the start for INET header. */
- bdp->cbd_bufaddr = (unsigned int)(MyRxPackets[i] +
- INET_HDR_ALIGN);
- bdp++;
- }
- bdp--;
- bdp->cbd_sc |= BD_SC_WRAP;
-#else
- keymile_hdlc_enet_init_bds(rtx);
-#endif
-
- /* Let's re-initialize the channel now. We have to do it later
- * than the manual describes because we have just now finished
- * the BD initialization.
- */
- cp->cp_cpcr = mk_cr_cmd(CPM_CR_SCC_PAGE, CPM_CR_SCC_SBLOCK,
- 0, CPM_CR_INIT_TRX) | CPM_CR_FLG;
- while (cp->cp_cpcr & CPM_CR_FLG);
-
- sccp->scc_gsmrl = SCC_GSMRL_MODE_HDLC;
- /* CTSS=1 */
- sccp->scc_gsmrh = SCC_GSMRH_CTSS;
- /* NOF=0, RTE=1, DRT=0, BUS=1 */
- sccp->scc_psmr = ((0x8000 >> 6) | (0x8000 >> 10));
-
-/* loopback for local testing */
-#ifdef GJTEST
- dprintf("LOOPBACK!\n");
- sccp->scc_gsmrl |= SCC_GSMRL_DIAG_LOOP;
-#endif
-
- /*
- * Disable all interrupts and clear all pending
- * events.
- */
- sccp->scc_sccm = 0;
- sccp->scc_scce = 0xffff;
-
- /*
- * And last, enable the transmit and receive processing.
- */
- sccp->scc_gsmrl |= (SCC_GSMRL_ENR | SCC_GSMRL_ENT);
-
- dprintf("%s: HDLC ENET Version 0.3 on SCC%d\n", dev->name,
- MGC_SCC_HDLC + 1);
-
- /*
- * We may not get an ARP packet because ARP was already done on
- * a different interface, so initialize the cached values now.
- */
- initCachedNumbers(1);
-
- already_inited = 1;
-
- return 0;
-}
-
-void keymile_hdlc_enet_halt(struct eth_device *dev)
-{
-#if 0 /* just return, but keep this for reference */
- volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
-
- /* maybe should do a graceful stop here? */
- immr->im_scc[MGC_SCC_HDLC].scc_gsmrl &=
- ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT);
-#endif
-}
-
-#endif /* CONFIG_MGCOGE_HDLC_ENET */
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx Holger Brunck
` (4 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- no change in the content of this patch
board/keymile/mgcoge/mgcoge.c | 291 +++++++++++++++++++++--------------------
1 files changed, 146 insertions(+), 145 deletions(-)
diff --git a/board/keymile/mgcoge/mgcoge.c b/board/keymile/mgcoge/mgcoge.c
index 7b34684..6c511a6 100644
--- a/board/keymile/mgcoge/mgcoge.c
+++ b/board/keymile/mgcoge/mgcoge.c
@@ -45,154 +45,154 @@
*/
const iop_conf_t iop_conf_tab[4][32] = {
- /* Port A */
- { /* conf ppar psor pdir podr pdat */
- /* PA31 */ { 0, 0, 0, 0, 0, 0 }, /* PA31 */
- /* PA30 */ { 0, 0, 0, 0, 0, 0 }, /* PA30 */
- /* PA29 */ { 0, 0, 0, 0, 0, 0 }, /* PA29 */
- /* PA28 */ { 0, 0, 0, 0, 0, 0 }, /* PA28 */
- /* PA27 */ { 0, 0, 0, 0, 0, 0 }, /* PA27 */
- /* PA26 */ { 0, 0, 0, 0, 0, 0 }, /* PA26 */
- /* PA25 */ { 0, 0, 0, 0, 0, 0 }, /* PA25 */
- /* PA24 */ { 0, 0, 0, 0, 0, 0 }, /* PA24 */
- /* PA23 */ { 0, 0, 0, 0, 0, 0 }, /* PA23 */
- /* PA22 */ { 0, 0, 0, 0, 0, 0 }, /* PA22 */
- /* PA21 */ { 0, 0, 0, 0, 0, 0 }, /* PA21 */
- /* PA20 */ { 0, 0, 0, 0, 0, 0 }, /* PA20 */
- /* PA19 */ { 0, 0, 0, 0, 0, 0 }, /* PA19 */
- /* PA18 */ { 0, 0, 0, 0, 0, 0 }, /* PA18 */
- /* PA17 */ { 0, 0, 0, 0, 0, 0 }, /* PA17 */
- /* PA16 */ { 0, 0, 0, 0, 0, 0 }, /* PA16 */
- /* PA15 */ { 0, 0, 0, 0, 0, 0 }, /* PA15 */
- /* PA14 */ { 0, 0, 0, 0, 0, 0 }, /* PA14 */
- /* PA13 */ { 0, 0, 0, 0, 0, 0 }, /* PA13 */
- /* PA12 */ { 0, 0, 0, 0, 0, 0 }, /* PA12 */
- /* PA11 */ { 0, 0, 0, 0, 0, 0 }, /* PA11 */
- /* PA10 */ { 0, 0, 0, 0, 0, 0 }, /* PA10 */
- /* PA9 */ { 1, 1, 0, 1, 0, 0 }, /* SMC2 TxD */
- /* PA8 */ { 1, 1, 0, 0, 0, 0 }, /* SMC2 RxD */
- /* PA7 */ { 0, 0, 0, 0, 0, 0 }, /* PA7 */
- /* PA6 */ { 0, 0, 0, 0, 0, 0 }, /* PA6 */
- /* PA5 */ { 0, 0, 0, 0, 0, 0 }, /* PA5 */
- /* PA4 */ { 0, 0, 0, 0, 0, 0 }, /* PA4 */
- /* PA3 */ { 0, 0, 0, 0, 0, 0 }, /* PA3 */
- /* PA2 */ { 0, 0, 0, 0, 0, 0 }, /* PA2 */
- /* PA1 */ { 0, 0, 0, 0, 0, 0 }, /* PA1 */
- /* PA0 */ { 0, 0, 0, 0, 0, 0 } /* PA0 */
- },
-
- /* Port B */
- { /* conf ppar psor pdir podr pdat */
- /* PB31 */ { 0, 0, 0, 0, 0, 0 }, /* PB31 */
- /* PB30 */ { 0, 0, 0, 0, 0, 0 }, /* PB30 */
- /* PB29 */ { 0, 0, 0, 0, 0, 0 }, /* PB29 */
- /* PB28 */ { 0, 0, 0, 0, 0, 0 }, /* PB28 */
- /* PB27 */ { 0, 0, 0, 0, 0, 0 }, /* PB27 */
- /* PB26 */ { 0, 0, 0, 0, 0, 0 }, /* PB26 */
- /* PB25 */ { 0, 0, 0, 0, 0, 0 }, /* PB25 */
- /* PB24 */ { 0, 0, 0, 0, 0, 0 }, /* PB24 */
- /* PB23 */ { 0, 0, 0, 0, 0, 0 }, /* PB23 */
- /* PB22 */ { 0, 0, 0, 0, 0, 0 }, /* PB22 */
- /* PB21 */ { 0, 0, 0, 0, 0, 0 }, /* PB21 */
- /* PB20 */ { 0, 0, 0, 0, 0, 0 }, /* PB20 */
- /* PB19 */ { 0, 0, 0, 0, 0, 0 }, /* PB19 */
- /* PB18 */ { 0, 0, 0, 0, 0, 0 }, /* PB18 */
- /* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB14 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB13 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB12 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB11 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB10 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB9 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB8 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB7 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB6 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB5 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB4 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB3 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB2 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB1 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PB0 */ { 0, 0, 0, 0, 0, 0 } /* non-existent */
- },
-
- /* Port C */
- { /* conf ppar psor pdir podr pdat */
- /* PC31 */ { 0, 0, 0, 0, 0, 0 }, /* PC31 */
- /* PC30 */ { 0, 0, 0, 0, 0, 0 }, /* PC30 */
- /* PC29 */ { 0, 0, 0, 0, 0, 0 }, /* PC29 */
- /* PC28 */ { 0, 0, 0, 0, 0, 0 }, /* PC28 */
- /* PC27 */ { 0, 0, 0, 0, 0, 0 }, /* PC27 */
- /* PC26 */ { 0, 0, 0, 0, 0, 0 }, /* PC26 */
- /* PC25 */ { 1, 1, 0, 0, 0, 0 }, /* SCC4 RxClk */
- /* PC24 */ { 1, 1, 0, 0, 0, 0 }, /* SCC4 TxClk */
- /* PC23 */ { 0, 0, 0, 0, 0, 0 }, /* PC23 */
- /* PC22 */ { 0, 0, 0, 0, 0, 0 }, /* PC22 */
- /* PC21 */ { 0, 0, 0, 0, 0, 0 }, /* PC21 */
- /* PC20 */ { 0, 0, 0, 0, 0, 0 }, /* PC20 */
- /* PC19 */ { 0, 0, 0, 0, 0, 0 }, /* PC19 */
- /* PC18 */ { 0, 0, 0, 0, 0, 0 }, /* PC18 */
- /* PC17 */ { 0, 0, 0, 0, 0, 0 }, /* PC17 */
- /* PC16 */ { 0, 0, 0, 0, 0, 0 }, /* PC16 */
- /* PC15 */ { 0, 0, 0, 0, 0, 0 }, /* PC15 */
- /* PC14 */ { 0, 0, 0, 0, 0, 0 }, /* PC14 */
- /* PC13 */ { 0, 0, 0, 0, 0, 0 }, /* PC13 */
- /* PC12 */ { 0, 0, 0, 0, 0, 0 }, /* PC12 */
- /* PC11 */ { 0, 0, 0, 0, 0, 0 }, /* PC11 */
- /* PC10 */ { 0, 0, 0, 0, 0, 0 }, /* PC10 */
- /* PC9 */ { 1, 1, 0, 0, 0, 0 }, /* SCC4: CTS */
- /* PC8 */ { 1, 1, 0, 0, 0, 0 }, /* SCC4: CD */
- /* PC7 */ { 0, 0, 0, 0, 0, 0 }, /* PC7 */
- /* PC6 */ { 0, 0, 0, 0, 0, 0 }, /* PC6 */
- /* PC5 */ { 0, 0, 0, 0, 0, 0 }, /* PC5 */
- /* PC4 */ { 0, 0, 0, 0, 0, 0 }, /* PC4 */
- /* PC3 */ { 0, 0, 0, 0, 0, 0 }, /* PC3 */
- /* PC2 */ { 0, 0, 0, 0, 0, 0 }, /* PC2 */
- /* PC1 */ { 0, 0, 0, 0, 0, 0 }, /* PC1 */
- /* PC0 */ { 0, 0, 0, 0, 0, 0 }, /* PC0 */
- },
-
- /* Port D */
- { /* conf ppar psor pdir podr pdat */
- /* PD31 */ { 0, 0, 0, 0, 0, 0 }, /* PD31 */
- /* PD30 */ { 0, 0, 0, 0, 0, 0 }, /* PD30 */
- /* PD29 */ { 0, 0, 0, 0, 0, 0 }, /* PD29 */
- /* PD28 */ { 0, 0, 0, 0, 0, 0 }, /* PD28 */
- /* PD27 */ { 0, 0, 0, 0, 0, 0 }, /* PD27 */
- /* PD26 */ { 0, 0, 0, 0, 0, 0 }, /* PD26 */
- /* PD25 */ { 0, 0, 0, 0, 0, 0 }, /* PD25 */
- /* PD24 */ { 0, 0, 0, 0, 0, 0 }, /* PD24 */
- /* PD23 */ { 0, 0, 0, 0, 0, 0 }, /* PD23 */
- /* PD22 */ { 1, 1, 0, 0, 0, 0 }, /* SCC4: RXD */
- /* PD21 */ { 1, 1, 0, 1, 0, 0 }, /* SCC4: TXD */
- /* PD20 */ { 1, 1, 0, 1, 0, 0 }, /* SCC4: RTS */
- /* PD19 */ { 0, 0, 0, 0, 0, 0 }, /* PD19 */
- /* PD18 */ { 0, 0, 0, 0, 0, 0 }, /* PD18 */
- /* PD17 */ { 0, 0, 0, 0, 0, 0 }, /* PD17 */
- /* PD16 */ { 0, 0, 0, 0, 0, 0 }, /* PD16 */
+ /* Port A */
+ { /* conf ppar psor pdir podr pdat */
+ { 0, 0, 0, 0, 0, 0 }, /* PA31 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA30 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA29 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA28 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA27 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA26 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA25 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA24 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA23 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA22 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA21 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA20 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA19 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA18 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA17 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA16 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA15 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA14 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA13 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA12 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA11 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA10 */
+ { 1, 1, 0, 1, 0, 0 }, /* PA9 SMC2 TxD */
+ { 1, 1, 0, 0, 0, 0 }, /* PA8 SMC2 RxD */
+ { 0, 0, 0, 0, 0, 0 }, /* PA7 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA6 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA5 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA4 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA3 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA2 */
+ { 0, 0, 0, 0, 0, 0 }, /* PA1 */
+ { 0, 0, 0, 0, 0, 0 } /* PA0 */
+ },
+
+ /* Port B */
+ { /* conf ppar psor pdir podr pdat */
+ { 0, 0, 0, 0, 0, 0 }, /* PB31 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB30 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB29 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB28 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB27 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB26 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB25 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB24 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB23 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB22 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB21 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB20 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB19 */
+ { 0, 0, 0, 0, 0, 0 }, /* PB18 */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 } /* non-existent */
+ },
+
+ /* Port C */
+ { /* conf ppar psor pdir podr pdat */
+ { 0, 0, 0, 0, 0, 0 }, /* PC31 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC30 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC29 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC28 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC27 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC26 */
+ { 1, 1, 0, 0, 0, 0 }, /* PC25 RxClk */
+ { 1, 1, 0, 0, 0, 0 }, /* PC24 TxClk */
+ { 0, 0, 0, 0, 0, 0 }, /* PC23 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC22 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC21 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC20 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC19 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC18 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC17 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC16 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC15 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC14 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC13 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC12 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC11 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC10 */
+ { 1, 1, 0, 0, 0, 0 }, /* PC9 SCC4: CTS */
+ { 1, 1, 0, 0, 0, 0 }, /* PC8 SCC4: CD */
+ { 0, 0, 0, 0, 0, 0 }, /* PC7 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC6 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC5 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC4 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC3 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC2 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC1 */
+ { 0, 0, 0, 0, 0, 0 }, /* PC0 */
+ },
+
+ /* Port D */
+ { /* conf ppar psor pdir podr pdat */
+ { 0, 0, 0, 0, 0, 0 }, /* PD31 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD30 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD29 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD28 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD27 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD26 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD25 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD24 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD23 */
+ { 1, 1, 0, 0, 0, 0 }, /* PD22 SCC4: RXD */
+ { 1, 1, 0, 1, 0, 0 }, /* PD21 SCC4: TXD */
+ { 1, 1, 0, 1, 0, 0 }, /* PD20 SCC4: RTS */
+ { 0, 0, 0, 0, 0, 0 }, /* PD19 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD18 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD17 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD16 */
#if defined(CONFIG_HARD_I2C)
- /* PD15 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SDA */
- /* PD14 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SCL */
+ { 1, 1, 1, 0, 1, 0 }, /* PD15 I2C SDA */
+ { 1, 1, 1, 0, 1, 0 }, /* PD14 I2C SCL */
#else
- /* PD15 */ { 1, 0, 0, 0, 1, 1 }, /* PD15 */
- /* PD14 */ { 1, 0, 0, 1, 1, 1 }, /* PD14 */
+ { 1, 0, 0, 0, 1, 1 }, /* PD15 */
+ { 1, 0, 0, 1, 1, 1 }, /* PD14 */
#endif
- /* PD13 */ { 0, 0, 0, 0, 0, 0 }, /* PD13 */
- /* PD12 */ { 0, 0, 0, 0, 0, 0 }, /* PD12 */
- /* PD11 */ { 0, 0, 0, 0, 0, 0 }, /* PD11 */
- /* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
- /* PD9 */ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
- /* PD8 */ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
- /* PD7 */ { 0, 0, 0, 0, 0, 0 }, /* PD7 */
- /* PD6 */ { 0, 0, 0, 0, 0, 0 }, /* PD6 */
- /* PD5 */ { 0, 0, 0, 0, 0, 0 }, /* PD5 */
- /* PD4 */ { 0, 0, 0, 0, 0, 0 }, /* PD4 */
- /* PD3 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PD2 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PD1 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
- /* PD0 */ { 0, 0, 0, 0, 0, 0 } /* non-existent */
- }
+ { 0, 0, 0, 0, 0, 0 }, /* PD13 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD12 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD11 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD7 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD6 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD5 */
+ { 0, 0, 0, 0, 0, 0 }, /* PD4 */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
+ { 0, 0, 0, 0, 0, 0 } /* non-existent */
+ }
};
/*
@@ -237,7 +237,8 @@ static long int try_init(memctl8260_t *memctl, ulong sdmr,
* accessing the SDRAM with a single-byte transaction."
*
* The appropriate BRx/ORx registers have already been set when we
- * get here. The SDRAM can be accessed at the address CONFIG_SYS_SDRAM_BASE.
+ * get here. The SDRAM can be accessed at the address
+ * CONFIG_SYS_SDRAM_BASE.
*/
out_be32(&memctl->memc_psdmr, sdmr | PSDMR_OP_PREA);
@@ -257,7 +258,7 @@ static long int try_init(memctl8260_t *memctl, ulong sdmr,
size = get_ram_size((long *)base, maxsize);
out_be32(&memctl->memc_or1, orx | ~(size - 1));
- return (size);
+ return size;
}
phys_size_t initdram(int board_type)
@@ -279,7 +280,7 @@ phys_size_t initdram(int board_type)
icache_enable();
- return (psize);
+ return psize;
}
int checkboard(void)
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection Holger Brunck
` (3 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
The directory and file mgcoge was renamed to km82xx.
Because other keymile 82xx will follow and will use the
same platform code.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- no change in the content of this patch
board/keymile/{mgcoge => km82xx}/Makefile | 0
board/keymile/{mgcoge/mgcoge.c => km82xx/km82xx.c} | 0
boards.cfg | 4 ++--
3 files changed, 2 insertions(+), 2 deletions(-)
rename board/keymile/{mgcoge => km82xx}/Makefile (100%)
rename board/keymile/{mgcoge/mgcoge.c => km82xx/km82xx.c} (100%)
diff --git a/board/keymile/mgcoge/Makefile b/board/keymile/km82xx/Makefile
similarity index 100%
rename from board/keymile/mgcoge/Makefile
rename to board/keymile/km82xx/Makefile
diff --git a/board/keymile/mgcoge/mgcoge.c b/board/keymile/km82xx/km82xx.c
similarity index 100%
rename from board/keymile/mgcoge/mgcoge.c
rename to board/keymile/km82xx/km82xx.c
diff --git a/boards.cfg b/boards.cfg
index 2b0900a..e0791fe 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -439,8 +439,8 @@ PQ2FADS-ZU_66MHz powerpc mpc8260 mpc8260ads freesca
PQ2FADS-ZU_66MHz_lowboot powerpc mpc8260 mpc8260ads freescale - MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,8260_CLKIN=66000000,SYS_TEXT_BASE=0xFF800000
PQ2FADS-ZU_lowboot powerpc mpc8260 mpc8260ads freescale - MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
VoVPN-GW_66MHz powerpc mpc8260 vovpn-gw funkwerk - VoVPN-GW:CLKIN_66MHz
-mgcoge powerpc mpc8260 - keymile
-mgcoge2ne powerpc mpc8260 mgcoge keymile
+mgcoge powerpc mpc8260 km82xx keymile
+mgcoge2ne powerpc mpc8260 km82xx keymile
SCM powerpc mpc8260 - siemens
TQM8255_AA powerpc mpc8260 tqm8260 tqc - TQM8260:MPC8255,300MHz
TQM8260_AA powerpc mpc8260 tqm8260 tqc - TQM8260:MPC8260,200MHz
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
` (2 preceding siblings ...)
2011-05-03 8:56 ` [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support Holger Brunck
` (2 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
From: Huber, Andreas <Andreas.Huber@keymile.com>
Introduce a struct for the BFTICU FPGA to increase the readability of
the code. And the define CONFIG_SYS_BFTICU_BASE was removed because
the CONFIG_SYS_FPGA_BASE is already the base value for BFTICU registers.
Signed-off-by: Andreas Huber <andreas.huber@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- no change in the content of this patch
board/keymile/common/common.h | 79 +++++++++++++++++++++++++++++++++++++++++
board/keymile/km82xx/km82xx.c | 11 +++---
include/configs/mgcoge.h | 3 --
3 files changed, 84 insertions(+), 9 deletions(-)
diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 14768c9..6ce992a 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -39,6 +39,85 @@ struct km_bec_fpga {
unsigned char pgy_eth;
};
+#define BFTICU_DIPSWITCH_MASK 0x0f
+
+/*
+ * BFTICU FPGA iomap
+ * BFTICU is used on mgcoge and mgocge3ne
+ */
+struct bfticu_iomap {
+ u8 xi_ena; /* General defect enable */
+ u8 pack1[3];
+ u8 en_csn;
+ u8 pack2;
+ u8 safe_mem;
+ u8 pack3;
+ u8 id;
+ u8 pack4;
+ u8 rev;
+ u8 build;
+ u8 p_frc;
+ u8 p_msk;
+ u8 pack5[2];
+ u8 xg_int;
+ u8 pack6[15];
+ u8 s_conf;
+ u8 pack7;
+ u8 dmx_conf12;
+ u8 pack8;
+ u8 s_clkslv;
+ u8 pack9[11];
+ u8 d_conf;
+ u8 d_mask_ca;
+ u8 d_pll_del;
+ u8 pack10[16];
+ u8 t_conf_ca;
+ u8 t_mask_ca;
+ u8 pack11[13];
+ u8 m_def0;
+ u8 m_def1;
+ u8 m_def2;
+ u8 m_def3;
+ u8 m_def4;
+ u8 m_def5;
+ u8 m_def_trap0;
+ u8 m_def_trap1;
+ u8 m_def_trap2;
+ u8 m_def_trap3;
+ u8 m_def_trap4;
+ u8 m_def_trap5;
+ u8 m_mask_def0;
+ u8 m_mask_def1;
+ u8 m_mask_def2;
+ u8 m_mask_def3;
+ u8 m_mask_def4;
+ u8 m_mask_def5;
+ u8 m_def_mask0;
+ u8 m_def_mask1;
+ u8 m_def_mask2;
+ u8 m_def_mask3;
+ u8 m_def_mask4;
+ u8 m_def_mask5;
+ u8 m_def_pri;
+ u8 pack12[11];
+ u8 hw_status;
+ u8 pack13;
+ u8 hw_control1;
+ u8 hw_control2;
+ u8 hw_control3;
+ u8 pack14[7];
+ u8 led_on; /* Leds */
+ u8 pack15;
+ u8 sfp_control; /* SFP modules */
+ u8 pack16;
+ u8 alarm_control; /* Alarm output */
+ u8 pack17;
+ u8 icps; /* ICN clock pulse shaping */
+ u8 mswitch; /* Read mode switch */
+ u8 pack18[6];
+ u8 pb_dbug;
+};
+
#if !defined(CONFIG_PIGGY_MAC_ADRESS_OFFSET)
#define CONFIG_PIGGY_MAC_ADRESS_OFFSET 0
#endif
diff --git a/board/keymile/km82xx/km82xx.c b/board/keymile/km82xx/km82xx.c
index 6c511a6..01c0bfd 100644
--- a/board/keymile/km82xx/km82xx.c
+++ b/board/keymile/km82xx/km82xx.c
@@ -296,15 +296,14 @@ int checkboard(void)
return 0;
}
-#define DIPSWITCH_OFFSET 0x89
-#define DIPSWITCH_MASK 0x0f
-
int last_stage_init(void)
{
+ struct bfticu_iomap *base =
+ (struct bfticu_iomap *)CONFIG_SYS_FPGA_BASE;
u8 dip_switch;
- /* Dip switch */
- dip_switch = readb(CONFIG_SYS_BFTICU_BASE + DIPSWITCH_OFFSET);
- dip_switch &= DIPSWITCH_MASK;
+
+ dip_switch = in_8(&base->mswitch);
+ dip_switch &= BFTICU_DIPSWITCH_MASK;
/* dip switch 'full reset' or 'db erase' */
if (dip_switch & 0x1 || dip_switch & 0x2) {
/* start bootloader */
diff --git a/include/configs/mgcoge.h b/include/configs/mgcoge.h
index dcde76c..3d2ee24 100644
--- a/include/configs/mgcoge.h
+++ b/include/configs/mgcoge.h
@@ -61,7 +61,4 @@
/* include further common stuff for all keymile 82xx boards */
#include "km82xx-common.h"
-/* bfticu address */
-#define CONFIG_SYS_BFTICU_BASE 0x40000000
-
#endif /* __CONFIG_H */
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
` (3 preceding siblings ...)
2011-05-03 8:56 ` [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable Holger Brunck
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
This patch adds support for the MPC8247 based board mgcoge3ne.
Additionaly mgcoge2ne board supprot was removed, because due
to the mgcoge3ne, this board is obsolete and not longer
maintained.
The board is similar to mgcoge. The difference is that
a NUMONYX flash is used and a different SDRAM (256MB).
Also introduce CONFIG_KM_82XX to collect ppc82xx common
settings and remove staticness from the common set_pin function.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- squashed with powerpc/km82xx: move SDRAM config to board config
from first serie and update commit message
MAINTAINERS | 2 +-
board/keymile/common/common.c | 6 ++--
board/keymile/common/common.h | 1 +
board/keymile/km82xx/km82xx.c | 27 ++++++++++++++-
boards.cfg | 2 +-
include/configs/km82xx-common.h | 26 --------------
include/configs/mgcoge.h | 27 +++++++++++++++
include/configs/{mgcoge2ne.h => mgcoge3ne.h} | 47 ++++++++++++++++++++-----
8 files changed, 96 insertions(+), 42 deletions(-)
rename include/configs/{mgcoge2ne.h => mgcoge3ne.h} (62%)
diff --git a/MAINTAINERS b/MAINTAINERS
index e2a4ba9..e2c48a8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -429,7 +429,7 @@ Heiko Schocher <hs@denx.de>
kmeter1 MPC8360
kmsupx5 MPC8321
mgcoge MPC8247
- mgcoge2ne MPC8247
+ mgcoge3ne MPC8247
mgcoge2un ARM926EJS (Kirkwood SoC)
mucmc52 MPC5200
muas3001 MPC8270
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index dc96489..25a3850 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -22,7 +22,7 @@
*/
#include <common.h>
-#if defined(CONFIG_MGCOGE) || defined(CONFIG_MGCOGE2NE)
+#if defined(CONFIG_KM82XX)
#include <mpc8260.h>
#endif
#include <ioports.h>
@@ -398,10 +398,10 @@ int ivm_read_eeprom(void)
#define DELAY_ABORT_SEQ 62 /* @200kHz 9 clocks = 44us, 62us is ok */
#define DELAY_HALF_PERIOD (500 / (CONFIG_SYS_I2C_SPEED / 1000))
-#if defined(CONFIG_MGCOGE) || defined(CONFIG_MGCOGE2NE)
+#if defined(CONFIG_KM_82XX)
#define SDA_MASK 0x00010000
#define SCL_MASK 0x00020000
-static void set_pin(int state, unsigned long mask)
+void set_pin(int state, unsigned long mask)
{
ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 6ce992a..cee24d4 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -124,6 +124,7 @@ struct bfticu_iomap {
int ethernet_present(void);
int ivm_read_eeprom(void);
+void set_pin(int state, unsigned long mask);
int set_km_env(void);
int fdt_set_node_and_value(void *blob,
diff --git a/board/keymile/km82xx/km82xx.c b/board/keymile/km82xx/km82xx.c
index 01c0bfd..d453d25 100644
--- a/board/keymile/km82xx/km82xx.c
+++ b/board/keymile/km82xx/km82xx.c
@@ -288,7 +288,7 @@ int checkboard(void)
#if defined(CONFIG_MGCOGE)
puts("Board: Keymile mgcoge");
#else
- puts("Board: Keymile mgcoge2ne");
+ puts("Board: Keymile mgcoge3ne");
#endif
if (ethernet_present())
puts(" with PIGGY.");
@@ -314,6 +314,28 @@ int last_stage_init(void)
return 0;
}
+#ifdef CONFIG_MGCOGE3NE
+/*
+ * For mgcoge3ne boards, the mgcoge3un control is controlled from
+ * a GPIO line on the PPC CPU. If bobcatreset is set the line
+ * will toggle once what forces the mgocge3un part to restart
+ * immediately.
+ */
+void handle_mgcoge3un_reset(void)
+{
+ char *bobcatreset = getenv("bobcatreset");
+ if (bobcatreset) {
+ if (strcmp(bobcatreset, "true") == 0) {
+ puts("Forcing bobcat reset\n");
+ set_pin(0, 0x00000004); /* clear PD29 to reset arm */
+ udelay(1000);
+ set_pin(1, 0x00000004);
+ } else
+ set_pin(1, 0x00000004); /* set PD29 to not reset arm */
+ }
+}
+#endif
+
/*
* Early board initalization.
*/
@@ -329,6 +351,9 @@ int board_early_init_r(void)
out_8(&base->oprtl, (H_OPORTS_SCC4_ENA | H_OPORTS_SCC4_FD_ENA |
H_OPORTS_FCC1_PW_DWN));
+#ifdef CONFIG_MGCOGE3NE
+ handle_mgcoge3un_reset();
+#endif
return 0;
}
diff --git a/boards.cfg b/boards.cfg
index e0791fe..f0d3440 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -440,7 +440,7 @@ PQ2FADS-ZU_66MHz_lowboot powerpc mpc8260 mpc8260ads freesca
PQ2FADS-ZU_lowboot powerpc mpc8260 mpc8260ads freescale - MPC8260ADS:ADSTYPE=CONFIG_SYS_PQ2FADS,SYS_TEXT_BASE=0xFF800000
VoVPN-GW_66MHz powerpc mpc8260 vovpn-gw funkwerk - VoVPN-GW:CLKIN_66MHz
mgcoge powerpc mpc8260 km82xx keymile
-mgcoge2ne powerpc mpc8260 km82xx keymile
+mgcoge3ne powerpc mpc8260 km82xx keymile
SCM powerpc mpc8260 - siemens
TQM8255_AA powerpc mpc8260 tqm8260 tqc - TQM8260:MPC8255,300MHz
TQM8260_AA powerpc mpc8260 tqm8260 tqc - TQM8260:MPC8260,200MHz
diff --git a/include/configs/km82xx-common.h b/include/configs/km82xx-common.h
index 345212c..da551c9 100644
--- a/include/configs/km82xx-common.h
+++ b/include/configs/km82xx-common.h
@@ -243,13 +243,6 @@
ORxG_SCY_5_CLK |\
ORxG_TRLX)
-
-/*
- * Bank 1 - 60x bus SDRAM
- */
-#define SDRAM_MAX_SIZE 0x08000000 /* max. 128 MB */
-#define CONFIG_SYS_GLOBAL_SDRAM_LIMIT (256 << 20) /* less than 256 MB */
-
#define CONFIG_SYS_MPTPR 0x1800
/*
@@ -268,25 +261,6 @@
#define CONFIG_SYS_OR1_PRELIM CONFIG_SYS_OR1
/*
- * SDRAM initialization values
- */
-
-#define CONFIG_SYS_OR1 ((~(CONFIG_SYS_GLOBAL_SDRAM_LIMIT-1) & ORxS_SDAM_MSK) |\
- ORxS_BPD_8 |\
- ORxS_ROWST_PBI0_A7 |\
- ORxS_NUMR_13)
-
-#define CONFIG_SYS_PSDMR (PSDMR_SDAM_A14_IS_A5 |\
- PSDMR_BSMA_A14_A16 |\
- PSDMR_SDA10_PBI0_A9 |\
- PSDMR_RFRC_5_CLK |\
- PSDMR_PRETOACT_2W |\
- PSDMR_ACTTORW_2W |\
- PSDMR_LDOTOPRE_1C |\
- PSDMR_WRC_1C |\
- PSDMR_CL_2)
-
-/*
* UPIO FPGA (GPIO/PIGGY) on CS3 initialization values
*/
#define CONFIG_SYS_KMBEC_FPGA_BASE 0x30000000
diff --git a/include/configs/mgcoge.h b/include/configs/mgcoge.h
index 3d2ee24..93a6f4a 100644
--- a/include/configs/mgcoge.h
+++ b/include/configs/mgcoge.h
@@ -32,6 +32,7 @@
#define CONFIG_MPC8247
#define CONFIG_MGCOGE
#define CONFIG_HOSTNAME mgcoge
+#define CONFIG_KM_82XX
#define CONFIG_SYS_TEXT_BASE 0xFE000000
@@ -58,6 +59,32 @@
CONFIG_SYS_FLASH_BASE_2 }
#define MTDIDS_DEFAULT "nor3=app"
+/*
+ * Bank 1 - 60x bus SDRAM
+ */
+#define SDRAM_MAX_SIZE 0x08000000 /* max. 128 MB */
+#define CONFIG_SYS_GLOBAL_SDRAM_LIMIT (256 << 20) /* less than 256 MB */
+
+/* SDRAM initialization values
+*/
+
+#define CONFIG_SYS_OR1 ((~(CONFIG_SYS_GLOBAL_SDRAM_LIMIT-1) & \
+ ORxS_SDAM_MSK) |\
+ ORxS_BPD_8 |\
+ ORxS_ROWST_PBI0_A7 |\
+ ORxS_NUMR_13)
+
+#define CONFIG_SYS_PSDMR (PSDMR_SDAM_A14_IS_A5 |\
+ PSDMR_BSMA_A14_A16 |\
+ PSDMR_SDA10_PBI0_A9 |\
+ PSDMR_RFRC_5_CLK |\
+ PSDMR_PRETOACT_2W |\
+ PSDMR_ACTTORW_2W |\
+ PSDMR_LDOTOPRE_1C |\
+ PSDMR_WRC_1C |\
+ PSDMR_CL_2)
+
+
/* include further common stuff for all keymile 82xx boards */
#include "km82xx-common.h"
diff --git a/include/configs/mgcoge2ne.h b/include/configs/mgcoge3ne.h
similarity index 62%
rename from include/configs/mgcoge2ne.h
rename to include/configs/mgcoge3ne.h
index 287b717..f080619 100644
--- a/include/configs/mgcoge2ne.h
+++ b/include/configs/mgcoge3ne.h
@@ -1,5 +1,5 @@
/*
- * (C) Copyright 2007-2010
+ * (C) Copyright 2011
* Heiko Schocher, DENX Software Engineering, hs@denx.de.
*
* See file CREDITS for list of people who contributed to this
@@ -21,16 +21,18 @@
* MA 02111-1307 USA
*/
-#ifndef __MGCOGE2NE
-#define __MGCOGE2NE
+#ifndef __MGCOGE3NE
+#define __MGCOGE3NE
/*
* High Level Configuration Options
* (easy to change)
*/
+
#define CONFIG_MPC8247
-#define CONFIG_MGCOGE
-#define CONFIG_HOSTNAME mgcoge2ne
+#define CONFIG_MGCOGE3NE
+#define CONFIG_HOSTNAME mgcoge3ne
+#define CONFIG_KM_82XX
#define CONFIG_SYS_TEXT_BASE 0xFE000000
@@ -43,22 +45,47 @@
#define CONFIG_SYS_FLASH_SIZE 32
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_FLASH_CFI_DRIVER
-#define CONFIG_SYS_MAX_FLASH_BANKS 3 /* max num of flash banks */
-#define CONFIG_SYS_MAX_FLASH_SECT 512 /*
+#define CONFIG_SYS_MAX_FLASH_BANKS 2 /* max num of flash banks */
+#define CONFIG_SYS_MAX_FLASH_SECT 1024 /*
* max num of sects on one
* chip
*/
#define CONFIG_SYS_FLASH_BASE_1 0x50000000
-#define CONFIG_SYS_FLASH_SIZE_1 64
-#define CONFIG_SYS_FLASH_SIZE_2 0
+#define CONFIG_SYS_FLASH_SIZE_1 128
+
+#define CONFIG_SYS_FLASH_SIZE_2 0 /* dummy value to calc SYS_OR5 */
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE, \
CONFIG_SYS_FLASH_BASE_1 }
#define MTDIDS_DEFAULT "nor2=app"
+/*
+ * Bank 1 - 60x bus SDRAM
+ * mgcoge3ne has 256M.
+ */
+#define SDRAM_MAX_SIZE 0x10000000 /* max. 256 MB */
+#define CONFIG_SYS_GLOBAL_SDRAM_LIMIT (512 << 20) /* less than 512 MB */
+
+#define CONFIG_SYS_OR1 ((~(CONFIG_SYS_GLOBAL_SDRAM_LIMIT-1) & \
+ ORxS_SDAM_MSK) |\
+ ORxS_BPD_4 |\
+ ORxS_ROWST_PBI1_A4 |\
+ ORxS_NUMR_13)
+
+#define CONFIG_SYS_PSDMR (PSDMR_PBI |\
+ PSDMR_SDAM_A17_IS_A5 |\
+ PSDMR_BSMA_A13_A15 |\
+ PSDMR_SDA10_PBI1_A6 |\
+ PSDMR_RFRC_5_CLK |\
+ PSDMR_PRETOACT_2W |\
+ PSDMR_ACTTORW_2W |\
+ PSDMR_LDOTOPRE_1C |\
+ PSDMR_WRC_2C |\
+ PSDMR_CL_2)
+
/* include further common stuff for all keymile 82xx boards */
#include "km82xx-common.h"
-#endif /* __MGCOGE2NE */
+#endif /* __MGCOGE3NE */
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
` (4 preceding siblings ...)
2011-05-03 8:56 ` [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:51 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable Holger Brunck
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
Reserved bit was changed according to the processors manual.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- no change in the content of this patch
include/configs/km82xx-common.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/km82xx-common.h b/include/configs/km82xx-common.h
index da551c9..894e015 100644
--- a/include/configs/km82xx-common.h
+++ b/include/configs/km82xx-common.h
@@ -182,7 +182,7 @@
#define CONFIG_SYS_HID2 0
#define CONFIG_SYS_SIUMCR 0x4020c200
-#define CONFIG_SYS_SYPCR 0xFFFFFFC3
+#define CONFIG_SYS_SYPCR 0xFFFFFF83
#define CONFIG_SYS_BCR 0x10000000
#define CONFIG_SYS_SCCR (SCCR_PCI_MODE | SCCR_PCI_MODCK)
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
` (5 preceding siblings ...)
2011-05-03 8:56 ` [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual Holger Brunck
@ 2011-05-03 8:56 ` Holger Brunck
2011-05-10 20:51 ` Wolfgang Denk
6 siblings, 1 reply; 15+ messages in thread
From: Holger Brunck @ 2011-05-03 8:56 UTC (permalink / raw)
To: u-boot
On mgcoge3ne a new environment variable bobcatreset is used.
So this patch adds a possibility to add board specific
environment variables in general and this specific variable
for mgcoge3ne.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Heiko Schocher <hs@denx.de>
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
---
Changes for v2:
- split up first large patch serie to three independent smaller
patch series
- fix typo in commit message
include/configs/km82xx-common.h | 1 +
include/configs/mgcoge.h | 2 ++
include/configs/mgcoge3ne.h | 2 ++
3 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/include/configs/km82xx-common.h b/include/configs/km82xx-common.h
index 894e015..446c1d0 100644
--- a/include/configs/km82xx-common.h
+++ b/include/configs/km82xx-common.h
@@ -80,6 +80,7 @@
* Default environment settings
*/
#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_KM_BOARD_EXTRA_ENV \
CONFIG_KM_DEF_ENV \
"EEprom_ivm=pca9544a:70:4 \0" \
"unlock=yes\0" \
diff --git a/include/configs/mgcoge.h b/include/configs/mgcoge.h
index 93a6f4a..0745855 100644
--- a/include/configs/mgcoge.h
+++ b/include/configs/mgcoge.h
@@ -85,6 +85,8 @@
PSDMR_CL_2)
+#define CONFIG_KM_BOARD_EXTRA_ENV ""
+
/* include further common stuff for all keymile 82xx boards */
#include "km82xx-common.h"
diff --git a/include/configs/mgcoge3ne.h b/include/configs/mgcoge3ne.h
index f080619..7ed213e 100644
--- a/include/configs/mgcoge3ne.h
+++ b/include/configs/mgcoge3ne.h
@@ -85,6 +85,8 @@
PSDMR_WRC_2C |\
PSDMR_CL_2)
+#define CONFIG_KM_BOARD_EXTRA_ENV "bobcatreset=true\0"
+
/* include further common stuff for all keymile 82xx boards */
#include "km82xx-common.h"
--
1.7.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation
2011-05-03 8:56 ` [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation Holger Brunck
@ 2011-05-10 20:50 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:50 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <5090fb7af6834a57b5e25f780057df30e3dd7b8e.1304409387.git.holger.brunck@keymile.com> you wrote:
> The hdlc implementation for mgcoge was initially developed,
> but later on not used. Remove the C files, the references
> in mgcoge.c and the Makefile to decrease maintenance effort.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - no change in the content of this patch
>
> board/keymile/common/common.c | 3 -
> board/keymile/common/common.h | 4 -
> board/keymile/common/keymile_hdlc_enet.c | 620 ------------------------------
> board/keymile/mgcoge/Makefile | 3 +-
> board/keymile/mgcoge/mgcoge_hdlc_enet.c | 276 -------------
> 5 files changed, 1 insertions(+), 905 deletions(-)
> delete mode 100644 board/keymile/common/keymile_hdlc_enet.c
> delete mode 100644 board/keymile/mgcoge/mgcoge_hdlc_enet.c
Applied, thanks.
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: wd at denx.de
...though his invention worked superbly -- his theory was a crock of
sewage from beginning to end. - Vernor Vinge, "The Peace War"
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c
2011-05-03 8:56 ` [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c Holger Brunck
@ 2011-05-10 20:50 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:50 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <6a4379237c3c32f0e6fb145d64d33c959fa785d5.1304409387.git.holger.brunck@keymile.com> you wrote:
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - no change in the content of this patch
>
> board/keymile/mgcoge/mgcoge.c | 291 +++++++++++++++++++++--------------------
> 1 files changed, 146 insertions(+), 145 deletions(-)
Applied, thanks.
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: wd at denx.de
When choosing between two evils, I always like to take the one I've
never tried before. -- Mae West, "Klondike Annie"
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx
2011-05-03 8:56 ` [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx Holger Brunck
@ 2011-05-10 20:50 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:50 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <9855ad495d01555cc1115973f5c57472382177ad.1304409387.git.holger.brunck@keymile.com> you wrote:
> The directory and file mgcoge was renamed to km82xx.
> Because other keymile 82xx will follow and will use the
> same platform code.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - no change in the content of this patch
>
> board/keymile/{mgcoge => km82xx}/Makefile | 0
> board/keymile/{mgcoge/mgcoge.c => km82xx/km82xx.c} | 0
> boards.cfg | 4 ++--
> 3 files changed, 2 insertions(+), 2 deletions(-)
> rename board/keymile/{mgcoge => km82xx}/Makefile (100%)
> rename board/keymile/{mgcoge/mgcoge.c => km82xx/km82xx.c} (100%)
Applied, thanks.
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: wd at denx.de
Time is fluid ... like a river with currents, eddies, backwash.
-- Spock, "The City on the Edge of Forever", stardate 3134.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection
2011-05-03 8:56 ` [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection Holger Brunck
@ 2011-05-10 20:50 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:50 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <b95125b489522378c8f14fd9a5d0151e50d9cf59.1304409387.git.holger.brunck@keymile.com> you wrote:
> From: Huber, Andreas <Andreas.Huber@keymile.com>
>
> Introduce a struct for the BFTICU FPGA to increase the readability of
> the code. And the define CONFIG_SYS_BFTICU_BASE was removed because
> the CONFIG_SYS_FPGA_BASE is already the base value for BFTICU registers.
>
> Signed-off-by: Andreas Huber <andreas.huber@keymile.com>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - no change in the content of this patch
>
> board/keymile/common/common.h | 79 +++++++++++++++++++++++++++++++++++++++++
> board/keymile/km82xx/km82xx.c | 11 +++---
> include/configs/mgcoge.h | 3 --
> 3 files changed, 84 insertions(+), 9 deletions(-)
Applied, thanks.
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: wd at denx.de
Women professionals do tend to over-compensate.
-- Dr. Elizabeth Dehaver, "Where No Man Has Gone Before",
stardate 1312.9.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support
2011-05-03 8:56 ` [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support Holger Brunck
@ 2011-05-10 20:50 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:50 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <a31b7a01a892aab53fb05efb093fb8abcbeaa8b5.1304409387.git.holger.brunck@keymile.com> you wrote:
> This patch adds support for the MPC8247 based board mgcoge3ne.
> Additionaly mgcoge2ne board supprot was removed, because due
> to the mgcoge3ne, this board is obsolete and not longer
> maintained.
> The board is similar to mgcoge. The difference is that
> a NUMONYX flash is used and a different SDRAM (256MB).
> Also introduce CONFIG_KM_82XX to collect ppc82xx common
> settings and remove staticness from the common set_pin function.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - squashed with powerpc/km82xx: move SDRAM config to board config
> from first serie and update commit message
>
> MAINTAINERS | 2 +-
> board/keymile/common/common.c | 6 ++--
> board/keymile/common/common.h | 1 +
> board/keymile/km82xx/km82xx.c | 27 ++++++++++++++-
> boards.cfg | 2 +-
> include/configs/km82xx-common.h | 26 --------------
> include/configs/mgcoge.h | 27 +++++++++++++++
> include/configs/{mgcoge2ne.h => mgcoge3ne.h} | 47 ++++++++++++++++++++-----
> 8 files changed, 96 insertions(+), 42 deletions(-)
> rename include/configs/{mgcoge2ne.h => mgcoge3ne.h} (62%)
Applied, thanks.
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: wd at denx.de
Accident: A condition in which presence of mind is good, but absence
of body is better.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual
2011-05-03 8:56 ` [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual Holger Brunck
@ 2011-05-10 20:51 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:51 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <fd70e2bc606038fa3e8dab4fb1086cdbe2739548.1304409387.git.holger.brunck@keymile.com> you wrote:
> Reserved bit was changed according to the processors manual.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - no change in the content of this patch
>
> include/configs/km82xx-common.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
Applied, thanks.
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: wd at denx.de
"Love is an ideal thing, marriage a real thing; a confusion of the
real with the ideal never goes unpunished." - Goethe
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable
2011-05-03 8:56 ` [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable Holger Brunck
@ 2011-05-10 20:51 ` Wolfgang Denk
0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-05-10 20:51 UTC (permalink / raw)
To: u-boot
Dear Holger Brunck,
In message <9b8d955aa96d09f2d5a20c57e878622b85481a7d.1304409387.git.holger.brunck@keymile.com> you wrote:
> On mgcoge3ne a new environment variable bobcatreset is used.
> So this patch adds a possibility to add board specific
> environment variables in general and this specific variable
> for mgcoge3ne.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> Acked-by: Heiko Schocher <hs@denx.de>
> cc: Wolfgang Denk <wd@denx.de>
> cc: Detlev Zundel <dzu@denx.de>
> ---
> Changes for v2:
> - split up first large patch serie to three independent smaller
> patch series
> - fix typo in commit message
>
> include/configs/km82xx-common.h | 1 +
> include/configs/mgcoge.h | 2 ++
> include/configs/mgcoge3ne.h | 2 ++
> 3 files changed, 5 insertions(+), 0 deletions(-)
Applied, thanks.
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: wd at denx.de
"We Americans, we're a simple people... but piss us off, and we'll
bomb your cities." - Robin Williams, _Good Morning Vietnam_
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2011-05-10 20:51 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-03 8:56 [U-Boot] [PATCH v2 0/7] km82xx mainlining Holger Brunck
2011-05-03 8:56 ` [U-Boot] [PATCH v2 1/7] km/common: remove hdlc_enet implementation Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 2/7] powerpc/km82xx: cleanup coding style for mgcoge.c Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 3/7] powerpc/km82xx: rename mgcoge files to km82xx Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 4/7] powerpc/km82xx: rework DIP switch detection Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 5/7] powerpc/km82xx: add mgcoge3ne and remove mgcoge2ne support Holger Brunck
2011-05-10 20:50 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 6/7] powerpc/km82xx: adapt CONFIG_SYSSYPCR to manual Holger Brunck
2011-05-10 20:51 ` Wolfgang Denk
2011-05-03 8:56 ` [U-Boot] [PATCH v2 7/7] powerpc/km82xx: add board specific environment variable Holger Brunck
2011-05-10 20:51 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox