mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-14 22:23:56 +09:00
Merge branch 'master' of git://git.denx.de/u-boot-x86
This commit is contained in:
commit
107b56bdd8
@ -905,9 +905,9 @@ Unknown / orphaned boards:
|
|||||||
# Board CPU #
|
# Board CPU #
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
Daniel Engström <daniel@omicron.se>
|
Graeme Russ <graeme.russ@gmail.com>
|
||||||
|
|
||||||
sc520_cdp x86
|
eNET AMD SC520
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# MIPS Systems: #
|
# MIPS Systems: #
|
||||||
|
4
MAKEALL
4
MAKEALL
@ -544,10 +544,10 @@ LIST_mips_el=" \
|
|||||||
"
|
"
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
## i386 Systems
|
## x86 Systems
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
LIST_x86="$(boards_by_arch i386)"
|
LIST_x86="$(boards_by_arch x86)"
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
## Nios-II Systems
|
## Nios-II Systems
|
||||||
|
4
Makefile
4
Makefile
@ -34,7 +34,7 @@ TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
|
|||||||
VERSION_FILE = $(obj)include/version_autogenerated.h
|
VERSION_FILE = $(obj)include/version_autogenerated.h
|
||||||
|
|
||||||
HOSTARCH := $(shell uname -m | \
|
HOSTARCH := $(shell uname -m | \
|
||||||
sed -e s/i.86/i386/ \
|
sed -e s/i.86/x86/ \
|
||||||
-e s/sun4u/sparc64/ \
|
-e s/sun4u/sparc64/ \
|
||||||
-e s/arm.*/arm/ \
|
-e s/arm.*/arm/ \
|
||||||
-e s/sa110/arm/ \
|
-e s/sa110/arm/ \
|
||||||
@ -167,7 +167,7 @@ include $(TOPDIR)/config.mk
|
|||||||
# U-Boot objects....order is important (i.e. start must be first)
|
# U-Boot objects....order is important (i.e. start must be first)
|
||||||
|
|
||||||
OBJS = $(CPUDIR)/start.o
|
OBJS = $(CPUDIR)/start.o
|
||||||
ifeq ($(CPU),i386)
|
ifeq ($(CPU),x86)
|
||||||
OBJS += $(CPUDIR)/start16.o
|
OBJS += $(CPUDIR)/start16.o
|
||||||
OBJS += $(CPUDIR)/resetvec.o
|
OBJS += $(CPUDIR)/resetvec.o
|
||||||
endif
|
endif
|
||||||
|
2
README
2
README
@ -164,7 +164,7 @@ Directory Hierarchy:
|
|||||||
/blackfin Files generic to Analog Devices Blackfin architecture
|
/blackfin Files generic to Analog Devices Blackfin architecture
|
||||||
/cpu CPU specific files
|
/cpu CPU specific files
|
||||||
/lib Architecture specific library files
|
/lib Architecture specific library files
|
||||||
/i386 Files generic to i386 architecture
|
/x86 Files generic to x86 architecture
|
||||||
/cpu CPU specific files
|
/cpu CPU specific files
|
||||||
/lib Architecture specific library files
|
/lib Architecture specific library files
|
||||||
/m68k Files generic to m68k architecture
|
/m68k Files generic to m68k architecture
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
CROSS_COMPILE ?= i386-linux-
|
CROSS_COMPILE ?= i386-linux-
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += -DCONFIG_I386 -D__I386__ -march=i386 -Werror
|
PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror
|
||||||
|
|
||||||
# DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
|
# DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
|
||||||
LDPPFLAGS += -DRESET_SEG_START=0xffff0000
|
LDPPFLAGS += -DRESET_SEG_START=0xffff0000
|
@ -1,6 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
@ -29,18 +32,16 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* CPU specific code
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/processor-flags.h>
|
#include <asm/processor-flags.h>
|
||||||
#include <asm/interrupt.h>
|
#include <asm/interrupt.h>
|
||||||
|
|
||||||
/* Constructor for a conventional segment GDT (or LDT) entry */
|
/*
|
||||||
/* This is a macro so it can be used in initializers */
|
* Constructor for a conventional segment GDT (or LDT) entry
|
||||||
|
* This is a macro so it can be used in initialisers
|
||||||
|
*/
|
||||||
#define GDT_ENTRY(flags, base, limit) \
|
#define GDT_ENTRY(flags, base, limit) \
|
||||||
((((base) & 0xff000000ULL) << (56-24)) | \
|
((((base) & 0xff000000ULL) << (56-24)) | \
|
||||||
(((flags) & 0x0000f0ffULL) << 40) | \
|
(((flags) & 0x0000f0ffULL) << 40) | \
|
||||||
@ -48,10 +49,6 @@
|
|||||||
(((base) & 0x00ffffffULL) << 16) | \
|
(((base) & 0x00ffffffULL) << 16) | \
|
||||||
(((limit) & 0x0000ffffULL)))
|
(((limit) & 0x0000ffffULL)))
|
||||||
|
|
||||||
/*
|
|
||||||
* Set up the GDT
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct gdt_ptr {
|
struct gdt_ptr {
|
||||||
u16 len;
|
u16 len;
|
||||||
u32 ptr;
|
u32 ptr;
|
||||||
@ -59,8 +56,10 @@ struct gdt_ptr {
|
|||||||
|
|
||||||
static void reload_gdt(void)
|
static void reload_gdt(void)
|
||||||
{
|
{
|
||||||
/* There are machines which are known to not boot with the GDT
|
/*
|
||||||
being 8-byte unaligned. Intel recommends 16 byte alignment. */
|
* There are machines which are known to not boot with the GDT
|
||||||
|
* being 8-byte unaligned. Intel recommends 16 byte alignment
|
||||||
|
*/
|
||||||
static const u64 boot_gdt[] __attribute__((aligned(16))) = {
|
static const u64 boot_gdt[] __attribute__((aligned(16))) = {
|
||||||
/* CS: code, read/execute, 4 GB, base 0 */
|
/* CS: code, read/execute, 4 GB, base 0 */
|
||||||
[GDT_ENTRY_32BIT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff),
|
[GDT_ENTRY_32BIT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff),
|
||||||
@ -86,7 +85,6 @@ static void reload_gdt(void)
|
|||||||
: : "m" (gdt) : "ecx");
|
: : "m" (gdt) : "ecx");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int x86_cpu_init_f(void)
|
int x86_cpu_init_f(void)
|
||||||
{
|
{
|
||||||
const u32 em_rst = ~X86_CR0_EM;
|
const u32 em_rst = ~X86_CR0_EM;
|
||||||
@ -125,7 +123,9 @@ int cpu_init_r(void) __attribute__((weak, alias("x86_cpu_init_r")));
|
|||||||
int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
printf ("resetting ...\n");
|
printf ("resetting ...\n");
|
||||||
udelay(50000); /* wait 50 ms */
|
|
||||||
|
/* wait 50 ms */
|
||||||
|
udelay(50000);
|
||||||
disable_interrupts();
|
disable_interrupts();
|
||||||
reset_cpu(0);
|
reset_cpu(0);
|
||||||
|
|
||||||
@ -136,7 +136,6 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
void flush_cache (unsigned long dummy1, unsigned long dummy2)
|
void flush_cache (unsigned long dummy1, unsigned long dummy2)
|
||||||
{
|
{
|
||||||
asm("wbinvd\n");
|
asm("wbinvd\n");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __attribute__ ((regparm(0))) generate_gpf(void);
|
void __attribute__ ((regparm(0))) generate_gpf(void);
|
||||||
@ -150,7 +149,7 @@ asm(".globl generate_gpf\n"
|
|||||||
|
|
||||||
void __reset_cpu(ulong addr)
|
void __reset_cpu(ulong addr)
|
||||||
{
|
{
|
||||||
printf("Resetting using i386 Triple Fault\n");
|
printf("Resetting using x86 Triple Fault\n");
|
||||||
set_vector(13, generate_gpf); /* general protection fault handler */
|
set_vector(13, generate_gpf); /* general protection fault handler */
|
||||||
set_vector(8, generate_gpf); /* double fault handler */
|
set_vector(8, generate_gpf); /* double fault handler */
|
||||||
generate_gpf(); /* start the show */
|
generate_gpf(); /* start the show */
|
@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2008
|
* (C) Copyright 2008-2011
|
||||||
* Graeme Russ, graeme.russ@gmail.com.
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* Portions of this file are derived from the Linux kernel source
|
* Portions of this file are derived from the Linux kernel source
|
||||||
* Copyright (C) 1991, 1992 Linus Torvalds
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
@ -45,7 +45,7 @@
|
|||||||
* read/write functions for the control registers and messing everything up.
|
* read/write functions for the control registers and messing everything up.
|
||||||
* A memory clobber would solve the problem, but would prevent reordering of
|
* A memory clobber would solve the problem, but would prevent reordering of
|
||||||
* all loads stores around it, which can hurt performance. Solution is to
|
* all loads stores around it, which can hurt performance. Solution is to
|
||||||
* use a variable and mimic reads and writes to it to enforce serialization
|
* use a variable and mimic reads and writes to it to enforce serialisation
|
||||||
*/
|
*/
|
||||||
static unsigned long __force_order;
|
static unsigned long __force_order;
|
||||||
|
|
@ -1,7 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* U-boot - i386 Startup Code
|
* U-boot - x86 Startup Code
|
||||||
*
|
*
|
||||||
* Copyright (c) 2002 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
|
* (C) Copyright 2002
|
||||||
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -33,6 +33,7 @@ LIB := $(obj)lib$(SOC).o
|
|||||||
|
|
||||||
COBJS-$(CONFIG_SYS_SC520) += sc520.o
|
COBJS-$(CONFIG_SYS_SC520) += sc520.o
|
||||||
COBJS-$(CONFIG_PCI) += sc520_pci.o
|
COBJS-$(CONFIG_PCI) += sc520_pci.o
|
||||||
|
COBJS-$(CONFIG_SYS_SC520_RESET) += sc520_reset.o
|
||||||
COBJS-$(CONFIG_SYS_SC520) += sc520_sdram.o
|
COBJS-$(CONFIG_SYS_SC520) += sc520_sdram.o
|
||||||
COBJS-$(CONFIG_SYS_SC520_SSI) += sc520_ssi.o
|
COBJS-$(CONFIG_SYS_SC520_SSI) += sc520_ssi.o
|
||||||
COBJS-$(CONFIG_SYS_SC520_TIMER) += sc520_timer.o
|
COBJS-$(CONFIG_SYS_SC520_TIMER) += sc520_timer.o
|
@ -1,6 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engstr<EFBFBD>m, Omicron Ceti AB <daniel@omicron.se>.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,9 +24,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* stuff specific for the sc520,
|
|
||||||
* but idependent of implementation */
|
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/processor-flags.h>
|
#include <asm/processor-flags.h>
|
||||||
@ -65,13 +65,3 @@ int cpu_init_r(void)
|
|||||||
return x86_cpu_init_r();
|
return x86_cpu_init_r();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_SC520_RESET
|
|
||||||
void reset_cpu(ulong addr)
|
|
||||||
{
|
|
||||||
printf("Resetting using SC520 MMCR\n");
|
|
||||||
/* Write a '1' to the SYS_RST of the RESCFG MMCR */
|
|
||||||
writeb(0x01, &sc520_mmcr->rescfg);
|
|
||||||
|
|
||||||
/* NOTREACHED */
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2010
|
* (C) Copyright 2010-2011
|
||||||
* Graeme Russ <graeme.russ@gmail.com>.
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,7 +21,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <asm/processor-flags.h>
|
#include <asm/processor-flags.h>
|
||||||
#include <asm/ic/sc520.h>
|
#include <asm/ic/sc520.h>
|
@ -1,6 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,8 +24,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* stuff specific for the sc520, but independent of implementation */
|
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <pci.h>
|
#include <pci.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
@ -54,7 +55,6 @@ static struct {
|
|||||||
{ SC520_IRQ15, 1, 0x80 }
|
{ SC520_IRQ15, 1, 0x80 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* The interrupt used for PCI INTA-INTD */
|
/* The interrupt used for PCI INTA-INTD */
|
||||||
int sc520_pci_ints[15] = {
|
int sc520_pci_ints[15] = {
|
||||||
-1, -1, -1, -1, -1, -1, -1, -1,
|
-1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
@ -68,9 +68,8 @@ int pci_sc520_set_irq(int pci_pin, int irq)
|
|||||||
u8 tmpb;
|
u8 tmpb;
|
||||||
u16 tmpw;
|
u16 tmpw;
|
||||||
|
|
||||||
# if 1
|
debug("set_irq(): map INT%c to IRQ%d\n", pci_pin + 'A', irq);
|
||||||
printf("set_irq(): map INT%c to IRQ%d\n", pci_pin + 'A', irq);
|
|
||||||
#endif
|
|
||||||
if (irq < 0 || irq > 15) {
|
if (irq < 0 || irq > 15) {
|
||||||
return -1; /* illegal irq */
|
return -1; /* illegal irq */
|
||||||
}
|
}
|
||||||
@ -138,5 +137,4 @@ void pci_sc520_init(struct pci_controller *hose)
|
|||||||
/* enable target memory acceses on host brige */
|
/* enable target memory acceses on host brige */
|
||||||
pci_write_config_word(0, PCI_COMMAND,
|
pci_write_config_word(0, PCI_COMMAND,
|
||||||
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
||||||
|
|
||||||
}
|
}
|
40
arch/x86/cpu/sc520/sc520_reset.c
Normal file
40
arch/x86/cpu/sc520/sc520_reset.c
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* (C) Copyright 2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Daniel Engström, Omicron Ceti AB, <daniel@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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <asm/ic/sc520.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
void reset_cpu(ulong addr)
|
||||||
|
{
|
||||||
|
printf("Resetting using SC520 MMCR\n");
|
||||||
|
/* Write a '1' to the SYS_RST of the RESCFG MMCR */
|
||||||
|
writeb(0x01, &sc520_mmcr->rescfg);
|
||||||
|
|
||||||
|
/* NOTREACHED */
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2010
|
* (C) Copyright 2010,2011
|
||||||
* Graeme Russ <graeme.russ@gmail.com>.
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,8 +21,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* stuff specific for the sc520, but independent of implementation */
|
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/ic/ssi.h>
|
#include <asm/ic/ssi.h>
|
||||||
@ -77,7 +75,6 @@ u8 ssi_txrx_byte(u8 data)
|
|||||||
return readb(&sc520_mmcr->ssircv);
|
return readb(&sc520_mmcr->ssircv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ssi_tx_byte(u8 data)
|
void ssi_tx_byte(u8 data)
|
||||||
{
|
{
|
||||||
writeb(data, &sc520_mmcr->ssixmit);
|
writeb(data, &sc520_mmcr->ssixmit);
|
@ -1,6 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,8 +24,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* stuff specific for the sc520, but independent of implementation */
|
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/interrupt.h>
|
#include <asm/interrupt.h>
|
@ -1,7 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* U-boot - i386 Startup Code
|
* U-boot - x86 Startup Code
|
||||||
*
|
*
|
||||||
* Copyright (c) 2002 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -22,19 +26,17 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <version.h>
|
#include <version.h>
|
||||||
#include <asm/global_data.h>
|
#include <asm/global_data.h>
|
||||||
#include <asm/processor-flags.h>
|
#include <asm/processor-flags.h>
|
||||||
|
|
||||||
|
|
||||||
.section .text
|
.section .text
|
||||||
.code32
|
.code32
|
||||||
.globl _start
|
.globl _start
|
||||||
.type _start, @function
|
.type _start, @function
|
||||||
.globl _i386boot_start
|
.globl _x86boot_start
|
||||||
_i386boot_start:
|
_x86boot_start:
|
||||||
/*
|
/*
|
||||||
* This is the fail safe 32-bit bootstrap entry point. The
|
* This is the fail safe 32-bit bootstrap entry point. The
|
||||||
* following code is not executed from a cold-reset (actually, a
|
* following code is not executed from a cold-reset (actually, a
|
||||||
@ -56,8 +58,8 @@ _i386boot_start:
|
|||||||
_start:
|
_start:
|
||||||
/* This is the 32-bit cold-reset entry point */
|
/* This is the 32-bit cold-reset entry point */
|
||||||
|
|
||||||
movl $0x18, %eax /* Load our segement registes, the
|
/* Load the segement registes to match the gdt loaded in start16.S */
|
||||||
* gdt have already been loaded by start16.S */
|
movl $0x18, %eax
|
||||||
movw %ax, %fs
|
movw %ax, %fs
|
||||||
movw %ax, %ds
|
movw %ax, %ds
|
||||||
movw %ax, %gs
|
movw %ax, %gs
|
||||||
@ -82,21 +84,13 @@ car_init_ret:
|
|||||||
* starting at CONFIG_SYS_CAR_ADDR to be used as a temporary stack
|
* starting at CONFIG_SYS_CAR_ADDR to be used as a temporary stack
|
||||||
*/
|
*/
|
||||||
movl $CONFIG_SYS_INIT_SP_ADDR, %esp
|
movl $CONFIG_SYS_INIT_SP_ADDR, %esp
|
||||||
movl $CONFIG_SYS_INIT_GD_ADDR, %ebp
|
|
||||||
|
|
||||||
/* Set Boot Flags in Global Data */
|
|
||||||
movl %ebx, (GD_FLAGS * 4)(%ebp)
|
|
||||||
|
|
||||||
/* Determine our load offset (and put in Global Data) */
|
|
||||||
call 1f
|
|
||||||
1: popl %ecx
|
|
||||||
subl $1b, %ecx
|
|
||||||
movl %ecx, (GD_LOAD_OFF * 4)(%ebp)
|
|
||||||
|
|
||||||
/* Set parameter to board_init_f() to boot flags */
|
/* Set parameter to board_init_f() to boot flags */
|
||||||
movl (GD_FLAGS * 4)(%ebp), %eax
|
xorl %eax, %eax
|
||||||
|
movw %bx, %ax
|
||||||
|
|
||||||
call board_init_f /* Enter, U-boot! */
|
/* Enter, U-boot! */
|
||||||
|
call board_init_f
|
||||||
|
|
||||||
/* indicate (lack of) progress */
|
/* indicate (lack of) progress */
|
||||||
movw $0x85, %ax
|
movw $0x85, %ax
|
@ -1,7 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* U-boot - i386 Startup Code
|
* U-boot - x86 Startup Code
|
||||||
*
|
*
|
||||||
* Copyright (c) 2002, 2003 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
|
* (C) Copyright 2008-2011
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002,2003
|
||||||
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -21,6 +21,7 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
OUTPUT_ARCH(i386)
|
OUTPUT_ARCH(i386)
|
||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
@ -89,8 +90,8 @@ SECTIONS
|
|||||||
* Reset Vector at the end of the Flash ROM
|
* Reset Vector at the end of the Flash ROM
|
||||||
*/
|
*/
|
||||||
. = START_16;
|
. = START_16;
|
||||||
.start16 : AT (CONFIG_SYS_TEXT_BASE + (FLASH_SIZE - RESET_SEG_SIZE + START_16)) { KEEP(*(.start16)); }
|
.start16 : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + START_16)) { KEEP(*(.start16)); }
|
||||||
|
|
||||||
. = RESET_VEC_LOC;
|
. = RESET_VEC_LOC;
|
||||||
.resetvec : AT (CONFIG_SYS_TEXT_BASE + (FLASH_SIZE - RESET_SEG_SIZE + RESET_VEC_LOC)) { KEEP(*(.resetvec)); }
|
.resetvec : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + RESET_VEC_LOC)) { KEEP(*(.resetvec)); }
|
||||||
}
|
}
|
@ -29,10 +29,10 @@
|
|||||||
|
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
|
|
||||||
/* arch/i386/cpu/interrupts.c */
|
/* arch/x86/cpu/interrupts.c */
|
||||||
void set_vector(u8 intnum, void *routine);
|
void set_vector(u8 intnum, void *routine);
|
||||||
|
|
||||||
/* arch/i386/lib/interupts.c */
|
/* arch/x86/lib/interupts.c */
|
||||||
void disable_irq(int irq);
|
void disable_irq(int irq);
|
||||||
void enable_irq(int irq);
|
void enable_irq(int irq);
|
||||||
|
|
@ -35,7 +35,7 @@ void timer_isr(void *);
|
|||||||
typedef void (timer_fnc_t) (void);
|
typedef void (timer_fnc_t) (void);
|
||||||
int register_timer_isr (timer_fnc_t *isr_func);
|
int register_timer_isr (timer_fnc_t *isr_func);
|
||||||
|
|
||||||
/* Architecture specific - can be in arch/i386/cpu/, arch/i386/lib/, or $(BOARD)/ */
|
/* Architecture specific - can be in arch/x86/cpu/, arch/x86/lib/, or $(BOARD)/ */
|
||||||
int timer_init(void);
|
int timer_init(void);
|
||||||
int dram_init_f(void);
|
int dram_init_f(void);
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ void setup_pcat_compatibility(void);
|
|||||||
void isa_unmap_rom(u32 addr);
|
void isa_unmap_rom(u32 addr);
|
||||||
u32 isa_map_rom(u32 bus_addr, int size);
|
u32 isa_map_rom(u32 bus_addr, int size);
|
||||||
|
|
||||||
/* arch/i386/lib/... */
|
/* arch/x86/lib/... */
|
||||||
int video_bios_init(void);
|
int video_bios_init(void);
|
||||||
int video_init(void);
|
int video_init(void);
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -42,7 +42,6 @@
|
|||||||
* a general purpose replacement for a real BIOS !!
|
* a general purpose replacement for a real BIOS !!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
.section .bios, "ax"
|
.section .bios, "ax"
|
||||||
.code16
|
.code16
|
||||||
.org 0
|
.org 0
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -57,7 +57,7 @@
|
|||||||
#define OFFS_FLAGS 44 /* 16bit */
|
#define OFFS_FLAGS 44 /* 16bit */
|
||||||
|
|
||||||
#define SEGMENT 0x40
|
#define SEGMENT 0x40
|
||||||
#define STACK 0x800 /* stack at 0x40:0x800 -> 0x800 */
|
#define STACK 0x800 /* stack at 0x40:0x800 -> 0x800 */
|
||||||
|
|
||||||
/* save general registers */
|
/* save general registers */
|
||||||
/* save some segments */
|
/* save some segments */
|
||||||
@ -67,28 +67,26 @@
|
|||||||
/* setup BIOS stackpointer */
|
/* setup BIOS stackpointer */
|
||||||
|
|
||||||
#define MAKE_BIOS_STACK \
|
#define MAKE_BIOS_STACK \
|
||||||
pushal ; \
|
pushal; \
|
||||||
pushw %ds ; \
|
pushw %ds; \
|
||||||
pushw %gs ; \
|
pushw %gs; \
|
||||||
pushw %es ; \
|
pushw %es; \
|
||||||
pushw %ss ; \
|
pushw %ss; \
|
||||||
popw %gs ; \
|
popw %gs; \
|
||||||
movw $SEGMENT,%ax ; \
|
movw $SEGMENT, %ax; \
|
||||||
movw %ax,%ds ; \
|
movw %ax, %ds; \
|
||||||
movw %ax,%es ; \
|
movw %ax, %es; \
|
||||||
movw %ax,%ss ; \
|
movw %ax, %ss; \
|
||||||
movw %sp,%bp ; \
|
movw %sp, %bp; \
|
||||||
movw $STACK,%sp
|
movw $STACK, %sp
|
||||||
|
|
||||||
#define RESTORE_CALLERS_STACK \
|
#define RESTORE_CALLERS_STACK \
|
||||||
pushw %gs ; /* restore callers stack segment */ \
|
pushw %gs; /* restore callers stack segment */ \
|
||||||
popw %ss ; \
|
popw %ss; \
|
||||||
movw %bp,%sp ; /* restore stackpointer */ \
|
movw %bp, %sp; /* restore stackpointer */ \
|
||||||
\
|
popw %es; /* restore segment selectors */ \
|
||||||
popw %es ; /* restore segment selectors */ \
|
popw %gs; \
|
||||||
popw %gs ; \
|
popw %ds; \
|
||||||
popw %ds ; \
|
popal /* restore GP registers */
|
||||||
\
|
|
||||||
popal /* restore GP registers */
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -21,7 +21,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Partly based on msbios.c from rolo 1.6:
|
* Partly based on msbios.c from rolo 1.6:
|
||||||
*----------------------------------------------------------------------
|
*----------------------------------------------------------------------
|
@ -1,9 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2008-2011
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
@ -38,7 +41,7 @@
|
|||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <ide.h>
|
#include <ide.h>
|
||||||
#include <serial.h>
|
#include <serial.h>
|
||||||
#include <asm/u-boot-i386.h>
|
#include <asm/u-boot-x86.h>
|
||||||
#include <elf.h>
|
#include <elf.h>
|
||||||
|
|
||||||
#ifdef CONFIG_BITBANGMII
|
#ifdef CONFIG_BITBANGMII
|
||||||
@ -103,13 +106,6 @@ static int display_banner (void)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* WARNING: this code looks "cleaner" than the PowerPC version, but
|
|
||||||
* has the disadvantage that you either get nothing, or everything.
|
|
||||||
* On PowerPC, you might see "DRAM: " before the system hangs - which
|
|
||||||
* gives a simple yet clear indication which part of the
|
|
||||||
* initialization if failing.
|
|
||||||
*/
|
|
||||||
static int display_dram_config (void)
|
static int display_dram_config (void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -141,7 +137,6 @@ static void display_flash_config (ulong size)
|
|||||||
* can relocate the monitor code to RAM.
|
* can relocate the monitor code to RAM.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All attempts to come up with a "common" initialization sequence
|
* All attempts to come up with a "common" initialization sequence
|
||||||
* that works for all boards and architectures failed: some of the
|
* that works for all boards and architectures failed: some of the
|
||||||
@ -251,13 +246,13 @@ static int do_elf_reloc_fixups(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* Load U-Boot into RAM, initialize BSS, perform relocation adjustments */
|
||||||
* Load U-Boot into RAM, initialize BSS, perform relocation adjustments
|
|
||||||
*/
|
|
||||||
void board_init_f(ulong boot_flags)
|
void board_init_f(ulong boot_flags)
|
||||||
{
|
{
|
||||||
init_fnc_t **init_fnc_ptr;
|
init_fnc_t **init_fnc_ptr;
|
||||||
|
|
||||||
|
gd->flags = boot_flags;
|
||||||
|
|
||||||
for (init_fnc_ptr = init_sequence_f; *init_fnc_ptr; ++init_fnc_ptr) {
|
for (init_fnc_ptr = init_sequence_f; *init_fnc_ptr; ++init_fnc_ptr) {
|
||||||
if ((*init_fnc_ptr)() != 0)
|
if ((*init_fnc_ptr)() != 0)
|
||||||
hang();
|
hang();
|
@ -5,10 +5,13 @@
|
|||||||
*
|
*
|
||||||
* Copyright (C) 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
|
* Copyright (C) 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* See file CREDITS for list of people who contributed to this
|
||||||
* it under the terms of the GNU General Public License as published by
|
* project.
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
*
|
||||||
* (at your option) any later version.
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
@ -17,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
*
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
@ -1,21 +1,21 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2009
|
* (C) Copyright 2009
|
||||||
* Graeme Russ, graeme.russ@gmail.com
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2007
|
* (C) Copyright 2007
|
||||||
* Daniel Hellstrom, Gaisler Research, daniel@gaisler.com
|
* Daniel Hellstrom, Gaisler Research, <daniel@gaisler.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2006
|
* (C) Copyright 2006
|
||||||
* Detlev Zundel, DENX Software Engineering, dzu@denx.de
|
* Detlev Zundel, DENX Software Engineering, <dzu@denx.de>
|
||||||
*
|
*
|
||||||
* (C) Copyright -2003
|
* (C) Copyright -2003
|
||||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
* Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2001
|
* (C) Copyright 2001
|
||||||
* Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
|
* Josh Huber, Mission Critical Linux, Inc, <huber@mclx.com>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -38,11 +38,11 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* This file contains the high-level API for the interrupt sub-system
|
* This file contains the high-level API for the interrupt sub-system
|
||||||
* of the i386 port of U-Boot. Most of the functionality has been
|
* of the x86 port of U-Boot. Most of the functionality has been
|
||||||
* shamelessly stolen from the leon2 / leon3 ports of U-Boot.
|
* shamelessly stolen from the leon2 / leon3 ports of U-Boot.
|
||||||
* Daniel Hellstrom, Detlev Zundel, Wolfgang Denk and Josh Huber are
|
* Daniel Hellstrom, Detlev Zundel, Wolfgang Denk and Josh Huber are
|
||||||
* credited for the corresponding work on those ports. The original
|
* credited for the corresponding work on those ports. The original
|
||||||
* interrupt handling routines for the i386 port were written by
|
* interrupt handling routines for the x86 port were written by
|
||||||
* Daniel Engström
|
* Daniel Engström
|
||||||
*/
|
*/
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2009
|
* (C) Copyright 2009
|
||||||
* Graeme Russ, graeme.russ@gmail.com
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -54,10 +54,9 @@ int pci_shadow_rom(pci_dev_t dev, unsigned char *dest)
|
|||||||
class_code &= 0xffffff00;
|
class_code &= 0xffffff00;
|
||||||
class_code >>= 8;
|
class_code >>= 8;
|
||||||
|
|
||||||
#if 0
|
debug("PCI Header Vendor %04x device %04x class %06x\n",
|
||||||
printf("PCI Header Vendor %04x device %04x class %06x\n",
|
|
||||||
vendor, device, class_code);
|
vendor, device, class_code);
|
||||||
#endif
|
|
||||||
/* Enable the rom addess decoder */
|
/* Enable the rom addess decoder */
|
||||||
pci_write_config_dword(dev, PCI_ROM_ADDRESS, (u32)PCI_ROM_ADDRESS_MASK);
|
pci_write_config_dword(dev, PCI_ROM_ADDRESS, (u32)PCI_ROM_ADDRESS_MASK);
|
||||||
pci_read_config_dword(dev, PCI_ROM_ADDRESS, &addr_reg);
|
pci_read_config_dword(dev, PCI_ROM_ADDRESS, &addr_reg);
|
||||||
@ -70,13 +69,12 @@ int pci_shadow_rom(pci_dev_t dev, unsigned char *dest)
|
|||||||
|
|
||||||
size = (~(addr_reg&PCI_ROM_ADDRESS_MASK))+1;
|
size = (~(addr_reg&PCI_ROM_ADDRESS_MASK))+1;
|
||||||
|
|
||||||
#if 0
|
debug("ROM is %d bytes\n", size);
|
||||||
printf("ROM is %d bytes\n", size);
|
|
||||||
#endif
|
|
||||||
rom_addr = pci_get_rom_window(hose, size);
|
rom_addr = pci_get_rom_window(hose, size);
|
||||||
#if 0
|
|
||||||
printf("ROM mapped at %x \n", rom_addr);
|
debug("ROM mapped at %x\n", rom_addr);
|
||||||
#endif
|
|
||||||
pci_write_config_dword(dev, PCI_ROM_ADDRESS,
|
pci_write_config_dword(dev, PCI_ROM_ADDRESS,
|
||||||
pci_phys_to_mem(dev, rom_addr)
|
pci_phys_to_mem(dev, rom_addr)
|
||||||
|PCI_ROM_ADDRESS_ENABLE);
|
|PCI_ROM_ADDRESS_ENABLE);
|
@ -1,15 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Daniel Engström, Omicron Ceti AB, <daniel@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
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for type PCI configuration cycles.
|
* Support for type PCI configuration cycles.
|
||||||
* based on pci_indirect.c
|
* based on pci_indirect.c
|
||||||
*
|
|
||||||
* Copyright (C) 2002 Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <pci.h>
|
#include <pci.h>
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -26,10 +26,8 @@
|
|||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
#include <asm/realmode.h>
|
#include <asm/realmode.h>
|
||||||
|
|
||||||
|
|
||||||
#define REALMODE_MAILBOX ((char*)0xe00)
|
#define REALMODE_MAILBOX ((char*)0xe00)
|
||||||
|
|
||||||
|
|
||||||
extern ulong __realmode_start;
|
extern ulong __realmode_start;
|
||||||
extern ulong __realmode_size;
|
extern ulong __realmode_size;
|
||||||
extern char realmode_enter;
|
extern char realmode_enter;
|
||||||
@ -57,13 +55,11 @@ int enter_realmode(u16 seg, u16 off, struct pt_regs *in, struct pt_regs *out)
|
|||||||
{
|
{
|
||||||
|
|
||||||
/* setup out thin bios emulation */
|
/* setup out thin bios emulation */
|
||||||
if (bios_setup()) {
|
if (bios_setup())
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
if (realmode_setup()) {
|
if (realmode_setup())
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
in->eip = off;
|
in->eip = off;
|
||||||
in->xcs = seg;
|
in->xcs = seg;
|
@ -21,7 +21,6 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* 32bit -> 16bit -> 32bit mode switch code */
|
/* 32bit -> 16bit -> 32bit mode switch code */
|
||||||
|
|
||||||
/*
|
/*
|
@ -1,6 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2008,2009
|
||||||
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -30,7 +30,6 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/pci.h>
|
#include <asm/pci.h>
|
||||||
|
|
||||||
|
|
||||||
/* basic textmode I/O from linux kernel */
|
/* basic textmode I/O from linux kernel */
|
||||||
static char *vidmem = (char *)0xb8000;
|
static char *vidmem = (char *)0xb8000;
|
||||||
static int vidport;
|
static int vidport;
|
||||||
@ -42,9 +41,9 @@ static void beep(int dur)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
outb_p(3, 0x61);
|
outb_p(3, 0x61);
|
||||||
for (i=0;i<10*dur;i++) {
|
for (i = 0; i < 10*dur; i++)
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
}
|
|
||||||
outb_p(0, 0x61);
|
outb_p(0, 0x61);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,8 +51,8 @@ static void scroll(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
memcpy ( vidmem, vidmem + cols * 2, ( lines - 1 ) * cols * 2 );
|
memcpy(vidmem, vidmem + cols * 2, (lines - 1) * cols * 2);
|
||||||
for ( i = ( lines - 1 ) * cols * 2; i < lines * cols * 2; i += 2 )
|
for (i = (lines - 1) * cols * 2; i < lines * cols * 2; i += 2)
|
||||||
vidmem[i] = ' ';
|
vidmem[i] = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,14 +60,14 @@ static void __video_putc(const char c, int *x, int *y)
|
|||||||
{
|
{
|
||||||
if (c == '\n') {
|
if (c == '\n') {
|
||||||
(*x) = 0;
|
(*x) = 0;
|
||||||
if ( ++(*y) >= lines ) {
|
if (++(*y) >= lines) {
|
||||||
scroll();
|
scroll();
|
||||||
(*y)--;
|
(*y)--;
|
||||||
}
|
}
|
||||||
} else if (c == '\b') {
|
} else if (c == '\b') {
|
||||||
if ((*x) != 0) {
|
if ((*x) != 0) {
|
||||||
--(*x);
|
--(*x);
|
||||||
vidmem [ ( (*x) + cols * (*y) ) * 2 ] = ' ';
|
vidmem[((*x) + cols * (*y)) * 2] = ' ';
|
||||||
}
|
}
|
||||||
} else if (c == '\r') {
|
} else if (c == '\r') {
|
||||||
(*x) = 0;
|
(*x) = 0;
|
||||||
@ -106,16 +105,15 @@ static void __video_putc(const char c, int *x, int *y)
|
|||||||
}
|
}
|
||||||
} else if (c == '\f') {
|
} else if (c == '\f') {
|
||||||
int i;
|
int i;
|
||||||
for (i=0;i<lines*cols*2;i+=2) {
|
for (i = 0; i < lines * cols * 2; i += 2)
|
||||||
vidmem[i] = 0;
|
vidmem[i] = 0;
|
||||||
}
|
|
||||||
(*x) = 0;
|
(*x) = 0;
|
||||||
(*y) = 0;
|
(*y) = 0;
|
||||||
} else {
|
} else {
|
||||||
vidmem [ ( (*x) + cols * (*y) ) * 2 ] = c;
|
vidmem[((*x) + cols * (*y)) * 2] = c;
|
||||||
if ( ++(*x) >= cols ) {
|
if (++(*x) >= cols) {
|
||||||
(*x) = 0;
|
(*x) = 0;
|
||||||
if ( ++(*y) >= lines ) {
|
if (++(*y) >= lines) {
|
||||||
scroll();
|
scroll();
|
||||||
(*y)--;
|
(*y)--;
|
||||||
}
|
}
|
||||||
@ -150,9 +148,8 @@ static void video_puts(const char *s)
|
|||||||
x = orig_x;
|
x = orig_x;
|
||||||
y = orig_y;
|
y = orig_y;
|
||||||
|
|
||||||
while ( ( c = *s++ ) != '\0' ) {
|
while ((c = *s++) != '\0')
|
||||||
__video_putc(c, &x, &y);
|
__video_putc(c, &x, &y);
|
||||||
}
|
|
||||||
|
|
||||||
orig_x = x;
|
orig_x = x;
|
||||||
orig_y = y;
|
orig_y = y;
|
||||||
@ -189,10 +186,8 @@ int video_init(void)
|
|||||||
#if 0
|
#if 0
|
||||||
printf("pos %x %d %d\n", pos, orig_x, orig_y);
|
printf("pos %x %d %d\n", pos, orig_x, orig_y);
|
||||||
#endif
|
#endif
|
||||||
if (orig_y > lines) {
|
if (orig_y > lines)
|
||||||
orig_x = orig_y =0;
|
orig_x = orig_y =0;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
memset(&vga_dev, 0, sizeof(vga_dev));
|
memset(&vga_dev, 0, sizeof(vga_dev));
|
||||||
strcpy(vga_dev.name, "vga");
|
strcpy(vga_dev.name, "vga");
|
||||||
@ -203,13 +198,11 @@ int video_init(void)
|
|||||||
vga_dev.tstc = NULL; /* 'tstc' function */
|
vga_dev.tstc = NULL; /* 'tstc' function */
|
||||||
vga_dev.getc = NULL; /* 'getc' function */
|
vga_dev.getc = NULL; /* 'getc' function */
|
||||||
|
|
||||||
if (stdio_register(&vga_dev) == 0) {
|
if (stdio_register(&vga_dev) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
if (i8042_kbd_init())
|
||||||
if (i8042_kbd_init()) {
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
memset(&kbd_dev, 0, sizeof(kbd_dev));
|
memset(&kbd_dev, 0, sizeof(kbd_dev));
|
||||||
strcpy(kbd_dev.name, "kbd");
|
strcpy(kbd_dev.name, "kbd");
|
||||||
@ -220,18 +213,17 @@ int video_init(void)
|
|||||||
kbd_dev.tstc = i8042_tstc; /* 'tstc' function */
|
kbd_dev.tstc = i8042_tstc; /* 'tstc' function */
|
||||||
kbd_dev.getc = i8042_getc; /* 'getc' function */
|
kbd_dev.getc = i8042_getc; /* 'getc' function */
|
||||||
|
|
||||||
if (stdio_register(&kbd_dev) == 0) {
|
if (stdio_register(&kbd_dev) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int drv_video_init(void)
|
int drv_video_init(void)
|
||||||
{
|
{
|
||||||
if (video_bios_init()) {
|
if (video_bios_init())
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
return video_init();
|
return video_init();
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Linux i386 zImage and bzImage loading
|
* Linux x86 zImage and bzImage loading
|
||||||
*
|
*
|
||||||
* based on the procdure described in
|
* based on the procdure described in
|
||||||
* linux/Documentation/i386/boot.txt
|
* linux/Documentation/i386/boot.txt
|
@ -1,24 +0,0 @@
|
|||||||
#
|
|
||||||
# (C) Copyright 2002
|
|
||||||
# Daniel Engström, Omicron Ceti AB, daniel@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
|
|
||||||
#
|
|
||||||
|
|
||||||
LDPPFLAGS += -DFLASH_SIZE=0x40000
|
|
@ -35,6 +35,8 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
|
||||||
|
|
||||||
static void enet_timer_isr(void);
|
static void enet_timer_isr(void);
|
||||||
static void enet_toggle_run_led(void);
|
static void enet_toggle_run_led(void);
|
||||||
static void enet_setup_pars(void);
|
static void enet_setup_pars(void);
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2008
|
* (C) Copyright 2008,2009
|
||||||
* Graeme Russ, graeme.russ@gmail.com.
|
* Graeme Russ, <graeme.russ@gmail.com>
|
||||||
*
|
*
|
||||||
* (C) Copyright 2002
|
* (C) Copyright 2002
|
||||||
* Daniel Engström, Omicron Ceti AB <daniel@omicron.se>.
|
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@ -23,6 +23,7 @@
|
|||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <pci.h>
|
#include <pci.h>
|
||||||
#include <asm/pci.h>
|
#include <asm/pci.h>
|
||||||
|
@ -205,8 +205,8 @@ ibf-dsp561 blackfin blackfin
|
|||||||
ip04 blackfin blackfin
|
ip04 blackfin blackfin
|
||||||
tcm-bf518 blackfin blackfin
|
tcm-bf518 blackfin blackfin
|
||||||
tcm-bf537 blackfin blackfin
|
tcm-bf537 blackfin blackfin
|
||||||
eNET i386 i386 eNET - sc520 eNET:SYS_TEXT_BASE=0x38040000
|
eNET x86 x86 eNET - sc520 eNET:SYS_TEXT_BASE=0x38040000
|
||||||
eNET_SRAM i386 i386 eNET - sc520 eNET:SYS_TEXT_BASE=0x19000000
|
eNET_SRAM x86 x86 eNET - sc520 eNET:SYS_TEXT_BASE=0x19000000
|
||||||
idmr m68k mcf52x2
|
idmr m68k mcf52x2
|
||||||
TASREG m68k mcf52x2 tasreg esd
|
TASREG m68k mcf52x2 tasreg esd
|
||||||
M5208EVBE m68k mcf52x2 m5208evbe freescale
|
M5208EVBE m68k mcf52x2 m5208evbe freescale
|
||||||
|
@ -15,7 +15,7 @@ unsigned long get_version(void)
|
|||||||
/* Reuse _exports.h with a little trickery to avoid bitrot */
|
/* Reuse _exports.h with a little trickery to avoid bitrot */
|
||||||
#define EXPORT_FUNC(sym) gd->jt[XF_##sym] = (void *)sym;
|
#define EXPORT_FUNC(sym) gd->jt[XF_##sym] = (void *)sym;
|
||||||
|
|
||||||
#if !defined(CONFIG_I386) && !defined(CONFIG_PPC)
|
#if !defined(CONFIG_X86) && !defined(CONFIG_PPC)
|
||||||
# define install_hdlr dummy
|
# define install_hdlr dummy
|
||||||
# define free_hdlr dummy
|
# define free_hdlr dummy
|
||||||
#else /* kludge for non-standard function naming */
|
#else /* kludge for non-standard function naming */
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
This is my attempt to port U-Boot to the i386 platform. This
|
|
||||||
work was sponsored by my emplyer, Omicron Ceti AB. http://www.omicron.se
|
|
||||||
|
|
||||||
It is currently capable of booting a linux bzImage from flash on
|
|
||||||
the AMD SC520 CDP platform.
|
|
||||||
|
|
||||||
It was originally based on PPCBoot taken from the CVS October 28 2002.
|
|
||||||
|
|
||||||
To compile:
|
|
||||||
|
|
||||||
1) Unpack the source tree, either from the complete tarball or
|
|
||||||
from the virgin snapshot + the patch
|
|
||||||
|
|
||||||
2) Configure the source
|
|
||||||
$ make sc520_cdp_comfig
|
|
||||||
$ make
|
|
||||||
|
|
||||||
To use this code on the CDP:
|
|
||||||
1) Make a suitable kernel, I used 2.4.19 with the mtd-support updated
|
|
||||||
from the MTD CVS and a patch to allow root=/dev/mtdblock1 which I
|
|
||||||
included at the end of this file.
|
|
||||||
The following options in the MTD section might be useful:
|
|
||||||
|
|
||||||
CONFIG_MTD_PHYSMAP=y
|
|
||||||
CONFIG_MTD_PHYSMAP_START=38100000
|
|
||||||
CONFIG_MTD_PHYSMAP_LEN=7a0000
|
|
||||||
CONFIG_MTD_PHYSMAP_BUSWIDTH=2
|
|
||||||
|
|
||||||
|
|
||||||
2) Program it in to the CDP flashbank with remon
|
|
||||||
u-boot.bin should be programmed att offset 0x7e000 and the kernel at
|
|
||||||
offset 0. If you want to use a jffs2 root file system (not included here),
|
|
||||||
it should be programmed to offset 0x100000.
|
|
||||||
|
|
||||||
remon> z
|
|
||||||
remon> yi
|
|
||||||
remon> ns u-boot.bin 7e0000
|
|
||||||
remon> ns bzImage 0
|
|
||||||
remon> ns image.jffs2 100000
|
|
||||||
|
|
||||||
3) Connect a terminal to the 25pin serial port at 9600bps, and start the CDP.
|
|
||||||
|
|
||||||
remon> z
|
|
||||||
remon> g
|
|
||||||
|
|
||||||
4) U-Boot should output some message and a prompt on the terminal, to
|
|
||||||
start the kernel issue the following command:
|
|
||||||
|
|
||||||
BOOT> bootm
|
|
||||||
|
|
||||||
5) The kernel should boot, and mount the root filesystem if present.
|
|
||||||
|
|
||||||
We hope you find this stuff useful
|
|
||||||
Daniel Engström, Omicron Ceti AB, daniel@omicron.se
|
|
||||||
|
|
||||||
|
|
||||||
--- linux-2.4.19-orig/init/do_mounts.c Sat Aug 3 02:39:46 2002
|
|
||||||
+++ linux-2.4.19/init/do_mounts.c Mon Sep 23 16:21:33 2002
|
|
||||||
@@ -224,6 +224,14 @@
|
|
||||||
{ "ftlc", 0x2c10 },
|
|
||||||
{ "ftld", 0x2c18 },
|
|
||||||
{ "mtdblock", 0x1f00 },
|
|
||||||
+ { "mtdblock0", 0x1f00 },
|
|
||||||
+ { "mtdblock1", 0x1f01 },
|
|
||||||
+ { "mtdblock2", 0x1f02 },
|
|
||||||
+ { "mtdblock3", 0x1f03 },
|
|
||||||
+ { "mtdblock4", 0x1f04 },
|
|
||||||
+ { "mtdblock5", 0x1f05 },
|
|
||||||
+ { "mtdblock6", 0x1f06 },
|
|
||||||
+ { "mtdblock7", 0x1f07 },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
-------------------
|
|
@ -1,29 +0,0 @@
|
|||||||
i386 port missing features:
|
|
||||||
* i386 cleaness (wbinvld is 486+ ... )
|
|
||||||
* Pentium TSC timer/udelay
|
|
||||||
* setup the BIOS data area and BIOS equipment word to reflect machine config.
|
|
||||||
* Make reset work (from Linux and from the boot prompt)
|
|
||||||
* DMA, FDC, RTC, KBC initialization
|
|
||||||
* split of part of arch/i386/cpu/interrupt.c to cpu/i385/entry.c?
|
|
||||||
* re-entry of protected mode from real mode, should be added to realmode_switch.S
|
|
||||||
(and used by INT 10h and INT 16h handlers for console I/O during early
|
|
||||||
linux boot...)
|
|
||||||
* missing functions in arch/i386/lib and arch/i386/cpu
|
|
||||||
* speaker beep interface
|
|
||||||
|
|
||||||
|
|
||||||
SC520 missing features:
|
|
||||||
* Watchdog
|
|
||||||
* SC520 timer/udelay
|
|
||||||
* SC520 3rd PIC
|
|
||||||
* SC520 ICE serial
|
|
||||||
* SC520 MMCR reset
|
|
||||||
|
|
||||||
SC520 CDP board support missing features:
|
|
||||||
* environment in sram
|
|
||||||
|
|
||||||
SC520 CDP board support bugs:
|
|
||||||
* SPI EEPROM support does not work
|
|
||||||
* 0x680 LEDS dos not work for me
|
|
||||||
* is it possible to make both the internal serial ports and the
|
|
||||||
ports on the sio work at the same time?
|
|
@ -4,7 +4,7 @@
|
|||||||
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
||||||
#endif /* GCC_VERSION */
|
#endif /* GCC_VERSION */
|
||||||
|
|
||||||
#if defined(CONFIG_I386)
|
#if defined(CONFIG_X86)
|
||||||
/*
|
/*
|
||||||
* x86 does not have a dedicated register to store the pointer to
|
* x86 does not have a dedicated register to store the pointer to
|
||||||
* the global_data. Thus the jump table address is stored in a
|
* the global_data. Thus the jump table address is stored in a
|
||||||
@ -198,7 +198,7 @@ void app_startup(char * const *argv)
|
|||||||
*cp++ = 0;
|
*cp++ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_I386)
|
#if defined(CONFIG_X86)
|
||||||
/* x86 does not have a dedicated register for passing global_data */
|
/* x86 does not have a dedicated register for passing global_data */
|
||||||
global_data = (gd_t *)argv[-1];
|
global_data = (gd_t *)argv[-1];
|
||||||
jt = global_data->jt;
|
jt = global_data->jt;
|
||||||
|
@ -272,9 +272,9 @@ int setenv (char *, char *);
|
|||||||
# include <asm/setup.h>
|
# include <asm/setup.h>
|
||||||
# include <asm/u-boot-arm.h> /* ARM version to be fixed! */
|
# include <asm/u-boot-arm.h> /* ARM version to be fixed! */
|
||||||
#endif /* CONFIG_ARM */
|
#endif /* CONFIG_ARM */
|
||||||
#ifdef CONFIG_I386 /* x86 version to be fixed! */
|
#ifdef CONFIG_X86 /* x86 version to be fixed! */
|
||||||
# include <asm/u-boot-i386.h>
|
# include <asm/u-boot-x86.h>
|
||||||
#endif /* CONFIG_I386 */
|
#endif /* CONFIG_X86 */
|
||||||
|
|
||||||
#ifdef CONFIG_AUTO_COMPLETE
|
#ifdef CONFIG_AUTO_COMPLETE
|
||||||
int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf);
|
int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf);
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
* High Level Configuration Options
|
* High Level Configuration Options
|
||||||
* (easy to change)
|
* (easy to change)
|
||||||
*/
|
*/
|
||||||
#define CONFIG_X86
|
|
||||||
#define CONFIG_SYS_SC520
|
#define CONFIG_SYS_SC520
|
||||||
#define CONFIG_SYS_SC520_SSI
|
#define CONFIG_SYS_SC520_SSI
|
||||||
#define CONFIG_SHOW_BOOT_PROGRESS
|
#define CONFIG_SHOW_BOOT_PROGRESS
|
||||||
@ -158,16 +157,19 @@
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Memory organization:
|
* Memory organization:
|
||||||
* 32kB Stack
|
* 32kB Stack
|
||||||
|
* 16kB Cache-As-RAM @ 0x19200000
|
||||||
* 256kB Monitor
|
* 256kB Monitor
|
||||||
|
* (128kB + Environment Sector Size) malloc pool
|
||||||
*/
|
*/
|
||||||
#define CONFIG_SYS_STACK_SIZE 0x8000
|
#define CONFIG_SYS_STACK_SIZE (32 * 1024)
|
||||||
#define CONFIG_SYS_CAR_ADDR 0x19200000
|
#define CONFIG_SYS_CAR_ADDR 0x19200000
|
||||||
#define CONFIG_SYS_CAR_SIZE 0x00004000
|
#define CONFIG_SYS_CAR_SIZE (16 * 1024)
|
||||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_CAR_ADDR + \
|
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_CAR_ADDR + \
|
||||||
CONFIG_SYS_CAR_SIZE)
|
CONFIG_SYS_CAR_SIZE)
|
||||||
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
|
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
|
||||||
#define CONFIG_SYS_MONITOR_LEN (256 * 1024)
|
#define CONFIG_SYS_MONITOR_LEN (256 * 1024)
|
||||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
|
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SECT_SIZE + \
|
||||||
|
128*1024)
|
||||||
/* Address of temporary Global Data */
|
/* Address of temporary Global Data */
|
||||||
#define CONFIG_SYS_INIT_GD_ADDR CONFIG_SYS_CAR_ADDR
|
#define CONFIG_SYS_INIT_GD_ADDR CONFIG_SYS_CAR_ADDR
|
||||||
|
|
||||||
@ -198,17 +200,25 @@
|
|||||||
#define CONFIG_SYS_FLASH_LEGACY_512Kx8
|
#define CONFIG_SYS_FLASH_LEGACY_512Kx8
|
||||||
#define CONFIG_SYS_FLASH_ERASE_TOUT 2000 /* ms */
|
#define CONFIG_SYS_FLASH_ERASE_TOUT 2000 /* ms */
|
||||||
#define CONFIG_SYS_FLASH_WRITE_TOUT 2000 /* ms */
|
#define CONFIG_SYS_FLASH_WRITE_TOUT 2000 /* ms */
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* Environment configuration
|
* Environment configuration
|
||||||
|
* - Boot flash is 512kB with 64kB sectors
|
||||||
|
* - StrataFlash is 32MB with 128kB sectors
|
||||||
|
* - Redundant embedded environment is 25% of the Boot flash
|
||||||
|
* - Redundant StrataFlash environment is <1% of the StrataFlash
|
||||||
|
* - Environment is therefore located in StrataFlash
|
||||||
|
* - Primary copy is located in first sector of first flash
|
||||||
|
* - Redundant copy is located in second sector of first flash
|
||||||
|
* - Stack is only 32kB, so environment size is limited to 4kB
|
||||||
*/
|
*/
|
||||||
#define CONFIG_ENV_IS_IN_FLASH
|
#define CONFIG_ENV_IS_IN_FLASH
|
||||||
#define CONFIG_ENV_SECT_SIZE 0x20000
|
#define CONFIG_ENV_SECT_SIZE 0x20000
|
||||||
#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE
|
#define CONFIG_ENV_SIZE 0x01000
|
||||||
#define CONFIG_ENV_ADDR CONFIG_SYS_FLASH_BASE_1
|
#define CONFIG_ENV_ADDR CONFIG_SYS_FLASH_BASE_1
|
||||||
/* Redundant Copy */
|
|
||||||
#define CONFIG_ENV_ADDR_REDUND (CONFIG_SYS_FLASH_BASE_1 + \
|
#define CONFIG_ENV_ADDR_REDUND (CONFIG_SYS_FLASH_BASE_1 + \
|
||||||
CONFIG_ENV_SECT_SIZE)
|
CONFIG_ENV_SECT_SIZE)
|
||||||
#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SECT_SIZE
|
#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* PCI configuration
|
* PCI configuration
|
||||||
|
@ -45,7 +45,7 @@ enum {
|
|||||||
|
|
||||||
#define XF_VERSION 6
|
#define XF_VERSION 6
|
||||||
|
|
||||||
#if defined(CONFIG_I386)
|
#if defined(CONFIG_X86)
|
||||||
extern gd_t *global_data;
|
extern gd_t *global_data;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user