Skip to contentSkip to conversation

i386 Modifications and new board (eNET)

PATCH New Graeme Russ 4 participants 34 messages Dec 6, 2008 – Jan 26, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover i386 Modifications and new board (eNET)

The following patch series follows from a previous set of preliminary i386 patches (see http://lists.denx.de/pipermail/u-boot/2008-November/043681.html)

This set of patches adds supports for the board I am developing with (eNET) and makes a few changes to the arrangement of the i386 code in U-Boot. These changes are intended to provide better hooks for cpu and board specific functionality. This patch series includes support for the SC520 MMCR reset functionality which was implied by the configuration options but never implemented.

A couple of minor tidy-ups have been performed (moved ali512x.h to a more logical location, changed the configuration settings to CONFIG_SYS_ for example). This patch set, however, is not a full scale style cleanup. There may be places where non-conforming style has been used - For the time being, I am focusing on getting code into the right place. A more complete coding style cleanup will follow.

Regards,

Graeme

#1 lore raw

PATCH 1/15 Added initial eNET board support

---
 MAKEALL                   |    1 +
 Makefile                  |    3 +
 board/eNET/Makefile       |   57 ++++++++++
 board/eNET/config.mk      |   24 +++++
 board/eNET/eNET.c         |  167 ++++++++++++++++++++++++++++++
 board/eNET/eNET_start.S   |   50 +++++++++
 board/eNET/eNET_start16.S |   90 ++++++++++++++++
 board/eNET/hardware.h     |   35 +++++++
 board/eNET/u-boot.lds     |   90 ++++++++++++++++
 include/configs/eNET.h    |  249 +++++++++++++++++++++++++++++++++++++++++++++
 10 files changed, 766 insertions(+), 0 deletions(-)
 create mode 100644 board/eNET/Makefile
 create mode 100644 board/eNET/config.mk
 create mode 100644 board/eNET/eNET.c
 create mode 100644 board/eNET/eNET_start.S
 create mode 100644 board/eNET/eNET_start16.S
 create mode 100644 board/eNET/hardware.h
 create mode 100644 board/eNET/u-boot.lds
 create mode 100644 include/configs/eNET.h
MAKEALL +1 -0
index dbed268..ee0697a 100755
@@ -647,6 +647,7 @@ LIST_mips_el="			\
 
 LIST_I486="		\
 	sc520_cdp	\
+	sc520_eNET	\
 	sc520_spunk	\
 	sc520_spunk_rel	\
 "
Makefile +3 -0
index fd521b6..abdb0fd 100644
@@ -2909,6 +2909,9 @@ smdk6400_config	:	unconfig
 sc520_cdp_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp
 
+eNET_config	:	unconfig
+	@$(MKCONFIG) $(@:_config=) i386 i386 eNET
+
 sc520_spunk_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk
 
board/eNET/Makefile new file +57 -0

57 lines not on this page · raw message

board/eNET/config.mk new file +24 -0
new file mode 100644
index 0000000..de8eb89
@@ -0,0 +1,24 @@
+#
+# (C) Copyright 2002
+# Daniel Engstr?m, Omicron Ceti AB, daniel at omicron.se.
+#
+# 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
+#
+
+TEXT_BASE = 0x38040000
board/eNET/eNET.c new file +167 -0

167 lines not on this page · raw message

board/eNET/eNET_start.S new file +50 -0

50 lines not on this page · raw message

board/eNET/eNET_start16.S new file +90 -0

90 lines not on this page · raw message

board/eNET/hardware.h new file +35 -0
new file mode 100644
index 0000000..42474a6
@@ -0,0 +1,35 @@
+/*
+ * (C) Copyright 2008
+ * Graeme Russ, graeme.russ at gmail.com.
+ *
+ * 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
+ */
+
+#ifndef HARDWARE_H_
+#define HARDWARE_H_
+
+#define LED_LATCH_ADDRESS	0x1002
+#define LED_RUN_BITMASK		0x01
+#define LED_1_BITMASK		0x02
+#define LED_2_BITMASK		0x04
+#define LED_RX_BITMASK		0x08
+#define LED_TX_BITMASK		0x10
+#define LED_ERR_BITMASK		0x20
+
+#endif /* HARDWARE_H_ */
board/eNET/u-boot.lds new file +90 -0

90 lines not on this page · raw message

include/configs/eNET.h new file +249 -0

249 lines not on this page · raw message

--
1.5.4.3

#2 lore raw

PATCH 2/15 Renamed cpu/i386/reset.S to resetvec.S

Brings i386 in line with other CPUs with a reset vector and frees up reset.c for CPU reset functions

---
 Makefile                     |    2 +-
 board/sc520_cdp/u-boot.lds   |    6 +++---
 board/sc520_spunk/u-boot.lds |    6 +++---
 cpu/i386/Makefile            |    2 +-
 cpu/i386/reset.S             |   37 -------------------------------------
 cpu/i386/resetvec.S          |   37 +++++++++++++++++++++++++++++++++++++
 6 files changed, 45 insertions(+), 45 deletions(-)
 delete mode 100644 cpu/i386/reset.S
 create mode 100644 cpu/i386/resetvec.S
Makefile +1 -1
index abdb0fd..8ad23a4 100644
@@ -191,7 +191,7 @@ include $(TOPDIR)/config.mk
 OBJS  = cpu/$(CPU)/start.o
 ifeq ($(CPU),i386)
 OBJS += cpu/$(CPU)/start16.o
-OBJS += cpu/$(CPU)/reset.o
+OBJS += cpu/$(CPU)/resetvec.o
 endif
 ifeq ($(CPU),ppc4xx)
 OBJS += cpu/$(CPU)/resetvec.o
board/sc520_cdp/u-boot.lds +3 -3
index 719ecba..0f5011a 100644
@@ -75,7 +75,7 @@ SECTIONS
 	 * The fe00 and ff00 offsets of the start32 and start16
 	 * segments are arbitrary, the just have to be mapped
 	 * at reset and the code have to fit.
-	 * The fff0 offset of reset is important, however.
+	 * The fff0 offset of resetvec is important, however.
 	 */
 
 
@@ -86,6 +86,6 @@ SECTIONS
 	.start16 : AT (0x387fff00) { *(.start16); }
 
 	. = 0xfff0;
-	.reset : AT (0x387ffff0) { *(.reset); }
-	_i386boot_end = (LOADADDR(.reset) + SIZEOF(.reset) );
+	.resetvec : AT (0x387ffff0) { *(.resetvec); }
+	_i386boot_end = (LOADADDR(.resetvec) + SIZEOF(.resetvec) );
 }
