Adding support for a BCM94708 device

Hi OpenWRT world,

I am currently working on a new device based on a BCM94708 ARM platform. This router runs under a custom Linux OS where I was able to have a root access. i was able to perform a DTS dump and now, I would like to create a working OpenWRT firmware but it fails at the kernel compilation.
I apologize for obfuscating the router name, I am currently in negotiation with the manufacturer to be able to publicly talk about and release OpenWRT for their router.

Here is what I did to add this new target:

  1. Added the following line in target/linux/bcm53xx/image/Makefile:

define Device/new-router
DEVICE_TITLE := My New Router
DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
IMAGES := bin
endef
TARGET_DEVICES += new-router

  1. Put the generated DTS file into build_dir/toolchain-arm_cortex-a9_gcc-7.3.0_musl_eabi/linux/arch/arm/boot/dts/. Name of the file: bcm94708-new-router.dts

  2. Modified build_dir/toolchain-arm_cortex-a9_gcc-7.3.0_musl_eabi/linux/arch/arm/boot/dts/Makefile and added bcm94708-new-router.dtb \ under the dtb-$(CONFIG_ARCH_BCM_5301X) section (where there is the one for the Buffalo WZR-600DHP2)

  3. Ran "make menuconfig", selected "My New Router" under "Target Profile" and then ran "make". After some minutes, the compilation results in a failure. The main cause I think, is this error in the logs:

cat openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx/image-.dtb >> openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx/new-router-kernel.bin
openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx/image-.dtb: No such file or directory

It looks like the DTS file is not compiled into a DTB file.
I tried to follow the OpenWRT documentation to add a new target but the tree is not the same (no /boot/dts folder in target/linux/bcm53xx/). I also tried to reproduce what was done for the Buffalo WZR-600DHP2 (put DTS file in the same folder) but nothing works.

Can someone help me with that?

Hello again,

after cloning the OpenWRT repo, I saw I made a mistake because the 'build_dir' directory does not exists. Fixed that, now the integration of my own DTS file works :slight_smile:

On an other side, I tried to start the kernel image of the Buffalo WXR-1900DHP, which starts but seems to crash when performing NAND operations. Any hint about this problem?

