Thursday, October 30, 2008

Intelligent Energy Management Technology

Intelligent Energy Management (IEM)

The IEM technology uses a technique called Dynamic Voltage and Frequency Scaling (DVFS) to implement the power and energy savings.

The IEM technology consists of the following components:
- IEM Software (OS and Applications) (Linux Kernel 2.6 Patch)
- Intelligent Energy Controller (IEC)
- Advanced Power Controller (APC)



ARM Physical IP:
- Metro
- Advantage
- Advantage-HS

Reference:
1. ARM
2. Power Management in Mobile Devices, Chapter 7.6

Tuesday, October 28, 2008

Open On-Chip Debugger

Open On-Chip Debugger

Openocd - JTAG Interface

Setting Up OpenOCD Under Linux

The USB ARM JTAG programmers. (Compliant with OpenOCD)
These are based on the FTDI USB chip.

Hubert Hoegl's USB ARM JTAG Programmer
USB JTAG-Programmer
OpenOCD website
Sparkfun
Olimex

Related Blogs:
JTAG Cable

Serial Peripheral Interface (SPI)

Read Addr 0x0, Return = 0x2



Write Addr 0x0, Register Value = 0x2



Reference:
1. Designing Embedded Hardware, Second Edition - Chapter 7. Adding Peripherals Using SPI

SATA on the Linux Kernel

Synopsys (DesignWare Cores SATA AHCI)

Synopsys (DesignWare Cores SATA Host) (patch)

Reference:
http://en.wikipedia.org/wiki/Serial_ATA

Monday, October 27, 2008

Friday, October 24, 2008

USB Host Controller on the Linux Kernel

USB Host Controller

(1) ST-NXP (ISP 1760)

(2) Synopsys (DWC USB 2.0 HS High Speed, EHCI/OHCI)

Wednesday, October 22, 2008

NAND Flash

