What´s the best Practice to Build own Kernel

thank you for this, info, i’ll test it when i’m at home

strange…in 4.4.70 it is also 0 (should not work, but there it does)

&mmc1 {
    pinctrl-names = "default", "state_uhs";
    pinctrl-0 = <&mmc1_pins_default>;
    pinctrl-1 = <&mmc1_pins_uhs>;
    status = "okay";
    bus-width = <4>;
    max-frequency = <50000000>;
    cap-sd-highspeed;
    cd-gpios = <&pio 261 0>;  <<<<<<<<
/*
    wp-gpios = <&pio 29 0>;
*/
    vmmc-supply = <&mt6323_vmch_reg>;
    vqmmc-supply = <&mt6323_vmc_reg>;
};

After reviewing more on the 4.4 driver, i found the mtk-sd.c in 4.4 doesn’t have get_cd callback but it does in upstream kernel and thus 4.4 always bypasses the sanity check if card is present and upstream we MUST assign the exact what the core is expected to.

in drivers/mmc/core/core.c will check if get_cd is available.

if (mmc_card_is_removable(host) && host->ops->get_cd &&
                host->ops->get_cd(host) == 0) {
        mmc_power_off(host);
        mmc_release_host(host);
        goto out;
}
1 Like

wow, MMC1 is detected on boot:

[    2.584326] mmc0: new high speed MMC card at address 0001                    
[    2.594712] mmc1: new high speed SDHC card at address 0001                   
[    2.600445] mmcblk0: mmc0:0001 8WPD3R 7.28 GiB                               
[    2.605110] mmcblk1: mmc1:0001 00000 7.61 GiB         <<<<<<<<<<
[    2.609766] mmcblk0boot0: mmc0:0001 8WPD3R partition 1 4.00 MiB              
[    2.616032] mmcblk0boot1: mmc0:0001 8WPD3R partition 2 4.00 MiB                          
[    2.660531]  mmcblk1: p1 p2                               <<<<<<<<<<<<<<<

thank you very much, linkerosa :wink:

i have not patched any more files, only step 2&3 (have patched used my patch above: 4.14-mmc2.patch)

4.14-mmc2.patch (6,4 KB)

have you an idea, why gpio not available (file mt_gpio in 4.4.70)?

# ls /sys/devices/platform/1000b000.pinctrl/                                    
driver/          gpiochip0/       of_node/         subsystem/                   
driver_override  modalias         power/           uevent                       

maybe it’s another filename…

source seems to be here (4.4.70): drivers/pinctrl/mediatek/pinctrl-mtk-common.c

maybe this is relevant:

and

added pinctrl-mtk-mt7623.h and pinctrl-mt7623.c to drivers/pinctrl/mediatek/, changed Makefile and Kconfig, build (was selected automaticly in menuconfig), but it’s not enough

Congratulations. as I knew the situation for mediatek gpio in upstream driver, the gpio is bound with the pinctrl and it has been exported into /sys/class/gpio/… through gpiolib and also you must enable CONFIG_GPIO_SYSFS in your config. file.

for example. to test gpio 206 through /sys interface

step1. To know what the base gpio expects to

# cat /sys/kernel/debug/pinctrl/1000b000.pinctrl/gpio-ranges
GPIO ranges handled:
0: 1000b000.pinctrl GPIOS [232 - 511] PINS [0 - 279]
okay. the base is 232.

step 2. rebase for gpio 206. followlingly we will operate on the result got from 206 + 232 the base we got in the previous step.

echo 438 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio438/direction
echo 1 >  /sys/class/gpio/gpio438/value
echo 0 >  /sys/class/gpio/gpio438/value

I don’t test every pin exported, but the pin 206 with previous steps seems working well through measuring the voltage on the pin

I try that,thank you again. How about “special gpios” which needs register-change in 4.4.70 https://github.com/BPI-SINOVOIP/BPI-R2-bsp/issues/11#issuecomment-326988062

Same in 4.14?

Then i only need the internal wlan-card,where driver is testing in 4.4…

@Ryder.Lee can you make a pull-request to mainline-repo for sd-patch?

I have a lot on my plate, could you help to send a pull-request?

Hi, Frank

