Releases: parallella/parabuntu
Parabuntu 2019.1 beta1
Parabuntu 2019.1 beta 1
Will update this text when I have more time.
This release is based on Ubuntu 18.04.
It requires a 8GB SDCARD.
I have tested the headless images and they seem to be working (except items listed below).
I have not had time to test the HDMI images, so use at your own risk. They probably lack X windows etc. and a working xorg.conf.
What is broken?
- coprthr
- perf ?
Toolchain components
gcc 8.3
binutils 2.32
gdb 8.2
newlib 3.0
Linux
linux 4.14 (ADI 2018.2)
FPGA bitstreams
Based on ADI HDL 2018.2
Parabuntu 2016.11.1
Parabuntu 2016.11.1
Bug fix release for 2016.11
Changelog since 2016.11
- Prevent faulty Epiphany programs from accessing kernel memory (regression not present in earlier releases)
- Improve X11 config
Installation Instructions
Download the appropriate card image below and burn onto an SD card using your favorite OS and method. Make sure you download the correct file. The z7020 applies to Kickstarter boards and "Embedded" (P1602) Parallella boards. Everyone else should grab the z7010 file.
Complete installation instructions can be found here:
https://www.parallella.org/quick-start/
First boot
- Hostname: "parallella", "parallella." (notice trailing period) or "parallella.local", depending on your operating system.
- IP address: The IP address is acquired from DHCP. 10.11.12.13 will be used as fallback.
- Username: parallella
- Password: parallella
On first boot give it a couple of minutes to generate new SSH server keys before you try to connect to the board.
We advise you to change the default password like so:
$ ssh parallella@parallella.
parallella@parallella's password: [Enter parallella]
parallella@parallella:~$ passwd
Changing password for parallella.
(current) UNIX password: [Enter parallella]
Enter new UNIX password: [Enter new password]
Retype new UNIX password: [Enter new password]
Password changed
parallella@parallella:~$ logout
Troubleshooting
Your board won't come up on the network?
- The most common error is that the wrong image is used (see install instructions above to determine which version is the correct one)
- Log in to your router and see if you can find the board in the DHCP client list.
- If you connect your Parallella directly to your computer's ethernet port, enable internet sharing, or make sure that your computer and Parallella is on the same network by setting your computer's IP to 10.11.12.x (e.g. IP 10.11.12.1 netmask 255.255.255.0).
- Connect a serial cable, anything weird in the boot log?
Changes since 2016.3.1
- GDB multicore debugging of Epiphany with e-server
- epython included
- OMPi 2.0.0 (OpenMP) included
- HDMI bitstreams
- PAL included as experimental feature
- e-hal has a PAL backend
- GCC 5.4
- GDB 7.12
- binutils 2.27
- Use ADI 2016_R1 Linux branch
- Fix race condition in kernel driver that can trigger program termination (SIGBUS) in threaded code.
- SREC support will be removed in the next release.
ESDK
Full ChangeLog:
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.11/ChangeLog
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.11/e-server/ChangeLog
e-server
- Multicore (threads) debugging
- Multiprocess support
Major work by Pedro Alves!
Tutorial:
https://github.com/adapteva/epiphany-sdk/wiki/Debugging-Epiphany
e-hal
- Minor bugs in loader fixed
- SREC support WILL BE removed in the next release. Use ELF files instead.
Initial e-server support
Setting the environment variable EHAL_GDBSERVER=yes
will cause e_load_group()
and friends to not start the program (it sets DEBUGSTATUS
).
You can then connect with epiphany-elf-gdb
to the e-server, set up breakpoints any breakpoints you'd like and then continue the threads from within gdb.
PAL backend added
Set the environment variable EHAL_TARGET=pal
to use the pal backend.
Linux kernel
- Based on ADI 2016_R1 (v4.6 + ADI drivers) with the Epiphany driver.
- Fixed bug that could cause SIGBUS in programs with more than one thread.
- Added noelink devicetree
FPGA bitstream
- Same as ESDK 2016.3.1 for headless and noelink.
- For HDMI we use parallella-fpga by Peter Saunderson and
ADI HDL 2016-R1 IP's for HDMI / audio.
Toolchain
- GCC minor release upgraded to 5.4 (was 5.2)
- binutils 2.27 (was 2.25)
- GDB 7.12 (was 7.10)
GDB
- Upgrade to 7.12 from 7.10.
- Epiphany-5 simulator branch merged.
- Fixed prologue parsing
- Support for passing arguments to simulated program
ChangeLogs:
https://github.com/adapteva/epiphany-binutils-gdb/blob/epiphany-gdb-esdk-2016.11/sim/epiphany/ChangeLog
https://github.com/adapteva/epiphany-binutils-gdb/blob/epiphany-gdb-esdk-2016.11/gdb/ChangeLog.epiphany
binutils
- Upgrade to 2.27 to 2.25
newlib / libgloss
- Based on 2.2.0 (same as ESDK 2016.3.1)
- Support for simulator passing program arguments
- Change return type of write/read to ssize_t from int. POSIX compatible.
Full ChangeLog:
https://github.com/adapteva/epiphany-newlib/blob/epiphany-newlib-esdk-2016.11/libgloss/ChangeLog.epiphany
Parabuntu 2016.11
Parabuntu 2016.11
Installation Instructions
Download the appropriate card image below and burn onto an SD card using your favorite OS and method. Make sure you download the correct file. The z7020 applies to Kickstarter boards and "Embedded" (P1602) Parallella boards. Everyone else should grab the z7010 file.
Complete installation instructions can be found here:
https://www.parallella.org/quick-start/
First boot
- Hostname: "parallella", "parallella." (notice trailing period) or "parallella.local", depending on your operating system.
- IP address: The IP address is acquired from DHCP. 10.11.12.13 will be used as fallback.
- Username: parallella
- Password: parallella
On first boot give it a couple of minutes to generate new SSH server keys before you try to connect to the board.
We advise you to change the default password like so:
$ ssh parallella@parallella.
parallella@parallella's password: [Enter parallella]
parallella@parallella:~$ passwd
Changing password for parallella.
(current) UNIX password: [Enter parallella]
Enter new UNIX password: [Enter new password]
Retype new UNIX password: [Enter new password]
Password changed
parallella@parallella:~$ logout
Troubleshooting
Your board won't come up on the network?
- The most common error is that the wrong image is used (see install instructions above to determine which version is the correct one)
- Log in to your router and see if you can find the board in the DHCP client list.
- If you connect your Parallella directly to your computer's ethernet port, enable internet sharing, or make sure that your computer and Parallella is on the same network by setting your computer's IP to 10.11.12.x (e.g. IP 10.11.12.1 netmask 255.255.255.0).
- Connect a serial cable, anything weird in the boot log?
Changes since 2016.3.1
- GDB multicore debugging of Epiphany with e-server
- epython included
- OMPi 2.0.0 (OpenMP) included
- HDMI bitstreams
- PAL included as experimental feature
- e-hal has a PAL backend
- GCC 5.4
- GDB 7.12
- binutils 2.27
- Use ADI 2016_R1 Linux branch
- Fix race condition in kernel driver that can trigger program termination (SIGBUS) in threaded code.
- SREC support will be removed in the next release.
ESDK
Full ChangeLog:
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.11/ChangeLog
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.11/e-server/ChangeLog
e-server
- Multicore (threads) debugging
- Multiprocess support
Major work by Pedro Alves!
Tutorial:
https://github.com/adapteva/epiphany-sdk/wiki/Debugging-Epiphany
e-hal
- Minor bugs in loader fixed
- SREC support WILL BE removed in the next release. Use ELF files instead.
Initial e-server support
Setting the environment variable EHAL_GDBSERVER=yes
will cause e_load_group()
and friends to not start the program (it sets DEBUGSTATUS
).
You can then connect with epiphany-elf-gdb
to the e-server, set up breakpoints any breakpoints you'd like and then continue the threads from within gdb.
PAL backend added
Set the environment variable EHAL_TARGET=pal
to use the pal backend.
Linux kernel
- Based on ADI 2016_R1 (v4.6 + ADI drivers) with the Epiphany driver.
- Fixed bug that could cause SIGBUS in programs with more than one thread.
- Added noelink devicetree
FPGA bitstream
- Same as ESDK 2016.3.1 for headless and noelink.
- For HDMI we use parallella-fpga by Peter Saunderson and
ADI HDL 2016-R1 IP's for HDMI / audio.
Toolchain
- GCC minor release upgraded to 5.4 (was 5.2)
- binutils 2.27 (was 2.25)
- GDB 7.12 (was 7.10)
GDB
- Upgrade to 7.12 from 7.10.
- Epiphany-5 simulator branch merged.
- Fixed prologue parsing
- Support for passing arguments to simulated program
ChangeLogs:
https://github.com/adapteva/epiphany-binutils-gdb/blob/epiphany-gdb-esdk-2016.11/sim/epiphany/ChangeLog
https://github.com/adapteva/epiphany-binutils-gdb/blob/epiphany-gdb-esdk-2016.11/gdb/ChangeLog.epiphany
binutils
- Upgrade to 2.27 to 2.25
newlib / libgloss
- Based on 2.2.0 (same as ESDK 2016.3.1)
- Support for simulator passing program arguments
- Change return type of write/read to ssize_t from int. POSIX compatible.
Full ChangeLog:
https://github.com/adapteva/epiphany-newlib/blob/epiphany-newlib-esdk-2016.11/libgloss/ChangeLog.epiphany
pubuntu-15.04-esdk-2016.3.1
Pubuntu / ESDK 2016.3.1
Bug fix release for 2016.3
Changes since 2016.3
- Add back SREC support (for this release, still deprecated)
- Make e-lib header files C++ compatible
- Support ELF files with empty segments
- Add /dev/xdevcfg (load FPGA bitstreams at runtime)
- Disable non-existent APT repos (erlang + parallella ppa)
- Fix linker script provided symbol names affected by ABI change
- Fix deadlock in kernel driver
- Make thermal daemon work w/ FMCOMMS boards
Installation Instructions
Download the appropriate card image below and burn onto an SD card using your favorite OS and method. Make sure you download the correct file. The z7020 applies to Kickstarter boards and the "Embedded" Parallella boards. Everyone else should grab the z7010 file.
Complete installation instructions can be found here:
https://www.parallella.org/quick-start/
First boot
- Hostname: "parallella", "parallella." (notice trailing period) or "parallella.local", depending on your operating system.
- IP address: The IP address is acquired from DHCP. 10.11.12.13 will be used as fallback.
- Username: parallella
- Password: parallella
On first boot give it a couple of minutes to generate new SSH server keys before you try to connect to the board.
We advise you to change the default password like so:
$ ssh parallella@parallella.
parallella@parallella's password: [Enter parallella]
parallella@parallella:~$ passwd
Changing password for parallella.
(current) UNIX password: [Enter parallella]
Enter new UNIX password: [Enter new password]
Retype new UNIX password: [Enter new password]
Password changed
parallella@parallella:~$ logout
Troubleshooting
Your board won't come up on the network?
- The most common error is that the wrong image is used (see install instructions above to determine which version is the correct one)
- Log in to your router and see if you can find the board in the DHCP client list.
- If you connect your Parallella directly to your computer's ethernet port, enable internet sharing, or make sure that your computer and Parallella is on the same network by setting your computer's IP to 10.11.12.x (e.g. IP 10.11.12.1 netmask 255.255.255.0).
- Connect a serial cable, anything weird in the boot log?
Changes since 2015.1
Ubuntu Image
- Upgraded to Ubuntu Vivid 15.04
(base image linaro-vivid-nano-20150618) - Boot console enabled
- Image build is scripted (less error prone, trackable)
Thermal daemon
The thermal daemon has been improved. Instead of potentially freezing the entire board the worst thing that could happen now is that your program will crash (SIGBUS) when the thermal daemon is invoked.
If temperature goes above 70 C the Epiphany chip will be disabled, and if temperature rises above 85 C the system will be shut down to protect your Parallella from overheating.
These commands can be used to monitor the thermal daemon / kernel driver:
journalctl -u "parallella-thermald*"
dmesg | grep epiphany
lm-sensors support
Use the sensors
command to see Zynq Temperature, Epiphany VDD_DSP etc.
ABI changes
For background see:
http://www.adapteva.com/announcements/epiphany-abi-change-proposal/
- Make register R32-R63 caller saved. Currently R32-R63 is a mix of caller and callee saved registers. Reason: Better (code size, performance, ease of assembly, energy) for leaf cell type libraries (like PAL).
- Move Frame Pointer to R15. Reason: Better performance/code density for software caching
- Reserve addresses below 0x100 for internal use. Reason: Reserved for future systems and SDKs. “Get out of jail card for Adapteva.” Compiler user code starts at 0x100
Disallow fetching instructions from external memory. Programs must be fetched from the local memory (currently 32KB). For large programs some kind of software caching should be used. Reason: Very expensive feature from a chip standpoint and provides poor performance. Not scalable for future silicon.(NOT IMPLEMENTED)The “-” option for TESTSET has been removed.(NOT IMPLEMENTED)
ESDK
- Reserve addresses below 0x100 for internal use (runtime etc.)
- Use new epiphany kernel driver ABI.
- e-loader now clears static and global variables. This was previously done at run-time on the epiphany cores. This change eliminates some race conditions in the e-lib mutex / barrier implementations.
- SREC support removed. Use ELF files
Full ChangeLog:
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.3/ChangeLog
Linux kernel
- Based on 'vanilla' 4.4
- Uses arm-v7-defconfig
- Redesigned
epiphany
kernel driver (power management, device tree based, better memory protection, better virtual memory handling, mailbox API ...)
FPGA e-link
FPGA e-link is completely redesigned and now supports both full speed transmit and receive.
Toolchain
- All components upgraded to more recent versions.
- Experimental software caching support. Pass
-fsoftware-cache
to gcc to enable.
Examples: https://github.com/adapteva/epiphany-examples/tree/2015.1/softcache
GCC
- Upgrade to GCC 5.2 from GCC 4.8
- Change USER_LABEL_PREFIX to "" from "_".
- Move frame pointer to register r15 (was r11)
- Enable -mno-soft-cmpsf under -ffast-math
- Emit config save register right after prologue (fixes adapteva/epiphany-sdk#53)
- Make register R32-R63 caller saved.
ChangeLog:
https://github.com/adapteva/epiphany-gcc/blob/epiphany-gcc-esdk-2016.3/gcc/ChangeLog.epiphany
GDB
- Upgrade to 7.10 from 7.6.
- Multi-core simulator branch merged.
binutils
- Upgrade to 2.25 to 2.23
newlib / libgloss
- Upgrade to 2.2.0 from 1.20
- Support loader flags and custom loader arguments (currently only pal is the only user of this).
Full ChangeLog:
https://github.com/adapteva/epiphany-newlib/blob/epiphany-newlib-esdk-2016.3/libgloss/ChangeLog.epiphany
pubuntu-15.04-esdk-2016.3
Installation Instructions
Download the appropriate card image below and burn onto an SD card using your favorite OS and method. Make sure you download the correct file. The z7020 applies to Kickstarter boards and the "Embedded" Parallella boards. Everyone else should grab the z7010 file.
Complete installation instructions can be found here:
https://www.parallella.org/quick-start/
First boot
- Hostname: "parallella", "parallella." (notice trailing period) or "parallella.local", depending on your operating system.
- IP address: The IP address is acquired from DHCP. 10.11.12.13 will be used as fallback.
- Username: parallella
- Password: parallella
On first boot give it a couple of minutes to generate new SSH server keys before you try to connect to the board.
We advise you to change the default password like so:
$ ssh parallella@parallella.
parallella@parallella's password: [Enter parallella]
parallella@parallella:~$ passwd
Changing password for parallella.
(current) UNIX password: [Enter parallella]
Enter new UNIX password: [Enter new password]
Retype new UNIX password: [Enter new password]
Password changed
parallella@parallella:~$ logout
Troubleshooting
Your board won't come up on the network?
- The most common error is that the wrong image is used (see install instructions above to determine which version is the correct one)
- Log in to your router and see if you can find the board in the DHCP client list.
- If you connect your Parallella directly to your computer's ethernet port, enable internet sharing, or make sure that your computer and Parallella is on the same network by setting your computer's IP to 10.11.12.x (e.g. IP 10.11.12.1 netmask 255.255.255.0).
- Connect a serial cable, anything weird in the boot log?
Changes since 2015.1
Ubuntu Image
- Upgraded to Ubuntu Vivid 15.04
(base image linaro-vivid-nano-20150618) - Boot console enabled
- Image build is scripted (less error prone, trackable)
Thermal daemon
The thermal daemon has been improved. Instead of potentially freezing the entire board the worst thing that could happen now is that your program will crash (SIGBUS) when the thermal daemon is invoked.
If temperature goes above 70 C the Epiphany chip will be disabled, and if temperature rises above 85 C the system will be shut down to protect your Parallella from overheating.
These commands can be used to monitor the thermal daemon / kernel driver:
journalctl -u "parallella-thermald*"
dmesg | grep epiphany
lm-sensors support
Use the sensors
command to see Zynq Temperature, Epiphany VDD_DSP etc.
ABI changes
For background see:
http://www.adapteva.com/announcements/epiphany-abi-change-proposal/
- Make register R32-R63 caller saved. Currently R32-R63 is a mix of caller and callee saved registers. Reason: Better (code size, performance, ease of assembly, energy) for leaf cell type libraries (like PAL).
- Move Frame Pointer to R15. Reason: Better performance/code density for software caching
- Reserve addresses below 0x100 for internal use. Reason: Reserved for future systems and SDKs. “Get out of jail card for Adapteva.” Compiler user code starts at 0x100
Disallow fetching instructions from external memory. Programs must be fetched from the local memory (currently 32KB). For large programs some kind of software caching should be used. Reason: Very expensive feature from a chip standpoint and provides poor performance. Not scalable for future silicon.(NOT IMPLEMENTED)The “-” option for TESTSET has been removed.(NOT IMPLEMENTED)
ESDK
- Reserve addresses below 0x100 for internal use (runtime etc.)
- Use new epiphany kernel driver ABI.
- e-loader now clears static and global variables. This was previously done at run-time on the epiphany cores. This change eliminates some race conditions in the e-lib mutex / barrier implementations.
- SREC support removed. Use ELF files
Full ChangeLog:
https://github.com/adapteva/epiphany-libs/blob/epiphany-libs-esdk-2016.3/ChangeLog
Linux kernel
- Based on 'vanilla' 4.4
- Uses arm-v7-defconfig
- Redesigned
epiphany
kernel driver (power management, device tree based, better memory protection, better virtual memory handling, mailbox API ...)
FPGA e-link
FPGA e-link is completely redesigned and now supports both full speed transmit and receive.
Toolchain
- All components upgraded to more recent versions.
- Experimental software caching support. Pass
-fsoftware-cache
to gcc to enable.
Examples: https://github.com/adapteva/epiphany-examples/tree/2015.1/softcache
GCC
- Upgrade to GCC 5.2 from GCC 4.8
- Change USER_LABEL_PREFIX to "" from "_".
- Move frame pointer to register r15 (was r11)
- Enable -mno-soft-cmpsf under -ffast-math
- Emit config save register right after prologue (fixes adapteva/epiphany-sdk#53)
- Make register R32-R63 caller saved.
ChangeLog:
https://github.com/adapteva/epiphany-gcc/blob/epiphany-gcc-esdk-2016.3/gcc/ChangeLog.epiphany
GDB
- Upgrade to 7.10 from 7.6.
- Multi-core simulator branch merged.
binutils
- Upgrade to 2.25 to 2.23
newlib / libgloss
- Upgrade to 2.2.0 from 1.20
- Support loader flags and custom loader arguments (currently only pal is the only user of this).
Full ChangeLog:
https://github.com/adapteva/epiphany-newlib/blob/epiphany-newlib-esdk-2016.3/libgloss/ChangeLog.epiphany
pubuntu-14.04-esdk2015.1-20150130
Ubuntu Image Changes
- Hostname: "parallella." (notice trailing period) or "parallella.local", depending on your operating system.
- IP address: The IP address will be acquired from DHCP. 10.11.12.13 will be used as fallback.
- Username: parallella
- Password: parallella
On first boot give it a couple of minutes to generate new SSH server keys before you try to connect to the board.
We advise you to change the default password like so:
$ ssh parallella@parallella.
parallella@parallella's password: [Enter parallella]
parallella@parallella:~$ passwd
Changing password for parallella.
(current) UNIX password: [Enter parallella]
Enter new UNIX password: [Enter new password]
Retype new UNIX password: [Enter new password]
Password changed
parallella@parallella:~$ logout
Thermal daemon (new!)
To ensure the system does not get too hot a thermal daemon is included in the new Ubuntu images. The daemon monitors the Zynq temperature sensor (XADC). Should the temperature rise above the allowed range, the daemon will shutdown the Epiphany chip. The default upper limit is set to 70C. Notice that disabling the Epiphany chip while another program is accessing the Epiphany is likely to result the board freezing. So if you see lockups when the system is under load this is a probable cause.
Installation Instructions
Download the appropriate card image below and burn onto an SD card using your favorite OS and method. Make sure you download the correct file. The z7020 applies to Kickstarter boards and the "Embedded" Parallella boards. Everyone else should grab the z7010 file.
Complete installation instructions can be found HERE