board/sc520_spunk/u-boot.lds +3 -3
index 4d6603c..d2436bc 100644
@@ -76,7 +76,7 @@ SECTIONS
 	 * The fe00 and ff00 offsets of the start32 and start16
 	 * segments are arbitrary, the just have to be mapped
 	 * at reset and the code have to fit.
-	 * The fff0 offset of reset is important, however.
+	 * The fff0 offset of resetvec is important, however.
 	 */
 
 
@@ -87,6 +87,6 @@ SECTIONS
 	.start16 : AT (0x387fff00) { *(.start16); }
 
 	. = 0xfff0;
-	.reset : AT (0x387ffff0) { *(.reset); }
-	_i386boot_end = (LOADADDR(.reset) + SIZEOF(.reset) );
+	.resetvec : AT (0x387ffff0) { *(.resetvec); }
+	_i386boot_end = (LOADADDR(.resetvec) + SIZEOF(.resetvec) );
 }
cpu/i386/Makefile +1 -1
index 50534b6..f20675a 100644
@@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(CPU).a
 
-START	= start.o start16.o reset.o
+START	= start.o start16.o resetvec.o
 COBJS	= serial.o interrupts.o cpu.o timer.o sc520.o
 SOBJS	= sc520_asm.o
 
cpu/i386/reset.S deleted +0 -37
deleted file mode 100644
index 07a7384..0000000
@@ -1,37 +0,0 @@
-/*
- *  U-boot - i386 Startup Code
- *
- *  Copyright (c) 2002	Omicron Ceti AB, Daniel Engstr?m <[email protected]>
- *
- * 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
- */
-
-/* Reset vector, jumps to start16.S */
-
-.extern start16
-
-.section .reset, "ax"
-.code16
-reset_vector:
-	cli
-	cld
-	jmp start16
-
-	.org 0xf
-	nop
cpu/i386/resetvec.S new file +37 -0
new file mode 100644
index 0000000..d9222dd
@@ -0,0 +1,37 @@
+/*
+ *  U-boot - i386 Startup Code
+ *
+ *  Copyright (c) 2002	Omicron Ceti AB, Daniel Engstr?m <[email protected]>
+ *
+ * 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
+ */
+
+/* Reset vector, jumps to start16.S */
+
+.extern start16
+
+.section .resetvec, "ax"
+.code16
+reset_vector:
+	cli
+	cld
+	jmp start16
+
+	.org 0xf
+	nop

--
1.5.4.3

#3 lore raw

PATCH 3/15 Updated eNET link script for reset -> resetvec section rename

---
 board/eNET/u-boot.lds |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
board/eNET/u-boot.lds +3 -3
index 2dafbb5..9e02326 100644
@@ -75,7 +75,7 @@ SECTIONS
 	 * The fe00 and ff00 offsets of the start32 and start16
 	 * segments are arbitrary, the just have to be mapped
 	 * at reset and the code have to fit.
-	 * The fff0 offset of reset is important, however.
+	 * The fff0 offset of resetvec is important, however.
 	 */
 
 	. = 0xfffffe00;
@@ -85,6 +85,6 @@ SECTIONS
 	.start16 : AT (0x3807f800) { *(.start16); }
 
 	. = 0xfff0;
-	.reset : AT (0x3807fff0) { *(.reset); }
-	_i386boot_end = (LOADADDR(.reset) + SIZEOF(.reset) );
+	.resetvec : AT (0x3807fff0) { *(.resetvec); }
+	_i386boot_end = (LOADADDR(.resetvec) + SIZEOF(.resetvec) );
 }

--
1.5.4.3

#4 lore raw

PATCH 4/15 Moved sc520 specific code into new cpu/i386/sc520 folder

---
 Makefile                         |    8 +++---
 cpu/i386/Makefile                |    3 +-
 cpu/i386/sc520/Makefile          |   52 ++++++++++++++++++++++++++++++++++++++
 cpu/i386/{ => sc520}/sc520.c     |    0
 cpu/i386/{ => sc520}/sc520_asm.S |    0
 5 files changed, 57 insertions(+), 6 deletions(-)
 create mode 100644 cpu/i386/sc520/Makefile
 rename cpu/i386/{ => sc520}/sc520.c (100%)
 rename cpu/i386/{ => sc520}/sc520_asm.S (100%)
Makefile +4 -4
index 28cc6c7..d830403 100644
@@ -2908,16 +2908,16 @@ smdk6400_config	:	unconfig
 ## AMD SC520 CDP
 #########################################################################
 sc520_cdp_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp
+	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp NULL sc520
 
 eNET_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) i386 i386 eNET
+	@$(MKCONFIG) $(@:_config=) i386 i386 eNET NULL sc520
 
 sc520_spunk_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk
+	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk NULL sc520
 
 sc520_spunk_rel_config	:	unconfig
-	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk
+	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk NULL sc520
 
 #========================================================================
 # MIPS
cpu/i386/Makefile +1 -2
index f20675a..761c4f6 100644
@@ -29,8 +29,7 @@ include $(TOPDIR)/config.mk
 LIB	= $(obj)lib$(CPU).a
 
 START	= start.o start16.o resetvec.o
-COBJS	= serial.o interrupts.o cpu.o timer.o sc520.o
-SOBJS	= sc520_asm.o
+COBJS	= serial.o interrupts.o cpu.o timer.o
 
 SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
cpu/i386/sc520/Makefile new file +52 -0

52 lines not on this page · raw message

cpu/i386/sc520/sc520.c renamed from cpu/i386/sc520.c +0 -0
similarity index 100%
rename from cpu/i386/sc520.c
rename to cpu/i386/sc520/sc520.c
cpu/i386/sc520/sc520_asm.S renamed from cpu/i386/sc520_asm.S +0 -0
similarity index 100%
rename from cpu/i386/sc520_asm.S
rename to cpu/i386/sc520/sc520_asm.S

--
1.5.4.3

#5 lore raw

PATCH 5/15 Moved definition of set_vector() to new header file

---
This allows for future tidy ups and functionality that will require set_vector ()