the dedicated operation on special gpios should be not required based on below code snippet is ready, which would be done when pimux setup involved such gpio request from userspace or kernel space or driver initial pinctrl setup, but I don’t verify it on my board. You could have a try with upstream kernel.

drivers/pinctrl/mediatek/pinctrl-mt2701.c

static void mt2701_spec_pinmux_set(struct regmap *reg, unsigned int pin,
                        unsigned int mode)
{
        unsigned int i, value, mask;
        unsigned int info_num = ARRAY_SIZE(mt2701_spec_pinmux);
        unsigned int spec_flag;

        for (i = 0; i < info_num; i++) {
                if (pin == mt2701_spec_pinmux[i].pin)
                        break;
        }

        if (i == info_num)
                return;

        spec_flag = (mode >> 3);
        mask = BIT(mt2701_spec_pinmux[i].bit);
        if (!spec_flag)
                value = mask;
        else
                value = 0;
        regmap_update_bits(reg, mt2701_spec_pinmux[i].offset, mask, value);
}

which would be called on mtk_pmx_set_mode()

seems that GPIO_SYSFS is not enough:

# cat /sys/kernel/debug/pinctrl/1000b000.pinctrl/gpio-ranges                                                                         
cat: can't open '/sys/kernel/debug/pinctrl/1000b000.pinctrl/gpio-ranges': No such file or directory
# ls /sys/kernel/                                                                                                                    
config              kexec_crash_loaded  rcu_expedited       uevent_seqnum                                                            
debug               kexec_crash_size    rcu_normal          vmcoreinfo                                                               
fscaps              kexec_loaded        slab                                                                                         
iommu_groups        mm                  tracing                                                                                      
irq                 notes               uevent_helper                                                                                
# ls /sys/kernel/debug/                                    
#


frank@Frank-Laptop:/media/data_ext/kernel_4.14/linux$ grep 'GPIO\|PINCTRL' .config
CONFIG_ARCH_NR_GPIO=0
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_SERIO_GPIO_PS2 is not set
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_GPIO is not set
CONFIG_PINCTRL=y
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AMD is not set
# CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_SINGLE is not set
# CONFIG_PINCTRL_SX150X is not set
CONFIG_PINCTRL_MTK=y
CONFIG_PINCTRL_MT2701=y
# CONFIG_PINCTRL_MT6397 is not set
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
# Memory mapped GPIO drivers
# CONFIG_GPIO_74XX_MMIO is not set
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_DWAPB is not set
# CONFIG_GPIO_EXAR is not set
# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_MPC8XXX is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_ZEVIO is not set
# I2C GPIO expanders
# CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_SX150X is not set
# CONFIG_GPIO_TPIC2810 is not set
# MFD GPIO expanders
# CONFIG_HTC_EGPIO is not set
# PCI GPIO expanders
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_PCI_IDIO_16 is not set
# CONFIG_GPIO_RDC321X is not set
# USB GPIO expanders
# CONFIG_GPIO_WATCHDOG is not set
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_IR_GPIO_CIR is not set
CONFIG_USB_GPIO_VBUS=y
CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_EXTCON_GPIO is not set
# CONFIG_EXTCON_USB_GPIO is not set
CONFIG_TRACING_EVENTS_GPIO=y

as your path is /sys/kernel/debug, i assume that CONFIG_DEBUG_GPIO must be also enabled, right? => is also not enough

The entry should be added when CONFIG_DEBUG_FS is enabled :slight_smile:

CONFIG_DEBUG_FS is enabled…

14.4.boot.log (29,7 KB)

my.config (100,8 KB)

of course i removed my entries in pinctrl/mediatek/Makefile and Kconfig and made a “make clean”

maybe you can post your .config for compare

please mount debugfs before you cat something from it

just by

mount -t debugfs none /sys/kernel/debug

1 Like

OK, i didn’t work with debugfs before, sorry for the dumb question…of course it must be mounted :smiley:

as for my example in my wiki, i use pin 14(-)/16 (+) = GPIO 25

# echo $((232+25)) > /sys/class/gpio/export                                                                                                                                                                                            
# echo out > /sys/class/gpio/gpio$((232+25))/direction                                                                               
# echo 1 > /sys/class/gpio/gpio$((232+25))/value       