For those who are interested by the bootlog:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.71 (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r8089-a6beca1f56)) #0 SMP Sat Sep 22 10:56:18 2018
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Buffalo WXR-1900DHP
[    0.000000] OF: fdt: Ignoring memory block 0x0 - 0x8000000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] On node 0 totalpages: 98304
[    0.000000] free_area_init_node: node 0, pgdat c071b740, node_mem_map dfcf8000
[    0.000000]   Normal zone: 768 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 98304 pages, LIFO batch:31
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x3c8 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @dfcd2000 s26444 r8192 d22708 u57344
[    0.000000] pcpu-alloc: s26444 r8192 d22708 u57344 alloc=14*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 97536
[    0.000000] Kernel command line: console=ttyS0,115200
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 389576K/393216K available (3930K kernel code, 112K rwdata, 988K rodata, 1024K init, 306K bss, 3640K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04d6b18   (4923 kB)
[    0.000000]       .init : 0xc0600000 - 0xc0700000   (1024 kB)
[    0.000000]       .data : 0xc0700000 - 0xc071c040   ( 113 kB)
[    0.000000]        .bss : 0xc071c040 - 0xc0768a08   ( 307 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C: DT/platform modifies aux control register: 0x0a130000 -> 0x0a530000
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x7e530001
[    0.000011] sched_clock: 64 bits at 500MHz, resolution 2ns, wraps every 4398046511103ns
[    0.000027] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0xe6a171a037, max_idle_ns: 881590485102 ns
[    0.000089] Switching to timer-based delay loop, resolution 2ns
[    0.000315] Calibrating delay loop (skipped), value calculated using timer frequency.. 1000.00 BogoMIPS (lpj=5000000)
[    0.000330] pid_max: default: 32768 minimum: 301
[    0.000419] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000429] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000850] CPU: Testing write buffer coherency: ok
[    0.001377] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001684] Setting up static identity map for 0x80100000 - 0x8010003c
[    0.001795] Hierarchical SRCU implementation.
[    0.002277] smp: Bringing up secondary CPUs ...
[    1.040185] CPU1: failed to come online
[    1.040228] smp: Brought up 1 node, 1 CPU
[    1.040238] SMP: Total of 1 processors activated (1000.00 BogoMIPS).
[    1.040274] CPU: All CPU(s) started in SVC mode.
[    1.042249] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    1.042271] futex hash table entries: 512 (order: 3, 32768 bytes)
[    1.042387] pinctrl core: initialized pinctrl subsystem
[    1.042666] NET: Registered protocol family 16
[    1.283632] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    1.297355] clocksource: Switched to clocksource arm_global_timer
[    1.298121] NET: Registered protocol family 2
[    1.298544] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    1.298584] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    1.298637] TCP: Hash tables configured (established 4096 bind 4096)
[    1.298717] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    1.298746] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    1.298892] NET: Registered protocol family 1
[    1.298921] PCI: CLS 0 bytes, default 64
[    1.299997] No memory allocated for crashlog
[    1.300761] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    1.303261] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.303274] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    1.309206] io scheduler noop registered
[    1.309220] io scheduler deadline registered (default)
[    1.309665] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.310122] console [ttyS0] disabled
[    1.310165] 18000300.serial: ttyS0 at MMIO 0x18000300 (irq = 18, base_baud = 7812500) is a 16550
[    2.342232] console [ttyS0] enabled
[    2.388738] nand: Could not find valid ONFI parameter page; aborting
[    2.402917] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xdc
[    2.416204] nand: AMD/Spansion NAND 512MiB 3,3V 8-bit
[    2.426846] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    2.443204] iproc_nand 18028000.nand: detected 512MiB total, 128KiB blocks, 2KiB pages, 16B OOB, 8-bit, BCH-8
[    2.463727] Scanning device for bad blocks
[    2.487604] random: fast init done
[    3.582640] random: crng init done
[   19.062430] irq 22: nobody cared (try booting with the "irqpoll" option)
[   19.076301] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.71 #0
[   19.088753] Hardware name: BCM5301X
[   19.096145] Backtrace:
[   19.101476] [<c0105dd0>] (dump_backtrace) from [<c01060c8>] (show_stack+0x18/0x1c)
[   19.117077]  r7:df889a64 r6:60000193 r5:00000000 r4:c071b5b8
[   19.128789] [<c01060b0>] (show_stack) from [<c04bca10>] (dump_stack+0x90/0xa4)
[   19.143654] [<c04bc980>] (dump_stack) from [<c0153cac>] (__report_bad_irq+0x44/0xc8)
[   19.159514]  r7:df889a64 r6:00000016 r5:00000000 r4:df889a00
[   19.171307] [<c0153c68>] (__report_bad_irq) from [<c0154058>] (note_interrupt+0x240/0x2b0)
[   19.188250]  r9:e0803100 r8:df808000 r7:00000001 r6:00000016 r5:00000000 r4:df889a00
[   19.204205] [<c0153e18>] (note_interrupt) from [<c0151348>] (handle_irq_event_percpu+0x54/0x60)
[   19.222052]  r10:ffffe000 r9:e0803100 r8:df808000 r7:00000001 r6:df845a28 r5:df889a00
[   19.238076]  r4:00000000 r3:00000000
[   19.245721] [<c01512f4>] (handle_irq_event_percpu) from [<c01513a0>] (handle_irq_event+0x4c/0x70)
[   19.263820]  r5:df889a64 r4:df889a00
[   19.271465] [<c0151354>] (handle_irq_event) from [<c0154c58>] (handle_fasteoi_irq+0xe0/0x17c)
[   19.288985]  r7:00000001 r6:df845a28 r5:c0703ea8 r4:df889a00
[   19.300780] [<c0154b78>] (handle_fasteoi_irq) from [<c01504ac>] (generic_handle_irq+0x2c/0x3c)
[   19.318466]  r5:00000000 r4:c063b994
[   19.325944] [<c0150480>] (generic_handle_irq) from [<c0150a74>] (__handle_domain_irq+0xa0/0xb4)
[   19.343799] [<c01509d4>] (__handle_domain_irq) from [<c01014ac>] (gic_handle_irq+0x64/0x98)
[   19.360990]  r9:e0803100 r8:df845918 r7:e0802100 r6:e080210c r5:c070fc94 r4:c0703ea8
[   19.376854] [<c0101448>] (gic_handle_irq) from [<c0106dec>] (__irq_svc+0x6c/0x90)
[   19.392296] Exception stack(0xdf845918 to 0xdf845960)
[   19.402762] 5900:                                                       c0702080 c071c840
[   19.419540] 5920: 00000000 00000000 c063b994 00000000 00000000 00000001 df808000 00000002
[   19.436400] 5940: ffffe000 df8459c4 c071c840 df845968 00200140 c0101584 60000113 ffffffff
[   19.453258]  r9:df844000 r8:df808000 r7:df84594c r6:ffffffff r5:60000113 r4:c0101584
[   19.469126] [<c01014e0>] (__do_softirq) from [<c0117a6c>] (irq_exit+0xdc/0xec)
[   19.483985]  r10:df80c010 r9:e0803100 r8:df808000 r7:00000001 r6:00000000 r5:00000000
[   19.500008]  r4:c063b994
[   19.505413] [<c0117990>] (irq_exit) from [<c0150a78>] (__handle_domain_irq+0xa4/0xb4)
[   19.521438] [<c01509d4>] (__handle_domain_irq) from [<c01014ac>] (gic_handle_irq+0x64/0x98)
[   19.538629]  r9:e0803100 r8:df845a28 r7:e0802100 r6:e080210c r5:c070fc94 r4:c0703ea8
[   19.554575] [<c0101448>] (gic_handle_irq) from [<c0106dec>] (__irq_svc+0x6c/0x90)
[   19.570016] Exception stack(0xdf845a28 to 0xdf845a70)
[   19.580484] 5a20:                   df9ba5e4 a0000013 00000005 00000006 df9ba5e4 e08a0408
[   19.597343] 5a40: 00000000 00000001 df8bc800 00000000 df80c010 df845a84 df845a88 df845a78
[   19.614117] 5a60: c0366758 c04d66c4 20000013 ffffffff
[   19.624583]  r9:df844000 r8:df8bc800 r7:df845a5c r6:ffffffff r5:20000013 r4:c04d66c4
[   19.640450] [<c04d669c>] (_raw_spin_unlock_irqrestore) from [<c0366758>] (iproc_nand_apb_access+0x54/0x58)
[   19.660129] [<c0366704>] (iproc_nand_apb_access) from [<c03694c0>] (brcmnand_read+0x2b8/0x6c0)
[   19.677732]  r7:00000000 r6:df8bc000 r5:df014010 r4:df80c010
[   19.689526] [<c0369208>] (brcmnand_read) from [<c0369a04>] (brcmnand_read_page_raw+0x5c/0x78)
[   19.706967]  r10:df80c018 r9:df80c018 r8:df8bc000 r7:df80c018 r6:df8bc800 r5:df80c018
[   19.723073]  r4:df80c010
[   19.728558] [<c03699a8>] (brcmnand_read_page_raw) from [<c0369794>] (brcmnand_read+0x58c/0x6c0)
[   19.746331]  r8:c03699a8 r7:00000004 r6:df8bc800 r5:00000040 r4:00000000
[   19.760117] [<c0369208>] (brcmnand_read) from [<c0369914>] (brcmnand_read_oob+0x4c/0x54)
[   19.776728]  r10:00000040 r9:00000000 r8:00000000 r7:00000000 r6:00000040 r5:00000000
[   19.792835]  r4:00000015
[   19.798252] [<c03698c8>] (brcmnand_read_oob) from [<c0361744>] (nand_read_oob+0x1c0/0x30c)
[   19.815178]  r5:df845c78 r4:df80c018
[   19.822830] [<c0361584>] (nand_read_oob) from [<c0348244>] (mtd_read_oob+0x38/0x74)
[   19.838602]  r10:df845c78 r9:df8bc000 r8:df80c018 r7:00000000 r6:00000000 r5:c0361584
[   19.854625]  r4:df80c018
[   19.860110] [<c034820c>] (mtd_read_oob) from [<c0363144>] (create_bbt+0x170/0x260)
[   19.875720]  r5:dfb73480 r4:00000000
[   19.883280] [<c0362fd4>] (create_bbt) from [<c03645c0>] (nand_default_bbt+0x150/0x6f0)
[   19.899477]  r10:c05943a8 r9:df80c018 r8:dfcf58f8 r7:00000001 r6:00000000 r5:dfb68fc0
[   19.915583]  r4:00000000
[   19.920987] [<c0364470>] (nand_default_bbt) from [<c035f7ac>] (nand_scan_tail+0xb30/0xc2c)
[   19.938012]  r10:c05943a8 r9:dfcf5b08 r8:dfcf58f8 r7:00000001 r6:00000000 r5:dfb68fc0
[   19.954036]  r4:df80c018
[   19.959522] [<c035ec7c>] (nand_scan_tail) from [<c036883c>] (brcmnand_probe+0x914/0xa98)
[   19.976132]  r10:c05943a8 r9:dfcf5b08 r8:dfcf58f8 r7:df80c018 r6:df8b2610 r5:df80c010
[   19.992157]  r4:df014010 r3:00000010
[   19.999801] [<c0367f28>] (brcmnand_probe) from [<c0366818>] (iproc_nand_probe+0xbc/0xc8)
[   20.016494]  r10:00000000 r9:00000000 r8:c0713004 r7:00000000 r6:df8b2610 r5:df8b2600
[   20.032601]  r4:df9ba5d0
[   20.038097] [<c036675c>] (iproc_nand_probe) from [<c0339c6c>] (platform_drv_probe+0x3c/0x78)
[   20.055443]  r7:00000000 r6:c074d7e0 r5:c0713004 r4:df8b2610
[   20.067156] [<c0339c30>] (platform_drv_probe) from [<c03383d4>] (really_probe+0x11c/0x27c)
[   20.084177]  r5:df8b2610 r4:c074d7dc
[   20.091821] [<c03382b8>] (really_probe) from [<c03385c8>] (__driver_attach+0x94/0xb8)
[   20.107850]  r10:c062d83c r9:c0635314 r8:c0617a18 r7:00000000 r6:df8b2644 r5:c0713004
[   20.123874]  r4:df8b2610 r3:00000007
[   20.131435] [<c0338534>] (__driver_attach) from [<c0336964>] (bus_for_each_dev+0x54/0xa8)
[   20.148293]  r7:00000000 r6:c0338534 r5:c0713004 r4:00000000
[   20.160004] [<c0336910>] (bus_for_each_dev) from [<c0337f54>] (driver_attach+0x24/0x28)
[   20.176363]  r6:c07116c8 r5:dfb73200 r4:c0713004
[   20.185999] [<c0337f30>] (driver_attach) from [<c0337a38>] (bus_add_driver+0xf0/0x208)
[   20.202278] [<c0337948>] (bus_add_driver) from [<c0338de0>] (driver_register+0xb0/0xec)
[   20.218720]  r7:c062d834 r6:ffffe000 r5:00000000 r4:c0713004
[   20.230432] [<c0338d30>] (driver_register) from [<c0339c28>] (__platform_driver_register+0x48/0x50)
[   20.248948]  r5:00000000 r4:c0703c08
[   20.256516] [<c0339be0>] (__platform_driver_register) from [<c0617a34>] (iproc_nand_driver_init+0x1c/0x20)
[   20.276274] [<c0617a18>] (iproc_nand_driver_init) from [<c0101b60>] (do_one_initcall+0xc8/0x18c)
[   20.294297] [<c0101a98>] (do_one_initcall) from [<c0600ec0>] (kernel_init_freeable+0x144/0x1d8)
[   20.312068]  r9:c0635314 r8:c060061c r7:c062d834 r6:c071c040 r5:c071c040 r4:00000007
[   20.328016] [<c0600d7c>] (kernel_init_freeable) from [<c04d0a74>] (kernel_init+0x10/0x11c)
[   20.344954]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c04d0a64
[   20.361060]  r4:00000000
[   20.366463] [<c04d0a64>] (kernel_init) from [<c0102868>] (ret_from_fork+0x14/0x2c)
[   20.382072]  r5:c04d0a64 r4:00000000
[   20.389710] handlers:
[   20.394612] [<c0368a18>] brcmnand_irq
[   20.402333] Disabling IRQ #22
[   21.530236] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   21.543682] iproc_nand 18028000.nand: intfc status f0000000
[   21.670206] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   21.683657] iproc_nand 18028000.nand: intfc status f0000000
[   21.810266] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   21.823697] iproc_nand 18028000.nand: intfc status f0000000
[   21.940228] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   21.953656] iproc_nand 18028000.nand: intfc status f0000000
[   22.070190] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.083621] iproc_nand 18028000.nand: intfc status f0000000
[   22.200235] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.213664] iproc_nand 18028000.nand: intfc status f0000000
[   22.330213] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.343662] iproc_nand 18028000.nand: intfc status f0000000
[   22.470186] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.483636] iproc_nand 18028000.nand: intfc status f0000000
[   22.610247] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.623698] iproc_nand 18028000.nand: intfc status f0000000
[   22.750222] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   22.763674] iproc_nand 18028000.nand: intfc status f0000000
[   26.630238] brcmnand_waitfunc: 34 callbacks suppressed
[   26.630246] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   26.654273] brcmnand_waitfunc: 34 callbacks suppressed
[   26.654349] iproc_nand 18028000.nand: intfc status f0000000
[   26.780228] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   26.793660] iproc_nand 18028000.nand: intfc status f0000000
[   26.910204] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   26.923656] iproc_nand 18028000.nand: intfc status f0000000
[   27.050259] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.063711] iproc_nand 18028000.nand: intfc status f0000000
[   27.190231] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.203681] iproc_nand 18028000.nand: intfc status f0000000
[   27.330200] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.343652] iproc_nand 18028000.nand: intfc status f0000000
[   27.470262] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.483691] iproc_nand 18028000.nand: intfc status f0000000
[   27.600225] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.613655] iproc_nand 18028000.nand: intfc status f0000000
[   27.730268] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.743697] iproc_nand 18028000.nand: intfc status f0000000
[   27.860225] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   27.873655] iproc_nand 18028000.nand: intfc status f0000000
[   31.730243] brcmnand_waitfunc: 34 callbacks suppressed
[   31.730249] iproc_nand 18028000.nand: timeout waiting for command 0x1
[   31.754332] brcmnand_waitfunc: 34 callbacks suppressed
...

