Upgrading Libertas Bootcode
Instructions on how to upgrade Marvell Libertas boot2 bootcode
WARNING: this is for internal project testing purposes ONLY, we do not recommend public to follow these steps since it can damage hardware.
- First of all, a driver with proper support to update the bootcode is required. You can either
download and compile your own kernel from http://git.infradead.org/?p=users/marcelo/libertas;a=summary or use an already compiled kernel module/pair available at http://dev.laptop.org/~marcelo/libertas_boot2/ .
If you do compile your own driver please do not forget to enable CONFIG_LIBERTAS_USB_DEBUG=y in the config file.
- Copy the vmlinuz-libertas file to /boot and the usb8xxx.ko module to someplace inside the OLPC storage media.
Adjust /media/OLPCRoot/olpc-boot.sh by adding this as the last line of the file:
/sbin/kbl-kexec $ROOTFS/boot/vmlinuz-libertas "ro quiet root=$ROOT rootfstype=$ROOTFSTYPE console=ttyS0,115200 console=tty0 fbcon=font:SUN12x22 pci=nobios video=gxfb:1024x768-16" $INITRAMFS
- Copy the firmware update files, usb8388mfg.bin and Boot2_Mfg_3104.img, to /lib/firmware/ on the OLPC storage.
They are available at http://dev.laptop.org/~marcelo/libertas_boot2/ .
- Reboot the machine, and enable kernel logging on-disk for troubleshooting:
- Edit /etc/syslog.conf and add the following line:
kern.* /var/log/kernlog
- Then restart syslog with:
# /etc/init.d/syslog restart
- Now load the module with proper parameters:
# ./insmod usb8388.ko MfgFW=usb8388mfg.bin MfgUpdateBoot2=Boot2_Mfg_3104.img
This should be all. Reboot the machine, reload the module, and it should print the new Boot2 version.
If there are any troubles, please save /var/log/kernlog and let us know.