IntroductionThis page is under heavy construction and is intended to be the central repository of all information and links related to the design and implementation of BORPH.
BORPH is an Operating System designed for FPGA-based reconfigurable computers. It is an extented version of Linux that handles FPGA resources as if they were CPU's. BORPH introduces the concept of hardware process which behaves just like a normal user program except it is a hardware design running on a FPGA. Hardware processes behave like normal software programs. The BORPH kernel provides standard system services, such as file system access, to hardware processes, allowing them to communicate with the rest of the system easily and systematically.
PresentationBORPH: Berkeley Os for ReProgrammable Hardware. (Adapted from my qualifying exam at Cal) [pdf]
PapersPlease see my Publication page.
DownloadYou can download a snapshot of the current BORPH source tree from here. Please refer to the bee2 wiki for more information.
Installation on ROACH
Compiling the kernel
- Download and untar the BORPH code into a directory, and move into the directory:
$ tar -jxvf borph-snapshot-<DATE>.tar.bz2 && \ cd borph-snapshot-<DATE>where <DATE> is the date of the snapshot you have downloaded.
- Copy the ROACH configuration file:
$ cp arch/ppc/configs/roach_defconfig .config
- Make the current config:
$ make oldconfig ARCH=ppc
- If your host machine is not a powerpc, then a powerpc cross compiler needs to be installed on you machine, and be available in the PATH environment variable.
I have used the DENX ELDK ppc cross compiler (available at http://www.denx.de/wiki/DULG/ELDK).
Compile a kernel image for u-boot (change the CROSS_COMPILE argument to your ppc cross compiler prefix):
$ make uImage ARCH=ppc CROSS_COMPILE=ppc_4xx-
- The compiled image will be found at
Booting the kernel from u-boot
- If u-boot is not installed, it needs to be copied to the flash memory so that the PPC will boot into it on power-up. (We use the Macraigor Systems debug tools to directly write the image into flash from the PPC).
The u-boot distribution for ROACH is on the ROACH repository at KAT.
- Once u-boot is running, the BORPH kernel image needs to be copied to memory and booted.
The procedure that I used to do this was to setup a TFTP server on another pc, and connect the ROACH to the PC with an ethernet cable - I then downloaded the image using tftp (e.g
tftp 0x8000000 uImage).
Another way to get the kernel image onto ROACH would be to use a USB drive.
- Set the correct boot arguments for the kernel in u-boot (set with the
The arguments that I used were to set a static IP address to the board, and boot a root file system from a NFS server.
- Now BORPH can be booted by running the image from memory (e.g.
Installation on BEE2Building the BORPH kernel follows the same instructions for building a standard Linux kernel. A default config file is located at borph_tree/arch/ppc/configs/b2borph_defconfig. A quick summary of steps you will need:
- tar xzvf borph-version.tar.gz
- cd borph
- COPY YOUR BSP FILES FROM EDK
- cp arch/ppc/configs/b2borph_defconfig .config
- make oldconfig
- make dep
- make zImage