Upgrading Libertas Bootcode

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.