[OpenWrt-Devel] brcm2708: add kernel 4.14 support

Stijn Tintel stijn at linux-ipv6.be
Wed Dec 12 14:41:28 EST 2018


On 7/12/18 05:06, Stijn Tintel wrote:
> On 11/11/18 18:37, Stijn Tintel wrote:
>> Hi,
>>
>> I have just pushed support for the 4.14 kernel on the brcm2708 target to
>> my staging tree [1], and would like to get some feedback before pushing
>> it to master. It would also be nice if people could do runtime tests on
>> bcm2709 and bcm2710, as I don't own such hardware.
>>
>> Thanks,
>> Stijn
>>
>> [1]
>> https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/brcm2708-4_14
>>
> Updated [1]:
> - based on 4.14.86
> - split kmod changes in separate commits
> - kept lan78xx patches except those that are superseded by upstream
> changes, added another one that attempts to fix broken ethernet and
> "kevent 4 may have been dropped" flood
> - added missing compatible strings using upstream names for compute modules
> - no longer removing the sense HAT patch, I might add kmod packages for
> that later
>
> Compile-tested all 3 subtargets again with CONFIG_ALL_KMODS=y, and
> runtime-tested bcm2708 on RPi0W and bcm2710 on RPi3B+. The wired
> interface on the latter seems to be usable now.
>
> I'm planning to push this to master as soon as Koen pushed the 4.14.86
> bump. If there are any objections, please speak up ASAP.
>

After flashing one of my RPi0W's running headless, it didn't come back.
When testing it on my desk, it works just fine. After some digging I
found that not having HDMI plugged in during boot causes the problem.
This happens because brcmfmac fails to load due to a "vmalloc:
allocation failure":

[   17.527326] vmap allocation for size 253952 failed: use
vmalloc=<size> to increase size
[   17.540014] kmodloader: vmalloc: allocation failure: 249856 bytes,
mode:0x14000c0(GFP_KERNEL), nodemask=(null)
[   17.554778] CPU: 0 PID: 212 Comm: kmodloader Tainted: G         C
O    4.14.87 #0
[   17.566819] Hardware name: BCM2835
[   17.572486] [<c010e5cc>] (unwind_backtrace) from [<c010b0cc>]
(show_stack+0x10/0x14)
[   17.584649] [<c010b0cc>] (show_stack) from [<c017fe64>]
(warn_alloc+0xac/0x168)
[   17.594362] [<c017fe64>] (warn_alloc) from [<c01ab5d4>]
(__vmalloc_node_range+0x1f0/0x238)
[   17.607085] [<c01ab5d4>] (__vmalloc_node_range) from [<c010c444>]
(module_alloc+0x3c/0x4c)
[   17.620019] [<c010c444>] (module_alloc) from [<c015ff10>]
(load_module+0x7fc/0x2160)
[   17.632592] [<c015ff10>] (load_module) from [<c01619ac>]
(SyS_init_module+0x138/0x168)
[   17.645312] [<c01619ac>] (SyS_init_module) from [<c0107580>]
(ret_fast_syscall+0x0/0x54)
[   17.658224] Mem-Info:
[   17.662897] active_anon:232 inactive_anon:0 isolated_anon:0
[   17.662897]  active_file:2793 inactive_file:1495 isolated_file:0
[   17.662897]  unevictable:0 dirty:104 writeback:0 unstable:0
[   17.662897]  slab_reclaimable:670 slab_unreclaimable:1282
[   17.662897]  mapped:258 shmem:3 pagetables:21 bounce:0
[   17.662897]  free:102979 free_pcp:75 free_cma:3749
[   17.708759] Node 0 active_anon:928kB inactive_anon:0kB
active_file:11172kB inactive_file:5980kB unevictable:0kB
isolated(anon):0kB isolated(file):0kB mapped:1032kB dirty:416kB
writeback:0kB shmem:12kB writeback_tmp:0kB unstable:0kB al
l_unreclaimable? no
[   17.740097] Normal free:411916kB min:2624kB low:3280kB high:3936kB
active_anon:928kB inactive_anon:0kB active_file:11172kB
inactive_file:5980kB unevictable:0kB writepending:416kB present:458752kB
managed:447900kB mlocked:0kB kernel_st
ack:360kB pagetables:84kB bounce:0kB free_pcp:300kB local_pcp:300kB
free_cma:14996kB
[   17.777379] lowmem_reserve[]: 0 0
[   17.782966] Normal: 3*4kB (UMC) 32*8kB (UMEC) 18*16kB (MEC) 7*32kB
(UMC) 2*64kB (UC) 3*128kB (MC) 2*256kB (EC) 1*512kB (U) 2*1024kB (ME)
1*2048kB (C) 99*4096kB (MC) = 411916kB
[   17.805336] 4291 total pagecache pages
[   17.811267] 0 pages in swap cache
[   17.816776] Swap cache stats: add 0, delete 0, find 0/0
[   17.824208] Free swap  = 0kB
[   17.829227] Total swap = 0kB
[   17.834223] 114688 pages RAM
[   17.839137] 0 pages HighMem/MovableOnly
[   17.845094] 2713 pages reserved
[   17.850284] 4096 pages cma reserved

I'm running into this problem because I have both kmod-video-bcm2835 and
kmod-drm-vc4 enabled in my config. If I remove the related files that
load these modules from /etc/modules.d, brcmfmac loads fine without HDMI
attached. If I manually load either of the disabled modules afterwards,
this fails the same way. I'm going to report this problem upstream, and
will hold off pushing this to master until a fix is available.

Stijn


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list