From 8b00ce79a32f9a7dedd392f8a64a672fcbd8d1e0 Mon Sep 17 00:00:00 2001 From: Oliver O'Halloran Date: Wed, 21 Dec 2016 15:52:26 +1100 Subject: mambo: move callouts into separate header file This just moves the mambo callout handlers into a private header file so we don't have to continue junking up the main platform file. Signed-off-by: Oliver O'Halloran Reviewed-by: Andrew Donnellan Signed-off-by: Stewart Smith --- platforms/mambo/mambo.c | 41 ++-------------------------------- platforms/mambo/mambo.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 39 deletions(-) create mode 100644 platforms/mambo/mambo.h (limited to 'platforms') diff --git a/platforms/mambo/mambo.c b/platforms/mambo/mambo.c index 663164d..659d1ba 100644 --- a/platforms/mambo/mambo.c +++ b/platforms/mambo/mambo.c @@ -24,6 +24,8 @@ #include #include +#include "mambo.h" + static bool mambo_probe(void) { if (!dt_find_by_path(dt_root, "/mambo")) @@ -32,35 +34,6 @@ static bool mambo_probe(void) return true; } -static inline unsigned long callthru0(int command) -{ - register uint64_t c asm("r3") = command; - asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c)); - return (c); -} - -static inline unsigned long callthru2(int command, unsigned long arg1, - unsigned long arg2) -{ - register unsigned long c asm("r3") = command; - register unsigned long a1 asm("r4") = arg1; - register unsigned long a2 asm("r5") = arg2; - asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c), "r"(a1), "r"(a2)); - return (c); -} - -static inline unsigned long callthru3(int command, unsigned long arg1, - unsigned long arg2, unsigned long arg3) -{ - register unsigned long c asm("r3") = command; - register unsigned long a1 asm("r4") = arg1; - register unsigned long a2 asm("r5") = arg2; - register unsigned long a3 asm("r6") = arg3; - asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c), "r"(a1), "r"(a2), - "r"(a3)); - return (c); -} - #define BD_INFO_SYNC 0 #define BD_INFO_STATUS 1 #define BD_INFO_BLKSZ 2 @@ -69,16 +42,6 @@ static inline unsigned long callthru3(int command, unsigned long arg1, #define BD_SECT_SZ 512 -/* Mambo callthru commands */ -#define SIM_WRITE_CONSOLE_CODE 0 -#define SIM_EXIT_CODE 31 -#define SIM_READ_CONSOLE_CODE 60 -#define SIM_GET_TIME_CODE 70 -#define SIM_CALL_TCL 86 -#define SIM_BOGUS_DISK_READ 116 -#define SIM_BOGUS_DISK_WRITE 117 -#define SIM_BOGUS_DISK_INFO 118 - static inline int callthru_disk_read(int id, void *buf, unsigned long sect, unsigned long nrsect) { diff --git a/platforms/mambo/mambo.h b/platforms/mambo/mambo.h new file mode 100644 index 0000000..bce3e87 --- /dev/null +++ b/platforms/mambo/mambo.h @@ -0,0 +1,59 @@ +/* Copyright 2016 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MAMBO_H__ +#define __MAMBO_H__ + +static inline unsigned long callthru0(int command) +{ + register uint64_t c asm("r3") = command; + asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c)); + return c; +} + +static inline unsigned long callthru2(int command, unsigned long arg1, + unsigned long arg2) +{ + register unsigned long c asm("r3") = command; + register unsigned long a1 asm("r4") = arg1; + register unsigned long a2 asm("r5") = arg2; + asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c), "r"(a1), "r"(a2)); + return c; +} + +static inline unsigned long callthru3(int command, unsigned long arg1, + unsigned long arg2, unsigned long arg3) +{ + register unsigned long c asm("r3") = command; + register unsigned long a1 asm("r4") = arg1; + register unsigned long a2 asm("r5") = arg2; + register unsigned long a3 asm("r6") = arg3; + asm volatile (".long 0x000eaeb0":"=r" (c):"r"(c), "r"(a1), "r"(a2), + "r"(a3)); + return c; +} + +/* Mambo callthru commands */ +#define SIM_WRITE_CONSOLE_CODE 0 +#define SIM_EXIT_CODE 31 +#define SIM_READ_CONSOLE_CODE 60 +#define SIM_GET_TIME_CODE 70 +#define SIM_CALL_TCL 86 +#define SIM_BOGUS_DISK_READ 116 +#define SIM_BOGUS_DISK_WRITE 117 +#define SIM_BOGUS_DISK_INFO 118 + +#endif /* __MAMBO_H__ */ -- cgit v1.1