2012-03-26

raspi-toolchain


root@slitaz:~# echo 'main(){}' | arm-bcm2708-linux-gnueabi-gcc -E -v -
Using built-in specs.
COLLECT_GCC=arm-bcm2708-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/arm-bcm2708/bin/../libexec/gcc/arm-bcm2708-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-bcm2708-linux-gnueabi
Configured with: /home/davidung/crosstool-ng/crosstool-ng-1.9.0/.build/src/gcc-4.5.1/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-bcm2708-linux-gnueabi --prefix=/home/davidung/x-tools/arm-bcm2708-linux-gnueabi --with-sysroot=/home/davidung/x-tools/arm-bcm2708-linux-gnueabi/arm-bcm2708-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-pkgversion=Broadcom-2708 --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/home/davidung/crosstool-ng/crosstool-ng-1.9.0/.build/arm-bcm2708-linux-gnueabi/build/static --with-mpfr=/home/davidung/crosstool-ng/crosstool-ng-1.9.0/.build/arm-bcm2708-linux-gnueabi/build/static --with-mpc=/home/davidung/crosstool-ng/crosstool-ng-1.9.0/.build/arm-bcm2708-linux-gnueabi/build/static --with-ppl=no --with-cloog=no --with-libelf=/home/davidung/crosstool-ng/crosstool-ng-1.9.0/.build/arm-bcm2708-linux-gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-long-double-128 --with-local-prefix=/home/davidung/x-tools/arm-bcm2708-linux-gnueabi/arm-bcm2708-linux-gnueabi//sys-root --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long --with-float=softfp
Thread model: posix
gcc version 4.5.1 (Broadcom-2708)
COLLECT_GCC_OPTIONS='-E' '-v' '-mcpu=arm1176jzf-s' '-mfloat-abi=softfp'

 root@slitaz:~# echo 'main(){}' | arm-none-linux-gnueabi-gcc -E -v -
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/arm-2011.03/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.2/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /scratch/janisjo/arm-linux-lite/src/gcc-4.5-2011.03/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2011 -D__CS_SOURCERYGXX_MIN__=3 -D__CS_SOURCERYGXX_REV__=41 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2011.03-41' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpc=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-libelf=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41)
COLLECT_GCC_OPTIONS='-E' '-v' '-march=armv5te' '-funwind-tables' '-D__CS_SOURCERYGXX_MAJ__=2011' '-D__CS_SOURCERYGXX_MIN__=3' '-D__CS_SOURCERYGXX_REV__=41'

root@slitaz:~# echo 'main(){}' | arm-none-linux-gnueabi-gcc -mtune=arm1176jzf-s
-mcpu=arm1176jzf-s -mfloat-abi=softfp -E -v -
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/arm-2011.03/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.2/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /scratch/janisjo/arm-linux-lite/src/gcc-4.5-2011.03/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2011 -D__CS_SOURCERYGXX_MIN__=3 -D__CS_SOURCERYGXX_REV__=41 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2011.03-41' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpc=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-libelf=/scratch/janisjo/arm-linux-lite/obj/host-libs-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/janisjo/arm-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41)
COLLECT_GCC_OPTIONS='-mtune=arm1176jzf-s' '-mcpu=arm1176jzf-s' '-mfloat-abi=softfp' '-E' '-v' '-funwind-tables' '-D__CS_SOURCERYGXX_MAJ__=2011' '-D__CS_SOURCERYGXX_MIN__=3' '-D__CS_SOURCERYGXX_REV__=41'

root@slitaz:~# ls /opt/arm-2011.03/arm-none-linux-gnueabi/libc/
armv4t/  etc/     lib/     sbin/    thumb2/  usr/
.

raspi-kernel

Kernel

http://elinux.org/RPi_Software#Kernel

The initial patches (Media:Rpi-linux-patches-3.1.9.tgz) are released against the 3.1.9 kernel - but may also work against later kernels.
The kernel is now also available on https://github.com/raspberrypi/linux
[..]

Compiler