Thank for your help.

Hello again, sorry for bumping this thread.

Can someone tell me if there is any chance to run OpenWRT on this device? Here is the dmesg output of the original firmware (PCIe cards/Wireless card were manually removed which explains some PCI errors, I'm not really interested by the Wireless part for now):

Booting Linux on physical CPU 0x0
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 3.16.36 (gcc version 4.5.3 (crosstool-NG 1.13.4 - buildroot 2012.02) ) #1 SMP PREEMPT Wed Sep 26 02:41:21 PDT 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: NorthStar (BCM94708)
Ignoring memory block 0x0 - 0x1000000
bootconsole [earlycon0] enabled
Memory policy: Data cache writealloc
On node 0 totalpages: 65536
free_area_init_node: node 0, pgdat c06a1240, node_mem_map cfdfa000
  Normal zone: 512 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 65536 pages, LIFO batch:15
L2C: platform provided aux values match the hardware, so have no effect.  Please remove them.
L2C: platform provided aux values permit register corruption.
L2C: DT/platform tries to modify or specify cache size
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 Coherent cache controller enabled, 16 ways, 256 kB
L2C-310 Coherent: CACHE_ID 0x410000c8, AUX_CTRL 0x4a130001
PERCPU: Embedded 7 pages/cpu @cfde1000 s7648 r8192 d12832 u32768
pcpu-alloc: s7648 r8192 d12832 u32768 alloc=8*4096
pcpu-alloc: [0] 0 [0] 1 
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
Kernel command line: root=/dev/ram console=ttyS0,9600 ramdisk_size=70000 cache-sram-size=0x10000 earlyprintk
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: 222056K/262144K available (4952K kernel code, 209K rwdata, 1396K rodata, 195K init, 711K bss, 40088K reserved)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
    vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
    lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .text : 0xc0008000 - 0xc063b3e0   (6349 kB)
      .init : 0xc063c000 - 0xc066cde0   ( 196 kB)
      .data : 0xc066e000 - 0xc06a2520   ( 210 kB)
       .bss : 0xc06a252c - 0xc07543ac   ( 712 kB)
Preemptible hierarchical RCU implementation.
	Dump stacks of tasks blocking RCU-preempt GP.
	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
	Offload RCU callbacks from all CPUs
	Offload RCU callbacks from CPUs: 0-1.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
sched_clock: 32 bits at 1kHz, resolution 1000000ns, wraps every 2147483648000000ns
Console: colour dummy device 80x30
Calibrating delay loop... 1990.65 BogoMIPS (lpj=995328)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys net_cls
Initializing cgroup subsys blkio
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x804b6510 - 0x804b6544
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (3981.31 BogoMIPS).
devtmpfs: initialized
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
L2C-310 Coherent cache controller enabled, 16 ways, 256 kB
L2C-310 Coherent: CACHE_ID 0x410000c8, AUX_CTRL 0x4a130001
NVRAM already initialized
NVRAM already initialized
PCI: no core
PCI: no core
PCI: scanning bus 0
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0x0000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci 0000:00:00.0: [14e4:0800] type 00 class 0x050100
pci 0000:00:00.0: reg 0x10: [mem 0x18000000-0x18000fff]
pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:01.0: [14e4:050b] type 00 class 0xffffff
pci 0000:00:01.0: reg 0x10: [mem 0x18001000-0x18001fff]
pci 0000:00:01.0: reg 0x14: [mem 0x18002000-0x18002fff]
pci 0000:00:01.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:02.0: [14e4:0502] type 00 class 0xffffff
pci 0000:00:02.0: reg 0x10: [mem 0x1802c000-0x1802cfff]
pci 0000:00:02.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:03.0: [14e4:4715] type 00 class 0x020000
pci 0000:00:03.0: reg 0x10: [mem 0x18024000-0x18024fff]
pci 0000:00:03.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:04.0: [14e4:4715] type 00 class 0x020000
pci 0000:00:04.0: reg 0x10: [mem 0x18025000-0x18025fff]
pci 0000:00:04.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:05.0: [14e4:4715] type 00 class 0x020000
pci 0000:00:05.0: reg 0x10: [mem 0x18026000-0x18026fff]
pci 0000:00:05.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:06.0: [14e4:4715] type 00 class 0x020000
pci 0000:00:06.0: reg 0x10: [mem 0x18027000-0x18027fff]
pci 0000:00:06.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:07.0: [14e4:0501] type 00 class 0xffffff
pci 0000:00:07.0: reg 0x10: [mem 0x18012000-0x18012fff]
pci 0000:00:07.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:08.0: [14e4:0501] type 00 class 0xffffff
pci 0000:00:08.0: reg 0x10: [mem 0x18013000-0x18013fff]
pci 0000:00:08.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:09.0: [14e4:0501] type 00 class 0xffffff
pci 0000:00:09.0: reg 0x10: [mem 0x18014000-0x18014fff]
pci 0000:00:09.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0a.0: [14e4:0510] type 00 class 0xffffff
pci 0000:00:0a.0: reg 0x10: [mem 0x1800b000-0x1800bfff]
pci 0000:00:0a.0: reg 0x14: [mem 0x1800c000-0x1800cfff]
pci 0000:00:0a.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0b.0: [14e4:471a] type 00 class 0x0c0310
pci 0000:00:0b.0: reg 0x10: [mem 0x18022000-0x18022fff]
pci 0000:00:0b.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0b.1: [14e4:471a] type 00 class 0x0c0320
pci 0000:00:0b.1: reg 0x10: [mem 0x18021000-0x18021fff]
pci 0000:00:0b.1: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0c.0: [14e4:472a] type 00 class 0x0c0330
pci 0000:00:0c.0: reg 0x10: [mem 0x18023000-0x18023fff]
pci 0000:00:0c.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0d.0: [14e4:0503] type 00 class 0xffffff
pci 0000:00:0d.0: reg 0x10: [mem 0x18020000-0x18020fff]
pci 0000:00:0d.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0e.0: [14e4:4711] type 00 class 0x040100
pci 0000:00:0e.0: reg 0x10: [mem 0x1802a000-0x1802afff]
pci 0000:00:0e.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:0f.0: [14e4:0506] type 00 class 0xffffff
pci 0000:00:0f.0: reg 0x10: [mem 0x18210000-0x1821ffff]
pci 0000:00:0f.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:10.0: [14e4:0507] type 00 class 0xffffff
pci 0000:00:10.0: reg 0x10: [mem 0x18010000-0x18010fff]
pci 0000:00:10.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:11.0: [14e4:0508] type 00 class 0xffffff
pci 0000:00:11.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:12.0: [14e4:0509] type 00 class 0xffffff
pci 0000:00:12.0: reg 0x10: [mem 0x18028000-0x18028fff]
pci 0000:00:12.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
pci 0000:00:13.0: [14e4:050a] type 00 class 0xffffff
pci 0000:00:13.0: reg 0x10: [mem 0x18029000-0x18029fff]
pci 0000:00:13.0: reg 0x30: [mem 0x00000000-0x000007ff pref]
PCI: Fixing up bus 0
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
MSI assigned to 159
MSI assigned to 160
MSI assigned to 161
MSI assigned to 162
MSI assigned to 164
iproc-pcie 18012000.pcie: no PCIe device detected on bus 1, skipping...
MSI assigned to 165
MSI assigned to 166
MSI assigned to 167
MSI assigned to 168
MSI assigned to 170
iproc-pcie 18013000.pcie: no PCIe device detected on bus 2, skipping...
MSI assigned to 171
MSI assigned to 172
MSI assigned to 173
MSI assigned to 174
MSI assigned to 175
MSI assigned to 176
iproc-pcie 18014000.pcie: no PCIe device detected on bus 3, skipping...
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
PCI: CLS 0 bytes, default 32
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 27136K (c2006000 - c3a86000)
Registering iproc_pmu_device
CPU PMU: probing PMU on CPU 1
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
futex hash table entries: 512 (order: 2, 16384 bytes)
audit: initializing netlink subsys (disabled)
audit: type=2000 audit(1.104:1): initialized
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
ntfs: driver 2.1.30 [Flags: R/O].
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.23)
msgmni has been set to 486
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered (default)
io scheduler deadline registered
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
console [ttyS0] disabled
18000300.serial: ttyS0 at MMIO 0x18000300 (irq = 117, base_baud = 3906250) is a 16550
console [ttyS0] enabled
bootconsole [earlycon0] disabled
18000400.serial: ttyS1 at MMIO 0x18000400 (irq = 117, base_baud = 3906250) is a 16550
brd: module loaded
loop: module loaded
iproc_nand: auto-init success
nand: device found, Manufacturer ID: 0x01, Chip ID: 0xdc
nand: AMD/Spansion S34ML04G1
nand: 512MiB, SLC, page size: 2048, OOB size: 64
nand: device found, Manufacturer ID: 0x01, Chip ID: 0xdc
nand: AMD/Spansion S34ML04G1
nand: 512MiB, SLC, page size: 2048, OOB size: 64
iproc_nand: timing mode 0
iproc_nand: invalid bootloader settings
iproc_nand straps: page 0x1 type 0x2
iproc_nand: following strap settings
NAND 8-bit 512MiB total, 128KiB blocks, 2KiB pages
     4bit/512B BCH-ECC 16B/512B OOB
