/branches/arm/kernel/arch/arm32/include/machine.h |
---|
43,7 → 43,12 |
#include <console/console.h> |
#include <arch/types.h> |
#include <arch/exception.h> |
#ifdef MACHINE_GXEMUL_TESTARM |
#include <arch/drivers/gxemul.h> |
#endif |
#ifdef MACHINE_QEMU_ICP |
#include <arch/drivers/qemu.h> |
#endif |
/** Initializes console. |
116,7 → 121,20 |
#define machine_get_fb_address gxemul_get_fb_address |
#endif |
#ifdef MACHINE_QEMU_ICP |
#define machine_console_init(devno) qemu_icp_console_init(devno) |
#define machine_grab_console qemu_icp_grab_console |
#define machine_release_console qemu_icp_release_console |
#define machine_hw_map_init qemu_icp_hw_map_init |
#define machine_timer_irq_start qemu_icp_timer_irq_start |
#define machine_cpu_halt qemu_icp_cpu_halt |
#define machine_get_memory_size qemu_icp_get_memory_size |
#define machine_debug_putc(ch) qemu_icp_debug_putc(ch) |
#define machine_irq_exception(exc_no, istate) \ |
qemu_icp_irq_exception(exc_no, istate) |
#define machine_get_fb_address qemu_icp_get_fb_address |
#endif |
#endif |
/** @} |
*/ |
/branches/arm/kernel/arch/arm32/Makefile.inc |
---|
41,9 → 41,11 |
KERNEL_LOAD_ADDRESS = 0x80200000 |
# ifeq ($(MACHINE), gxemul_testarm) |
ifeq ($(MACHINE), gxemul_testarm) |
DMACHINE = MACHINE_GXEMUL_TESTARM |
# endif |
else ifeq ($(MACHINE), qemu_icp) |
DMACHINE = MACHINE_QEMU_ICP |
endif |
ATSIGN = % |
94,7 → 96,9 |
arch/$(ARCH)/src/mm/tlb.c \ |
arch/$(ARCH)/src/mm/page_fault.c |
# ifeq ($(MACHINE), gxemul_testarm) |
ifeq ($(MACHINE), gxemul_testarm) |
ARCH_SOURCES += arch/$(ARCH)/src/drivers/gxemul.c |
# endif |
else ifeq ($(MACHINE), qemu_icp) |
ARCH_SOURCES += arch/$(ARCH)/src/drivers/qemu.c |
endif |
/branches/arm/HelenOS.config |
---|
52,6 → 52,11 |
@ "i460GX" i460GX chipset machine |
! [PLATFORM=ia64] MACHINE (choice) |
# Machine Type |
@ "gxemul_testarm" testarm - GXEmul |
@ "qemu_icp" Integrator CP - QEMU |
! [PLATFORM=arm32] MACHINE (choice) |
# Compiler |
@ "gcc_cross" GCC Cross-compiler |
@ "gcc_native" GCC Native |
/branches/arm/boot/arch/arm32/Makefile.inc |
---|
35,7 → 35,7 |
-rm arch/$(ARCH)/loader/image.boot |
arch/$(ARCH)/loader/image.boot: |
make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE) |
make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE) MACHINE=$(MACHINE) |
clean: |
make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE) |
/branches/arm/boot/arch/arm32/loader/print/gxemul.c |
---|
File deleted |
/branches/arm/boot/arch/arm32/loader/print/write.c |
---|
0,0 → 1,77 |
/* |
* Copyright (c) 2007 Michal Kebrt |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* are met: |
* |
* - Redistributions of source code must retain the above copyright |
* notice, this list of conditions and the following disclaimer. |
* - Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* - The name of the author may not be used to endorse or promote products |
* derived from this software without specific prior written permission. |
* |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
/** @addtogroup arm32boot |
* @{ |
*/ |
/** @file |
* @brief GXemul specific code. |
*/ |
#include <printf.h> |
/** Address where characters to be printed are expected. */ |
#ifdef MACHINE_GXEMUL_TESTARM |
#define PUTC_ADDRESS 0x10000000 |
#endif |
#ifdef MACHINE_QEMU_ICP |
#define PUTC_ADDRESS 0x16000000 |
#endif |
/** Prints a character to the console. |
* |
* @param ch Character to be printed. |
*/ |
static void putc(char ch) |
{ |
if (ch == '\n') |
*((volatile char *) PUTC_ADDRESS) = '\r'; |
*((volatile char *) PUTC_ADDRESS) = ch; |
} |
/** Prints a string to the console. |
* |
* @param str String to be printed. |
* @param len Number of characters to be printed. |
*/ |
void write(const char *str, const int len) |
{ |
int i; |
for (i = 0; i < len; ++i) { |
putc(str[i]); |
} |
} |
/** @} |
*/ |
/branches/arm/boot/arch/arm32/loader/Makefile |
---|
41,6 → 41,14 |
TARGET = arm-linux-gnu |
TOOLCHAIN_DIR = $(CROSS_PREFIX)/arm/bin |
ifeq ($(MACHINE), gxemul_testarm) |
DMACHINE = MACHINE_GXEMUL_TESTARM |
endif |
ifeq ($(MACHINE), qemu_icp) |
DMACHINE = MACHINE_QEMU_ICP |
endif |
ifeq ($(COMPILER),gcc_native) |
CC = gcc |
AS = as |
76,7 → 84,7 |
boot.S \ |
asm.S \ |
mm.c \ |
print/gxemul.c \ |
print/write.c \ |
_components.c \ |
../../../generic/printf.c \ |
../../../genarch/division.c |
155,4 → 163,4 |
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@ |
%.o: %.c |
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@ |
$(CC) -D$(DMACHINE) $(DEFS) $(CFLAGS) -c $< -o $@ |
/branches/arm/Makefile |
---|
122,9 → 122,9 |
endif |
$(MAKE) -C uspace ARCH=$(UARCH) COMPILER=$(COMPILER) CONFIG_DEBUG=$(CONFIG_DEBUG) |
ifneq ($(IMAGE),) |
$(MAKE) -C boot ARCH=$(BARCH) COMPILER=$(COMPILER) CONFIG_DEBUG=$(CONFIG_DEBUG) IMAGE=$(IMAGE) |
$(MAKE) -C boot ARCH=$(BARCH) COMPILER=$(COMPILER) CONFIG_DEBUG=$(CONFIG_DEBUG) IMAGE=$(IMAGE) MACHINE=$(MACHINE) |
else |
$(MAKE) -C boot ARCH=$(BARCH) COMPILER=$(COMPILER) CONFIG_DEBUG=$(CONFIG_DEBUG) |
$(MAKE) -C boot ARCH=$(BARCH) COMPILER=$(COMPILER) CONFIG_DEBUG=$(CONFIG_DEBUG) MACHINE=$(MACHINE) |
endif |
config: |