From 232394ba6e5f12caf883afcd821c2946997f5168 Mon Sep 17 00:00:00 2001 From: NicJA Date: Tue, 24 Mar 2015 22:30:26 +0000 Subject: [PATCH] expose peripheral iobase via getsystemattr for drivers to use. clean-up iobase code a little and fix copyright notices. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@50231 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- arch/arm-raspi/kernel/getsystemattr.c | 68 +++++++++++++++++++++++++++++++++ arch/arm-raspi/kernel/intr.c | 6 +-- arch/arm-raspi/kernel/kernel_cpu.c | 6 +-- arch/arm-raspi/kernel/kernel_debug.c | 11 ++---- arch/arm-raspi/kernel/kernel_intern.h | 2 + arch/arm-raspi/kernel/kernel_startup.c | 5 +-- arch/arm-raspi/kernel/kernel_systimer.c | 6 +-- arch/arm-raspi/kernel/maygetchar.c | 11 ++---- arch/arm-raspi/kernel/mmakefile.src | 2 +- arch/arm-raspi/kernel/platform_init.c | 8 +--- 10 files changed, 82 insertions(+), 43 deletions(-) create mode 100644 arch/arm-raspi/kernel/getsystemattr.c diff --git a/arch/arm-raspi/kernel/getsystemattr.c b/arch/arm-raspi/kernel/getsystemattr.c new file mode 100644 index 0000000000..2d3cfc20a2 --- /dev/null +++ b/arch/arm-raspi/kernel/getsystemattr.c @@ -0,0 +1,68 @@ +/* + Copyright © 1995-2015, The AROS Development Team. All rights reserved. + $Id$ + + Desc: +*/ + +#include +#include +#include + +#include "kernel_intern.h" + +/***************************************************************************** + + NAME */ +#include + + AROS_LH1(intptr_t, KrnGetSystemAttr, + +/* SYNOPSIS */ + AROS_LHA(uint32_t, id, D0), + +/* LOCATION */ + struct KernelBase *, KernelBase, 29, Kernel) + +/* FUNCTION + Get value of internal system attributes. + Currently defined attributes are: + + KATTR_Architecture [.G] (char *) - Name of architecture the kernel built for. + + KATTR_PeripheralBase [.G] IPTR - IO Base address for ARM peripherals + + INPUTS + id - ID of the attribute to get + + RESULT + Value of the attribute + + NOTES + + EXAMPLE + + BUGS + + SEE ALSO + + INTERNALS + +******************************************************************************/ +{ + AROS_LIBFUNC_INIT + + switch (id) + { + case KATTR_Architecture: + return (intptr_t)"arm-raspi"; + + case KATTR_PeripheralBase: + return (intptr_t)__arm_periiobase; + + default: + return -1; + } + + AROS_LIBFUNC_EXIT +} diff --git a/arch/arm-raspi/kernel/intr.c b/arch/arm-raspi/kernel/intr.c index ac63302b15..0ec1534bce 100644 --- a/arch/arm-raspi/kernel/intr.c +++ b/arch/arm-raspi/kernel/intr.c @@ -1,5 +1,5 @@ /* - Copyright � 2013, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ @@ -19,10 +19,6 @@ #include "kernel_interrupts.h" #include "kernel_intr.h" -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) - #define BOOT_STACK_SIZE (256 << 2) #define BOOT_TAGS_SIZE (128 << 3) diff --git a/arch/arm-raspi/kernel/kernel_cpu.c b/arch/arm-raspi/kernel/kernel_cpu.c index 277b9d9a37..f070e26adb 100644 --- a/arch/arm-raspi/kernel/kernel_cpu.c +++ b/arch/arm-raspi/kernel/kernel_cpu.c @@ -1,5 +1,5 @@ /* - Copyright � 1995-2014, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ @@ -28,10 +28,6 @@ #define D(x) #define DREGS(x) -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) - extern struct Task *sysIdleTask; void cpu_Switch(regs_t *regs) diff --git a/arch/arm-raspi/kernel/kernel_debug.c b/arch/arm-raspi/kernel/kernel_debug.c index 4d9b5411a7..0111da71a1 100644 --- a/arch/arm-raspi/kernel/kernel_debug.c +++ b/arch/arm-raspi/kernel/kernel_debug.c @@ -1,20 +1,15 @@ /* - Copyright � 2013-2015, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ #include #include -#include -#include - #include #include - -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) +#include +#include void (*_KrnPutC)(char) = NULL; diff --git a/arch/arm-raspi/kernel/kernel_intern.h b/arch/arm-raspi/kernel/kernel_intern.h index 2d9263e070..da8b785905 100644 --- a/arch/arm-raspi/kernel/kernel_intern.h +++ b/arch/arm-raspi/kernel/kernel_intern.h @@ -15,6 +15,8 @@ #include #include +extern uint32_t __arm_periiobase; +#define ARM_PERIIOBASE (__arm_periiobase) #include #undef KernelBase diff --git a/arch/arm-raspi/kernel/kernel_startup.c b/arch/arm-raspi/kernel/kernel_startup.c index 6527600009..744ced43b4 100644 --- a/arch/arm-raspi/kernel/kernel_startup.c +++ b/arch/arm-raspi/kernel/kernel_startup.c @@ -1,5 +1,5 @@ /* - Copyright � 2013, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ @@ -27,9 +27,6 @@ #include "kernel_fb.h" #include "kernel_romtags.h" -#undef ARM_PERIIOBASE -#define ARM_PERIIOBASE (__arm_periiobase) - extern void krnCreateMemHeader(CONST_STRPTR name, BYTE pri, APTR start, IPTR size, ULONG flags); void __attribute__((used)) kernel_cstart(struct TagItem *msg); diff --git a/arch/arm-raspi/kernel/kernel_systimer.c b/arch/arm-raspi/kernel/kernel_systimer.c index fe5694a3d2..5d4fd9ceae 100644 --- a/arch/arm-raspi/kernel/kernel_systimer.c +++ b/arch/arm-raspi/kernel/kernel_systimer.c @@ -1,5 +1,5 @@ /* - Copyright � 2013, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ @@ -17,10 +17,6 @@ #include "kernel_intern.h" -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) - /* We use own implementation of bug(), so we don't need aros/debug.h */ #define DIRQ(x) #define D(x) diff --git a/arch/arm-raspi/kernel/maygetchar.c b/arch/arm-raspi/kernel/maygetchar.c index aeb598c5a7..6e7e442ab8 100644 --- a/arch/arm-raspi/kernel/maygetchar.c +++ b/arch/arm-raspi/kernel/maygetchar.c @@ -1,23 +1,18 @@ /* - Copyright � 2013-2015, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ #include -#include -#include - #include #include +#include +#include #include #include -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) - /* See rom/kernel/maygetchar.c for documentation */ AROS_LH0(int, KrnMayGetChar, diff --git a/arch/arm-raspi/kernel/mmakefile.src b/arch/arm-raspi/kernel/mmakefile.src index 1952b03740..086765bf94 100644 --- a/arch/arm-raspi/kernel/mmakefile.src +++ b/arch/arm-raspi/kernel/mmakefile.src @@ -1,7 +1,7 @@ # $Id$ include $(TOP)/config/make.cfg -CFILES := kernel_startup kernel_cpu platform_init kernel_debug maygetchar tags intr kernel_systimer syscall mmu issuper cli sti vars screen_fb font8x14 +CFILES := kernel_startup kernel_cpu platform_init kernel_debug getsystemattr maygetchar tags intr kernel_systimer syscall mmu issuper cli sti vars screen_fb font8x14 AFILES := intvecs #MM kernel-raspi-arm: setup-raspi-arm kernel-kernel-kobj kernel-exec-kobj diff --git a/arch/arm-raspi/kernel/platform_init.c b/arch/arm-raspi/kernel/platform_init.c index d4a43a08a3..7ddaecdb09 100644 --- a/arch/arm-raspi/kernel/platform_init.c +++ b/arch/arm-raspi/kernel/platform_init.c @@ -1,5 +1,5 @@ /* - Copyright � 2013, The AROS Development Team. All rights reserved. + Copyright © 2013-2015, The AROS Development Team. All rights reserved. $Id$ */ @@ -16,18 +16,12 @@ #include #include -#include - #include "etask.h" #include "kernel_intern.h" #include "kernel_arch.h" #include "kernel_romtags.h" -#undef ARM_PERIIOBASE -extern uint32_t __arm_periiobase; -#define ARM_PERIIOBASE (__arm_periiobase) - void *(*__AllocMem)(); #define ExecAllocMem(bytesize, requirements) \ -- 2.11.4.GIT