1
0
Fork 0

api: Add FreeBSD API support for MIPS platforms

This patch adds U-Boot API support (used by FreeBSD loader) for MIPS platforms.

Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
utp
Stanislav Galabov 2016-02-04 12:13:44 +02:00 committed by Tom Rini
parent e4c1b4d8c1
commit 7c60423106
4 changed files with 60 additions and 0 deletions

View File

@ -7,3 +7,4 @@
obj-y += api.o api_display.o api_net.o api_storage.o
obj-$(CONFIG_ARM) += api_platform-arm.o
obj-$(CONFIG_PPC) += api_platform-powerpc.o
obj-$(CONFIG_MIPS) += api_platform-mips.o

View File

@ -0,0 +1,32 @@
/*
* (C) Copyright 2007 Stanislav Galabov <sgalabov@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0+
*
* This file contains routines that fetch data from bd_info sources
*/
#include <config.h>
#include <linux/types.h>
#include <api_public.h>
#include <asm/u-boot.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
/*
* Important notice: handling of individual fields MUST be kept in sync with
* include/asm-generic/u-boot.h, so any changes
* need to reflect their current state and layout of structures involved!
*/
int platform_sys_info(struct sys_info *si)
{
platform_set_mr(si, gd->bd->bi_memstart,
gd->bd->bi_memsize, MR_ATTR_DRAM);
return 1;
}

View File

@ -10,6 +10,9 @@ endif
ifeq ($(ARCH),arm)
LOAD_ADDR = 0x1000000
endif
ifeq ($(ARCH),mips)
LOAD_ADDR = 0x80200000
endif
# Resulting ELF and binary exectuables will be named demo and demo.bin
extra-y = demo

View File

@ -40,6 +40,30 @@ syscall:
ldr ip, =syscall_ptr
ldr pc, [ip]
#elif defined(CONFIG_MIPS)
.text
.globl __start
.ent __start
__start:
sw $sp, search_hint
b main
.end __start
.globl syscall
.ent syscall
syscall:
sw $ra, return_addr
lw $t9, syscall_ptr
jalr $t9
nop
lw $ra, return_addr
jr $ra
nop
.end syscall
return_addr:
.align 4
.long 0
#else
#error No support for this arch!
#endif