Hans 3.15 kernel - second CPU

248 views
Skip to first unread message

jons...@gmail.com

unread,
Jun 12, 2014, 10:18:04 AM6/12/14
to linux-sunxi
Any ideas why the second CPU isn't booting?

root@linaro-developer:/etc# dmesg | grep -i CPU
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[ 0.000000] PERCPU: Embedded 9 pages/cpu @ee7cc000 s12736 r8192 d15936 u36864
[ 0.000000] pcpu-alloc: s12736 r8192 d15936 u36864 alloc=9*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.002235] CPU: Testing write buffer coherency: ok
[ 0.031818] /cpus/cpu@0 missing clock-frequency property
[ 0.031846] /cpus/cpu@1 missing clock-frequency property
[ 0.031858] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.038881] CPU1: failed to boot: -38
[ 0.038926] Brought up 1 CPUs
[ 0.038941] CPU: All CPU(s) started in SVC mode.
[ 1.631337] ThumbEE CPU extension supported.
[ 15.298527] CPU1: failed to boot: -38
root@linaro-developer:/etc#



--
Jon Smirl
jons...@gmail.com

Chen-Yu Tsai

unread,
Jun 12, 2014, 10:20:51 AM6/12/14
to linux-sunxi
A20 SMP is enabled using PSCI. You'll need a u-boot branch with PSCI support.

Hans' sunxi-devel does:
https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-next

jons...@gmail.com

unread,
Jun 12, 2014, 10:23:30 AM6/12/14
to linux-sunxi
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Jon Smirl
jons...@gmail.com

jons...@gmail.com

unread,
Jun 12, 2014, 10:26:03 AM6/12/14
to linux-sunxi
On Thu, Jun 12, 2014 at 10:20 AM, Chen-Yu Tsai <we...@csie.org> wrote:
For uboot I am on:
https://github.com/jwrdegoede/u-boot-sunxi.git
Branch sunxi

Kernel is:
https://github.com/jwrdegoede/linux-sunxi.git
Branch sunxi-devel

Maybe I don't have PSCI turned on somewhere?

Chen-Yu Tsai

unread,
Jun 12, 2014, 10:27:41 AM6/12/14
to linux-sunxi, Jon Smirl
You need branch sunxi-next from Hans' repo.

Hopefully PSCI support will be merged upstream soon.

jons...@gmail.com

unread,
Jun 12, 2014, 10:32:31 AM6/12/14
to Chen-Yu Tsai, Hans de Goede, linux-sunxi
I see that now. PSCI is no sunxi-next and his support for making
Cubietruck Broadcom wifi work on on sunxi-devel.

I guess I can live with one CPU for now since I need the wifi support more.

>
>> Kernel is:
>> https://github.com/jwrdegoede/linux-sunxi.git
>> Branch sunxi-devel
>>
>> Maybe I don't have PSCI turned on somewhere?



--
Jon Smirl
jons...@gmail.com

jons...@gmail.com

unread,
Jun 12, 2014, 10:55:19 AM6/12/14
to Chen-Yu Tsai, Hans de Goede, linux-sunxi
I have it working now. I thought I also needed the next branch of the
kernel, but that was not the case. Switching uboot is all that is
needed.

root@linaro-developer:~# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4

processor : 1
model name : ARMv7 Processor rev 4 (v7l)
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4

Hardware : Allwinner sun7i (A20) Family
Revision : 0000
Serial : 0000000000000000
root@linaro-developer:~#





>
>>
>>> Kernel is:
>>> https://github.com/jwrdegoede/linux-sunxi.git
>>> Branch sunxi-devel
>>>
>>> Maybe I don't have PSCI turned on somewhere?
>
>
>
> --
> Jon Smirl
> jons...@gmail.com



--
Jon Smirl
jons...@gmail.com

bruce bushby

unread,
Jun 22, 2014, 2:59:50 PM6/22/14
to linux...@googlegroups.com
Hi Jon

