This is an old revision of the document!


RetroBSD

2.11bsd.jpg

2.11bsd-2.jpg

RetroBSD is an embedded version of 2.11BSD for PIC32 micro-controllers.

Setup

First we need to fetch a working cross-compiler. RetroBSD supports this one in Linux.

cd /usr/local
wget https://github.com/downloads/jasonkajita/chipKIT-cxx/pic32-tools-chipKIT-cxx-master-Linux32-image-20120720.zip
unzip pic32-tools-chipKIT-cxx-master-Linux32-image-20120720.zip

Checkout

Now we fetch the RetroBSD source from GitHUB.

mkdir -p /embedded
cd /embedded
git clone https://github.com/RetroBSD/retrobsd.git
cd retrobsd

Configure

In this example we will configure RetroBSD for the SDXL board.

First select the SDXL.

sed -i 's/(MAX32)/(SDXL)/' Makefile

Now we will enable two UARTS. Edit the following file,

vi sys/pic32/sdxl/Makefile

and add the following within the DEFS section, save the file.

DEFS += -DUART1_BAUD=115200
DEFS += -DUART1_ENABLED=YES
DEFS += -DUART2_BAUD=115200
DEFS += -DUART2_ENABLED=YES

Now edit the kernel configuration to enable the devices.

vi sys/pic32/sdxl/SDXL

Add the following options to enable the UARTS.

# tty0
device uart1 baud=115200
# tty1
device uart2 baud=115200

Build

Building will create the unix boot image and the SDcard image for the system.

make cleanall
make

Install

First we create the file system image on a micro SD card.

dd if=sdcard.img of=/dev/sdc bs=4M

Next, Hold the PROG button and toggle RESET on the SDXL board to enter the boot laoder. We will use Pickle pload to install the kernel.

pload program /dev/ttyACM0 sys/pic32/sdxl/unix.hex 24
Total: 157004
Time: 0:08.45s

Test

Connect with a terminal emulator to the virtual com port and press enter, the system should now boot.

screen /dev/ttyACM0 115200

Enter the username root with an empty password to login.

2.11 BSD Unix for PIC32, revision G205 build 2:
     Compiled 2015-03-09 by root@beethoven:
     /embedded/retrobsd/sys/pic32/sdxl
cpu: 795F512H 80 MHz, bus 80 MHz
oscillator: external, PLL div 1:2 mult x20
console: ttyUSB0 (6,0)
sd0: port SPI2, select pin G9
sd0: type SDHC, size 3932160 kbytes, speed 13 Mbit/sec
phys mem  = 128 kbytes
user mem  = 96 kbytes
root dev  = rd0a (0,1)
root size = 102400 kbytes
swap dev  = rd0b (0,2)
swap size = 2048 kbytes
/dev/rd0a: 659 files, 10738 used, 91261 free
Starting daemons: update /var/cron: No such file or directory
/var/cron: created
tabs: No such file or directory
tabs: created
cron 


2.11 BSD UNIX (pic32) (console)

login: root
Password:
Welcome to RetroBSD!
erase, kill ^U, intr ^C
# ps axl
  F S   UID   PID  PPID CPU PRI NICE  ADDR  SZ WCHAN    TTY  TIME COMMAND
  3 S     0     0     0  54   0   0 0x6800   3 runout   ?    0:03 swapper
200 S     0     1     0   1  30   0   0x69  45 proc     ?    0:00 init - 
200 S     0    11     1  23  40   0    0xd   6 u        ?    0:00 update 
200 S     0    13     1  42  26   0    0x9  73 selwait  ?    0:00 cron 
200 S     0    14     1   0  30   0   0x19  56 proc     USB  0:00 -sh 
  1 R     0    17    14  24  51   0 0x7400  52          USB  0:00 ps axl 
#
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies