Bootloader to OS with Unified Extensible Firmware Interface (UEFI)

Unified Extensible Firmware Interface (UEFI) is a specification detailing an interface that helps hand off control of the system for the pre-boot environment (i.e.: after the system is powered on, but before the operating system starts) to an operating system, such as Windows or Linux. UEFI aims to provides a clean interface between operating systems and platform firmware at boot time, and supports an architecture-independent mechanism for initializing add-in cards. UEFI will overtime replace vendor-specific BIOS. It also allows for fast boot and support for large hard drives (> 2.2 TB). There are several documents fully defining the UEFI Specification, API and testing requirements: The UEFI Specification (version 2.3.1) describes an interface between the operating system (OS) and the platform firmware. It describes the requirements for the following components, services and protocols: Boot Manager Protocols – Compression Algorithm Specification EFI System Table Protocols – ACPI Protocols GUID Partition Table (GPT) […]

Is it IPv6 Time ? IPv6 Basics on Linux

The first time I worked on IPv6 was in 2000 in my master’s degree thesis where I started an implementation of Mobile IP based on IPv6 in Linux Redhat. Over a decade later, IPv6 has not really taken off, even though we hear stories about the IPv4 address space running out and I have yet to see an embedded device using anything else than IPv4. APNIC Ran out of IPv4 However, this may be about the change as on the 15th of April 2011, Japan Network Information Center (JPNIC) announced that APNIC (Asia Pacific Network Information Centre) ran out of IPv4 addresses. They will still try to make it last longer by reusing previously allocated IPv4 and an “IPv4 address transfer system” whose details will be made available later. You can also see a chart based on IANA (Internet Assigned Numbers Authority) data that shows this is a problem right […]

Boot Linux in 300 milliseconds

MakeLinux.com managed to boot Linux from the bootloader to console within 300ms using a customized (and minimal) version of Linux running on Beagleboard based on TI OMAP 3530 (Cortex A8) as per their Super Fast Boot project. Here’s the analysis of the boot sequence and timings: Logging starts at 70 ms from reset. Boot time from reset is 300 + 70 = 370 ms. Logging starts at 330 ms from power on. Cold boot time is 330 + 300 = 630 ms. Loading of 1.5 MiB Linux image from NAND takes 237 ms with throughput 6 MiB/s. Code execution takes 60 ms or 43M CPU cycles. (For other CPU frequency execution time is different, but the number of processor cycles is the same) The most time-consuming operation is coping firmware from NAND flash. They used a Linux 2.6.32 kernel from DVSDK 3.01, in a minimal configuration (900KB footprint), the boot […]

Setting Up an NFS Server in Ubuntu

You may need to setup an NFS server on Ubuntu to run and debug your program on your target platform or simply to share media files on the network composed of Linux clients. If you are using Windows clients, you would usually use SAMBA/CIFS, although it is possible to setup an NFS server in Windows as well using Windows Services for UNIX 3.5. Quick Guide to to setup an NFS server in Ubuntu without authentication. Install the required packages: # sudo apt-get install nfs-kernel-server nfs-common portmap Reconfigure and restart portmap: # sudo dpkg-reconfigure portmap # sudo /etc/init.d/portmap restart Edit /etc/exports: # sudo vi /etc/exports Add the directories to share with NFS and save the file, for example: /nfs 192.168.1.0/24(rw,no_root_squash,async) will give full read/write permissions to the nfs directory for computer in 192.168.1.0 subnet. Restart the NFS server: # sudo /etc/init.d/nfs-kernel-server restart and reload the configuration: # sudo exportfs -a The […]

Temperature Data Logging with TI eZ430-Chronos Watch

I wanted to record 24-hour of temperature data with eZ430-Chronos devkit and draw the result in a spreadsheet to see how the temperature evolves during the day. Here are the instructions to do so. 1. Update firmware to Chronos Datalogger. In order to record temperature data in your eZ430-Chronos development kit, you’ll need to update the firmware to use Chronos Datalogger. First start the Chronos Control Center, click on the Wireless Update tab, click on browse to select the Chronos Datalogger firmware file matching your hardware. In my case, I selected  C:\Program Files\Texas Instruments\eZ430-Chronos\Recovery\Chronos Watch\Applications\eZ430_Chronos_Datalogger_433MHz_1_5.txt. Then click on Update Chronos Watch.  On the watch, press the # button several time to enter rFbSl mode and press the down button to start the wireless update. 2. Configure the watch for temperature logging. Now start Chronos Data Logger software,  click on Start Access Point. On your watch,  press the # button to […]

Texas Instruments eZ430-Chronos Wireless Watch Unboxing

I’ve just received the eZ430-Chronos development tool I ordered last week (after 2 working days) by Fedex. Today, I’ll just post some pictures of the kit and provide some descriptions. There is a woman jogging on the box because you can actually buy a chest strap to monitor your speed, heart beat and calories consumption. If you would like to purchase one (49 Euros), it is available at http://www.bm-innovations.com/index.php/shop_products.html. Apparently there are only 868MHz (EU) and 915MHz (USA) versions, and they do not sell the strap for the 433MHz (international) version as I have. The watch is normally turned off the first time you open the box, it’s just turned on on the picture because I used it before taking the pictures. The content of the box includes: eZ430-Chronos wireless watch eZ430 USB programming and debugging interface (Bottom left) CC1111 USB RF access point (Bottom right on top of the […]

Texas Instruments MSP430 Devkit Facebook Promotion

Texas Instruments is currently offering 50% discount on selected development kits for its Facebook Fans for purchase on TI eStore until stocks last. The two development kits are sold at 50% discount: EZ430-Chronos-433 – eZ430-Chronos Wireless Watch Development Tool, a highly integrated, wireless development system based for the CC430 in a sports watch. It may be used as a reference platform for watch systems, a personal display for personal area networks, or as a wireless sensor node for remote data collection. The original price is 49 USD, but it can be ordered for 24.50 USD (including shipping) with the promo code: FCB-sfVwiUYe EZ430-F2013 – MSP430 USB Stick Development Tool, a complete development system with detachable target board and USB emulator. Ideal for new users. The original price is 20 USD, but it can be ordered for 10 USD (including shipping) with the promo code: FCB-ZC7Y86yQ I’ve ordered the Wireless Watch […]

Emulate an ARM Plaform with QEMU on Ubuntu 10.10

When developing software for embedded systems, you may need to support multiple architectures such as  arm, mips, x86, powerpc, alpha etc.. but you may not have the hardware required on hand to test them. This is where QEMU – a processor emulator – comes to the rescue. In a way, QEMU is similar to VirtualBox, VMWare or Citrix Xendeskop except it can support multiple architectures. I’ll show how to run Debian Lenny ARMEL in QEMU on a computer running Ubuntu 10.10 (aka Ubuntu Maverick Meerkat). QEMU (Qemu-kvm) Installation First install qemu-kvm and qemu-kvm-extras (the latter contains qemu-system-arm): sudo apt-get install qemu-kvm qemu-kvm-extras Let’s check qemu version: jaufranc@CNX-TOWER:~/edev$ qemu –version QEMU PC emulator version 0.12.5 (qemu-kvm-0.12.5), Copyright (c) 2003-2008 Fabrice Bellard Debian ARM Installation in QEMU Create a directory to store the required files for the emulator and  download the Debian Lenny ARMEL kernel (vmlinuz) and debian installer rootfs (initrd.gz): mkdir […]

UP 7000 x86 SBC