Brief list of changes:
- Fix erroneous power state information for non existent devices.
- Fix incorrect initialization of ARM generic timer device, affected Raspberry Pi 2B and 3B with random boot failures.
- Add support for Raspberry Pi 3B including board, CPU and model detection, see notes below.
- Add Raspberry Pi 3B and ARMv8 specific units for future 64 bit support.
- New Insert/Eject notification handling for MMC/SD storage devices, you can now remove and insert the SD card while running and the filesystem will dismount and remount as required.
- New Insert/Eject notification handling for USB storage devices, many more USB mass storage devices now function correctly including CD/DVD drives and USB card readers. USB CD/DVD drives can now be inserted and ejected at any time, you can even eject the CD tray from code or using the shell. This change also allows USB hard drives which take several seconds to spin up when connected to be correctly handled.
Please be sure to use a powered USB hub when connecting CD/DVD drives as the Raspberry Pi does not provide sufficient power to run them directly.
- Other fixes, improvements and additions for MMC/SD device handling, networks and new drivers that are still in progress.
Raspberry Pi 3B (RPi3B) support:
The support for RPi3B is currently 32 bit only but includes all functionality available for other models (even the non GPIO activity LED). The Raspberry Pi 2B and ARMv7 platform units have been enhanced to detect and support RPi3B, there are also RPi3B and ARMv8 specific platform units and the compiler has been updated to include RPi3B as a controller type.
Until a new release of the installer with updated Lazarus and FPC version you should simply select Raspberry Pi 2B when creating a project for either RPi2B or RPi3B. Once you have updated and rebuilt your RTL (see link below) the kernel7.img files produced will run on either model.
The RPi3B requires the latest version of the firmware available from GitHub (the minimum required files are bootcode.bin, start.elf and fixup.dat), this version is also usable with any of the earlier models as well.
The RPi3B gets quite hot when running at the default 1.2GHz clock speed, articles have been posted elsewhere discussing this but you should note that Ultibo core does not include any dynamic CPU frequency adjustment yet and so the CPU always runs at the maximum speed. In testing the RPi3B will run at around 75 degrees (Celsius) which is much higher than previous models, with the CPU speed set at 700MHz instead the normal operating temperature is around 65 degrees.
You will need to make your own assessment of what you are comfortable with and whether you decide to fit a heatsink or reduce the CPU speed. To reduce the speed simply add a line to the config.txt file on the SD card similar to this:
Code: Select all
Ultibo core will set the CPU speed to whatever is specified in this setting during boot, you may like to experiment with different speeds to decide what is best for you. If this line does not exist then the CPU will run at the default 1.2GHz.
For details of how to apply the latest source to your Ultibo core installation and rebuild your run time library see the wiki page Building from Source.
EDIT: A bug was discovered in the example projects, if you update your RTL to the latest code you should also download the updated examples.