NAND Flash Chip Vendor

  • Intel
  •    ONFI, 
  • Micron
  •    ONFI, SLC/MLC: Compatibility with ONFI synchronous interface
       http://www.micron.com/products/nand-flash

  • ST/Numonyx
  •    ONFI 1.0, 
  • Samsung
  •    non-ONFI,
       1) SLC-small/large block
       2) MLC-large block
       3) Toggle DDR NAND Flash (list)

  • SKhynix
  •    Support ONFI for some new product (Databook)
  • Spansion
  •    ONFI 1.0, Spansion® Product Selector Guide March 2013

  • Toshiba
  •    non-ONFI,
       1) SLC NAND (list)
       2) MLC NAND
       3) Toggle-Mode NAND


    Micron NAND Flash
    Micron MT29Fxx08x (Data Sheet) (Errata) ( Sample Code)
    - Device Size : 4Gb = 4096 blocks
    - Block Size : 64 pages
    - Page Size : 2112 Bytes (2048 Bytes Data + 64 Bytes Spare)
    - SLC Technology

    Micron MT29Fxx16x (Data Sheet) (Errata) ( Sample Code)
    - Device Size : 4Gb = 4096 blocks
    - Block Size : 64 pages
    - Page Size : 2112 Bytes (1024 Words Data + 32 Words Spare)
    - SLC Technology


    NAND MLC Flash

    Micron MT29F16G08MAAWP (Data Sheet)
    - Device Size : 16Gb = 4096 blocks
    - Block Size : 128 pages
    - Page Size : 4314 Bytes (4096 Bytes Data + 218 Bytes Spare)
    - MLC Technology
    - Open NAND Flash Interface (ONFI) 1.0 compliant (1.0 Spec) (2.0)

    NAND Flash Controller

    Example:
    ARM SMC (PL353)
    u-boot (patch)

    Linux Device Driver (patch)

    NOR Flash

    Generic Memory Subsystem for Embedded System


    NOR Flash

    Example:
    MXIC - MX29LV640T/B (Datasheet)

    NOR Flash Controller

    Example:
    ARM SMC (PL353)


    Serial Flash Memory

    NOR SPI Flash

    Example:
    ST, Numonyx - M25P64 (Datasheet 1) (2) (Driver 1) (2)

    SPI Bus Serial Interface
    Let's talk later.

    Thursday, October 16, 2008

    NFS Client on Windows

    NFS Client on Windows

    1. Windows Services for UNIX (SFU)

    2. Omni-NFS/X Enterprise v3.1

    3. NFSPro

    NFS Server on Linux (Fedora Core 9)

    [root]# cat /etc/exports
    # /etc/exports: NFS file systems being exported.
    #/home/MPCore/rootfs/netfs *(rw,no_root_squash,async)
    /home/u-boot-1.3.1-mpcore 172.20.2.100/24(rw,sync) localhost(rw,sync)

    [root]# /etc/init.d/nfs restart
    [root]# /etc/init.d/nfslock restart

    Show/Check mount information for an NFS server
    [root]# showmount -e localhost

    Check firewall settings for NFS (Port: 2049)

    Wednesday, October 8, 2008

    Windows Live Writer

    I write this by Windows Live Writer for testing.


    I hope this free utility can help me to write more colorful blogs in easy way.

    ARM RealView PB11MPCore (7.3) U-boot Initialization Flow

    • U-boot Initialization Flow

    Tuesday, October 7, 2008

    ARM RealView PB11MPCore (0.1) Photos

    Front side photo 1:


    Front side photo 2:


    Inside photo 1:


    Inside photo 2:

    Sunday, October 5, 2008

    ARM RealView PB11MPCore (8.1) Linux Kernel (Big-endian)

    Linux kernel 2.6.24 Series (patch) (.config)

    Linux kernel 2.6.26 Series (patch) (.config)

    Thursday, October 2, 2008

    ARM RealView PB11MPCore (7.2) U-boot User Manual

    U-boot User Manual

    Environment Variable:
    ipaddr=172.20.5.100
    serverip=172.20.5.200
    netmask=255.255.0.0
    bootfile=uImage

    Commands:
    tftpboot - boot image via network using TFTP protocol
    tftpboot [loadAddress] [bootfilename]

    RealView_PB # tftpboot
    TFTP from server 172.20.5.200; our IP address is 172.20.5.100
    Filename 'uImage'.
    Load address: 0x7fc0
    Loading:################################################
    done
    Bytes transferred = 1527128 (174d58 hex)

    bootp - boot image via network using BootP/TFTP protocol
    bootp [loadAddress] [bootfilename]

    RealView_PB # bootp
    BOOTP broadcast 1
    DHCP client bound to address 172.20.99.82
    TFTP from server 172.20.5.200; our IP address is 172.20.5.100
    Filename 'uImage'.
    Load address: 0x7fc0
    Loading:################################################
    done
    Bytes transferred = 1527128 (174d58 hex)

    bootm - boot application image from memory
    bootm [addr [arg ...]]
    - boot application image stored in memory
    when booting a Linux kernel, 'arg' can be the address of an initrd image

    RealView_PB # bootm 0x7fc0
    or just
    RealView_PB # bootm


    References:
    The DENX U-Boot and Linux Guide
    Embedded Linux Primer: Chapter 7 Bootloaders (PDF)

    Wednesday, October 1, 2008

    Floating point exception

    Using different hash type for GCC will generate different execution result.

    Sample Code: Download
    Makefile
    hello.c

    Experimentation:
    1. Compile hello.c on Fedora
    2. Execute hello on Debian and Gentoo

    Output on Debian:
    debian:~/hello# ./hello
    Floating point exception
    debian:~/hello# ./hello.both
    Hello!
    debian:~/hello# ./hello.gnu
    Floating point exception
    debian:~/hello# ./hello.sysv
    Hello!

    Result:

    Explanation:
    Fedora Core 6: GCC Compiler

    Fedora developers have introduced changes in the ELF .hash section that provides symbols for dynamic linking. This new .gnu.hash section, which is produced with the new default --hash-style=gnu option for gcc, serves the same purpose as previous hash sections. It provides, however, an approximately 50% increase in dynamic linking speed. Binaries and libraries produced with the new hashing function are incompatible with older glibc and dynamic linker releases. To use the old-style hashing routines for compatibility with older glibc-based systems, pass the --hash-style=sysv option instead.

    References:
    http://docs.fedoraproject.org/release-notes/fc6

    GCC Reading Book List

    GCC Reading Book List
    1. The Definitive Guide to GCC, Second Edition (2006) (PDF)
    2. An Introduction to GCC (2004) online
    3. GNU Autoconf, Automake, and Libtool (2000) online

    Links:
    GCC online documentation