LED is ON!! :slight_smile:

i can confirm that memory-Hack is not needed (Pin12=GPIO24):

# GPIO_NO=$((232+24))
# echo $GPIO_NO > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio${GPIO_NO}/direction
# echo 1 > /sys/class/gpio/gpio${GPIO_NO}/value

short question regarding mmc…how can i mount it? it does not create a device in /dev…i can see it in /proc/partitons and /sys/devices/platform/11240000.mmc/, but found no block-device for mounting. searched a bit around…

CONFIG_MMC_BLOCK=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

are set…or must the device created by udev (maybe not included in my ramdisk)

i tried to create them manually, but failed

# cat /proc/partitions                                                                                                               
major minor  #blocks  name                                                                                                           
                                                                                                                                     
 179        0    7634944 mmcblk0                                                                                                     
 179       24        512 mmcblk0rpmb                                                                                                 
 179       16       4096 mmcblk0boot1                                                                                                
 179        8       4096 mmcblk0boot0                                                                                                
 179       32    7974912 mmcblk1                                                                                                     
 179       33     262144 mmcblk1p1                                                                                                   
 179       34    7270400 mmcblk1p2                                                                                                   
# mknod /dev/mmcblk1 b 179 32                                                                                                        
# mknod /dev/mmcblk1p1 b 179 33                                                                                                      
# mknod /dev/mmcblk1p2 b 179 34                                                                                                      
#                                                                                                                                    
# mount /dev/mmcblk1p1 /mnt                                                                                                          
mount: mounting /dev/mmcblk1p1 on /mnt failed: Invalid argument

seems, that FS must be set, too (works for p2 not for p1,tried with vfat,fat,fat16,fat32)

# mount -t ext4 /dev/mmcblk1p2 /mnt                                                                                                  
[ 6254.297674] EXT4-fs (mmcblk1p2): warning: mounting unchecked fs, running e2fsck is recommended                                    
[ 6254.318748] EXT4-fs (mmcblk1p2): mounted filesystem without journal. Opts: (null)                                                 
# ls /mnt                                                                                                                            
bin         etc         lost+found  opt         run         srv         tmp                                                          
boot        home        media       proc        sbin        sys         usr                                                          
dev         lib         mnt         root        selinux     system      var

ok, that should be the reason (because i’m still using ramfs as root, there are no modules):

frank@Frank-Laptop:/media/data_ext/kernel_4.14/linux$ grep 'VFAT' .config
CONFIG_VFAT_FS=m
frank@Frank-Laptop:/media/data_ext/kernel_4.14/linux$ grep 'EXT4' .config
CONFIG_EXT4_FS=y

after making vfat fixed in kernel i’ve got this:

# mount -t vfat /dev/mmcblk1p1 /mnt                                                                                                  
[   87.055989] FAT-fs (mmcblk1p1): codepage cp437 not found                                                                          
mount: mounting /dev/mmcblk1p1 on /mnt failed: Invalid argument

i think this is because the config

CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ISO8859_1=m

setting these m to y i can successful mount BPI-BOOT

# mknod /dev/mmcblk1p1 b 179 33                                                                                                      
# mount /dev/mmcblk1p1 /mnt                                                                                                          
[   99.768645] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.                     
# ls /mnt                                                                                                                            
bananapi  uEnv.txt

now i try to disable ramdisk and use bootloder cmdline:

goodman48 login: root                                                                                                                
# cat /proc/cmdline                                                                                                                  
board=bpi-r2 console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200 root=/dev/mmcblk1p2 rootfstype=ext4 rootwait service=0
# 

cmdline looks correct, but it was booted to ramdisk

frank@Frank-Laptop:/media/data_ext/kernel_4.14/linux$ grep 'RAMFS\|CMDLINE' .config
CONFIG_INITRAMFS_SOURCE="../rootfs_ttys0_rng.cpio.gz"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_INITRAMFS_COMPRESSION=".gz"
CONFIG_BLK_CMDLINE_PARSER=y
CONFIG_CMDLINE_PARTITION=y
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 vmalloc=496M debug=7 loglevel=8 no_console_suspend"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_CMDLINE_EXTEND is not set
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_CRAMFS is not set