---
 cpu/i386/interrupts.c        |    3 ++-
 include/asm-i386/interrupt.h |   29 +++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletions(-)
 create mode 100644 include/asm-i386/interrupt.h
cpu/i386/interrupts.c +2 -1
index f6dbcca..ba9e89d 100644
@@ -26,6 +26,7 @@
 #include <asm/io.h>
 #include <asm/i8259.h>
 #include <asm/ibmpc.h>
+#include <asm/interrupt.h>
 
 
 struct idt_entry {
@@ -376,7 +377,7 @@ asm ("idt_ptr:\n"
 	".long	idt\n"	 /* offset */
 	".word	0x18\n");/* data segment */
 
-static void set_vector(int intnum, void *routine)
+void set_vector(int intnum, void *routine)
 {
 	idt[intnum].base_high = (u16)((u32)(routine)>>16);
 	idt[intnum].base_low = (u16)((u32)(routine)&0xffff);
include/asm-i386/interrupt.h new file +29 -0
new file mode 100644
index 0000000..315b400
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2008
+ * Graeme Russ, graeme.russ at gmail.com
+ *
+ * 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
+ */
+
+#ifndef __ASM_INTERRUPT_H_
+#define __ASM_INTERRUPT_H_ 1
+
+void set_vector(int intnum, void *routine);
+
+#endif

--
1.5.4.3

#6 lore raw

PATCH 6/15 Moved generic (triple fault) reset code

Moved from interrupts.c to cpu.c and made into a weak function to allow vendor specific override

---
Vendor specific CPU reset (like the AMD SC520 MMCR reset) can now be added to the vendor specific code without the need to remember to #undef usage of the generic method and if you forget to include your custom reset method, you will always get the default

---
 cpu/i386/cpu.c        |   17 +++++++++++++++++
 cpu/i386/interrupts.c |   16 ----------------
 2 files changed, 17 insertions(+), 16 deletions(-)
cpu/i386/cpu.c +17 -0
index 5fd37c7..b9af5f8 100644
@@ -35,6 +35,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <asm/interrupt.h>
 
 int cpu_init(void)
 {
@@ -64,3 +65,19 @@ void  flush_cache (unsigned long dummy1, unsigned long dummy2)
 	asm("wbinvd\n");
 	return;
 }
+
+void __attribute__ ((regparm(0))) generate_gpf(void);
+
+/* segment 0x70 is an arbitrary segment which does not exist */
+asm(".globl generate_gpf\n"
+    "generate_gpf:\n"
+    "ljmp   $0x70, $0x47114711\n");
+
+void __reset_cpu(ulong addr)
+{
+	printf("Resetting using i386 Triple Fault\n");
+	set_vector(13, generate_gpf);  /* general protection fault handler */
+	set_vector(8, generate_gpf);   /* double fault handler */
+	generate_gpf();                /* start the show */
+}
+void reset_cpu(ulong addr) __attribute__((weak, alias("__reset_cpu")));
cpu/i386/interrupts.c +0 -16
index ba9e89d..badb30b 100644
@@ -508,19 +508,3 @@ int disable_interrupts(void)
 
 	return (flags&0x200); /* IE flags is bit 9 */
 }
-
-
-#ifdef CONFIG_SYS_RESET_GENERIC
-
-void __attribute__ ((regparm(0))) generate_gpf(void);
-asm(".globl generate_gpf\n"
-    "generate_gpf:\n"
-    "ljmp   $0x70, $0x47114711\n"); /* segment 0x70 is an arbitrary segment which does not
-				    * exist */
-void reset_cpu(ulong addr)
-{
-	set_vector(13, generate_gpf);  /* general protection fault handler */
-	set_vector(8, generate_gpf);   /* double fault handler */
-	generate_gpf();                /* start the show */
-}
-#endif

--
1.5.4.3

#7 lore raw

PATCH 7/15 Added MMCR reset functionality

Reset function specific to AMD SC520 microcontroller - Is more of a 'hard reset' that the triple fault.

--
Requires CONFIG_SYS_RESET_SC520 to be defined in config

I would have liked to add this to a new file (cpu/i386/sc520/reset.c) but ld requires that a object file in a library arhive MUST contain at least one function which does not override a weak function (and is called from outside the object file) in order for that object file to be extracted from the archive. This would be the only function on the new file, and hence, will never get linked in.

---
 cpu/i386/sc520/sc520.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
cpu/i386/sc520/sc520.c +10 -0
index cb6bc03..50bd8ef 100644
@@ -507,4 +507,14 @@ u8 ssi_rx_byte(void)
 	return read_mmcr_byte(SC520_SSIRCV);
 }
 
+#ifdef CONFIG_SYS_RESET_SC520
+void reset_cpu(ulong addr)
+{
+	printf("Resetting using SC520 MMCR\n");
+	/* Write a '1' to the SYS_RST of the RESCFG MMCR */
+	write_mmcr_word(SC520_RESCFG, 0x0001);
+
+	/* NOTREACHED */
+}
+#endif
 #endif /* CONFIG_SC520 */

--
1.5.4.3

#8 lore raw

PATCH 8/15 Remove #ifdef CONFIG_SC520 in source code

CONFIG_SC520 is now used for conditional compile

---
 cpu/i386/sc520/sc520.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
cpu/i386/sc520/sc520.c +0 -4
index 50bd8ef..12e8f38 100644
@@ -25,9 +25,6 @@
  * but idependent of implementation */
 
 #include <config.h>
-
-#ifdef CONFIG_SC520
-
 #include <common.h>
 #include <config.h>
 #include <pci.h>
@@ -517,4 +514,3 @@ void reset_cpu(ulong addr)
 	/* NOTREACHED */
 }
 #endif
-#endif /* CONFIG_SC520 */

--
1.5.4.3

#9 lore raw

PATCH 9/15 Removed all references to CONFIG_SYS_RESET_GENERIC

Generic i386 reset - #define made redundant by weak function

---
 include/configs/eNET.h        |    1 -
 include/configs/sc520_cdp.h   |    1 -
 include/configs/sc520_spunk.h |    1 -
 3 files changed, 0 insertions(+), 3 deletions(-)
include/configs/eNET.h +0 -1
index 87d2908..8f9e972 100644
@@ -142,7 +142,6 @@
  * CPU Features
  */
 #define CONFIG_SYS_SC520_HIGH_SPEED	0	/* 100 or 133MHz */
-#define CONFIG_SYS_RESET_GENERIC		/* use triple-fault to reset cpu */
 #undef  CONFIG_SYS_RESET_SC520			/* use SC520 MMCR's to reset cpu */
 #define CONFIG_SYS_TIMER_SC520			/* use SC520 swtimers */
 #undef  CONFIG_SYS_TIMER_GENERIC		/* use the i8254 PIT timers */
include/configs/sc520_cdp.h +0 -1
index bf8693e..9f2357b 100644
@@ -47,7 +47,6 @@
 #define CONFIG_SYS_SDRAM_CAS_LATENCY_3T
 
 #define CONFIG_SYS_SC520_HIGH_SPEED    0       /* 100 or 133MHz */
-#define CONFIG_SYS_RESET_GENERIC       1       /* use tripple-fault to reset cpu */
 #undef  CONFIG_SYS_RESET_SC520                 /* use SC520 MMCR's to reset cpu */
 #undef  CONFIG_SYS_TIMER_SC520                 /* use SC520 swtimers */
 #define CONFIG_SYS_TIMER_GENERIC       1       /* use the i8254 PIT timers */
include/configs/sc520_spunk.h +0 -1
index fbdbedd..50af732 100644
@@ -45,7 +45,6 @@
 #define CONFIG_SYS_SDRAM_CAS_LATENCY_3T
 
 #define CONFIG_SYS_SC520_HIGH_SPEED    0       /* 100 or 133MHz */
-#define CONFIG_SYS_RESET_GENERIC       1       /* use tripple-fault to reset cpu */
 #undef  CONFIG_SYS_RESET_SC520                 /* use SC520 MMCR's to reset cpu */
 #undef  CONFIG_SYS_TIMER_SC520                 /* use SC520 swtimers */
 #define CONFIG_SYS_TIMER_GENERIC       1       /* use the i8254 PIT timers */

--
1.5.4.3

#10 lore raw

PATCH 10/15 Renamed SC520 configuration options

Options are now all uniformly CONFIG_SYS_SC520_<option>

---
 board/sc520_cdp/sc520_cdp.c   |   16 ++++++++--------
 cpu/i386/sc520/Makefile       |    4 ++--
 cpu/i386/sc520/sc520.c        |    6 +++---
 cpu/i386/sc520/sc520_asm.S    |    4 ++--
 include/configs/eNET.h        |    6 +++---
 include/configs/sc520_cdp.h   |   10 +++++-----
 include/configs/sc520_spunk.h |    6 +++---
 7 files changed, 26 insertions(+), 26 deletions(-)
board/sc520_cdp/sc520_cdp.c +8 -8
index 779f957..1ddce7e 100644
@@ -575,10 +575,10 @@ int spi_eeprom_write(int x, int offset, uchar *buffer, int len)
 
 void spi_init_f(void)
 {
-#ifdef CONFIG_SC520_CDP_USE_SPI
+#ifdef CONFIG_SYS_SC520_CDP_USE_SPI
 	spi_eeprom_probe(1);
 #endif
-#ifdef CONFIG_SC520_CDP_USE_MW
+#ifdef CONFIG_SYS_SC520_CDP_USE_MW
 	mw_eeprom_probe(2);
 #endif
 }
@@ -595,13 +595,13 @@ ssize_t spi_read(uchar *addr, int alen, uchar *buffer, int len)
 		offset |= addr[i];
 	}
 
-#ifdef CONFIG_SC520_CDP_USE_SPI
+#ifdef CONFIG_SYS_SC520_CDP_USE_SPI
 	res = spi_eeprom_read(1, offset, buffer, len);
 #endif
-#ifdef CONFIG_SC520_CDP_USE_MW
+#ifdef CONFIG_SYS_SC520_CDP_USE_MW
 	res = mw_eeprom_read(2, offset, buffer, len);
 #endif
-#if !defined(CONFIG_SC520_CDP_USE_SPI) && !defined(CONFIG_SC520_CDP_USE_MW)
+#if !defined(CONFIG_SYS_SC520_CDP_USE_SPI) && !defined(CONFIG_SYS_SC520_CDP_USE_MW)
 	res = 0;
 #endif
 	return res;
@@ -619,13 +619,13 @@ ssize_t spi_write(uchar *addr, int alen, uchar *buffer, int len)
 		offset |= addr[i];
 	}
 
-#ifdef CONFIG_SC520_CDP_USE_SPI
+#ifdef CONFIG_SYS_SC520_CDP_USE_SPI
 	res = spi_eeprom_write(1, offset, buffer, len);
 #endif
-#ifdef CONFIG_SC520_CDP_USE_MW
+#ifdef CONFIG_SYS_SC520_CDP_USE_MW
 	res = mw_eeprom_write(2, offset, buffer, len);
 #endif
-#if !defined(CONFIG_SC520_CDP_USE_SPI) && !defined(CONFIG_SC520_CDP_USE_MW)
+#if !defined(CONFIG_SYS_SC520_CDP_USE_SPI) && !defined(CONFIG_SYS_SC520_CDP_USE_MW)
 	res = 0;
 #endif
 	return res;
cpu/i386/sc520/Makefile +2 -2
index 47519ec..178bb76 100644
@@ -31,8 +31,8 @@ include $(TOPDIR)/config.mk
 
 LIB	:= $(obj)lib$(SOC).a
 
-COBJS-$(CONFIG_SC520) += sc520.o
-SOBJS-$(CONFIG_SC520) += sc520_asm.o
+COBJS-$(CONFIG_SYS_SC520) += sc520.o
+SOBJS-$(CONFIG_SYS_SC520) += sc520_asm.o
 
 SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
cpu/i386/sc520/sc520.c +3 -3
index 12e8f38..39b70d5 100644
@@ -28,7 +28,7 @@
 #include <common.h>
 #include <config.h>
 #include <pci.h>
-#ifdef CONFIG_SC520_SSI
+#ifdef CONFIG_SYS_SC520_SSI
 #include <asm/ic/ssi.h>
 #endif
 #include <asm/io.h>
@@ -390,7 +390,7 @@ void pci_sc520_init(struct pci_controller *hose)
 
 #endif
 
-#ifdef CONFIG_SYS_TIMER_SC520
+#ifdef CONFIG_SYS_SC520_TIMER
 
 
 void reset_timer(void)
@@ -504,7 +504,7 @@ u8 ssi_rx_byte(void)
 	return read_mmcr_byte(SC520_SSIRCV);
 }
 