Just read your fix for getting CPU 1 online .....hoping I could bounce a couple of questions off you?

How did you "switch uboot" ..... did you "flash" a new version over writing the factory version that shipped with your board? I'm using an Olimex A20-SOM eval kit and building from mainline kernel. So far things are working, but I have 3 issues I'm struggling with:

1. Update my uboot using ( https://github.com/jwrdegoede/u-boot-sunxi ) ....thank you Hans!! 

2. CPU 1 fails to start ( guess this is caused by uboot)

3. Bring up the network (eth0 is there, I can configure it using the ip command but I can't bring it up)


Any comments or hints would be a great help, thanks!! ..... 


Network:
# ip link set eth0 address 02:01:02:03:04:08
# ip address add 192.100.1.76/24 dev eth0 
# ip link set dev eth0 up
[ 1056.098099] stmmac_hw_setup: DMA engine initialization failed
[ 1056.103860] stmmac_open: Hw setup failed
ip: SIOCSIFFLAGS: Device or resource busy









Kernel Boot, CPU 1 failed to start:
# reboot
# [ 1351.515234] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes[ 1353.533735] reboot: Restarting system
[ 1354.537520] Reboot failed -- System halted

U-Boot SPL 2013.10-rc2-08400-g8a4621c (Oct 29 2013 - 15:24:26)
Board: A20-OLinuXino_MICRO
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2
spl: not an uImage at 1600


U-Boot 2013.10-rc2-08400-g8a4621c (Oct 29 2013 - 15:24:26) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
Board: A20-OLinuXino_MICRO
I2C:   ready
DRAM:  1 GiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   emac
Hit any key to stop autoboot:  0 
reading uEnv.txt
** Unable to read file uEnv.txt **
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
reading boot.scr
241 bytes read in 6 ms (39.1 KiB/s)
Jumping to boot.scr
## Executing script at 44000000
reading script.bin
52608 bytes read in 5 ms (10 MiB/s)
reading uImage
2607593 bytes read in 116 ms (21.4 MiB/s)
## Booting kernel from Legacy Image at 48000000 ...
   Image Name:   Linux-3.16.0-rc2
   Created:      2014-06-22  11:36:24 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2607529 Bytes = 2.5 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.16.0-rc2 (br...@core.home.local) (gcc version 4.9.0 (Buildroot 2014.08-git-00381-g27a1f09) ) #1 SMP Sun Jun 22 12:12:33 BST 2014
[    0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Olimex A20-Olinuxino Micro
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 5 pages/cpu @eefd4000 s6848 r0 d13632 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260624
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
[    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: 1034260K/1048576K available (3765K kernel code, 181K rwdata, 744K rodata, 222K init, 231K bss, 14316K reserved, 270336K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]       .text : 0xc0008000 - 0xc046fa34   (4511 kB)
[    0.000000]       .init : 0xc0470000 - 0xc04a7ac0   ( 223 kB)
[    0.000000]       .data : 0xc04a8000 - 0xc04d57c0   ( 182 kB)
[    0.000000]        .bss : 0xc04d57c8 - 0xc050f62c   ( 232 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (virt).
[    0.000011] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 2863311519744ns
[    0.000019] Switching to timer-based delay loop
[    0.000289] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.000412] sched_clock: 32 bits at 160MHz, resolution 6ns, wraps every 26843545593ns
[    0.000606] Console: colour dummy device 80x30
[    0.000640] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000654] pid_max: default: 32768 minimum: 301
[    0.000775] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000787] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001363] CPU: Testing write buffer coherency: ok
[    0.001669] /cpus/cpu@0 missing clock-frequency property
[    0.001688] /cpus/cpu@1 missing clock-frequency property
[    0.001701] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001765] Setting up static identity map for 0x40394f08 - 0x40394f60
[    0.002919] CPU1: failed to boot: -38
[    0.002960] Brought up 1 CPUs
[    0.002967] SMP: Total of 1 processors activated.
[    0.002974] CPU: All CPU(s) started in SVC mode.
[    0.003546] devtmpfs: initialized