removed the CONFIG_INITRAMFS_SOURCE and now it tries to boot from SD-Card, but fails loading init

[    1.758553] Freeing unused kernel memory: 1024K                                                                                                  
[    1.805009] request_module: kmod_concurrent_max (0) close to 0 (max_modprobes: 50), for module binfmt-464c, throttling...                        
[    6.872446] request_module: modprobe binfmt-464c cannot be processed, kmod busy with 50 threads for more than 5 seconds now                      
[    6.886616] Starting init: /sbin/init exists but couldn't execute it (error -8)                                                                  
[    6.910835] Starting init: /etc/init exists but couldn't execute it (error -13)                                                                  
[    6.926854] request_module: kmod_concurrent_max (0) close to 0 (max_modprobes: 50), for module binfmt-464c, throttling...                        
[   11.992432] request_module: modprobe binfmt-464c cannot be processed, kmod busy with 50 threads for more than 5 seconds now                      
[   12.006612] Starting init: /bin/sh exists but couldn't execute it (error -8)                                                                     
[   12.024728] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst.

it’s a debian jessie where /sbin/init is a symlink to /lib/systemd/systemd…is a additional kernel-module needed for that?

file /media/frank/BPI-ROOT/lib/systemd/systemd
/media/frank/BPI-ROOT/lib/systemd/systemd: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=e8dd34610703fa7966ae24f424ccb4e6eb464a8c, stripped

ELF-Support is included in kernel

Symbol: BINFMT_ELF [=y]
Type  : boolean
Prompt: Kernel support for ELF binaries

Filesystem boots well with 4.4.70…so nothing is corrupt…something is missing in 4.14 kernel

4.14.sd-boot.log (42,6 KB)

googled around but found nothing specific, only that the errorcode stands for ENOEXEC

#define ENOEXEC 8 /* Exec format error */

maybe this is a solution:

https://groups.google.com/forum/#!topic/linux.kernel/NibC_s8YpdQ (patch not included in 4.14 fs/exec.c:1655 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/exec.c?h=v4.14 )

same error after patch (only without the 2 Line begin with request_module)…any idea?

You got any repo with this patches?

What do you mean? I patch kernel manually and using official debian jessi lite-image

debian runs with 4.4.70,but there sd+emmc are swapped (SD=mmcblk0) maybe this causes the Problem…

