Upgrading Libertas Bootcode

From OLPC
Jump to navigation Jump to search
542-stopicon.png This page has a more up-to-date location: Active Antenna Reprogramming


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.