jons...@gmail.com

unread,
Jun 22, 2014, 3:08:12 PM6/22/14
to linux-sunxi
You need to be on the sunxi-next branch of his uboot.

jonsmirl@studio:/work/u-boot-sunxi$ git remote show origin
* remote origin
Fetch URL: https://github.com/jwrdegoede/u-boot-sunxi.git
Push URL: https://github.com/jwrdegoede/u-boot-sunxi.git
HEAD branch: sunxi
Remote branches:
a20 tracked
fedora-18-3.4-1 tracked
fedora-18-3.4-2 tracked
fedora-18-3.4-3 tracked
fedora-19-r1 tracked
fedora-19-r2 tracked
lichee-dev tracked
lichee/lichee-dev tracked
lichee/lichee-dev-ICS tracked
lichee/lichee-dev-mmc tracked
sun4i-upstreaming-v1 tracked
sun4i-upstreaming-v2 tracked
sunxi tracked
sunxi-a31-axp221 tracked
sunxi-current tracked
sunxi-for-albert tracked
sunxi-next tracked
sunxi-test tracked
sunxi-upstreaming tracked
sunxi-v2014.04 tracked
v2014.01-sunxi tracked
v2014.04-sunxi tracked
Local branches configured for 'git pull':
sunxi merges with remote sunxi
sunxi-next merges with remote sunxi-next
Local refs configured for 'git push':
sunxi pushes to sunxi (local out of date)
sunxi-next pushes to sunxi-next (local out of date)
jonsmirl@studio:/work/u-boot-sunxi$ git branch
sunxi
* sunxi-next
jonsmirl@studio:/work/u-boot-sunxi$

bruce bushby

unread,
Jun 22, 2014, 3:55:44 PM6/22/14
to linux...@googlegroups.com
Hi Jon

I am using the "sunxi-next" branch and everything compiles clean..... I just don't know how to install / update the uboot that is in my module ..... no doubt I just need to RTFM a bit more..... can' t imagine its that hard to flash the board with the new version of uboot?

# Bootloaders
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="Cubieboard2"
BR2_TARGET_UBOOT_CUSTOM_GIT=y
BR2_TARGET_UBOOT_VERSION="sunxi-next"
BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/jwrdegoede/u-boot-sunxi.git"
BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="257ae94e88ff27dbd92018f17cd22b16b585e67d"
BR2_TARGET_UBOOT_FORMAT_BIN=y
BR2_TARGET_UBOOT_SPL=y
BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-next-spl.bin"
[bruce@core buildroot]$ 
[bruce@core buildroot]$ ls -l output/images/u-boot*
-rw-rw-r--. 1 bruce bruce 241160 Jun 22 17:09 output/images/u-boot.bin
-rw-rw-r--. 1 bruce bruce 273992 Jun 22 17:09 output/images/u-boot-sunxi-next-spl.bin
[bruce@core buildroot]$



--
You received this message because you are subscribed to a topic in the Google Groups "linux-sunxi" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/linux-sunxi/R4qUaIwBUok/unsubscribe.
To unsubscribe from this group and all its topics, send an email to linux-sunxi...@googlegroups.com.

jons...@gmail.com

unread,
Jun 22, 2014, 4:14:14 PM6/22/14
to linux-sunxi
Just boot off of an SD Card until you are happy with everything. If
there is a bootable SD Card in the device, the A20 will boot from it
and ignore flash.

That is how I do development so that I don't have to keep messing with
refashing the target.

To get started just make an SD Card with uboot on it.

bruce bushby

unread,
Jun 23, 2014, 4:42:35 PM6/23/14
to linux...@googlegroups.com

