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.

for a combination of BeagleBone Black + WL1835 , is there a ready image file to let it work on wlan via SDIO ?

Other Parts Discussed in Thread: WL1835, WL18XXCOM82SDMMC, TPS65217

where can find an image file to let  BeagleBone Black + WL1835 work on wlan via SDIO ?

  • Hi,

    Please refer to: processors.wiki.ti.com/.../WiLink8_Linux_Getting_Started_Guide

    (1) Download the processor SDK from: software-dl.ti.com/.../index_FDS.html

    (2) Apply this dts patch: git.ti.com/.../0001-ARCH-arm-am335x-boneblack-add-wl1835-cape-support.patch

    (3) Compile Linux

    (4) And boot up the board.

    Regards,
    Gigi Joseph.
  • could I use bone-debian-7.9-lxde-4gb-armhf-2015-11-12-4gb.img and replace the dts made from the above link ?
  • Sorry, I'm not familair with "bone-debian-7.9-lxde-4gb-armhf-2015-11-12-4gb.img".
    Where is this available?
  • Hu,

    I don't know whether these bone images have the wl18xx dts support.

    The article

    basically scripts up the process to get a debian image working.  When it was done it was with K4.1 and debian 7.8. The wl18xx cape is supported in Robert Nelson's build system and so you should be able to take the latest versions and get it working. I have not done this so if you just want something working then I'd recommend following that article.

    Iain

  • thanks, but i use the script in this article, it can not work.
    initially, I assume I can use the script to let WL1835 work with BeagleBone , finally the script can not work.
    the another article -"WL1835 Cape on BeagleBone with MainLine Kernel Debian Filesystem ", nor work the script.
    I expect TI can afford an easy way to let wlan work with SDIO on WL1835 + BeagleBone Black, such as ready image or script, to help on system verification.
  • Hi Hu,
    I sent the link for K3.8 version, I meant processors.wiki.ti.com/index.php/WL1835_Cape_on_BeagleBone_with_MainLine_Kernel_Debian_Filesystem

    regarding the problem with the script what happens if you try to run
    #git clone github.com/.../bb-kernel.git

    Iain
  • thanks;

    I can run w18-build.sh build successfully, but I fail at programme-sd.sh

    finally I get " successfully unmounted"

    but the SD card is empty,

    and the /rootfs-sd is empty, this confuse me.

    anything need to do ?

    please help;

    Best Regards ;

    Allen
  • Allen,
    When you insert your sd card where is it mounted? Does it show up as /dev/sdX or /dev/mmcblkX (where X is a letter or number)?
    Whichever it is, this is the argument you pass on the command line to programme-sd.sh.

    after un-mounting rootfs-sd will be empty as it is just a directory used to mount the sd card to. So when SD card is mounted it will contain the Sd card contents and when it is unmounted it will be empty.
    Iain
  • the sd card show as /dev/sdb
  • sorry, what content will be in sd card ?
  • I run .program-sd.sh again, but I fail at dd : open 'dev/sdb' , do not find media.
  • Hi Allen,
    The final stage of the build script creates a tar file mmc-package/mmc-package.tar.gz that contains the u-boot and root file system.

    The programme-sd.sh script copies the u-boot to the beginning of the SD card and then creates a partition rootfs and extracts the root file system (tar-rootfs.tar.gz) to the rootfs partition on the sd card.

    What I can't understand is why you see a /dev/sdb on the Linux machine but then cannot use it as a output file in dd. Can you try the dd command from a command line

    #sudo dd if=/dev/zero of=/dev/sdb bs=1M count=10

    Iain
  • I can boot now, although the sd only has rootfs
    but I do not know how to login
    it shows
    default username:password is [debian:temppwd]

    the prompt is
    arm login:
  • sorry, now I can login in, but where can find wl18XX_modules ?
  • If you boot the BBB with a wl1835 cape then the modules will automatically be loaded and you just need to do "ifconfig wlan0 up" to get the wifi working. Just follow the instructions at processors.wiki.ti.com/.../WL1835_Cape_on_BeagleBone_with_MainLine_Kernel_Debian_Filesystem

    Why are you wanting to find the modules?
    Iain
  • I follow the article which you assigned, then

    I see the WL_EN LED is light.

    ifconfig wlan0 up

    it shows

    wlan0: ERROR while getting interface flags: No such device



    I have executed



    # dhclient eth0
    #apt-get update
    #apt-get install iperf iw crda bluez bluez-tools

    but I dp npt find "/etc/wpa_supplicant.conf"
    and I create etc/wpa_supplicant-unsecuredAP.conf and /etc/wpa_supplicant-securedAP.conf
    finally at

    wpa_supplicant -d -Dnl80211 -c/etc/wpa_supplicant-unsecuredAP.conf -iwlan0 -B
    it also fail as "could not read interface wlan0 flags: No such device

    please help
    thanks
  • I can not get the dts patch

    "(2) Apply this dts patch: git.ti.com/.../0001-ARCH-arm-am335x-boneblack-add-wl1835-cape-support.patch "

    please help

  • Allen,

    If you are building from  then there is no need for you to apply any patches. It is all done in the kernel build script that is maintained by Robert C Nelson. This creates the device tree binary which is then pointed to by uEnv.txt file in the file system.

    If you look at the script this is done by the line

    sudo sh -c "echo 'fdtfile=am335x-boneblack-wl1835mod.dtb' >> ${FS}/boot/uEnv.txt"
      


    If this is working correctly you should see uboot load a file that is the same size as
    /boot/am335x-boneblack-wl1835mod.dtb in the file system.

    Iain

  • I have am335x-boneblack-wl1835mod.dtb , wlcore.ko. wlcore_sdio.ko, wl18xx.ko ... , but
    ifconfig wlan0 up, always fail like " no such device"

    please help
    Best regards
  • Allen,
    In your other post you stated that WL_EN signal was always low. In this post you say it goes high. Are you still looking at the same problem?

    When dtb is loaded it will drive WL_EN high (and light will go on on cape). So first step is to make sure that correct dtb is loaded, which is why I asked for you to chekc that the the size of the file u-boot loaded was the same as the one in your kernel directory.
    If DTB file is wrong then potentially WL_EN will be drive on wrong pin or SD commands will go on wrong mmc bus. Either of these will prevent the wl18xx being identified on boot and the drivers being loaded. This will get you the error than wlan0 does not exist.
    Also can you confirm that you are using the circuit co WL1835 cape as the DTB file matches that cape.
    Iain
  • Hi Iain:
    thans at first
    I describe the whole thing to make you clear my problem.
    ( 1) the boards :(a) Beaglebone black (b) WL18xxCOM82SDMMC (adapter) + WL1871 ( Jorjin WG7871-BN)
    (2) wiring accoring to "processors.wiki.ti.com/.../BBB_WL8_module_integration.pdf"
    (3) follow the article "processors.wiki.ti.com/.../WL1835_Cape_on_BeagleBone_with_MainLine_Kernel_Debian_Filesystem" to build system

    the result as you know, the wL_en always low and no sd_clk.
    for the WL_EN high , my FAE to short the pin to make the result. no I direct measure form scope.


    please help;
    thanks;
  • Hi Allen,

    The build script on the wiki assumes you are using the Circuit Co cape with WL1835. The device tree file assumes the pin connections on this cape.

    As you are using a completely different board your symptoms make sense. I would guess that you are using a different GPIO for WL_EN and a different mmc port for the com82sdmmc to that in the device tree file (dts)

    So what you need to do is change the device tree file to match your pin usage. Once you can see WL_EN being driven high on kernel start and then sd clock activity when the kernel probes the mmc ports you have the device tree file basically correct.

    Iain

  • Hi Iain:
    (1) I have wired the com82sdmmc and beaglebone black accorging WL1835 cap. So I think the WL1835cap dts should work.
    (2 ) does it use SDIO_CARD_DETECT to trigger WL_EN ?


    Best Regards;
    Thanks;
  • Allen,

    If your electrical connections are identical then you should be able to use the same dts file.

    No it does not use card detect.

    The device tree entry for the mmc sets it to be a non-removable mmc device

    ti,non-removable;

    Things to check.

    1. that your device tree file for wl1835 is actually used. Best way to try that is to probe GPIO1_29 which is the buffer enable for the cape. It is controlled in pin group wlan_pins in am335x-boneblack-wl1835mod-cape.dtsi. It should go high on kernel boot. If it does, edit to make it drive low, rebuild dts and then see if behaviour changes. This way you can check you are actually loading the dtb file you think you are.

    2. In your boot log is mmc2 probed? Something like this in boot log (or dmesg output)

    mmc2: queuing unknown CIS tuple 0x91 (3 bytes)
    mmc2: new high speed SDIO card at address 0001

    Iain

  • Hi Iian:
    (1) is the GPIO1_29 at P8.26 ? the voltage of P8.26 is about 3.3 V

    (2) after login I use
    "dmesg | grep mmc2", I do not see any message of mmc2, so the booting process has something wrong

    (3) I delete bbb-412-bone12-scripts-v0.3/bb-kernel/KERNEL/arch/arm/boot/dts/am335x-boneblack-wl1835mod.dtb , then try to make dtb, but fail
    the command:
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-boneblack-wl1835mod.dtb
    the error is
    make: *** No rule to make target `am335x-boneblack-wl1835mod.dtb'. Stop.

    (4) I try dtc
    the command:
    dtc -I dts -O dtb -o am335x-boneblack-wl1835mod.dtb am335x-boneblack-wl1835mod.dts
    the error is:
    DTC: dts->dtb on file "am335x-boneblack-wl1835mod.dts"
    Error: am335x-boneblack-wl1835mod.dts:10.1-9 syntax error
    FATAL ERROR: Unable to parse input tree

    please help;
    thanks;
  • Hi Allen,
    I would make the device tree by taking the appropriate line from the bb-kernel directory and running it from KERNEL directory. Here is my command line and you will obviously need to change the paths

    iain@iain-Latitude-E6430:~/bbb-41-wl8/bb-kernel$ cd KERNEL/
    iain@iain-Latitude-E6430:~/bbb-41-wl8/bb-kernel/KERNEL$ make -j8 ARCH=arm LOCALVERSION=-bone12 CROSS_COMPILE=/home/iain/bbb-41-wl8/bb-kernel/dl/gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- dtbs
    CHK include/config/kernel.release
    CHK include/generated/uapi/linux/version.h
    CHK include/generated/utsrelease.h
    make[1]: `include/generated/mach-types.h' is up to date.
    CHK include/generated/bounds.h
    CHK include/generated/asm-offsets.h
    CALL scripts/checksyscalls.sh
    DTC arch/arm/boot/dts/am335x-boneblack-wl1835mod.dtb
    iain@iain-Latitude-E6430:~/bbb-41-wl8/bb-kernel/KERNEL$

    Iain
  • Hi Iian:
    thanks; I can compile .dts.

    (1) I still do not find mmc2 message in booting process, after I modify the gpio1_29 in am335x-boneblack-wl1835mod-cape.dtsi

    /* wl18xx card enable/irq GPIOs. */
    wlan_pins: pinmux_wlan_pins {
    pinctrl-single,pins = <
    0x28 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.gpio0_26 WL_EN*/
    0x2C (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ*/
    0x7C (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* gpmc_csn0.gpio1_29 BF_EN*/
    >;
    };

    /* wl18xx card enable/irq GPIOs. */
    wlan_pins_sleep: pinmux_wlan_pins_sleep {
    pinctrl-single,pins = <
    0x28 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_ad10.gpio0_26 WL_EN*/
    0x2C (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ*/
    0x7C (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* gpmc_csn0.gpio1_29 BF_EN*/
    >;
    };

    (2)the below is uEnv.txt in rootfs/boot of uSD card



    ##This will work with: Angstrom's 2013.06.20 u-boot.

    loadaddr=0x82000000
    fdtaddr=0x88000000
    rdaddr=0x88080000
    initrd_high=0xffffffff
    fdt_high=0xffffffff

    loadximage=load mmc 0:1 ${loadaddr} /boot/vmlinuz-${uname_r}
    loadxfdt=load mmc 0:1 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}
    loadxrd=load mmc 0:1 ${rdaddr} /boot/initrd.img-${uname_r}; setenv rdsize ${filesize}
    loaduEnvtxt=load mmc 0:1 ${loadaddr} /boot/uEnv.txt ; env import -t ${loadaddr} ${filesize};
    loadall=run loaduEnvtxt; run loadximage; run loadxfdt;

    mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline}

    uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} - ${fdtaddr};
    uname_r=4.1.2-bone12
    cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,BB-BONE-EMMC-2G
    mmcroot=/dev/mmcblk0p1
    fdtfile=am335x-boneblack-wl1835mod.dtb



    (3) I find no mmc2 message the booting message, it seems mmc2 do not initialize



    root@arm:~# dmesg | grep mmc
    [ 0.000000] Kernel command line: console=tty0 console=ttyO0,115200n8 capemgrc
    [ 3.758160] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 3.840421] mmc0: host does not support reading read-only switch, assuming we
    [ 3.860652] mmc0: new high speed SDHC card at address 59b4
    [ 3.872369] mmcblk0: mmc0:59b4 USD 7.51 GiB
    [ 3.891237] mmcblk0: p1
    [ 3.971582] mmc1: MAN_BKOPS_EN bit is not set
    [ 3.980202] mmc1: new high speed MMC card at address 0001
    [ 3.986585] mmcblk1: mmc1:0001 MMC04G 3.65 GiB
    [ 3.991431] mmcblk1boot0: mmc1:0001 MMC04G partition 1 1.00 MiB
    [ 3.998092] mmcblk1boot1: mmc1:0001 MMC04G partition 2 1.00 MiB
    [ 4.023215] mmcblk1: p1 p2
    [ 4.462459] EXT4-fs (mmcblk0p1): INFO: recovery required on readonly filesysm
    [ 4.469904] EXT4-fs (mmcblk0p1): write access will be enabled during recovery
    [ 4.579655] EXT4-fs (mmcblk0p1): recovery complete
    [ 4.660993] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. )
    [ 6.471152] EXT4-fs (mmcblk0p1): re-mounted. Opts: errors=remount-ro




    (4) how to confirm am335x-boneblack-wl1835mod.dtb loaded sucessfully ? the below is booting message



    U-Boot 2015.01-00001-gb2412df (Jan 29 2015 - 15:01:06), Build: jenkins-github_B5

    Watchdog enabled
    I2C: ready
    DRAM: 512 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Using default environment

    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw
    Hit any key to stop autoboot: 0
    gpio: pin 53 (gpio 53) value is 1
    switch to partitions #0, OK
    mmc0 is current device
    gpio: pin 54 (gpio 54) value is 1
    Checking for: /uEnv.txt ...
    Checking for: /boot.scr ...
    Checking for: /boot/boot.scr ...
    Checking for: /boot/uEnv.txt ...
    gpio: pin 55 (gpio 55) value is 1
    910 bytes read in 21 ms (42 KiB/s)
    Loaded environment from /boot/uEnv.txt
    Checking if uname_r is set in /boot/uEnv.txt...
    gpio: pin 56 (gpio 56) value is 1
    Running uname_boot ...
    loading /boot/vmlinuz-4.1.2-bone12 ...
    6912304 bytes read in 396 ms (16.6 MiB/s)
    loading /boot/dtbs/4.1.2-bone12/am335x-boneblack-wl1835mod.dtb ...
    57033 bytes read in 64 ms (870.1 KiB/s)
    debug: [console=tty0 console=ttyO0,115200n8 capemgr.disable_partno=BB-BONELT-HD.
    debug: [bootz 0x82000000 - 0x88000000] ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x697930 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Using Device Tree in place at 88000000, end 88010ec8

    Starting kernel ...

    [ 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] Linux version 4.1.2-bone12 (adivic@adivic-virtual-machine) (gcc 6
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructie
    [ 0.000000] Machine model: TI AM335x BeagleBone Black
    [ 0.000000] cma: Reserved 24 MiB at 0x9e800000
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] AM335X ES2.1 (sgx neon )
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pa0
    [ 0.000000] Kernel command line: console=tty0 console=ttyO0,115200n8 capemgrc
    [ 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: 482520K/524288K available (6268K kernel code, 812K rwdat)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
    [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
    [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    [ 0.000000] modules : 0xbf800000 - 0xbfe00000 ( 6 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc09843e0 (9713 kB)
    [ 0.000000] .init : 0xc0985000 - 0xc09f4000 ( 444 kB)
    [ 0.000000] .data : 0xc09f4000 - 0xc0abf090 ( 813 kB)
    [ 0.000000] .bss : 0xc0ac2000 - 0xc0b95564 ( 846 kB)
    [ 0.000000] NR_IRQS:16 nr_irqs:16 16
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrus
    [ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [ 0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 8947s
    [ 0.000029] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, maxs
    [ 0.000038] OMAP clocksource: timer1 at 24000000 Hz
    [ 0.000282] Console: colour dummy device 80x30
    [ 0.000945] console [tty0] enabled
    [ 0.000980] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [ 0.001006] This ensures that you still see kernel messages. Please
    [ 0.001031] update your kernel commandline.
    [ 0.001064] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
    [ 0.089197] pid_max: default: 32768 minimum: 301
    [ 0.089323] Security Framework initialized
    [ 0.089409] AppArmor: AppArmor disabled by boot time parameter
    [ 0.089436] Yama: becoming mindful.
    [ 0.089626] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.089658] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.090290] Initializing cgroup subsys blkio
    [ 0.090333] Initializing cgroup subsys memory
    [ 0.090388] Initializing cgroup subsys devices
    [ 0.090421] Initializing cgroup subsys freezer
    [ 0.090456] Initializing cgroup subsys net_cls
    [ 0.090487] Initializing cgroup subsys perf_event
    [ 0.090515] Initializing cgroup subsys net_prio
    [ 0.090581] CPU: Testing write buffer coherency: ok
    [ 0.090644] ftrace: allocating 31519 entries in 62 pages
    [ 0.156900] Setting up static identity map for 0x800081c0 - 0x8000820c
    [ 0.160659] devtmpfs: initialized
    [ 0.173612] VFP support v0.3: implementor 41 architecture 3 part 30 variant 3
    [ 0.181947] omap_hwmod: tptc0 using broken dt data from edma
    [ 0.182081] omap_hwmod: tptc1 using broken dt data from edma
    [ 0.182185] omap_hwmod: tptc2 using broken dt data from edma
    [ 0.186458] omap_hwmod: debugss: _wait_target_disable failed
    [ 0.240887] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, mas
    [ 0.242788] xor: measuring software checksum speed
    [ 0.339154] arm4regs : 1245.600 MB/sec
    [ 0.439149] 8regs : 945.200 MB/sec
    [ 0.539150] 32regs : 1112.000 MB/sec
    [ 0.639150] neon : 1802.800 MB/sec
    [ 0.639170] xor: using function: neon (1802.800 MB/sec)
    [ 0.639355] pinctrl core: initialized pinctrl subsystem
    [ 0.640402] NET: Registered protocol family 16
    [ 0.642280] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [ 0.645717] OMAP GPIO hardware version 0.1
    [ 0.646288] GPIO line 52 (EMMC ResetN) hogged as output/high
    [ 0.653424] No ATAGs?
    [ 0.653457] hw-breakpoint: debug architecture 0x4 unsupported.
    [ 0.829313] raid6: int32x1 gen() 242 MB/s
    [ 0.999178] raid6: int32x1 xor() 237 MB/s
    [ 1.169232] raid6: int32x2 gen() 366 MB/s
    [ 1.339219] raid6: int32x2 xor() 270 MB/s
    [ 1.509203] raid6: int32x4 gen() 398 MB/s
    [ 1.679257] raid6: int32x4 xor() 244 MB/s
    [ 1.849333] raid6: int32x8 gen() 325 MB/s
    [ 2.019194] raid6: int32x8 xor() 213 MB/s
    [ 2.189177] raid6: neonx1 gen() 1463 MB/s
    [ 2.359167] raid6: neonx2 gen() 1876 MB/s
    [ 2.529169] raid6: neonx4 gen() 2021 MB/s
    [ 2.699174] raid6: neonx8 gen() 900 MB/s
    [ 2.699194] raid6: using algorithm neonx4 gen() 2021 MB/s
    [ 2.699215] raid6: using intx1 recovery algorithm
    [ 2.705336] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
    [ 2.709335] SCSI subsystem initialized
    [ 2.709925] usbcore: registered new interface driver usbfs
    [ 2.710006] usbcore: registered new interface driver hub
    [ 2.710086] usbcore: registered new device driver usb
    [ 2.710558] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_we
    [ 2.710638] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_we
    [ 2.710758] media: Linux media interface: v0.10
    [ 2.710829] Linux video capture interface: v2.00
    [ 2.710927] pps_core: LinuxPPS API ver. 1 registered
    [ 2.710948] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giom>
    [ 2.711000] PTP clock support registered
    [ 2.711579] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [ 2.712526] NetLabel: Initializing
    [ 2.712559] NetLabel: domain hash size = 128
    [ 2.712578] NetLabel: protocols = UNLABELED CIPSOv4
    [ 2.712645] NetLabel: unlabeled traffic allowed by default
    [ 2.713129] Switched to clocksource timer1
    [ 2.783207] NET: Registered protocol family 2
    [ 2.783938] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [ 2.784004] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [ 2.784056] TCP: Hash tables configured (established 4096 bind 4096)
    [ 2.784137] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 2.784169] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 2.784336] NET: Registered protocol family 1
    [ 2.784747] RPC: Registered named UNIX socket transport module.
    [ 2.784777] RPC: Registered udp transport module.
    [ 2.784797] RPC: Registered tcp transport module.
    [ 2.784816] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 2.785588] CPU PMU: Failed to parse /pmu/interrupt-affinity[0]
    [ 2.785646] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 countee
    [ 2.787487] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 2.787609] audit: initializing netlink subsys (disabled)
    [ 2.787687] audit: type=2000 audit(2.740:1): initialized
    [ 2.788861] zpool: loaded
    [ 2.788903] zbud: loaded
    [ 2.789140] VFS: Disk quotas dquot_6.6.0
    [ 2.789221] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 2.789732] NFS: Registering the id_resolver key type
    [ 2.789803] Key type id_resolver registered
    [ 2.789824] Key type id_legacy registered
    [ 2.789862] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [ 2.790128] fuse init (API version 7.23)
    [ 2.790343] SGI XFS with ACLs, security attributes, realtime, no debug enabld
    [ 2.791916] Block layer SCSI generic (bsg) driver version 0.4 loaded (major )
    [ 2.792093] io scheduler noop registered
    [ 2.792123] io scheduler deadline registered
    [ 2.792171] io scheduler cfq registered (default)
    [ 2.793348] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [ 2.794757] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
    [ 2.796945] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 154, base_baud 0
    [ 3.595912] console [ttyS0] enabled
    [ 3.600083] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 155, base_baud 0
    [ 3.609948] [drm] Initialized drm 1.1.0 20060810
    [ 3.615659] usbcore: registered new interface driver dln2
    [ 3.623256] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [ 3.629856] ehci-platform: EHCI generic platform driver
    [ 3.635261] ehci-omap: OMAP-EHCI Host Controller driver
    [ 3.641701] 47401300.usb-phy supply vcc not found, using dummy regulator
    [ 3.651286] 47401b00.usb-phy supply vcc not found, using dummy regulator
    [ 3.659988] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
    [ 3.666054] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus1
    [ 3.674118] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 3.680952] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber1
    [ 3.688244] usb usb1: Product: MUSB HDRC host driver
    [ 3.693252] usb usb1: Manufacturer: Linux 4.1.2-bone12 musb-hcd
    [ 3.699210] usb usb1: SerialNumber: musb-hdrc.1.auto
    [ 3.704792] hub 1-0:1.0: USB hub found
    [ 3.708607] hub 1-0:1.0: 1 port detected
    [ 3.720064] mousedev: PS/2 mouse device common for all mice
    [ 3.727285] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [ 3.734904] i2c /dev entries driver
    [ 3.739907] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [ 3.747183] sdhci: Secure Digital Host Controller Interface driver
    [ 3.753428] sdhci: Copyright(c) Pierre Ossman
    [ 3.758160] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 3.840421] mmc0: host does not support reading read-only switch, assuming we
    [ 3.848733] sdhci-pltfm: SDHCI platform and OF driver helper
    [ 3.854534] ledtrig-cpu: registered to indicate activity on CPUs
    [ 3.860652] mmc0: new high speed SDHC card at address 59b4
    [ 3.866293] hidraw: raw HID events driver (C) Jiri Kosina
    [ 3.872369] mmcblk0: mmc0:59b4 USD 7.51 GiB
    [ 3.877634] usbcore: registered new interface driver usbhid
    [ 3.883281] usbhid: USB HID core driver
    [ 3.887959] ashmem: initialized
    [ 3.891237] mmcblk0: p1
    [ 3.897086] oprofile: using arm/armv7
    [ 3.903682] NET: Registered protocol family 10
    [ 3.909100] mip6: Mobile IPv6
    [ 3.912185] NET: Registered protocol family 17
    [ 3.917112] Key type dns_resolver registered
    [ 3.921473] mpls_gso: MPLS GSO support
    [ 3.925544] omap_voltage_late_init: Voltage driver support not added
    [ 3.935489] ThumbEE CPU extension supported.
    [ 3.939850] Registering SWP/SWPB emulation handler
    [ 3.945370] registered taskstats version 1
    [ 3.950310] Btrfs loaded
    [ 3.954300] Key type encrypted registered
    [ 3.971582] mmc1: MAN_BKOPS_EN bit is not set
    [ 3.980202] mmc1: new high speed MMC card at address 0001
    [ 3.986585] mmcblk1: mmc1:0001 MMC04G 3.65 GiB
    [ 3.991431] mmcblk1boot0: mmc1:0001 MMC04G partition 1 1.00 MiB
    [ 3.998092] mmcblk1boot1: mmc1:0001 MMC04G partition 2 1.00 MiB
    [ 4.004284] tps65217 0-0024: TPS65217 ID 0xe version 1.2
    [ 4.010031] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [ 4.017477] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [ 4.023215] mmcblk1: p1 p2
    [ 4.029032] at24 2-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [ 4.036315] at24 2-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [ 4.043535] at24 2-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [ 4.050731] at24 2-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [ 4.057696] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
    [ 4.069742] bone_capemgr bone_capemgr: Baseboard: 'A335BNLT,00C0,3615BBBK0B2'
    [ 4.077069] bone_capemgr bone_capemgr: compatible-baseboard=ti,beaglebone-bl4
    [ 4.143149] bone_capemgr bone_capemgr: slot #0: No cape found
    [ 4.203140] bone_capemgr bone_capemgr: slot #1: No cape found
    [ 4.263139] bone_capemgr bone_capemgr: slot #2: No cape found
    [ 4.323139] bone_capemgr bone_capemgr: slot #3: No cape found
    [ 4.328988] bone_capemgr bone_capemgr: initialized OK.
    [ 4.393167] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [ 4.399330] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [ 4.405852] davinci_mdio: dt: updated phy_id[0] from phy_mask[fffffffe]
    [ 4.412532] davinci_mdio: dt: updated phy_id[1] from phy_mask[fffffffe]
    [ 4.420247] libphy: 4a101000.mdio: probed
    [ 4.424358] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, dri0
    [ 4.434209] cpsw 4a100000.ethernet: Detected MACID = 54:4a:16:e3:db:41
    [ 4.442031] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:)
    [ 4.450780] of_cfs_init
    [ 4.453339] of_cfs_init: OK
    [ 4.462459] EXT4-fs (mmcblk0p1): INFO: recovery required on readonly filesysm
    [ 4.469904] EXT4-fs (mmcblk0p1): write access will be enabled during recovery
    [ 4.579655] EXT4-fs (mmcblk0p1): recovery complete
    [ 4.660993] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. )
    [ 4.669218] VFS: Mounted root (ext4 filesystem) readonly on device 179:1.
    [ 4.684729] devtmpfs: mounted
    [ 4.688185] Freeing unused kernel memory: 444K (c0985000 - c09f4000)
    [ 4.894695] random: systemd urandom read with 17 bits of entropy available
    [ 4.904729] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SE)
    [ 4.918535] systemd[1]: Detected architecture 'arm'.

    please help
    thanks
  • Hi Iian:
    I think the .dtb loaded successfully.
    from the message

    loading /boot/dtbs/4.1.2-bone12/am335x-boneblack-wl1835mod.dtb ...
    57033 bytes read in 64 ms (870.1 KiB/s)

    Do you have any idea on the loss of mmc2 message?

    Best Regards;
    Allen;
  • HI Allen,
    I'd forgotten that on this build mmc2 in device tree is equal to mmc1 in the logs. So the mmc port is being probed and detected. However, it is detecting the BBB's eMMC memory

    [ 3.971582] mmc1: MAN_BKOPS_EN bit is not set
    [ 3.980202] mmc1: new high speed MMC card at address 0001
    [ 3.986585] mmcblk1: mmc1:0001 MMC04G 3.65 GiB
    [ 3.991431] mmcblk1boot0: mmc1:0001 MMC04G partition 1 1.00 MiB
    [ 3.998092] mmcblk1boot1: mmc1:0001 MMC04G partition 2 1.00 MiB


    This memory should be disabled by GPIO1_20 being driven high by device tree as it is inverted before it goes to the eMMC. Check schematics for the BBB you are using to find out where to probe that this is happening.

    As background mmc2 is used for eMMC on a standard BBB and so mmc2 must be shared with the wl18xx on the cape. This is done by disabling the eMMC in device tree.

    Iain
  • Hi Iian:
    (1) so the GPIO1_20 will be pull low from high suddenly ?
    (2) if the GPIO1_20 always pull high, it can disable the eMMC.


    Best Regards;
    Allen;
  • GPIO1_20 should always be high when wl18xx is connected.
    The device tree should drive it high on boot. If something is driving GPIO1_20 low then that is the problem.
    Iain
  • Hi Iian:
    (1) I inspect schematic and find the GPIO1_20 is floating. It is hard to deal with it for BGA package.
    (2) but according manual , booting from the eMMC and SD card is controlled by S2.

    Best Regards;
    Allen;
  • Hi Allen,
    1) can you send me a link to the schematics for the BBB you have? The ones I have are showing GPIO1_20 connected to eMMC_RST.
    2) Yes, but it doesn't disable eMMC if you boot from SD card. It just tells boot process to use mmc1 rather than mmc2.
    Iain
  • Hi Iian;

    (1) github.com/.../BEAGLEBONE_REV_A6A.pdf
    (2) from the below log message, the booting should start with SD.
    but I do know why it switch to eMMC.
    loading /boot/dtbs/4.1.2-bone12/am335x-boneblack-wl1835mod.dtb ...
    57033 bytes read in 64 ms (870.1 KiB/s)

    Best Reargds;
    Allen;
  • Hi Allen,
    Those are the schematics for the original BeagleBone - also known as a BeagleBone White as the PCB is white.
    You need the schematics for the BeagleBoneBlack - assuming your PCB is also black.
    Iain
  • HI Iain:

    Could you provide the link of schematics for the BeagleBoneBlack ?

    Best Regards;
  • All the docs are at:

    beagleboard.org/.../design

    Follow BeagleBone Black link github.com/.../BeagleBone-Black
    Iain
  • Hi Iain:

    I press S2 and power on to inspect the VDD_3V3A and GPIO1_20, find GPIO1_20 lag VDD_3V3A for about 5.5 seconds. So I pull down the eMMC_RSTN , but seems in vain. Besides, it cause more error message at below.

    root@arm:~# dmesg | grep mmc
    [ 0.000000] Kernel command line: console=tty0 console=ttyO0,115200n8 capemgrc
    [ 3.763029] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 3.840418] mmc0: host does not support reading read-only switch, assuming we
    [ 3.860646] mmc0: new high speed SDHC card at address 59b4
    [ 3.872366] mmcblk0: mmc0:59b4 USD 7.51 GiB
    [ 3.891222] mmcblk0: p1
    [ 3.971511] mmc1: MAN_BKOPS_EN bit is not set
    [ 3.980165] mmc1: new high speed MMC card at address 0001
    [ 3.986544] mmcblk1: mmc1:0001 MMC04G 3.65 GiB
    [ 3.991366] mmcblk1boot0: mmc1:0001 MMC04G partition 1 1.00 MiB
    [ 3.998022] mmcblk1boot1: mmc1:0001 MMC04G partition 2 1.00 MiB
    [ 4.017545] mmcblk1: p1 p2
    [ 4.462478] EXT4-fs (mmcblk0p1): INFO: recovery required on readonly filesysm
    [ 4.469921] EXT4-fs (mmcblk0p1): write access will be enabled during recovery
    [ 4.828784] EXT4-fs (mmcblk0p1): recovery complete
    [ 4.841723] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. )
    [ 6.556852] EXT4-fs (mmcblk0p1): re-mounted. Opts: errors=remount-ro
    [ 8.230226] mmcblk1: error -84 transferring data, sector 2056, nr 8, cmd res0
    [ 8.240044] mmc1: tried to reset card
    [ 8.243753] mmcblk1: retrying using single block read
    [ 8.287826] mmcblk1: error -84 transferring data, sector 2064, nr 8, cmd res0
    [ 8.297523] mmc1: tried to reset card
    [ 8.301235] mmcblk1: retrying using single block read


    In addition, I find no gpio1_20 defined in .dts and .dtsi of beaglebone black.
    the mmc1's reading eMMC is controlled by which program ? Does this program also parse the .dtb ?

    Best Regads;
    Allen;
  • Allen,
    The gpio1_20 is defined in the dts file you are loading - am335x-boneblack-wl1835mod.dts.
    What is the contents of your /boot/uEnv.txt file. As well as defining dtb file it should also disable EMMC on kernel command line.

    Iain
  • Hi Iain:
    (1) Yes, I see it. for this , what message can I see in the boot log ?
    /* EMMC in reset */
    &gpio1 {
    emmc_rst {
    gpio-hog;
    gpios = <20 0>;
    output-high;
    line-name = "EMMC ResetN";
    };
    };

    (2) the below is uEnv.txt

    ##This will work with: Angstrom's 2013.06.20 u-boot.

    loadaddr=0x82000000
    fdtaddr=0x88000000
    rdaddr=0x88080000
    initrd_high=0xffffffff
    fdt_high=0xffffffff

    loadximage=load mmc 0:1 ${loadaddr} /boot/vmlinuz-${uname_r}
    loadxfdt=load mmc 0:1 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}
    loadxrd=load mmc 0:1 ${rdaddr} /boot/initrd.img-${uname_r}; setenv rdsize ${filesize}
    loaduEnvtxt=load mmc 0:1 ${loadaddr} /boot/uEnv.txt ; env import -t ${loadaddr} ${filesize};
    loadall=run loaduEnvtxt; run loadximage; run loadxfdt;

    mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline}

    uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} - ${fdtaddr};
    uname_r=4.1.2-bone12
    cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,BB-BONE-EMMC-2G
    mmcroot=/dev/mmcblk0p1
    fdtfile=am335x-boneblack-wl1835mod.dtb

    Best Regards;
    Allen;
  • Hi Iain:
    I inverse dtb to dts
    the below should be the gpio1_20

    gpio@4804c000 {
    compatible = "ti,omap4-gpio";
    ti,hwmods = "gpio2";
    gpio-controller;
    #gpio-cells = <0x2>;
    interrupt-controller;
    #interrupt-cells = <0x2>;
    reg = <0x4804c000 0x1000>;
    interrupts = <0x62>;
    linux,phandle = <0x43>;
    phandle = <0x43>;

    emmc_rst {
    gpio-hog;
    gpios = <0x14 0x0>;
    output-high;
    line-name = "EMMC ResetN";
    };
    };

    so the defined content are the same.

    Best Regards;
    Allen;
  • You said you had designed your own cape - are there any differences between the schematics of your cape and that of the wl1835 cape? Perhaps there is a hw conflict.

    What is the relative timing of the GPIO1_20 (eMMC_RESET) and GPIO0_26 (WL_EN) ?
    You should have GPIO1_20 going high to disable the eMMC before GPIO0_26 is enabled by the mmc2 driver as it probes for a device.

    Iain
  • Hi Iain;
    I get the cape from an agent, it is a module made with (a) WL18xxCOM82SDMMC (adapter) (b) WL1871 ( Jorjin WG7871-BN)
    how do you think in the dts , (1) what condition cause mmc1 to begin read from MMC bus ? (2) what is the bus mux switch ? GPIO1_20 is a reset pin, does it cause bus switch form SD to eMMC ?

    Best Regards;
    Allen;
  • Allen,

    The device tree file must match the cape connections. The device tree is how you describe the hardware to the kernel.
    If there are any differences between your custom board and the wl1835 cape from circuit co (schematics are at boardzoo.com/.../beaglebone-wl1835mod-w-chip-antenna.html ) then you will need to make the changes to device tree to handle this and drive your cape as you want.

    To answer your question
    1) mmc1 (in kernel) is read because mmc2 (with device tree index and AM335x name) is listed in the device tree.
    2) the device tree for wl1835 cape assumes there is no mux. There are two devices on the mmc2 bus. eMMC and WL18xx. Each has an enable, eMMCRESET and WL_EN respectively. Only one of these should be enabled at once - ie eMMCRESET low to enable or WL_EN high to enable.

    That is how the wl1835 cape is designed. If yours is different you need to change dts file to match it

    Iain
  • HI Iain:
    the GPIO_1 and WL_EN are outputs pin of beaglebone, so the timing problem seems has no relation with cape. How do you think about ?

    Best Regards;
    Allen;
  • Allen,
    I don't know if there is a timing problem as you haven't said what the timing actually is.
    If GPIO0_26 does not connect to WL_EN then there is a problem.

    Please confirm that the hardware connections are the same as the WL1835 cape.
    Iain
  • Hi Iain:

    (1) GPIO0_26 is at P8.14 according to scematic,

    (2) reference to patches_kernel_patches_beaglebone-wilink8-capes_0001-ARCH-arm-am335x-boneblack-add-wl1835-cape-support.patch

    in at line 25.---

    wlan_pins_default: pinmux_wlan_pins_default {

    pinctrl-single,pins = <

    0x28 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.gpio0_26 WL_EN*/

    0x2C (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ*/

    0x30 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.gpio1_12 BT_EN*/

    0x7C  (PIN_OUTPUT_PULLUP   | MUX_MODE0) /* gpmc_csn0.gpio1_29 Cape_Buffer_EN*/

    >;

    };

    I do no see the gpio1_29 Cape_Buffer_EN in the schematic, what the function of this pin ?

    (3) Could you provide some method to debug dts ?

    Best Regards;

    Allen;

  • Hi Allen,

    If you can't see GPIO1_29 on the schematics of the cape then I think you may be looking at the wrong schematics.

    It is on p4 and enables the level shifters between the 3.3V buses on the cape and the 1.8V on the WL1835. If you are using the SDMMC2COM board then the level shifter is enabled by hw and not by GPIO.

    Iain 

  • Hi Iain:
    Thanksl
    (1) I compare the P8 in beagleboard.org/.../BONE_SCH.pdf on page11. they are the same. and my BBB is C version. so the cape connection should be correct.

    (2) Do you know how to debug a WL18xx module ? is there any output signal to confirm this module is good ?

    Best Regards;
    Allen;
  • Hi Iain:
    Do you know how to confirm the loading firmware to wl18XX module is sucessful ? and what is the clock frequency for loading firmware ?

    Best Regards;
    Allen;