The Broadcom processor on Raspberry Pi contains an ARM v6 general purpose processor and a Broadcom VideoCore IV GPU. No data is currently available on other cores (if any) available in the BCM2835.

ARM

There is broad compiler support including gcc - please see ARM Compilers
The ARM is capable of around 500 BOGOMIPS [1], 5400 LINPACK KFLOPS with software floating point and 22000 KFLOPS with softfp hardware floating point[2].
The gcc compiler flags which will produce the most optimal code for the RPi are probably (can someone check!):
-mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=softfp [-marm or -mthumb]
[..]



http://elinux.org/Rpi_kernel_compilation#compiling

compiling
Next you have to configure the kernel:
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
Then building the kernel:
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
You can use the "-j" flag to improve compilation time. If you have a dual core machine you can use "-j 3", for a quad core machine you can use "-j 6", and so on.



2012-03-24

Slitaz-arm-20120324


slitaz-arm-20120324.img

update
busybox: 1.18.4
network 
hostname
top

Slitaz-arm -network


network

1.
# ifconfig lo 127.0.0.1
# ifconfig eth0 10.0.2.15
# route add default gw 10.0.2.2

2.
# ping -c 3 10.0.2.2
PING 10.0.2.2 (10.0.2.2): 56 data bytes
64 bytes from 10.0.2.2: seq=0 ttl=255 time=7.460 ms
64 bytes from 10.0.2.2: seq=1 ttl=255 time=0.308 ms
64 bytes from 10.0.2.2: seq=2 ttl=255 time=0.311 ms

--- 10.0.2.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.308/2.693/7.460 ms

3.
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56 
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.0.0.0
          inet6 addr: fe80::5054:ff:fe12:3456/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:358 (358.0 B)  TX bytes:804 (804.0 B)
          Interrupt:25 DMA chan:ff
.

Slitaz-arm -2

1. download
# wget qemu-1.0.1.tazpkg
# wget qemu-arm-1.0.1.tazpkg
# wget slitaz-arm.img (3.3M)

2. install qemu & qemu-arm
# tazpkg install qemu-1.0.1.tazpkg
# tazpkg install qemu-arm-1.0.1.tazpkg

3. boot
# qemu-system-arm -M versatilepb -cpu arm1176 -kernel slitaz-arm.img &

2012-03-22

Slitaz-arm


slitaz-arm
1.
   Kernel version: 3.1.9
   Architecture: armv6

2.
# uname -a
Linux slitaz 3.1.9-slitaz #1 Thu Mar 22 12:33:31 UTC 2012 armv6l unknown

3.
# du -sh /
1.6M   

4.
# cat /proc/cpuinfo
Processor    : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 348.97
Features    : swp half thumb fastmult edsp java tls
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xb76
CPU revision    : 7

Hardware    : ARM-Versatile PB
Revision    : 0000
Serial        : 0000000000000000

5.
# dmesg | head
Linux version 3.1.9-slitaz (root@slitaz) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #1 Thu Mar 22 12:33:31 UTC 2012
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
CPU: VIPT aliasing data cache, unknown instruction cache
Machine: ARM-Versatile PB
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 8192
free_area_init_node: node 0, pgdat c0622808, node_mem_map c0640000
  Normal zone: 64 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 8128 pages, LIFO batch:0

6.
# busybox | head -3
BusyBox v1.12.0 (2012-03-21 23:44:08 UTC) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.

2012-03-06

Slitaz -- raspi-Distributions

Distributions

1. What Linux distros will be supported at launch?
http://www.raspberrypi.org/faqs
[..]
Fedora, Debian and ArchLinux will be supported from the start. We hope to see support from other distros later. (Because of issues with newer releases of Ubuntu and the ARM processor we are using, Ubuntu can’t commit to support Raspberry Pi at the moment.) You will be able to download distro images from us as soon as the Raspberry Pi is released, and we will also be selling pre-loaded SD cards shortly after release.


2. RPi Distributions
http://elinux.org/RPi_Distributions#Distributions

Distributions


Operational Systems for Raspberry Pi models A and B