Thanks Jon, your comments made me think about things and then a realized what an idiot I was :)  When unpacking my board I wanted to see something boot asap, so I "dd" a pre-compiled sd card image on and it all worked....then I built my own images and copied them on....but I never ran a "dd" of my new u-boot duh!!



U-Boot SPL 2014.04 (Jun 23 2014 - 20:39:42)
Board: Cubieboard2
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2
spl: not an uImage at 1600


U-Boot 2014.04 (Jun 23 2014 - 20:39:42) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
Board: Cubieboard2
I2C:   ready
DRAM:  1 GiB
MMC:   SUNXI SD/MMC: 0
In:    serial
Out:   serial
Err:   serial
Net:   dwmac.1c50000
Hit any key to stop autoboot:  0 
sun7i#



Are you using a "dtb" file when you boot?

This one just hangs after "Starting Kernel...."
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
fatload mmc 0 0x46000000 uImage
fatload mmc 0 0x49000000 sun7i-a20-olinuxino-micro.dtb 
env set fdt_high ffffffff
bootm 0x46000000 - 0x49000000


This one boots and I can login....but I can't help but feel I should be using the "dtb" file?
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
fatload mmc 0 0x43000000 script.bin
fatload mmc 0 0x48000000 uImage
bootm 0x48000000




These are my resulting image files:
[bruce@core buildroot]$ ls -l output/images
total 4524
-rw-rw-r--. 1 bruce bruce     241 Jun 23 20:58 boot.scr
-rw-rw-r--. 1 bruce bruce 1423360 Jun 23 20:58 rootfs.tar
-rw-rw-r--. 1 bruce bruce   52608 Jun 23 20:58 script.bin
-rw-rw-r--. 1 bruce bruce   21393 Jun 23 20:58 sun7i-a20-olinuxino-micro.dtb
-rw-rw-r--. 1 bruce bruce  241160 Jun 23 20:39 u-boot.bin
-rw-rw-r--. 1 bruce bruce  273992 Jun 23 20:39 u-boot-sunxi-with-spl.bin
-rw-rw-r--. 1 bruce bruce 2607665 Jun 23 20:58 uImage
[bruce@core buildroot]$




This is the building "defconfig" I put together:
# Architecture
BR2_arm=y
BR2_cortex_a7=y

# System configuration
BR2_TARGET_GENERIC_HOSTNAME="A20-SOM"
BR2_TARGET_GENERIC_ISSUE="Welcome to A20-SOM"
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/a20-som/post-build.sh"

# Toolchain
BR2_STRIP_sstrip=n
BR2_GCC_VERSION_4_9_X=y
BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=n


# Additional tools
BR2_PACKAGE_HOST_SUNXI_TOOLS=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
BR2_PACKAGE_SUNXI_TOOLS=y
BR2_PACKAGE_SUNXI_BOARDS=y
BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/a20-olinuxino_micro.fex"

# Kernel headers
#BR2_LINUX_KERNEL_SAME_AS_HEADERS=y

# Kernel (master: 3.16.0 rc2)
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_VERSION="master"
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/torvalds/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee"
BR2_LINUX_KERNEL_PATCH="board/olimex/a20-som/kernel-patches/"
BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000"
BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
BR2_LINUX_KERNEL_APPENDED_DTB=y
BR2_LINUX_KERNEL_USE_INTREE_DTS=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-micro"


# Bootloaders (sunxi-next)
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="Cubieboard2"
BR2_TARGET_UBOOT_CUSTOM_GIT=y
BR2_TARGET_UBOOT_VERSION="sunxi-next"
BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/jwrdegoede/u-boot-sunxi.git"
BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="257ae94e88ff27dbd92018f17cd22b16b585e67d"
BR2_TARGET_UBOOT_FORMAT_BIN=y
BR2_TARGET_UBOOT_SPL=y
BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"




Thanks again!
Bruce






Reply all
Reply to author
Forward
0 new messages