From 2be811bac24d6bfb477fbd29df3df6280e145e23 Mon Sep 17 00:00:00 2001 From: David Given Date: Fri, 21 Jun 2013 23:21:08 +0100 Subject: [PATCH] Updated VC4 docs. --HG-- branch : dtrg-videocore --- man/vc4_as.6 | 45 +++++++++++++++++++++++++++++++++++++++++++++ plat/rpi/README | 3 +++ 2 files changed, 48 insertions(+) create mode 100644 man/vc4_as.6 diff --git a/man/vc4_as.6 b/man/vc4_as.6 new file mode 100644 index 000000000..81b10813d --- /dev/null +++ b/man/vc4_as.6 @@ -0,0 +1,45 @@ +.\" $Header$ +.TH VC4_AS 1 +.ad +.SH NAME +vc4_as \- assembler for Broadcom VideoCore IV + +.SH SYNOPSIS +/usr/em/lib/vc4_as [options] argument ... + +.SH DESCRIPTION +This assembler is made with the general framework +described in \fIuni_ass\fP(6). + +.SH SYNTAX +The assembler uses a modified version of the syntax described in +https://github.com/hermanhermitage/videocoreiv/wiki/VideoCore-IV-Programmers-Manual: +condition codes must be prefixed with a full stop. Vector instructions are not +yet supported. + +.SH "SEE ALSO" +uni_ass(6), +ack(1), +.br +https://github.com/hermanhermitage/videocoreiv +.SH EXAMPLE +.nf +.ta 8n 16n 24n 32n 40n 48n +An example of VideoCore IV assembly language: + + ldb r0, __uart_status + b.eq r0, #0, 1b + + ! receive 1 byte (returned in r0) + mov r1, #AUX_MU_LSR_REG + mov r2, #AUX_MU_IO_REG + ! loop until char available +recvwait: + ld r3, (r1) + and r3, #0x1 + b.ne r3, #0x1, recvwait + + ldb r0, (r2) +1: + b lr +.fi diff --git a/plat/rpi/README b/plat/rpi/README index f8836724c..7d78433dd 100644 --- a/plat/rpi/README +++ b/plat/rpi/README @@ -5,6 +5,9 @@ This is a fairly crude port of the ACK to produce VideoCore IV machine code, suitable for use on the Raspberry Pi. It produces terrible but working code. The resulting binaries can be used either bare metal or loaded as a GPU kernel and executed using a modified mailbox.c (see below). +Currently floating point support is present but incomplete; and as the +VideoCore IV does not have double-precision float support, the C compiler +treats doubles as single precision. As much of the standard C library as is relevant works; if you're running in bare-metal mode, you can hook stdin/stdout up to the