Arch Linux ARMDebian ARMFedora ARMMeego MERRisc OS
Latest version01/03/2012Squeeze
(16/02/2012)
F14 Remix R1

First version01/03/2012Squeeze
(16/02/2012)
F14 Remix R1

TypeLinuxLinuxLinuxLinux (embedded)ARM RISC OS
LicenseOSI GPLv2Core: OSI, mixed
(GPLv2, BSD, etc)
OSI, mixed
(GPLv2, BSD, etc)
OSI, mixed
(GPLv2, BSD, etc)
Shared Source
Memory footprint


~34 MiB
Image/Installerraw imageraw imageFedora RPM: installer

Windows Zip: installer

Other Linux: Python script


Packages4,416?[1]16,464?~320 (core)

3. Distributions
http://elinux.org/RPi_Software#Distributions
[..]
Source code and binaries for Raspberry Pi will be available at various places from launch, including pre-built Linux distributions.
Raspberry Pi Fedora Remix 14, developed by Seneca College, is the recommended distribution and pre-loaded SD cards with this distribution will be available shortly after the initial launch through the Raspberry Pi Store.


4. Downloads
http://www.raspberrypi.org/downloads
[..]

Debian “squeeze”

Reference root filesystem from Gray and Dom, containing LXDE, Midori, development tools and example source code for multimedia functions.
Torrent debian6-17-02-2012.zip.torrent
Direct download debian6-17-02-2012.zip
SHA-1 4bf7a47151ab6f1835be53ec99d8d750861213d4
Default login pi/suse

Arch Linux ARM

Arch Linux ARM is based on Arch Linux, which aims for simplicity and full control to the end user. Note that this distribution may not be suitable for beginners.
Torrent archlinuxarm-01-03-2012.zip.torrent
Direct download archlinuxarm-01-03-2012.zip
SHA-1 94ba748b1d0de704e5c4bd1335570fe1d23b38ba
Default login root/root


Fedora 14 Remix

Our recommended distribution for newcomers to Raspberry Pi and day-to-day use.

Torrent raspberrypi-fedora-remix-14-r1.img.gz.torrent
Direct download raspberrypi-fedora-remix-14-r1.img.gz
SHA-1 af24defe109b37435dfab07b7654974ad434c7eb
Default login root/



5. mirror
Raspberry Pi Distribution Downloads

Total number of mirrors: 96
Total estimated bandwidth: 180 Gbits/s

Total number of mirrors in this continent: 1
Total estimated bandwidth for this continent: 75 Gbits/s
File: debian6-17-02-2012.zip
File Size: 797.11 MiB

Raspberry Pi Distribution Downloads

Total number of mirrors: 96
Total estimated bandwidth: 180 Gbits/s

Total number of mirrors in this continent: 1
Total estimated bandwidth for this continent: 75 Gbits/s
File: archlinuxarm-01-03-2012.zip
File Size: 215.73 MiB


6. Raspberry Pi Fedora Remix 14











width=100
The Raspberry Pi Fedora Remix 14 was the first version of the Remix released.
  • Release date: February 29, 2012
  • Fedora package collection version: 14
  • Kernel version: 3.1.9
  • Architecture: armv5tel
The next release will be the Raspberry Pi Fedora Remix 17.


 SD Card Installation Using the dd Command
http://zenit.senecac.on.ca/wiki/index.php/Raspberry_Pi_Fedora_Remix_Installation
[..]
Steps:
    Download the image (link to be provided after mirrors sync up)
.

2012-03-05

Slitaz -- raspi-git repo

git repo
https://github.com/raspberrypi

1. firmware
https://github.com/raspberrypi/firmware
firmware and opt/vc from original debian sdcard release

2. quake3
https://github.com/raspberrypi/quake3
a baseline Quake 3 which may be used for further development.

3. linux
https://github.com/raspberrypi/linux
kernel source

4. tools
https://github.com/raspberrypi/tools
toolchain and tool to produce kernel.img