mhm, swapping mmc1 and mmc0-position (mmc1-block before mmc0-block) is not enough to swap devices in system…i had to swap it in dts also…now sd is mmc0 and emmc is mmc1, but this solves not the Problem with loading init ;(

4.14.log (27,1 KB)

“Starting init:”-String is in init.main.c where debug is enabled, enabled debug also for fs/exec.c, but no more messages ;(

google answers are mostly 32bit vs 64 bit…and little endian vs. big endian

kernel should be little endian (ARCH_SUPPORTS_BIG_ENDIAN [=n]) and 32bit (all 64-Bit Options i’ve found are off)…systemd is also 32bit as posted above…don’t know byte-order of systemd…but i think little endian should be default here Can be “(uses shared libs)” the problem (missing option for it)?

any idea?

bpi-iot-ros-ai login: root                                                                                                                 
Password:                                                                                                                                  
Last login: Thu Mar  9 19:09:50 CST 2017 on ttyS0                                                                                          
Linux bpi-iot-ros-ai 4.14.0-BPI-R2-Kernel-dirty #59 SMP Sat Nov 25 19:44:42 CET 2017 armv7l 

:grinning:

using defconfig from 4.4.70 :wink: (still swapped mmc0&1)

mt7623n_evb_bpi_defconfig.txt (132,7 KB) defconfig_fwu_vs_4.4.70.diff (142,6 KB)

Stripped commented options,sorted and making diff again…any idea which option is the problem? 4.14_vs_4.4.conf (42,1 KB)

with this added to my config the init-error does not come up:

needed_defconfig (10,5 KB)

it seems to be block “Processor Features”, removing now the other additional options

it’s this option:

CONFIG_ARM_THUMB=y

with enabled debian is starting

now i’m trying to enable network-interfaces

root@bpi-iot-ros-ai:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
4: wan@eth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff
5: lan0@eth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff
6: lan1@eth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff
7: lan2@eth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff
8: lan3@eth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:3a:36:55:76:4c brd ff:ff:ff:ff:ff:ff

how can i assign an ip-adress to it (never seen iface@iface before)?

root@bpi-iot-ros-ai:~# ifconfig lan0 192.168.0.10
SIOCSIFFLAGS: Network is down
root@bpi-iot-ros-ai:~# ifconfig lan3 192.168.0.10
SIOCSIFFLAGS: Network is down
root@bpi-iot-ros-ai:~# ifconfig lan0@eth0 192.168.0.10
SIOCSIFADDR: No such device
lan0@eth0: ERROR while getting interface flags: No such device
root@bpi-iot-ros-ai:~# ifconfig lan3@eth0 192.168.0.10
SIOCSIFADDR: No such device
lan3@eth0: ERROR while getting interface flags: No such device

i have Ethernet-cable plugged in the Lan-Port next to Wan…is this 0 or 3? maybe eth0 must be set to up first, but this does not work

root@bpi-iot-ros-ai:~# ifup eth0
Missing required variable: address
Missing required configuration variables for interface eth0/inet.
Failed to bring up eth0.

got it running like that:

root@bpi-iot-ros-ai:~# ifconfig eth0 up
root@bpi-iot-ros-ai:~# ifconfig lan0 192.168.0.10/24
root@bpi-iot-ros-ai:~# ping 192.168.0.5
PING 192.168.0.5 (192.168.0.5) 56(84) bytes of data.
^C
--- 192.168.0.5 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2115ms

root@bpi-iot-ros-ai:~# ifconfig lan0 up
root@bpi-iot-ros-ai:~# ping 192.168.0.5
PING 192.168.0.5 (192.168.0.5) 56(84) bytes of data.
64 bytes from 192.168.0.5: icmp_seq=1 ttl=64 time=0.878 ms
64 bytes from 192.168.0.5: icmp_seq=2 ttl=64 time=0.441 ms
^C
--- 192.168.0.5 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.441/0.659/0.878/0.220 ms

#additional IP-configuration (gateway+DNS-server)
route add default gw 192.168.0.5
echo "nameserver 192.168.0.5" > /etc/resolv.conf

not getting it via /etc/network/interfaces to work :frowning:

auto eth0
        iface eth0 inet manual

auto lan0
        iface eth0 inet static
        hwaddress ether 08:00:00:00:00:00 # if you want to set MAC manually
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.5

eth0 gets hwaddress and ip from lan0 but both not visible for ifconfig

if i add this to eth0:

    pre-up ifconfig $IFACE up
    post-down ifconfig $IFACE down

i see eth0 with lan0-config, enabling lan0 manually does not work since eth0 got the config from lan0 ;( any idea how to fix this?

strange, that wan is also @eth0…isn’t it on the 2nd NIC?

also my mt7612 does not show up in lspci…seems that pcie-slot is not enabled…

enabled CONFIG_PCIEPORTBUS=y and CONFIG_PCIE_MEDIATEK=y and added the devicenodes for pcie in dtsi and dts (bpidts.patch (5,4 KB) ,patch including mmc-swap) but also no output on lspci…any idea? maybe this is needed…

take this patch https://patchwork.kernel.org/patch/9980063/

enable CONFIG_PHY_MTK_TPHY=y

1 Like

Good progress on getting the mainline kernel to work on the board!

I quickly tried copying the defconfig from 4.4.70 to 4.14 and did “make oldconfig” to upgrade it to 4.14, mostly accepting the default settings. Sadly no output on the serial console after u-boot (why would it work the first time :expressionless:…). I noticed you added some links to config files, and i diffed some of them but there are quite some changes. Could you please share or point me to the latest config file that is working for you with 4.14? Then I can take a look with you to hopefully get more up and running, instead of wasting my time finding the issue with my config :yum:

http://fw-web.de/dokuwiki/doku.php?id=en:bpi-r2:kernel#using_own_newer_kernel

there is a script to build…maybe you’ve forgotten to append the dtb :slight_smile:

4.14-mmc.patch
with this Patch SD-Card will be detected…
changed defconfig <<<< is my config

if you using the uenv.txt from 4.4.70, you have to swap mmcs to…