iproc_nand: user oob per page: 35 bytes (4 steps)
9 ofpart partitions found on MTD device iproc_nand
Creating 9 MTD partitions on "iproc_nand":
0x000000000000-0x000000400000 : "Uboot"
0x000000400000-0x000000440000 : "Uboot Env"
0x000000440000-0x000000480000 : "nvram"
0x000000480000-0x0000004e0000 : "Boot Info"
0x0000004e0000-0x000000540000 : "Static Boot Info"
0x000000540000-0x000000580000 : "Hardware Info"
0x000000580000-0x000000f80000 : "Kernel"
0x000000f80000-0x000005f80000 : "App Image"
0x000005f80000-0x000020000000 : "JFFS2"
iproc_nand: NAND controller driver is loaded
PPP generic driver version 2.4.2
NET: Registered protocol family 24
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ehci-pci 0000:00:0b.1: EHCI Host Controller
ehci-pci 0000:00:0b.1: new USB bus registered, assigned bus number 1
ehci-pci 0000:00:0b.1: irq 111, io mem 0x18021000
ehci-pci 0000:00:0b.1: USB 0.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
ohci-pci 0000:00:0b.0: OHCI PCI host controller
ohci-pci 0000:00:0b.0: new USB bus registered, assigned bus number 2
ohci-pci 0000:00:0b.0: irq 111, io mem 0x18022000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
uhci_hcd: USB Universal Host Controller Interface driver
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver usbserial
mousedev: PS/2 mouse device common for all mice
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
oprofile: using arm/armv7-ca9
Netfilter messages via NETLINK v0.30.
nfnl_acct: registering with nfnetlink.
nf_conntrack version 0.5.0 (3893 buckets, 15572 max)
ctnetlink v0.93: registering with nfnetlink.
nf_tables: (c) 2007-2009 Patrick McHardy <kaber@trash.net>
nf_tables_compat: (c) 2012 Pablo Neira Ayuso <pablo@netfilter.org>
IPVS: Registered protocols ()
IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
IPVS: Creating netns size=784 id=0
IPVS: ipvs loaded.
ipip: IPv4 over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
TCP: cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
NET: Registered protocol family 15
Registering SWP/SWPB emulation handler
RAMDISK: squashfs filesystem found at block 0
RAMDISK: Loading 27137KiB [1 disk] into ram disk... done.
VFS: Mounted root (squashfs filesystem) readonly on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 192K (c063c000 - c066c000)
init sys char device
Disabling lock debugging due to kernel taint
NVRAM already initialized
NVRAM already initialized
bcm_robo_attach(1608): devid = 0x53012, ROBO_IS_BCM5301X_NS 1, ROBO_IS_BCM5301X 1
bcm_robo_attach(1617): wrote (0x00,0x5d) <= 0x000000ca
bcm_robo_attach(1619): wrote (0x00,0x5f) <= 0x000000ca
bcm_robo_attach(1621): wrote (0x00,0x0e) <= 0x000000ca
bcm_robo_attach(1627): wrote (0x00,0x0b) <= 0x00000007
bcm_robo_attach(1634): wrote (0x02,0x00) <= 0x00000002
bcm_robo_enable_switch(3019): wrote (0x00,0x0e) <= 0x00eb
bcm_robo_enable_switch(3078): wrote (0x00,0x08) <= 0x0000001c
bcm_robo_enable_switch(3188): wrote (0x00,0x5d) <= 0x000000ca
bcm_robo_enable_switch(3223): wrote (0x00,0x5f) <= 0xca
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 10.10.80.505_e5.1.2.3 (r659762)
NVRAM already initialized
bcm_robo_attach(1608): devid = 0x53012, ROBO_IS_BCM5301X_NS 1, ROBO_IS_BCM5301X 1
bcm_robo_attach(1617): wrote (0x00,0x5d) <= 0x000000ca
bcm_robo_attach(1619): wrote (0x00,0x5f) <= 0x000000ca
bcm_robo_attach(1621): wrote (0x00,0x0e) <= 0x000000ca
bcm_robo_attach(1627): wrote (0x00,0x0b) <= 0x00000007
bcm_robo_attach(1634): wrote (0x02,0x00) <= 0x00000002
bcm_robo_enable_switch(3019): wrote (0x00,0x0e) <= 0x00eb
bcm_robo_enable_switch(3078): wrote (0x00,0x08) <= 0x0000001c
bcm_robo_enable_switch(3188): wrote (0x00,0x5d) <= 0x000000ca
bcm_robo_enable_switch(3223): wrote (0x00,0x5f) <= 0xca
eth1: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 10.10.80.505_e5.1.2.3 (r659762)

Currently, the only results I was able to obtain are:

  • Linux Kernel 4.4 starts
  • the secondary CPU does not start
  • the ethernet switch, PCI buses, NAND are found
  • the NAND cannot be mapped, so the kernel cannot find the rootfs

I don't know if the whole configuration can be made by only tweaking DTS file.
Any help is appreciated. Thank you in advance.