Difference between revisions of "Bering-uClibc 5.x - User Guide - Appendices - Hardware-Specific Guides"

From bering-uClibc
Jump to: navigation, search
(Added link to BCM2835 data sheet)
(Added Introduction and Header and Footer. Some detail moved to a new Developer Guide page)
Line 1: Line 1:
 +
{| summary="Navigation header" width="100%"
 +
! colspan="3" align="center" | [[Bering-uClibc 5.x - User Guide - Hardware-Specific Guides|Hardware-Specific Guides]]
 +
|-
 +
| width="20%" align="left"  |
 +
! width="60%" align="center" | [[Bering-uClibc 5.x - User Guide]]
 +
| width="20%" align="right"  |
 +
|}
 +
----
 +
 +
 +
=Introduction=
 +
This page provides guidelines for [[Bering-uClibc 5.x]] users of specific hardware devices.
 +
 +
[[Bering-uClibc 5.x]] '''developers''' might also want to consult the equivalent page in the [[Bering-uClibc 5.x - Devloper Guide - Appendices - Hardware-Specific Guides|Developer Guide]].
 +
 +
 
=ARM CPU Architecture=
 
=ARM CPU Architecture=
 
==[http://www.arm.com/products/tools/development-boards/versatile/platform-baseboards.php ARM Versatile Platform Baseboards]==
 
==[http://www.arm.com/products/tools/development-boards/versatile/platform-baseboards.php ARM Versatile Platform Baseboards]==
Line 17: Line 33:
  
  
==[http://www.raspberrypi.org/ Raspberry Pi]==
+
==[http://www.raspberrypi.org/ Raspberry Pi] Model B==
 
===Overview===
 
===Overview===
 
The Raspberry Pi is a physically small and very low-cost single board computer.
 
The Raspberry Pi is a physically small and very low-cost single board computer.
It has a [http://www.broadcom.com/products/BCM2835 Broadcom BCM2835] "system on a chip" integrated circuit containing an [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/index.html ARM1176JZF-S] CPU which implements the [http://en.wikipedia.org/wiki/ARM11 ARMv6] architecture standard.
+
The "Model B" variant includes a 10/100 Ethernet port and two USB 2.0 ports.
A PDF data sheet for the BCM2835 can be downloaded from [http://dmkenr5gtnd8f.cloudfront.net/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf here].
+
The BCM2835 contains a variety of devices. Many of these seem to be identified with the string BCM2708 rather than BCM2835.
+
The Raspberry Pi foundation have added a specific <tt>bcm2708</tt> "platform" to a branch of the Linux kernel source. See [http://github.com/raspberrypi/linux/tree/rpi-patches/arch/arm/mach-bcm2708 the Raspberry Pi Git Hub repository]
+
  
 
===Hardware / Driver Details===
 
===Hardware / Driver Details===
Line 40: Line 53:
 
** This seems to be a standard (uncompressed) Linux kernel <code class="filename">Image</code> file with a special 32KB prefix. See [http://www.cnx-software.com/2012/01/22/linux-kernel-3-1-9-for-raspberry-pi-released/ here]
 
** This seems to be a standard (uncompressed) Linux kernel <code class="filename">Image</code> file with a special 32KB prefix. See [http://www.cnx-software.com/2012/01/22/linux-kernel-3-1-9-for-raspberry-pi-released/ here]
 
* A file called <code class="filename">cmdline.txt</code> containing the kernel command line
 
* A file called <code class="filename">cmdline.txt</code> containing the kernel command line
 
There does not seem to be any standard provision for loading an initramfs (initrd) file.
 
We probably need to embed the initrd into the kernel.
 
  
 
It seems customary to put the files relating to a particular Linux distribution on a second disk partition. We therefore need a second FAT-32 disk partition for <code class="filename">leaf.cfg</code>, all the <code class="filename">.lrp</code> Package files etc.
 
It seems customary to put the files relating to a particular Linux distribution on a second disk partition. We therefore need a second FAT-32 disk partition for <code class="filename">leaf.cfg</code>, all the <code class="filename">.lrp</code> Package files etc.
  
 
Note that the Raspberry Pi references the first disk partition as <code class="filename">/dev/mmcblk0p1</code> and the second disk partition as <code class="filename">/dev/mmcblk0p2</code>.
 
Note that the Raspberry Pi references the first disk partition as <code class="filename">/dev/mmcblk0p1</code> and the second disk partition as <code class="filename">/dev/mmcblk0p2</code>.
 +
 +
 +
----
 +
{| summary="Navigation footer" width="100%"
 +
| width="40%" align="left"  |
 +
| width="20%" align="center" | [[Bering-uClibc 5.x - User Guide|Up]]
 +
| width="40%" align="right"  |
 +
|}
 +
 +
[[Category:Bering-uClibc 5.x]]
 +
[[Category:User Guide]]

Revision as of 10:32, 9 April 2012

Hardware-Specific Guides
Bering-uClibc 5.x - User Guide


Introduction

This page provides guidelines for Bering-uClibc 5.x users of specific hardware devices.

Bering-uClibc 5.x developers might also want to consult the equivalent page in the Developer Guide.


ARM CPU Architecture

ARM Versatile Platform Baseboards

Overview

The ARM® Versatile™ system boards are primarily relevant to Bering-uClibc because they are well supported and tested targets for the QEMU ARM emulator which is invaluable when developing Bering-uClibc 5.x implementations which target physical ARM processor hardware.

Several different CPU variants are available:

  • ARM926EJ-S
  • ARM1176JZF-S
    • Same processor as the Raspberry Pi but only supported by very recent versions of QEMU; confirmed as present in QEMU 1.0.1
  • ARM11MPCore
  • Coretex-A8

Hardware / Driver Details

  • The network controller chip is an SMSC LAN91C11x (SMC91C11xFD) and needs kernel Module smc91x.ko
  • The disk controller chip is an LSI Logic / Symbios Logic 53C895a and needs kernel Module sym53c8xx.ko
    • This is a SCSI disk controller. Disk devices appear as e.g. /dev/sda


Raspberry Pi Model B

Overview

The Raspberry Pi is a physically small and very low-cost single board computer. The "Model B" variant includes a 10/100 Ethernet port and two USB 2.0 ports.

Hardware / Driver Details

Refer to the example boot log here

  • The network controller chip is an ???
  • The disk controller chip is an ???

Boot Disk Layout

The Raspberry Pi must boot from its SD card and some vital files must be present in the right location.

The first disk partition must be formatted as a FAT-32 filesystem which must contain:

  • A file called start.elf which contains the GPU binary driver
  • A file called bootcode.bin which is the second stage bootloader
  • A file called loader.bin which is the third stage bootloader
  • A file called kernel.img which is the Linux kernel
    • This seems to be a standard (uncompressed) Linux kernel Image file with a special 32KB prefix. See here
  • A file called cmdline.txt containing the kernel command line

It seems customary to put the files relating to a particular Linux distribution on a second disk partition. We therefore need a second FAT-32 disk partition for leaf.cfg, all the .lrp Package files etc.

Note that the Raspberry Pi references the first disk partition as /dev/mmcblk0p1 and the second disk partition as /dev/mmcblk0p2.



Up