Skip to content

Commit

Permalink
Import
Browse files Browse the repository at this point in the history
  • Loading branch information
dimerr committed Aug 8, 2022
0 parents commit 2192d47
Show file tree
Hide file tree
Showing 8,585 changed files with 2,074,235 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
306 changes: 306 additions & 0 deletions COPYING

Large diffs are not rendered by default.

540 changes: 540 additions & 0 deletions CREDITS

Large diffs are not rendered by default.

1,391 changes: 1,391 additions & 0 deletions MAINTAINERS

Large diffs are not rendered by default.

863 changes: 863 additions & 0 deletions MAKEALL

Large diffs are not rendered by default.

971 changes: 971 additions & 0 deletions Makefile

Large diffs are not rendered by default.

5,790 changes: 5,790 additions & 0 deletions README

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions api/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# (C) Copyright 2007 Semihalf
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundatio; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

include $(TOPDIR)/config.mk

LIB = $(obj)libapi.o

COBJS-$(CONFIG_API) += api.o api_display.o api_net.o api_storage.o \
api_platform-$(ARCH).o

COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))

$(LIB): $(obj).depend $(OBJS)
$(call cmd_link_o_target, $(OBJS))

# defines $(obj).depend target
include $(SRCTREE)/rules.mk

sinclude $(obj).depend
55 changes: 55 additions & 0 deletions api/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
U-Boot machine/arch independent API for external apps
=====================================================

1. Main assumptions

- there is a single entry point (syscall) to the API

- per current design the syscall is a C-callable function in the U-Boot
text, which might evolve into a real syscall using machine exception trap
once this initial version proves functional

- the consumer app is responsible for producing appropriate context (call
number and arguments)

- upon entry, the syscall dispatches the call to other (existing) U-Boot
functional areas like networking or storage operations

- consumer application will recognize the API is available by searching
a specified (assumed by convention) range of address space for the
signature

- the U-Boot integral part of the API is meant to be thin and non-intrusive,
leaving as much processing as possible on the consumer application side,
for example it doesn't keep states, but relies on hints from the app and
so on

- optional (CONFIG_API)


2. Calls

- console related (getc, putc, tstc etc.)
- system (reset, platform info)
- time (delay, current)
- env vars (enumerate all, get, set)
- devices (enumerate all, open, close, read, write); currently two classes
of devices are recognized and supported: network and storage (ide, scsi,
usb etc.)


3. Structure overview

- core API, integral part of U-Boot, mandatory
- implements the single entry point (mimics UNIX syscall)

- glue
- entry point at the consumer side, allows to make syscall, mandatory
part

- helper conveniency wrappers so that consumer app does not have to use
the syscall directly, but in a more friendly manner (a la libc calls),
optional part

- consumer application
- calls directly, or leverages the provided glue mid-layer
Loading

0 comments on commit 2192d47

Please sign in to comment.