-#ifdef CONFIG_SYS_RESET_SC520
+#ifdef CONFIG_SYS_SC520_RESET
 void reset_cpu(ulong addr)
 {
 	printf("Resetting using SC520 MMCR\n");
cpu/i386/sc520/sc520_asm.S +2 -2
index 59ed2b8..481a30a 100644
@@ -105,7 +105,7 @@
  */
 
 #include <config.h>
-#ifdef CONFIG_SC520
+#ifdef CONFIG_SYS_SC520
 
 .section .text
 .equ            DRCCTL,     0x0fffef010   /* DRAM control register */
@@ -581,4 +581,4 @@ out:
 	movl	%ebx, %eax
 	jmp	*%ebp
 
-#endif /* CONFIG_SC520 */
+#endif /* CONFIG_SYS_SC520 */
include/configs/eNET.h +3 -3
index 8f9e972..7d4e21f 100644
@@ -40,8 +40,8 @@
 #define DEBUG_PARSER
 
 #define CONFIG_X86			1	/* Intel X86 CPU */
-#define CONFIG_SC520			1	/* AMD SC520 */
-#define CONFIG_SC520_SSI
+#define CONFIG_SYS_SC520		1	/* AMD SC520 */
+#define CONFIG_SYS_SC520_SSI
 #define CONFIG_SHOW_BOOT_PROGRESS	1
 #define CONFIG_LAST_STAGE_INIT		1
 
@@ -142,7 +142,7 @@
  * CPU Features
  */
 #define CONFIG_SYS_SC520_HIGH_SPEED	0	/* 100 or 133MHz */
-#undef  CONFIG_SYS_RESET_SC520			/* use SC520 MMCR's to reset cpu */
+#undef  CONFIG_SYS_SC520_RESET			/* use SC520 MMCR's to reset cpu */
 #define CONFIG_SYS_TIMER_SC520			/* use SC520 swtimers */
 #undef  CONFIG_SYS_TIMER_GENERIC		/* use the i8254 PIT timers */
 #undef  CONFIG_SYS_TIMER_TSC			/* use the Pentium TSC timers */
include/configs/sc520_cdp.h +5 -5
index 9f2357b..167bc9e 100644
@@ -35,7 +35,7 @@
  */
 
 #define CONFIG_X86		1	/* This is a X86 CPU		*/
-#define CONFIG_SC520		1	/* Include support for AMD SC520 */
+#define CONFIG_SYS_SC520	1	/* Include support for AMD SC520 */
 #define CONFIG_ALI152X		1	/* Include support for Ali 152x SIO */
 
 #define CONFIG_SYS_SDRAM_PRECHARGE_DELAY 6     /* 6T */
@@ -47,8 +47,8 @@
 #define CONFIG_SYS_SDRAM_CAS_LATENCY_3T
 
 #define CONFIG_SYS_SC520_HIGH_SPEED    0       /* 100 or 133MHz */
-#undef  CONFIG_SYS_RESET_SC520                 /* use SC520 MMCR's to reset cpu */
-#undef  CONFIG_SYS_TIMER_SC520                 /* use SC520 swtimers */
+#undef  CONFIG_SYS_SC520_RESET                 /* use SC520 MMCR's to reset cpu */
+#undef  CONFIG_SYS_SC520_TIMER                 /* use SC520 swtimers */
 #define CONFIG_SYS_TIMER_GENERIC       1       /* use the i8254 PIT timers */
 #undef  CONFIG_SYS_TIMER_TSC                   /* use the Pentium TSC timers */
 #define  CONFIG_SYS_USE_SIO_UART       0       /* prefer the uarts on the SIO to those
@@ -147,8 +147,8 @@
 #define CONFIG_SPI
 #define CONFIG_ENV_SIZE	       0x4000	/* Total Size of Environment EEPROM 16k is SPI is used or 128 bytes if MW is used*/
 #define CONFIG_ENV_OFFSET         0
-#define CONFIG_SC520_CDP_USE_SPI  /* Store configuration in the SPI part */
-#undef CONFIG_SC520_CDP_USE_MW    /* Store configuration in the MicroWire part */
+#define CONFIG_SYS_SC520_CDP_USE_SPI  /* Store configuration in the SPI part */
+#undef CONFIG_SYS_SC520_CDP_USE_MW    /* Store configuration in the MicroWire part */
 #define CONFIG_SPI_X 1
 
 /*
include/configs/sc520_spunk.h +3 -3
index 50af732..11a69f5 100644
@@ -34,7 +34,7 @@
  */
 
 #define CONFIG_X86		1	/* This is a X86 CPU		*/
-#define CONFIG_SC520		1	/* Include support for AMD SC520 */
+#define CONFIG_SYS_SC520	1	/* Include support for AMD SC520 */
 
 #define CONFIG_SYS_SDRAM_PRECHARGE_DELAY 6     /* 6T */
 #define CONFIG_SYS_SDRAM_REFRESH_RATE    78    /* 7.8uS (choices are 7.8, 15.6, 31.2 or 62.5uS) */
@@ -45,8 +45,8 @@
 #define CONFIG_SYS_SDRAM_CAS_LATENCY_3T
 
 #define CONFIG_SYS_SC520_HIGH_SPEED    0       /* 100 or 133MHz */
-#undef  CONFIG_SYS_RESET_SC520                 /* use SC520 MMCR's to reset cpu */
-#undef  CONFIG_SYS_TIMER_SC520                 /* use SC520 swtimers */
+#undef  CONFIG_SYS_SC520_RESET                 /* use SC520 MMCR's to reset cpu */
+#undef  CONFIG_SYS_SC520_TIMER                 /* use SC520 swtimers */
 #define CONFIG_SYS_TIMER_GENERIC       1       /* use the i8254 PIT timers */
 #undef  CONFIG_SYS_TIMER_TSC                   /* use the Pentium TSC timers */
 

--
1.5.4.3

#11 lore raw

PATCH 11/15 Removed #ifdef CONFIG_SYS_SC520

Handled by conditional compile

---
 cpu/i386/sc520/sc520_asm.S |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)
cpu/i386/sc520/sc520_asm.S +0 -3
index 481a30a..2042d9b 100644
@@ -105,7 +105,6 @@
  */
 
 #include <config.h>
-#ifdef CONFIG_SYS_SC520
 
 .section .text
 .equ            DRCCTL,     0x0fffef010   /* DRAM control register */
