mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 02:09:42 +00:00
![Bryan Wu](/assets/img/avatar_default.png)
This adds support for the Analog Devices Blackfin processor architecture, and currently supports the BF533, BF532, BF531, BF537, BF536, BF534, and BF561 (Dual Core) devices, with a variety of development platforms including those avaliable from Analog Devices (BF533-EZKit, BF533-STAMP, BF537-STAMP, BF561-EZKIT), and Bluetechnix! Tinyboards. The Blackfin architecture was jointly developed by Intel and Analog Devices Inc. (ADI) as the Micro Signal Architecture (MSA) core and introduced it in December of 2000. Since then ADI has put this core into its Blackfin processor family of devices. The Blackfin core has the advantages of a clean, orthogonal,RISC-like microprocessor instruction set. It combines a dual-MAC (Multiply/Accumulate), state-of-the-art signal processing engine and single-instruction, multiple-data (SIMD) multimedia capabilities into a single instruction-set architecture. The Blackfin architecture, including the instruction set, is described by the ADSP-BF53x/BF56x Blackfin Processor Programming Reference http://blackfin.uclinux.org/gf/download/frsrelease/29/2549/Blackfin_PRM.pdf The Blackfin processor is already supported by major releases of gcc, and there are binary and source rpms/tarballs for many architectures at: http://blackfin.uclinux.org/gf/project/toolchain/frs There is complete documentation, including "getting started" guides available at: http://docs.blackfin.uclinux.org/ which provides links to the sources and patches you will need in order to set up a cross-compiling environment for bfin-linux-uclibc This patch, as well as the other patches (toolchain, distribution, uClibc) are actively supported by Analog Devices Inc, at: http://blackfin.uclinux.org/ We have tested this on LTP, and our test plan (including pass/fails) can be found at: http://docs.blackfin.uclinux.org/doku.php?id=testing_the_linux_kernel [m.kozlowski@tuxland.pl: balance parenthesis in blackfin header files] Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Aubrey Li <aubrey.li@analog.com> Signed-off-by: Jie Zhang <jie.zhang@analog.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
169 lines
4.1 KiB
Text
169 lines
4.1 KiB
Text
/*
|
|
* File: Documentation/blackfin/Filesystems
|
|
* Based on:
|
|
* Author:
|
|
*
|
|
* Created:
|
|
* Description: This file contains the simple DMA Implementation for Blackfin
|
|
*
|
|
* Rev: $Id: Filesystems 2384 2006-11-01 04:12:43Z magicyang $
|
|
*
|
|
* Modified:
|
|
* Copyright 2004-2006 Analog Devices Inc.
|
|
*
|
|
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
*
|
|
*/
|
|
|
|
How to mount the root file system in uClinux/Blackfin
|
|
-----------------------------------------------------
|
|
|
|
1 Mounting EXT3 File system.
|
|
------------------------
|
|
|
|
Creating an EXT3 File system for uClinux/Blackfin:
|
|
|
|
|
|
Please follow the steps to form the EXT3 File system and mount the same as root
|
|
file system.
|
|
|
|
a Make an ext3 file system as large as you want the final root file
|
|
system.
|
|
|
|
mkfs.ext3 /dev/ram0 <your-rootfs-size-in-1k-blocks>
|
|
|
|
b Mount this Empty file system on a free directory as:
|
|
|
|
mount -t ext3 /dev/ram0 ./test
|
|
where ./test is the empty directory.
|
|
|
|
c Copy your root fs directory that you have so carefully made over.
|
|
|
|
cp -af /tmp/my_final_rootfs_files/* ./test
|
|
|
|
(For ex: cp -af uClinux-dist/romfs/* ./test)
|
|
|
|
d If you have done everything right till now you should be able to see
|
|
the required "root" dir's (that's etc, root, bin, lib, sbin...)
|
|
|
|
e Now unmount the file system
|
|
|
|
umount ./test
|
|
|
|
f Create the root file system image.
|
|
|
|
dd if=/dev/ram0 bs=1k count=<your-rootfs-size-in-1k-blocks> \
|
|
> ext3fs.img
|
|
|
|
|
|
Now you have to tell the kernel that will be mounting this file system as
|
|
rootfs.
|
|
So do a make menuconfig under kernel and select the Ext3 journaling file system
|
|
support under File system --> submenu.
|
|
|
|
|
|
2. Mounting EXT2 File system.
|
|
-------------------------
|
|
|
|
By default the ext2 file system image will be created if you invoke make from
|
|
the top uClinux-dist directory.
|
|
|
|
|
|
3. Mounting CRAMFS File System
|
|
----------------------------
|
|
|
|
To create a CRAMFS file system image execute the command
|
|
|
|
mkfs.cramfs ./test cramfs.img
|
|
|
|
where ./test is the target directory.
|
|
|
|
|
|
4. Mounting ROMFS File System
|
|
--------------------------
|
|
|
|
To create a ROMFS file system image execute the command
|
|
|
|
genromfs -v -V "ROMdisk" -f romfs.img -d ./test
|
|
|
|
where ./test is the target directory
|
|
|
|
|
|
5. Mounting the JFFS2 Filesystem
|
|
-----------------------------
|
|
|
|
To create a compressed JFFS filesystem (JFFS2), please execute the command
|
|
|
|
mkfs.jffs2 -d ./test -o jffs2.img
|
|
|
|
where ./test is the target directory.
|
|
|
|
However, please make sure the following is in your kernel config.
|
|
|
|
/*
|
|
* RAM/ROM/Flash chip drivers
|
|
*/
|
|
#define CONFIG_MTD_CFI 1
|
|
#define CONFIG_MTD_ROM 1
|
|
/*
|
|
* Mapping drivers for chip access
|
|
*/
|
|
#define CONFIG_MTD_COMPLEX_MAPPINGS 1
|
|
#define CONFIG_MTD_BF533 1
|
|
#undef CONFIG_MTD_UCLINUX
|
|
|
|
Through the u-boot boot loader, use the jffs2.img in the corresponding
|
|
partition made in linux-2.6.x/drivers/mtd/maps/bf533_flash.c.
|
|
|
|
NOTE - Currently the Flash driver is available only for EZKIT. Watch out for a
|
|
STAMP driver soon.
|
|
|
|
|
|
6. Mounting the NFS File system
|
|
-----------------------------
|
|
|
|
For mounting the NFS please do the following in the kernel config.
|
|
|
|
In Networking Support --> Networking options --> TCP/IP networking -->
|
|
IP: kernel level autoconfiguration
|
|
|
|
Enable BOOTP Support.
|
|
|
|
In Kernel hacking --> Compiled-in kernel boot parameter add the following
|
|
|
|
root=/dev/nfs rw ip=bootp
|
|
|
|
In File system --> Network File system, Enable
|
|
|
|
NFS file system support --> NFSv3 client support
|
|
Root File system on NFS
|
|
|
|
in uClibc menuconfig, do the following
|
|
In Networking Support
|
|
enable Remote Procedure Call (RPC) support
|
|
Full RPC Support
|
|
|
|
On the Host side, ensure that /etc/dhcpd.conf looks something like this
|
|
|
|
ddns-update-style ad-hoc;
|
|
allow bootp;
|
|
subnet 10.100.4.0 netmask 255.255.255.0 {
|
|
default-lease-time 122209600;
|
|
max-lease-time 31557600;
|
|
group {
|
|
host bf533 {
|
|
hardware ethernet 00:CF:52:49:C3:01;
|
|
fixed-address 10.100.4.50;
|
|
option root-path "/home/nfsmount";
|
|
}
|
|
}
|
|
|
|
ensure that /etc/exports looks something like this
|
|
/home/nfsmount *(rw,no_root_squash,no_all_squash)
|
|
|
|
run the following commands as root (may differ depending on your
|
|
distribution) :
|
|
- service nfs start
|
|
- service portmap start
|
|
- service dhcpd start
|
|
- /usr/sbin/exportfs
|