5. initial patches
http://elinux.org/images/8/8a/Rpi-linux-patches-3.1.9.tgz
http://elinux.org/RPi_Software#Kernel

Kernel

The initial patches (Media:Rpi-linux-patches-3.1.9.tgz) are released against the 3.1.9 kernel - but may also work against later kernels.
The kernel is now also available on https://github.com/raspberrypi/linux



6. bcm2708
http://www.cnx-software.com/2012/01/22/linux-kernel-3-1-9-for-raspberry-pi-released
[..]
The code related to Broadcom BCM2835 processor is referred as bcm2708 in the kernel and I can see committed related to the watchdog timer, the framebuffer,  the VCHIQ driver (the driver sending messages to the GPU) and general commits for bcm2708.

For those interested in the messages used to communicate between userspace and the GPU, the VCHIQ driver code is located at drivers/misc/vc04_services in the tree. I haven't studied it yet, but as the platform should support graphics standards such as OpenGL and OpenMAX IL, most people should not really care about this interface as I suppose the OpenGL library (Mesa?) uses this driver.

2012-03-03

raspi - GPU

GPU - bootloader
start.elf: The GPU binary firmware image, provided by the foundation.

http://elinux.org/RPi_Software
[..]
BootRom

The boards do not include NAND or NOR storage - everything is on the SD card, which has a FAT32 partition with GPU firmware and a kernel image, and an EXT2 partition with the rootfs.

We're not currently using a bootloader - we actually boot via the GPU, which contains a proprietary RISC core (wacky architecture). The GPU mounts the SD card, loads GPU firmware and brings up display/video/3d, loads a kernel image, resets the SD card host and starts the ARM.

You could replace the kernel image with a bootloader image, and that would work fine.

[..]
GPU

The GPU provides APIs for Open GL ES 2.0, hardware-accelerated OpenVG, and 1080p30 H.264 high-profile decode.

The GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24 GFLOPs of general purpose compute and features a bunch of texture filtering and DMA infrastructure - the Raspberry Pi team are looking at how they can make this available to application programmers.

The GPU blob is an 18MB elf file, including libraries. It does an awful lot. [3]


http://www.raspberrypi.org/faqs
[..]
Is there a GPU binary?

Yes. The GPU binary also contains the first stage bootloader.


what means “GPU binary”?
Reply ↓

    jamesh on September 1, 2011 at 8:19 pm said:

    The is a binary blob that runs on the GPU – this is closed source, but there are drivers that run on the Arm that give access to the GPU features ie OpenGLES, OpenVG etc. The device boots the GPU first, the bootloader loads the GPU with this binary blob, then Linux is booted on the Arm.

Raspberry Pi Fedora Remix 14


The Raspberry Pi Fedora Remix 14 was the first version of the Remix released.
  • Release date: February 29, 2012
  • Fedora package collection version: 14
  • Kernel version: 3.1.9
  • Architecture: armv5tel
The next release will be the Raspberry Pi Fedora Remix 17.

http://zenit.senecac.on.ca/wiki/index.php/Raspberry_Pi_Fedora_Remix_14

Slitaz -- raspi - boot

start.elf: The GPU binary firmware image, provided by the foundation.

0. download util-linux-ng-mount
http://dl.dropbox.com/u/1024195/util-linux-ng-mount-2.19.1.tazpkg
# mount -V
mount from util-linux 2.19.1 (with libblkid support)


1.
root@slitaz:/media/DATA/raspi/debian6-17-02-2012# file debian6-17-02-2012.img
debian6-17-02-2012.img: x86 boot sector; partition 1: ID=0xc, starthead 0, startsector 2048, 153600 sectors; partition 2: ID=0x83, starthead 3, startsector 157696, 3256320 sectors; partition 3: ID=0x82, starthead 3, startsector 3416064, 391168 sectors, code offset 0xb8