@@ -580,5 +579,3 @@ set_ecc:
 out:
 	movl	%ebx, %eax
 	jmp	*%ebp
-
-#endif /* CONFIG_SYS_SC520 */

--
1.5.4.3

#12 lore raw

PATCH 12/15 Fixed CONFIG_SYS_SC520_RESET for eNET board

Forgotten in commit d1f2d102a266804a50ff0cd9794459791f057c94

---
 include/configs/eNET.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
include/configs/eNET.h +1 -1
index 7d4e21f..16dfb3f 100644
@@ -143,7 +143,7 @@
  */
 #define CONFIG_SYS_SC520_HIGH_SPEED	0	/* 100 or 133MHz */
 #undef  CONFIG_SYS_SC520_RESET			/* use SC520 MMCR's to reset cpu */
-#define CONFIG_SYS_TIMER_SC520			/* use SC520 swtimers */
+#define CONFIG_SYS_SC520_TIMER			/* use SC520 swtimers */
 #undef  CONFIG_SYS_TIMER_GENERIC		/* use the i8254 PIT timers */
 #undef  CONFIG_SYS_TIMER_TSC			/* use the Pentium TSC timers */
 #define CONFIG_SYS_USE_SIO_UART		0       /* prefer the uarts on the SIO to those

--
1.5.4.3

#13 lore raw

PATCH 13/15 Moved ali512x.h from include/asm-i386/ic/ to /include

---
 board/sc520_cdp/sc520_cdp.c         |    2 +-
 drivers/misc/ali512x.c              |    2 +-
 include/{asm-i386/ic => }/ali512x.h |    0
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename include/{asm-i386/ic => }/ali512x.h (100%)
board/sc520_cdp/sc520_cdp.c +1 -1
index 1ddce7e..830ec37 100644
@@ -27,7 +27,7 @@
 #include <asm/io.h>
 #include <asm/pci.h>
 #include <asm/ic/sc520.h>
-#include <asm/ic/ali512x.h>
+#include <ali512x.h>
 #include <spi.h>
 #include <netdev.h>
 
drivers/misc/ali512x.c +1 -1
index d6a2c1f..cda3b0d 100644
@@ -34,7 +34,7 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <asm/ic/ali512x.h>
+#include <ali512x.h>
 
 
 /* ALI M5123 Logical device numbers:
include/ali512x.h renamed from include/asm-i386/ic/ali512x.h +0 -0
similarity index 100%
rename from include/asm-i386/ic/ali512x.h
rename to include/ali512x.h

--
1.5.4.3

#14 lore raw

PATCH 14/15 Added MMCR initialisation to real mode eNET board initialisation

Allows for earlier access to status LEDs

---
 board/eNET/eNET_start16.S |   70 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)
board/eNET/eNET_start16.S +70 -0
index 48e4d83..e16ca83 100644
@@ -60,6 +60,76 @@ board_init16:
 	xorw    %ax, %ax
 	movb    %al, (%di)
 
+	/* GP Chip Select Recovery Time */
+	movl    $0x0c08, %edi
+	movb	$0x01, %al
+	movb	%al, (%di)
+
+	/* GP Chip Select Pulse Width */
+	movl    $0x0c09, %edi
+	movb	$0x07, %al
+	movb	%al, (%di)
+
+	/* GP Chip Select Offset */
+	movl    $0x0c0a, %edi
+	movb	$0x00, %al
+	movb	%al, (%di)
+
+	/* GP Read pulse width */
+	movl    $0x0c0b, %edi
+	movb	$0x05, %al
+	movb	%al, (%di)
+
+	/* GP Read offset */
+	movl    $0x0c0c, %edi
+	movb	$0x01, %al
+	movb	%al, (%di)
+
+	/* GP Write pulse width */
+	movl    $0x0c0d, %edi
+	movb	$0x05, %al
+	movb	%al, (%di)
+
+	/* GP Write offset */
+	movl    $0x0c0e, %edi
+	movb	$0x01, %al
+	movb	%al, (%di)
+
+	/* PIO15_PIO0 Data */
+	movl    $0x0c30, %edi
+	movw	$0x0630, %ax
+	movw	%ax, (%di)
+
+	/* PIO31_PIO16 Data */
+	movl    $0x0c32, %edi
+	movw	$0x2000, %ax
+	movw	%ax, (%di)
+
+	/* GPIO directionreg */
+	movl    $0x0c2c, %edi
+	movw	$0x2000, %ax
+	movw	%ax, (%di)
+
+	/* GPIO directionreg */
+	movl    $0x0c2a, %edi
+	movw	$0x0dfe, %ax
+	movw	%ax, (%di)
+
+	/* GPIO pin function 31-16 reg */
+	movl    $0x0c22, %edi
+	movw	$0x87b5, %ax
+	movw	%ax, (%di)
+
+	/* GPIO pin function 15-0 reg */
+	movl    $0x0c20, %edi
+	movw	$0x200a, %ax
+	movw	%ax, (%di)
+
+	/* Chip Select Pin Function Select */
+	movl    $0x0c24, %edi
+	movb	$0xf8, %al
+	movb	%al, (%di)
+
 	/* Disabe MMCR alias */
 	movw	$0xfffc, %dx
 	movl	$0x000000cb, %eax

--
1.5.4.3

#15 lore raw

PATCH 15/15 Seperated exception handling functionality out of interrupts.c

Core functionality common to interrupt and exception handling (the IDT for example) has been moved into cpu.c

---
Future rework on the i386 branch will include support for the SC520 interrupt controller which can handle up to 22 interrupt lines - Seperating out exception handling now will make life a lot easier later on

---
 cpu/i386/Makefile              |    2 +-
 cpu/i386/cpu.c                 |   44 +++++++++
 cpu/i386/exceptions.c          |  205 +++++++++++++++++++++++++++++++++++++++
 cpu/i386/interrupts.c          |  209 ----------------------------------------
 include/asm-i386/u-boot-i386.h |    3 +
 lib_i386/board.c               |    3 +-
 6 files changed, 255 insertions(+), 211 deletions(-)
 create mode 100644 cpu/i386/exceptions.c
cpu/i386/Makefile +1 -1
index 761c4f6..f72cd6e 100644
@@ -29,7 +29,7 @@ include $(TOPDIR)/config.mk
 LIB	= $(obj)lib$(CPU).a
 
 START	= start.o start16.o resetvec.o
