Skip to content

Commit

Permalink
mambo: move callouts into separate header file
Browse files Browse the repository at this point in the history
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 <oohall@gmail.com>
Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
oohal authored and stewartsmith committed Jan 4, 2017
1 parent 7edaf63 commit 8b00ce7
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 39 deletions.
41 changes: 2 additions & 39 deletions platforms/mambo/mambo.c
Expand Up @@ -24,6 +24,8 @@
#include <time-utils.h>
#include <time.h>

#include "mambo.h"

static bool mambo_probe(void)
{
if (!dt_find_by_path(dt_root, "/mambo"))
Expand All @@ -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
Expand All @@ -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)
{
Expand Down
59 changes: 59 additions & 0 deletions 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__ */

0 comments on commit 8b00ce7

Please sign in to comment.