2.
root@slitaz:/media/DATA/raspi/debian6-17-02-2012# parted debian6-17-02-2012.img
GNU Parted 2.4
Using /media/DATA/raspi/debian6-17-02-2012/debian6-17-02-2012.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                         
unit s
(parted) print                                                          
print
Model:  (file)
Disk /media/DATA/raspi/debian6-17-02-2012/debian6-17-02-2012.img: 3862528s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start     End       Size      Type     File system     Flags
 1      2048s     155647s   153600s   primary  fat32           lba
 2      157696s   3414015s  3256320s  primary  ext4
 3      3416064s  3807231s  391168s   primary  linux-swap(v1)

(parted) unit b                                                         
unit b
(parted) print                                                          
print
Model:  (file)
Disk /media/DATA/raspi/debian6-17-02-2012/debian6-17-02-2012.img: 1977614336B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start        End          Size         Type     File system     Flags
 1      1048576B     79691775B    78643200B    primary  fat32           lba
 2      80740352B    1747976191B  1667235840B  primary  ext4
 3      1749024768B  1949302783B  200278016B   primary  linux-swap(v1)

(parted) quit                                                           
quit
root@slitaz:/media/DATA/raspi/debian6-17-02-2012#


3.
root@slitaz:/media/DATA/raspi/debian6-17-02-2012# mount -o loop,offset=1048576 -t vfat debian6-17-02-2012.img /mnt/raspi-fat
root@slitaz:/media/DATA/raspi/debian6-17-02-2012# ls -l /mnt/raspi-fat
total 28072
-rwxr-xr-x    1 root     root       2001244 Feb 17 12:02 arm128_start.elf
-rwxr-xr-x    1 root     root       2001244 Feb 17 12:02 arm192_start.elf
-rwxr-xr-x    1 root     root       2001244 Feb 17 12:02 arm224_start.elf
-rwxr-xr-x    1 root     root         16528 Feb 13 18:53 bootcode.bin
-rwxr-xr-x    1 root     root           141 Feb 14 18:38 cmdline_testmode.txt
-rwxr-xr-x    1 root     root           127 Feb 14 18:52 cmdline.txt
-rwxr-xr-x    1 root     root      16412020 Feb 14 18:47 kernel_emergency.img
-rwxr-xr-x    1 root     root       3990020 Feb 13 18:53 kernel.img
-rwxr-xr-x    1 root     root        314691 Feb 13 18:53 loader.bin
-rwxr-xr-x    1 root     root       2001244 Feb 17 12:02 start.elf
root@slitaz:/media/DATA/raspi/debian6-17-02-2012#



4.
https://github.com/raspberrypi/firmware/tree/master/boot
firmware / boot
    name     age history message
    ..        
file     arm128_start.elf     6 days ago    
file     arm192_start.elf     6 days ago    
file     arm224_start.elf     6 days ago    
file     bootcode.bin     6 days ago    
file     cmdline.txt     6 days ago    
file     kernel.img     6 days ago    
file     kernel_emergency.img     6 days ago    
file     loader.bin     6 days ago    
file     start.elf     6 days ago     


5.
http://elinux.org/RPi_Advanced_Setup
[..]
Setting up the boot partition
The boot partition must contain:

    bootcode.bin : 2nd stage bootloader, starts with SDRAM disabled
    loader.bin : 3rd stage bootloader, starts with SDRAM enabled
    start.elf: The GPU binary firmware image, provided by the foundation.
    kernel.img: The OS kernel to load on the ARM processor. Normally this is Linux - see instructions for compiling a kernel.
    cmdline.txt: Parameters passed to the kernel on boot.


Optional files:

    config.txt: A configuration file read by the GPU. Use this to override set the video mode, alter system clock speeds, voltages, etc.
    vlls directory: Additional GPU code, e.g. extra codecs. Not present in the initial release.

Additional files supplied by the foundation

These files are also present on the SD cards supplied by the foundation.

Additional kernels. Rename over kernel.img to use them (ensure you have a backup of the original kernel.img first!):

    kernel_emergency.img : kernel with busybox rootfs. You can use this to repair the main linux partition using e2fsck if the linux partition gets corrupted.