-COBJS	= serial.o interrupts.o cpu.o timer.o
+COBJS	= serial.o interrupts.o exceptions.o cpu.o timer.o
 
 SRCS	:= $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
cpu/i386/cpu.c +44 -0

61 lines not on this page · raw message

cpu/i386/exceptions.c new file +205 -0

205 lines not on this page · raw message

cpu/i386/interrupts.c +0 -209

251 lines not on this page · raw message

include/asm-i386/u-boot-i386.h +3 -0
index 12d10a7..8d079ae 100644
@@ -45,6 +45,9 @@ extern ulong i386boot_bios_size;    /* size of BIOS emulation code */
 int cpu_init(void);
 int timer_init(void);
 
+/* cpu/.../exceptions.c */
+int exception_init(void);
+
 /* board/.../... */
 int board_init(void);
 int dram_init(void);
lib_i386/board.c +2 -1
index 659f9a2..ee7d794 100644
@@ -201,7 +201,8 @@ init_fnc_t *init_sequence[] = {
 	board_init,		/* basic board dependent setup */
 	dram_init,		/* configure available RAM banks */
 	mem_malloc_init,        /* dependant on dram_init */
-	interrupt_init,		/* set up exceptions */
+	interrupt_init,		/* set up interrupts */
+	exception_init,		/* set up exceptions */
 	timer_init,
 	serial_init,
 	env_init,		/* initialize environment */

--
1.5.4.3

#17 lore raw

PATCH 12/15 Fixed CONFIG_SYS_SC520_RESET for eNET board

Quoted 12 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 6 lines · Graeme Russ

Forgotten in commit d1f2d102a266804a50ff0cd9794459791f057c94

---
 include/configs/eNET.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

please do this at the sametime you rename the macro

Best Regards,
J.

What is the easiest (or best) way of achieving this. The only way I can think of is to:
- Roll back my history to the commit before d1f2d102a
- Use patch to apply d1f2d102a
- Add this change
- Commit the resulting changes
- Use git-am to apply the remaining patches

Is this the correct way of doing it?

Sorry, but I'm still getting used to git

Regards,

Graeme

#18 lore raw

PATCH 12/15 Fixed CONFIG_SYS_SC520_RESET for eNET board

Quoted 22 lines · Graeme Russ
Quoted 12 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 6 lines · Graeme Russ

Forgotten in commit d1f2d102a266804a50ff0cd9794459791f057c94

---
 include/configs/eNET.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

please do this at the sametime you rename the macro

Best Regards,
J.

What is the easiest (or best) way of achieving this. The only way I can think of is to:
- Roll back my history to the commit before d1f2d102a
- Use patch to apply d1f2d102a
- Add this change
- Commit the resulting changes
- Use git-am to apply the remaining patches

Quoted 2 lines

Is this the correct way of doing it?

You have better tools for this as stgit or quilt

Best Regards,
J.

#19 lore raw

PATCH 12/15 Fixed CONFIG_SYS_SC520_RESET for eNET board

In reply to Graeme Russ

Hi Graeme,

Quoted 9 lines

What is the easiest (or best) way of achieving this. The only way I can think of is to:
- Roll back my history to the commit before d1f2d102a
- Use patch to apply d1f2d102a
- Add this change
- Commit the resulting changes
- Use git-am to apply the remaining patches

Is this the correct way of doing it?

The steps you mention should work, but can be a bit time-consuming. git rebase --interactive should do what you want - its useful for combining/splitting/re-ordering previous commits.

http://www.andrewmoore.com/public/index.php/My_git_workflow is a nice reference.

Best,
Peter

#21 lore raw

PATCH 10/15 Renamed SC520 configuration options

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 12 lines · In message <[email protected]> you wrote:

Options are now all uniformly CONFIG_SYS_SC520_<option>

---
 board/sc520_cdp/sc520_cdp.c   |   16 ++++++++--------
 cpu/i386/sc520/Makefile       |    4 ++--
 cpu/i386/sc520/sc520.c        |    6 +++---
 cpu/i386/sc520/sc520_asm.S    |    4 ++--
 include/configs/eNET.h        |    6 +++---
 include/configs/sc520_cdp.h   |   10 +++++-----
 include/configs/sc520_spunk.h |    6 +++---
 7 files changed, 26 insertions(+), 26 deletions(-)

Here your patch series finally broke down:

-> git-am -3 -i -u --whitespace=strip ~/Mail/U-Boot/5146 Commit Body is:
--------------------------
Renamed SC520 configuration options

Options are now all uniformly CONFIG_SYS_SC520_<option>

--------------------------
Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all y
Applying: Renamed SC520 configuration options
error: cpu/i386/sc520/Makefile: does not exist in index
error: cpu/i386/sc520/sc520.c: does not exist in index
error: cpu/i386/sc520/sc520_asm.S: does not exist in index
fatal: sha1 information is lacking or useless (cpu/i386/sc520/Makefile). Repository lacks necessary blobs to fall back on 3-way merge. Cannot fall back to three-way merge.
Patch failed at 0001.
When you have resolved this problem run "git am -i -3 --resolved". If you would prefer to skip this patch, instead run "git am -i -3 --skip". To restore the original branch and stop patching run "git am -i -3 --abort".

Please check the current code as is in mainline now, and repost cleaned up patches starting with the current one, i. e. [PATCH 10/15] and higher.

Thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
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
The only time the world beats a path to your door is when you are  in
the bathroom.
#22 lore raw

PATCH 10/15 Renamed SC520 configuration options

Quoted 7 lines · Wolfgang Denk

Dear Graeme Russ,

Quoted 4 lines · In message <[email protected]> you wrote:

Options are now all uniformly CONFIG_SYS_SC520_<option>

---

[snip]

Quoted 5 lines

Please check the current code as is in mainline now, and repost cleaned up patches starting with the current one, i. e. [PATCH 10/15] and higher.

Thanks Wolfgang - I was actually preparing a brand new patch-set based on Jean-Christophe's comments which was nearly complete - I should have sent through a quick message to the list

Oh well - I'll check out the latest mainline and tidy up the loose ends and send through a new patch-set

Regards,

Graeme

#23 lore raw

PATCH 9/15 Removed all references to CONFIG_SYS_RESET_GENERIC

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 8 lines · In message <[email protected]> you wrote:

Generic i386 reset - #define made redundant by weak function

---
 include/configs/eNET.h        |    1 -
 include/configs/sc520_cdp.h   |    1 -
 include/configs/sc520_spunk.h |    1 -
 3 files changed, 0 insertions(+), 3 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 4 lines
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
Brain: an apparatus with which we think we think.    - Ambrose Bierce
#25 lore raw

PATCH 8/15 Remove #ifdef CONFIG_SC520 in source code

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 6 lines · In message <[email protected]> you wrote:

CONFIG_SC520 is now used for conditional compile

---
 cpu/i386/sc520/sc520.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 4 lines
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
Machines take me by surprise with great frequency.      - Alan Turing
#26 lore raw

PATCH 6/15 Moved generic (triple fault) reset code

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 9 lines · In message <[email protected]> you wrote:

Moved from interrupts.c to cpu.c and made into a weak function to allow vendor specific override

---
Vendor specific CPU reset (like the AMD SC520 MMCR reset) can now be added to the vendor specific code without the need to remember to #undef usage of the generic method and if you forget to include your custom reset method, you will always get the default

Quoted 4 lines
---
 cpu/i386/cpu.c        |   17 +++++++++++++++++
 cpu/i386/interrupts.c |   16 ----------------
 2 files changed, 17 insertions(+), 16 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
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 a program be but three lines long,
someday it will have to be maintained."
- The Tao of Programming
#27 lore raw

PATCH 5/15 Moved definition of set_vector() to new header file

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 9 lines · In message <[email protected]> you wrote:

---
This allows for future tidy ups and functionality that will require set_vector ()

---
 cpu/i386/interrupts.c        |    3 ++-
 include/asm-i386/interrupt.h |   29 +++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletions(-)
 create mode 100644 include/asm-i386/interrupt.h

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 4 lines
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
Computers are not intelligent.  They only think they are.
#28 lore raw

PATCH 4/15 Moved sc520 specific code into new cpu/i386/sc520 folder

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 13 lines · In message <[email protected]> you wrote:

--===============0789679670==

---
 Makefile                         |    8 +++---
 cpu/i386/Makefile                |    3 +-
 cpu/i386/sc520/Makefile          |   52 ++++++++++++++++++++++++++++++++++++++
 cpu/i386/{ => sc520}/sc520.c     |    0
 cpu/i386/{ => sc520}/sc520_asm.S |    0
 5 files changed, 57 insertions(+), 6 deletions(-)
 create mode 100644 cpu/i386/sc520/Makefile
 rename cpu/i386/{ => sc520}/sc520.c (100%)
 rename cpu/i386/{ => sc520}/sc520_asm.S (100%)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
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
"'Tis true, 'tis pity, and pity 'tis 'tis true."
    - Poloniouius, in Willie the Shake's _Hamlet, Prince of Darkness_
#30 lore raw

PATCH 3/15 Updated eNET link script for reset -> resetvec section rename

Dear Jean-Christophe PLAGNIOL-VILLARD,

Quoted 8 lines · In message <[email protected]> you wrote:
Quoted 4 lines · Graeme Russ
---
 board/eNET/u-boot.lds |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

This need to be done at the same time as the rename to avoid git-bisect error as example and keep a clean history.

You are right. I merged the two patches into one.

Best regards,

Wolfgang Denk

Signature · 6 lines
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 you say "I wrote a program that crashed  Windows",  people  just
stare  at you blankly and say "Hey, I got those with the system, *for
free*".        - Linus Torvalds in <[email protected]>
#31 lore raw

PATCH 3/15 Updated eNET link script for reset -> resetvec section rename

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 4 lines · In message <[email protected]> you wrote:
---
 board/eNET/u-boot.lds |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Applied (squashed into previous commit).

Best regards,

Wolfgang Denk

Signature · 5 lines
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
Any sufficiently advanced bug is indistinguishable from a feature.
                                                      - Rich Kulawiec
#32 lore raw

PATCH 2/15 Renamed cpu/i386/reset.S to resetvec.S

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 6 lines · In message <[email protected]> you wrote:

--===============0593892280==

Brings i386 in line with other CPUs with a reset vector and frees up reset.c for CPU reset functions

Quoted 10 lines
---
 Makefile                     |    2 +-
 board/sc520_cdp/u-boot.lds   |    6 +++---
 board/sc520_spunk/u-boot.lds |    6 +++---
 cpu/i386/Makefile            |    2 +-
 cpu/i386/reset.S             |   37 -------------------------------------
 cpu/i386/resetvec.S          |   37 +++++++++++++++++++++++++++++++++++++
 6 files changed, 45 insertions(+), 45 deletions(-)
 delete mode 100644 cpu/i386/reset.S
 create mode 100644 cpu/i386/resetvec.S

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 7 lines
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
: 1.  What is the possibility of this being added in the future?
In the near future, the probability is close to zero. In the  distant
future, I'll be dead, and posterity can do whatever they like... :-)
                                                              - lwall
#33 lore raw

PATCH 1/15 Added initial eNET board support

In reply to Graeme Russ

Dear Graeme Russ,

Quoted 15 lines · In message <[email protected]> you wrote:

--===============1515044148==

---
 MAKEALL                   |    1 +
 Makefile                  |    3 +
 board/eNET/Makefile       |   57 ++++++++++
 board/eNET/config.mk      |   24 +++++
 board/eNET/eNET.c         |  167 ++++++++++++++++++++++++++++++
 board/eNET/eNET_start.S   |   50 +++++++++
 board/eNET/eNET_start16.S |   90 ++++++++++++++++
 board/eNET/hardware.h     |   35 +++++++
 board/eNET/u-boot.lds     |   90 ++++++++++++++++
 include/configs/eNET.h    |  249 +++++++++++++++++++++++++++++++++++++++++++++
 10 files changed, 766 insertions(+), 0 deletions(-)
Quoted 8 lines
 create mode 100644 board/eNET/Makefile
 create mode 100644 board/eNET/config.mk
 create mode 100644 board/eNET/eNET.c
 create mode 100644 board/eNET/eNET_start.S
 create mode 100644 board/eNET/eNET_start16.S
 create mode 100644 board/eNET/hardware.h
 create mode 100644 board/eNET/u-boot.lds
 create mode 100644 include/configs/eNET.h

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
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
It usually takes more than three weeks to prepare  a  good  impromptu
speech.                                                  - Mark Twain