This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Where to get a fresh Linux kernel for the AM1808?

Other Parts Discussed in Thread: AM1808, OMAP-L138, OMAPL138, DA8XX, PMP

I'm a little confused with the system type for the AM1808 processor - in the past I'd been using a kernel with the 'DaVinci' designation for the 1808 as I believe they shared a similar code base

that was a while back however and I'm looking to update to the latest stable linux kernel

I have a few questions that I'm hoping someone can answer

-does the kernel for the 1808 come from kernel.org as-is?  (can I use the 3.5.4 from http://www.kernel.org/, or must I get the kernel from TI?)
-is the 1808 a 'DaVinci' or an OMAP in the ARM system type options in 'menuconfig' of the kernel?

many thanks! 

  • Hi, Chris.

    Chris Gray said:
    -does the kernel for the 1808 come from kernel.org as-is?  (can I use the 3.5.4 from http://www.kernel.org/, or must I get the kernel from TI?)

    AFAIK not. Have a look http://processors.wiki.ti.com/index.php/DaVinci_GIT_Linux_Kernel. I think an answer for your question is in "Overview" section.

    Chris Gray said:
    -is the 1808 a 'DaVinci' or an OMAP in the ARM system type options in 'menuconfig' of the kernel?

    Source form linux-davinci GIT has this option. It named "ARM system type (TI DaVinci)"

  • Thanks for the link, I had read that page (its the page that confused me the most :)) Is the 1808 a part where support is being dropped (oh I hope not!)? That page was last updated in Oct of last year, the compiler recommended is three years old I'm nervous because my team is finishing our last round of development boards and about to place a large order of 1808's, I'm concerned because it seems kernel development never matured beyond proof of concept Is the 1808 considered a DaVanci? (I'm nervous because searching for it the 1808 yields results for DaVanci, but reading about the DaVanci does not list the 1808 as a supported chip).
  • AM1808 is not Davinci strictly. But both Sitara and Davinci is ARM. So Linux development is in creating board-specific code and peripheral drivers for concrete SoC.

    Chris Gray said:
    Is the 1808 a part where support is being dropped (oh I hope not!)?

    I do'nt think so... Sitara and Davinci places different market niche.

    Chris Gray said:
    the compiler recommended is three years old

    Stroll at this page http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ After simple registration you'll get access to download tool-chain release marked as 2012.03

  • First thanks Denis for helping with this post. I just want to clarify a little bit on our Linux kernel release - hopefully will help clear your confusion.

    1) AM1808, from a Linux kernel standpoint, is the same branch as DaVinci OMAP-L138 & DA850. I think the material on the link Denis provided should have AM1808/OMAPL138/DA850. I will inform the PSP team to have that updated. Bottom line AM1808 is still supported wrt Linux.

    2) Our kernels are taken from mainline. We add specific driver support and then work with the community to merge it back to mainline. The maintainer is Nori as listed on the wiki. Over time, the Davinci drivers can be found in mainline releases. The wiki is a good map to see which driver is available starting with which kernel version. If you are building an OMAP-L138/DA850/AM1808 board and wants to run Linux, in most cases the available drivers on mainline are adequate for a port. As an example this was done for the OMAP-L138 LCDK SDK which pulled kernel 3.1.10 from main line and ported to the LCDK hardware specifics. The advantage of porting from mainline is that you will have the latest kernel updates including the stacks (USB, wifi, etc.) that are part of Linux that you may need for your product. 

    3) The TI PSP releases target the TI supported EVMs and are usually in the for PSP <release number> (Third party evms will have their own SDK releases). These release include not just the kernel but also u-boot, flashing utils, examples, documentation, etc. and most importantly, drivers for peripherals on the EVM whether they are in mainline or not. I think this is probably the main difference between the TI and TI's 3rd party Linux SDK releases and what can be pulled from kernel.org. Because the release is pretty comprehensive, we can only target a Linux kernel version periodically, which is the same kernel process with other distros such as Ubuntu, Redhat, etc.

    The latest TI Linux release (LSP) for AM1808/OMAP-L138/DA850 can be downloaded from http://software-dl.ti.com/dsps/dsps_public_sw/psp/LinuxPSP/DaVinci_03_22/03_22_00_02/index_FDS.html. This version contains support for Linux kernel 3.3.0 for AM1808/ OMAP-L138 EVM from LogicPD. Detail info on drivers are in "Performance and Feature Guide" and "User's Guide" pages.

     

     

  • Thanks very much, this information is very useful :-)

    my primary focus is to have the most stable & fastest kernel possible on the AM1808,  (my project uses TCP/IP to read from the NIC and writes to USB2 using mass storage device), I dont have a display/etc

    what the official guidance for selecting a kernel?   is this correct

    a) read the wiki, if all the drivers needed are on kernel.org use that kernel
    b) if there is a driver missing, use the drop from March 22 (DaVinci_03_22)
    c) if something in the middle is needed (a new kernel.org feature + a driver from the 03_22,  I'm on my own?) :-)

     

  • Chris,

    That's basically has been the process for embedded Linux software since the combinations of I/O setups are endless. If your project involved EMAC, USB2 MSD for AM1808 I believe you are covered with this kernel release :-)

    Please hit "yes" if you think you are good to go with this question ...

  • great, thanks :)  (by 'this release' you mean mainline linux from linux.org?)

  • Either way - your drivers are available with the PSP 03.22.00.02 release or mainline from 3.1.x onwards.

  • hey, I gave this a try and I'm having some mixed success - using the kernel from kernel.org I'm able to boot (whoohoo!) and ethernet is working

    however USB is not working,  my old .config uses CONFIG_USB_TI_CPPI41_DMA,  this is not an option?

    can you confirm USB is in fact supported?  the wiki has some red boxes but is light on details  (http://processors.wiki.ti.com/index.php/DaVinci_GIT_Linux_Kernel#USB_Host

  • DMA support for musb there is only on "ti-sdk" kernel sources. Either Davinci-GIT or "vanilla" kernel has no DMA support for musb in TI Davinci, and offers only PIO mode. Not so long ago, I've been tryed to inject cppi41_dma.c to Davinci-GIT kernel-3.2.0, but there are too much difference between interfaces, function calls... so on, and so few my experience on kernel customising. I've been left this idea, for some time.

  • Loc, this seems to align with what I've seen - however it's not what you said in your previous post?

  • Yes for USB we are not quite there yet - we are working to push the changes to main line.

  • Hi Loc,  I'm revisiting this issue on our end as we get close to making a production run.  On the DaVinci-PSP-SDK-03.20.00.14 drop we're successful in attaching a USB mass storage device.  However on the DaVinci-PSP-03.22.00.02 we are not - we do not see the device appear, nor do we see any diagnostic tracing over the UART

    our board is booting the kernel fine,  ethernet works, etc.    I'm not a USB expert, but it looks okay to me - can you confirm that USB 2.0 is operational on the DaVinci-PSP-SDK-03.22.00.02 drop?  what do you think our problem is?

    to recap, this is an AM1808,  when running 03.22.00.02, in the default configuration from TI, we do not receive any USB tracing when plugging in a device

     

    U-Boot > bootm
    ## Booting kernel from Legacy Image at c0700000 ...
    Image Name: Linux-3.3.0
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 6611256 Bytes = 6.3 MiB
    Load Address: c0008000
    Entry Point: c0008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    Booting Linux on physical CPU 0
    Linux version 3.3.0 (root@chgraySDUbuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #6 PREEMPT Sat Feb 16 10:36:20 PST 2013
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: DaVinci DA850/OMAP-L138/AM18x EVM
    Memory policy: ECC disabled, Data cache writeback
    BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space
    DaVinci da850/omap-l138/am18x variant 0x1
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
    Kernel command line: console=/dev/ttyS0,115200n8 ip=dhcp mem=128M
    PID hash table entries: 512 (order: -1, 2048 bytes)
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 128MB = 128MB total
    Memory: 112960k/112960k available, 18112k reserved, 0K highmem
    Virtual kernel memory layout:
    vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    vmalloc : 0xc8800000 - 0xff000000 ( 872 MB)
    lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
    modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    .text : 0xc0008000 - 0xc03cb000 (3852 kB)
    .init : 0xc03cb000 - 0xc104c000 (12804 kB)
    .data : 0xc104c000 - 0xc1071ac0 ( 151 kB)
    .bss : 0xc1071ae4 - 0xc108b844 ( 104 kB)
    SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    NR_IRQS:245
    Console: colour dummy device 80x30
    Calibrating delay loop... 227.32 BogoMIPS (lpj=1136640)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    Setting up static identity map for 0xc02e9d58 - 0xc02e9db0
    gpiochip_add: registered GPIOs 0 to 31 on device: DaVinci
    gpiochip_add: registered GPIOs 32 to 63 on device: DaVinci
    gpiochip_add: registered GPIOs 64 to 95 on device: DaVinci
    gpiochip_add: registered GPIOs 96 to 127 on device: DaVinci
    gpiochip_add: registered GPIOs 128 to 143 on device: DaVinci
    DaVinci: 144 gpio irqs
    print_constraints: dummy:
    NET: Registered protocol family 16
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    tps6507x 1-0048: Read from reg 0xd failed
    set_machine_constraints: VDCDC1: failed to enable
    tps6507x 1-0048: failed to register tps6507x-pmic regulator
    pca953x 1-0020: failed reading register
    pca953x 1-0021: failed reading register
    i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
    Switching to clocksource timer0_1
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 4096 bind 4096)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    EMAC: MII PHY configured, RMII PHY will not be functional
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    msgmni has been set to 220
    io scheduler noop registered (default)
    da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01 panel
    Console: switching to colour frame buffer device 60x34
    Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a AR7
    serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a AR7
    serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a AR7
    console [ttyS2] enabled
    brd: module loaded
    ahci ahci: forcing PORTS_IMPL to 0x1
    ahci ahci: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    ahci ahci: flags: ncq sntf pm led clo only pmp pio slum part ccc
    scsi0 : ahci_platform
    ata1: SATA max UDMA/133 mmio [mem 0x01e18000-0x01e19fff] port 0x100 irq 67
    spi_davinci spi_davinci.1: DMA: supported
    spi_davinci spi_davinci.1: DMA: RX channel: 18, TX channel: 19, event queue: 0
    m25p80 spi1.0: found s25fl064k, expected m25p64
    m25p80 spi1.0: s25fl064k (8192 Kbytes)
    Creating 6 MTD partitions on "m25p80":
    0x000000000000-0x000000010000 : "UBL"
    0x000000010000-0x000000090000 : "U-Boot"
    0x000000090000-0x0000000a0000 : "U-Boot-Env"
    0x0000000a0000-0x000000320000 : "Kernel"
    0x000000320000-0x000000720000 : "Filesystem"
    0x0000007f0000-0x000000800000 : "MAC-Address"
    Read MAC addr from SPI Flash: 08:00:27:09:1d:49
    spi_davinci spi_davinci.1: Controller at 0xfef0e000
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
    davinci_mdio davinci_mdio.0: detected phy mask fffffffe
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[0]: device davinci_mdio-0:00, driver SMSC LAN8710/LAN8720
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    ohci ohci.0: DA8xx OHCI
    ohci ohci.0: new USB bus registered, assigned bus number 1
    Waiting for USB PHY clock good...
    ohci ohci.0: irq 59, io mem 0x01e25000
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: DA8xx OHCI
    usb usb1: Manufacturer: Linux 3.3.0 ohci_hcd
    usb usb1: SerialNumber: ohci.0
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    omap_rtc: RTC power up reset detected
    omap_rtc: already running
    i2c /dev entries driver
    watchdog watchdog: heartbeat 60 sec
    ata1: SATA link down (SStatus 0 SControl 300)
    cpuidle: using governor ladder
    cpuidle: using governor menu
    TCP cubic registered
    NET: Registered protocol family 17
    _regulator_get: deviceless supply cvdd not found, using dummy regulator
    console [netcon0] enabled
    netconsole: network logging started
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:10:02 UTC (946685402)
    davinci_mdio davinci_mdio.0: resetting idled controller
    net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)
    PHY: davinci_mdio-0:00 - Link is Up - 100/Full
    Sending DHCP requests ., OK
    IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.1.114
    IP-Config: Complete:
    device=eth0, addr=192.168.1.114, mask=255.255.255.0, gw=192.168.1.1,
    host=192.168.1.114, domain=hsd1.wa.comcast.net., nis-domain=(none),
    bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=