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.

only bring up one core

Hi:

I just follow the Ti's steps. But only one core can bring up successfully.

anything wrong?

Kernel log.

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Linux version 3.10.10-svn148 (william@ubuntu) (gcc version 4.9.1 20140710 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.07 - Linaro GCC 4.9-2014.07) ) #5 SMP PREEMPT Wed Oct 1 18:36:51 CST 2014
[    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c7387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] Machine: KeyStone2, model: nsn,fzm
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] switching to high address space at 0x840000000
[    0.000000] INITRD: 0x802000000+0x00900000 is not a memory region - disabling initrd
[    0.000000] cma: CMA: reserved 20 MiB at 6e400000
[    0.000000] Memory policy: ECC disabled, Data cache writealloc
[    0.000000] DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map
[    0.000000] PERCPU: Embedded 8 pages/cpu @c3164000 s12160 r8192 d12416 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 752144
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootwait=1 earlyprintk rdinit=/sbin/init rw root=/dev/ram0 initrd=0x802000000,9M
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 2944MB = 2944MB total
[    0.000000] Memory: 2942572k/2942572k available, 72084k reserved, 2236416K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc06e2fa4   (7020 kB)
[    0.000000]       .init : 0xc06e3000 - 0xc198cf80   (19112 kB)
[    0.000000]       .data : 0xc198e000 - 0xc19d0fd8   ( 268 kB)
[    0.000000]        .bss : 0xc19d0fd8 - 0xc1a3a784   ( 422 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] ipc irq: irqchip registered, range 512-539
[    0.000000] main_pll_clk rate is 0, postdiv = 2, mult = 19,prediv = 0
[    0.000000] main_pll_clk rate is 1228800000, postdiv = 2, mult = 19,prediv = 0
[    0.000000] Architected local timer running at 204.80MHz (phys).
[    0.000000] Switching to timer-based delay loop
[    0.000000] sched_clock: ARM arch timer >56 bits at 204800kHz, resolution 4ns
[    0.000000] keystone timer clock @204800000 MHz
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
[    0.000000] Console: colour dummy device 80x30
[   72.611418] Calibrating delay loop (skipped), value calculated using timer frequency.. 409.60 BogoMIPS (lpj=2048000)
[   72.620155] pid_max: default: 32768 minimum: 301
[   72.624103] Mount-cache hash table entries: 512
[   72.635834] Initializing cgroup subsys net_cls
[   72.639600] CPU: Testing write buffer coherency: ok
[   72.643810] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[   72.648545] Setting up static identity map for 0xc0526b40 - 0xc0526b74
[   73.533651] CPU1: failed to come online
[   74.369569] CPU2: failed to come online
[   75.205487] CPU3: failed to come online
[   75.208720] Brought up 1 CPUs
[   75.211228] SMP: Total of 1 processors activated (409.60 BogoMIPS).
[   75.216458] CPU: All CPU(s) started in SVC mode.
[   75.220755] devtmpfs: initialized
[   75.235067] NET: Registered protocol family 16
[   75.239537] DMA: preallocated 256 KiB pool for atomic coherent allocations
[   75.248735] gpio-keystone 260bf00.gpio: Runtime PM disabled, clock forced on.
[   75.254714] gpio-keystone 260bf00.gpio: Invalid mem resource
[   75.259445] gpio-keystone: probe of 260bf00.gpio failed with error -22
[   75.269550] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[   75.276226] hw-breakpoint: maximum watchpoint size is 8 bytes.
[   75.292281] bio: create slab <bio-0> at 0
[   75.295978] keystone-pcie: keystone_pcie_rc_init - start
[   75.300464] keystone2_pcie_serdes_setup
[   75.305379] keystone2_pcie_serdes_setup done, en_link_train = 1
[   75.310342] keystone-pcie: MEM 0x0000000050000000..0x000000005fffffff -> 0x0000000050000000
[   75.317363] keystone-pcie: IO 0x0000000024000000..0x0000000024003fff -> 0x0000000000000000
[   75.324254] keystone-pcie: pcie - number of legacy irqs = 4
[   75.328956] keystone-pcie: pcie - number of MSI host irqs = 8, msi_irqs = 32
[   75.419098] keystone-pcie: Doing PCI Setup...Done
[   75.423035] keystone-pcie: Starting PCI scan...
[   75.426908] PCI host bridge to bus 0000:00
[   75.430376] pci_bus 0000:00: root bus resource [mem 0x50000000-0x5fffffff]
[   75.436102] pci_bus 0000:00: root bus resource [io  0x0000-0x3fff]

  • Are you loading the boot monitor before running smp linux. Typically you will see PMU driver come up before secondary cores wake up I don`t see that in you log. Check reference log mentioned here:

    [    0.000364] Mount-cache hash table entries: 512
    [    0.008205] CPU: Testing write buffer coherency: ok
    [    0.008399] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.008435] hw perfevents: enabled with ARMv7 Cortex-A15 PMU driver, 7 counte
    rs available
    [    0.008503] Setting up static identity map for 0x804074b0 - 0x804074e4
    [    0.104891] CPU1: Booted secondary processor
    [    0.104932] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [    0.154985] CPU2: Booted secondary processor
    [    0.155031] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
    [    0.205092] CPU3: Booted secondary processor
    [    0.205141] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
    [    0.205335] Brought up 4 CPUs
    [    0.205375] SMP: Total of 4 processors activated (1333.33 BogoMIPS).
    [    0.232209] NET: Registered protocol family 16

    Can you mention the tag you are using. Also are you using the default Keystone2 configuration to build the kernel.

    Regards,
    Rahul
  • Hi Rahul:

    I use the "git clone git://git.ti.com/keystone-linux/linux.git" to get the latest version and do not change anything.

    Also the git://git.ti.com/keystone-linux/boot-monitor.git for boot_monitor.

     

    Here is my u-boot command flow:

    > setenv autoload no
    > tftp 0x0c5f0000 skern_k2hk.bin
    > tftp 0x88000000 k2hk_evm.dtb
    > tftp 0x90000000 uImage
    > mon_install 0x0c5f0000
    > setenv bootargs console=ttyS0,115200n8 earlyprintk panic=3 maxcpus=4 cma=34M rdinit=/sbin/init rw root=/dev/ram0

    > bootm 0x90000000 - 0x88000000

    Do we have any patch about this in Kernel side? 

    Regards,

    William

     

  • Hi Rahul:

    Sorry for another answer about the PMU driver.

    I saw the log in following link:

    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#Setup_u-boot_env_variables

    The bring up log enable 4 core and do not have PMU driver log.

    Do we still need to enable that?

     

    Regards,

  • William,

    You didn't download the device tree in your steps. Please use TI default uboot env set up. I suggest you first burn the uboot if it is not up to date. If you have tftp and dhcp server setup (TI assumes they are the on same machine), then you can follow the steps (which you can find also in the wiki page):

    Note: You may need to modify name_uboot to mach the .gph file on tftp server.

    # setenv serverip <your tftp server ip addr>
    # setenv tftp_root <your tftp directory>
    # run get_uboot_net
    # run burn_uboot

    Wait till the burn is completed, then reset or power cycle the EVM

    # env default –f –a
    # setenv serverip <your tftp server ip addr>
    # setenv tftp_root <your tftp directory>
    # setenv args_ramfs ‘setenv bootargs ${bootargs} rdinit=/sbin/init rw root=/dev/ram0 initrd=0x802000000,80M’
    # setenv boot ramfs
    # saveenv
    # boot

    See if this works for you.

    Rex

  • Hi William,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com).

    We would recommend you to use the latest MCSDK for development. Please use the kernel tag specified in the MCSDK 3.1 release notes( section 9.1 to build the kernel).

    [    0.000000] Machine: KeyStone2, model: Texas Instruments Keystone 2 SoC

    instead

    [    0.000000] Machine: KeyStone2, model: nsn,fzm

    Please refer below wiki to build the K2 Linux kernel.

    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#Linux_kernel_and_the_device_tree_blob_build_instructions

    Are you working on custom board or EVM?

    Thank you.

  • Hi,

    Also please ensure that all cores are enabled with MCSDK pre-built images. 

    Thank you.