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.

Rebuilding u-boot

From this guide:

http://processors.wiki.ti.com/index.php/DM816x_AM389x_PSP_U-Boot#U-Boot_for_SD_boot

After it is stated "The pre-built U-Boot binaries that comes in the release package has been built for DDR3 based EVM and the configuration is forDDR3@400MHz I/O clk." it then states "The default configuration is for DDR3@796MHz.". Which is it?

Once you find this file arch/arm/include/asm/arch-ti81xx/ddr_defs.h, is it only the #define CONFIG_TI8168_DDR3_796 that needs to be changed or do you also need to change #define RD_DQS_GATE 0x138, #define RD_DQS 0x36 and #define WR_DQS 0x8E ? (these figures are ones I obtained using the DDR3_slave_ratio_search.out application). Also, the file ddr_defs.h does not contain the DDR3 speed reference but it seems to be in file ddr_defs_ti816x.h.

When you build u-boot as per "make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean" etc, what folder is this to be run from?

As a non-Linux person, I am not happy with the documentation that I was hoping would guide me to rebuilding u-boot.

I await your answers.

  • Graeme,

     Say you download the source (or clone it) in a directory uboot_scr,  now you can

    go into the directory uboot_scr, and just run the above command.

    It will only compile if you have cross compiler in our machine installed.

    Regards,

    --Prabhakar Lad

  • Thanks for the quick reply.

    I've just installed everything as described here: http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html 

    u-boot seems to be in /home/user_name/ti-ezsdk_dm816x-evm 5_03_01_15/board-support/u-boot-2010.06-psp04.00.01.13.patch1 does this look right?

    I have tried running the make commands from here, and there are plenty of errors about "command not found" with regard to arm-none-linux-gnueabi-gcc. I have the CodeSourcery toolchain installed, isn't that enough?

  • OK. Progress :)

    I have managed to rebuild the SD card structure including modifications necessary for the DDR3 speed that I am using. 

    When I type bdinfo it replies with the start addresses of my DDR3 banks (0x80000000 & 0xC0000000). It also states that the size is 0x40000000. Does this represent the EMIF size or what it thinks the DDR3 actually is? My DDR3 is only 0x10000000 bytes per EMIF.

    If I let the boot continue, then it always gets stuck at "ata1: SATA link down"

  • Here's the complete terminal output during boot:

    U-Boot 2010.06 (Jan 20 2012 - 14:46:10)

    DRAM: 2 GiB
    Using default environment

    MMC: OMAP SD/MMC: 0
    Hit any key to stop autoboot: 0
    raise: Signal # 8 caught
    reading u-boot.bin

    184784 bytes read
    ## Starting application at 0x80800000 ...


    U-Boot 2010.06 (Jan 20 2012 - 14:51:27)

    TI8168-GP rev 1.1

    ARM clk: 987MHz
    DDR clk: 675MHz

    I2C: ready
    DRAM: 2 GiB
    NAND: HW ECC Hamming Code selected
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit
    )
    NAND bus width 16 instead 8 bit
    No NAND device found!!!
    0 MiB
    *** Warning - bad CRC or NAND, using default environment

    :,;;:;:;;;;;;;;r;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:;;;;;;;;:,;;:;:
    ;,;:::;;;;r;;;rssiSiS552X5252525259GX2X9hX9X9XX2325S55252i5:,;;:;:;;;;;;;;:,;;:
    ;:;;;;;;;rrssSsS52S22h52299GGAAMHMM#BBH#B#HMM#HMBA&&XX2255S2S5Si:,;;:;:;;;;;;;;
    ;:;;r;;rsrrriiXS5S329&A&MH#BMB#A&9XXA252GXiSXX39AAMMMBB&G22S5i2SSiiiisi:,;;:;:;
    ;;;;;r;rr2iisiih393HB#B#AA99i22irrrX3X52AGsisss2Xii2299HBMA&X2S5S5iSiisSsi:,;;:
    r:r;rrsrsihXSi2&##MHB&Ahh3AGHGA9G9h&#H##@@@##MAMMXXX9SSS29&&HGGX2i5iisiiisisi:,
    ;;rrrrsSiiiA&ABH&A9GAGhAhBAMHA9HM@@@@@@@@@@@@@@@@@@@HHhAh2S2SX9&Gh22SSiisiiisii
    r:rrssisiS2XM##&h3AGAX&3GG3Ssr5H@M#HM2; ;2X&&&MHMB###GBB#B&XXSSs529XX55iSsisisi
    r;rsrisSi2XHAhX99A3XXG&&XS;:,rH#HGhAS @@@@3rs2XBM@@A552&&AHA2XiisSS252SSsisSs
    r;issi5S22&&3iSSX292&hXsr;;:;h@&G339&S9@@@@2@MA&9&HB##Xris29ABMAAX2ir;rsSi5iss5
    rrsSi2XhG&9GXh399&X99i;;;;;;r#H&293H9X#@@@@@@@B&9GhAH@XrrsrsiXABHB&HG2rr;rrSiSi
    ;:rsisS599&AA9XG&3A35r;:::;,;BMh&&2iX5A@@@@@@@&392X5GB2;;;r;iSX393A##A&Xi:::rsi
    ;:rss552222X553&XHMhir;;::,:,h#HhGSXhG3#@@@@#AXXS2XAHA;::;;;;ss55XShBA3239r:,;;
    r;ii2S5SSi2i53hirsh2srr::,,,,;MMXX359&Ah3h&Si59SX99A#i:,::::;;sri2,.2r;:SGAr;,:
    ;:;rrrrssiriXGSi::shs;;;,,,:,,rBBA9h5s5h5iS5isi2SAHB5:,,,:::;rrs5&SrisSX5Srrr:,
    ;,r;;;;rsriSSrrrr;;5Xrr;;,:,,.,;9AA2SsisS5323XXXG9&i:.,,::;;r;;;srrrrrr;;:;::::
    :,;r;r;rrissrrr;:;::;s;;;;,:,,..,r293h222hXXAAGGGX;:,,,:,:,::;:;::,:,,,,...,,,,
    ;,;;;;rrrrrrrrirr;,.,,:::::::,,,,.,;SX&ABAB2hhXir:,,.,,.,,:,,,,..,,,..,..,,,..:
    :.:;:;;;:;;;;r;rrs;:.. ,,:::::,:,:,,.::rrsrr;;,,.......,..,....,,,,,,,...,.,,:,
    :.:::,::::::;;r;rrr;:.......,.,.,,:::,,...............,,::.,,,,:,::,,:,:,,,:,;:
    ,.::,:,,,,,;;;;;;;;r;;::,..............................;;;:;::::,:::::::,:,:,,,
    : ,,:,,,,,,,,,,,,,:;rrr;;:;,,,,,,,::,.,.:.,.,;s,:;;;;:;:;;;;;::::,:::,:::,:,:,:
    ,.,,,,,,,...,,.,,....................................:,............:,,,:,:,,,,,

    MMC: OMAP SD/MMC: 0
    Net: <ethaddr> not set. Reading from E-fuse
    Detected MACID:90:d7:eb:1d:bd:26
    Ethernet PHY: GENERIC @ 0x01
    DaVinci EMAC
    Hit any key to stop autoboot: 0
    raise: Signal # 8 caught
    reading boot.scr

    301 bytes read
    Running bootscript from MMC/SD to set the ENV...
    ## Executing script at 80900000
    reading uImage

    2428376 bytes read
    ## Booting kernel from Legacy Image at 80009000 ...
    Image Name: Arago/2.6.37-psp04.00.01.13/dm81
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2428312 Bytes = 2.3 MiB
    Load Address: 80008000
    Entry Point: 80008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    Linux version 2.6.37 (x0029463@swubn01) (gcc version 4.3.3 (Sourcery G++ Lite 20
    09q1-203) ) #1 Fri Dec 9 11:59:08 IST 2011
    CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
    CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: ti8168evm
    bootconsole [earlycon0] enabled
    vram size = 52428800 at 0x0
    reserved size = 52428800 at 0x0
    FB: Reserving 52428800 bytes SDRAM for VRAM
    Memory policy: ECC disabled, Data cache writeback
    OMAP chip is TI8168 1.1
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 52224
    Kernel command line: console=ttyO2,115200n8 rootwait root=/dev/mmcblk0p2 rw mem=
    256M earlyprintk notifyk.vpssm3_sva=0xBF900000 vram=50M ti816xfb.vram=0:16M,1:16
    M,2:6M ip=off noinitrd
    PID hash table entries: 1024 (order: 0, 4096 bytes)
    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    Memory: 206MB = 206MB total
    Memory: 203420k/203420k available, 58724k reserved, 0K highmem
    Virtual kernel memory layout:
    vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
    vmalloc : 0xd0800000 - 0xf8000000 ( 632 MB)
    lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
    pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    .init : 0xc0008000 - 0xc003a000 ( 200 kB)
    .text : 0xc003a000 - 0xc049c000 (4488 kB)
    .data : 0xc049c000 - 0xc04e36c0 ( 286 kB)
    SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    NR_IRQS:407
    IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    Total of 128 interrupts on 1 active controller
    GPMC revision 6.0
    Trying to install interrupt handler for IRQ400
    Trying to install interrupt handler for IRQ401
    Trying to install interrupt handler for IRQ402
    Trying to install interrupt handler for IRQ403
    Trying to install interrupt handler for IRQ404
    Trying to install interrupt handler for IRQ405
    Trying to install interrupt handler for IRQ406
    Trying to install type control for IRQ407
    Trying to set irq flags for IRQ407
    OMAP clockevent source: GPTIMER1 at 27000000 Hz
    Console: colour dummy device 80x30
    Calibrating delay loop... 986.31 BogoMIPS (lpj=4931584)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    devtmpfs: initialized
    omap_voltage_early_init: voltage driver support not added
    regulator: core version 0.5
    regulator: dummy:
    NET: Registered protocol family 16
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    omap_mux_init: Add partition: #1: core, flags: 0
    _omap_mux_get_by_name: Could not find signal i2c2_scl.i2c2_scl
    _omap_mux_get_by_name: Could not find signal i2c2_sda.i2c2_sda
    NOR: Can't request GPMC CS
    registered ti816x_vpss device
    registered ti816x_gpio_vr device
    registered TI816x on-chip HDMI device
    registered ti816x_sr device
    registered ti81xx_vidout device
    pm_dbg_init: only OMAP3 supported
    ti81xx_pcie: Invoking PCI BIOS...
    ti81xx_pcie: Setting up Host Controller...
    ti81xx_pcie: Register base mapped @0xd0820000
    ti81xx_pcie: Starting PCI scan...
    PCI: bus0: Fast back to back transfers enabled
    bio: create slab <bio-0> at 0
    regulator: VFB: 800 <--> 1025 mV at 920 mV
    vgaarb: loaded
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    registerd cppi-dma Intr @ IRQ 17
    Cppi41 Init Done
    omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
    omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
    Advanced Linux Sound Architecture Driver Version 1.0.23.
    Switching to clocksource gp timer
    musb-hdrc: version 6.0, host, debug=0
    musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    musb-hdrc: kernel must blacklist external hubs
    musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: MUSB HDRC host driver
    usb usb1: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb1: SerialNumber: musb-hdrc.0
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.0: USB Host mode controller at d081e000 using DMA, IRQ 18
    musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    musb-hdrc: kernel must blacklist external hubs
    musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: MUSB HDRC host driver
    usb usb2: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb2: SerialNumber: musb-hdrc.1
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.1: USB Host mode controller at d0826800 using DMA, IRQ 19
    NET: Registered protocol family 2
    IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    TCP: Hash tables configured (established 8192 bind 8192)
    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
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    NetWinder Floating Point Emulator V0.97 (double precision)
    PMU: registered new PMU device of type 0
    omap-iommu omap-iommu.0: ducati registered
    omap-iommu omap-iommu.1: sys registered
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    msgmni has been set to 397
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
    omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    console [ttyO2] enabled, bootconsole disabled
    console [ttyO2] enabled, bootconsole disabled
    brd: module loaded
    loop: module loaded
    ahci ahci.0: forcing PORTS_IMPL to 0x3
    ahci ahci.0: AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl platform mode
    ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc
    scsi0 : ahci_platform
    scsi1 : ahci_platform
    ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16
    ata2: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x180 irq 16
    m25p80 spi1.0: found m25p05-nonjedec, expected w25x32
    m25p80 spi1.0: m25p05-nonjedec (64 Kbytes)
    Creating 4 MTD partitions on "spi_flash":
    0x000000000000-0x000000040000 : "U-Boot"
    mtd: partition "U-Boot" extends beyond the end of device "spi_flash" -- size tru
    ncated to 0x10000
    0x000000010000-0x000000012000 : "U-Boot Env"
    mtd: partition "U-Boot Env" is out of reach -- disabled
    0x000000000000-0x000000280000 : "Kernel"
    mtd: partition "Kernel" extends beyond the end of device "spi_flash" -- size tru
    ncated to 0x10000
    0x000000010000-0x000000010000 : "File System"
    mtd: partition "File System" is out of reach -- disabled
    omap2-nand driver initializing
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron )
    Creating 5 MTD partitions on "omap2-nand.0":
    0x000000000000-0x000000260000 : "U-Boot"
    0x000000260000-0x000000280000 : "U-Boot Env"
    0x000000280000-0x0000006c0000 : "Kernel"
    0x0000006c0000-0x00000cee0000 : "File System"
    0x00000cee0000-0x000010000000 : "Reserved"
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    davinci_mdio davinci_mdio.0: detected phy mask fffffff9
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
    davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver dm9601
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    mice: PS/2 mouse device common for all mice
    omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    i2c /dev entries driver
    Linux video capture interface: v2.00
    usbcore: registered new interface driver uvcvideo
    USB Video Class driver (v1.0.0)
    OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    notify_init : notify drivercreated for remote proc id 2 at physical Address 0x
    bf900000
    usbcore: registered new interface driver snd-usb-audio
    asoc: tlv320aic3x-hifi <-> davinci-mcasp.2 mapping ok
    ALSA device list:
    #0: TI81XX EVM
    TCP cubic registered
    NET: Registered protocol family 17
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    omap_voltage_late_init: Voltage driver support not added
    Power Management for TI81XX.
    smartreflex smartreflex: Driver initialized
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    ata2: SATA link down (SStatus 0 SControl 300)