Additional GPU firmware images, rename over start.elf to use them:

    arm128_start.elf : 128M ARM, 128M GPU split (use this for heavy 3D work, possibly also required for some video decoding)
    arm192_start.elf : 192M ARM, 64M GPU split (this is the default)
    arm224_start.elf : 224M ARM, 32M GPU split (use this for Linux only with no 3D or video processing. Its enough for the 1080p framebuffer, but not much else)
.

raspi - BCM2835




BCM2835-ARM-Peripherals
http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

http://www.raspberrypi.org/archives/615
[..]
We've been leaning (gently and charmingly) on Broadcom, who make BCM2835, the SoC at the heart of the Raspberry Pi, to produce an abbreviated datasheet describing the ARM peripherals in the chip. If you're a casual user, this won't be of much interest to you, but if you're wanting to port your own operating system or just want to understand our Linux kernel sources, this is the document for you.

2012-03-02

Slitaz -- Raspi -2








1.
pi@raspberrypi:~$ uname -a
Linux raspberrypi 3.1.9 #2 Sat Feb 18 12:14:02 ICT 2012 armv6l GNU/Linux

2.
pi@raspberrypi:~$ cat /etc/debian_version
6.0.4

3.
pi@raspberrypi:~$ dmesg | head -12
Linux version 3.1.9 (jaufranc@debian) (gcc version 4.4.5 (Debian 4.4.5-8) ) #2 Sat Feb 18 12:14:02 ICT 2012
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
CPU: VIPT aliasing data cache, unknown instruction cache
Machine: ARM-Versatile PB
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 65536
free_area_init_node: node 0, pgdat c03d22fc, node_mem_map c03ee000
  Normal zone: 512 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 65024 pages, LIFO batch:15
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768

4.
pi@raspberrypi:~$ cat /proc/cpuinfo
Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 376.01
Features        : swp half thumb fastmult edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : ARM-Versatile PB
Revision        : 0000
Serial          : 0000000000000000
pi@raspberrypi:~$

Slitaz -- Raspberry Pi



Raspberry Pi
An ARM GNU/Linux box for $25. Take a byte!

1. 
http://www.raspberrypi.org/
http://elinux.org/RPi-hub

The Raspberry Pi is a credit-card sized computer board that plugs into a TV and a keyboard. It's a miniature ARM-based PC which can be used for many of the things that a desktop PC does, like spreadsheets, word-processing and games. It also plays High-Definition video.

Features

  •     Broadcom BCM2835 700MHz ARM1176JZFS processor with FPU and Videocore 4 GPU
  •     GPU provides Open GL ES 2.0, hardware-accelerated OpenVG, and 1080p30 H.264 high-profile decode
  •     GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture filtering and DMA infrastructure
  •     256MB RAM
  •     Boots from SD card, running the Fedora version of Linux
  •     10/100 BaseT Ethernet socket
  •     HDMI socket
  •     USB 2.0 socket
  •     RCA video socket
  •     SD card socket
  •     Powered from microUSB socket
  •     3.5mm audio out jack
  •     Header footprint for camera connection
  •     Size: 85.6 x 53.98 x 17mm


2. download
Raspberry Pi Releases 1st SD Card Image (Debian)
http://www.raspberrypidownload.co.uk/debian/download/debian6-17-02-2012.zip

http://dl.dropbox.com/u/45842273/zImage_3.1.9
http://dl.dropbox.com/u/1024195/qemu-1.0.1.tazpkg
http://dl.dropbox.com/u/1024195/qemu-arm-1.0.1.tazpkg


3.
# unzip debian6-17-02-2012.zip
debian6-17-02-2012.img
debian6-17-02-2012.img.sha1


4. install qemu-arm-1.0.1
# tazpkg install /pathtodir/qemu-1.0.1.tazpkg
# tazpkg install /pathtodir/qemu-arm-1.0.1.tazpkg
# qemu-system-arm -cpu ? | grep 1176
  arm1176


5. start qemu-arm
# qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda debian6-17-02-2012.img -kernel zImage_3.1.9 -append "root=/dev/sda2" -serial stdio


Default login     pi/suse
$ startx



That's it.