Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3514 → Rev 3515

/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: