Hi,
On 06/29/2017 10:11 PM, Daniel (Xiaolong) Wang wrote:
Hi all,
I want to give L4Linux access to SD card, and ethernet driver. Initially I thought by run L4Linux kernel on top of L4re, drivers built with L4Linux kernel can just work. After trying and reading the email archive, seems like I need to configure the corresponding capability in cfg. I’m very new to L4re environment is there any tutorials or references that can help me understand it better? (I’m currently reading the manual, my development board is a beagle bone black)
In case of ARM platforms this is (still) not an easy undertaking. What you have to do is basically this:
1. Enable the desired device drivers in your kernel configuration. 2. Make L4Linux compile. 3. Create a device tree which contains the device nodes of the desired devices. 4. Create an io configuration for L4Re with the devices and their resources and assign the desired devices to a vbus which is eventually given to L4Linux. You can read about io and its configuration here [1]. 5. Boot your setup on the target. At this stage, you usually you have to instrument the device driver to debug the reasons why it is failing.
Best, Matthias.
[1] http://l4re.org/doc/io.html
Also I’m trying to build a L4Linux with MMC driver. My configuration is based on default arm_defconfig. I enabled
- Make Linux be a Server * Bus driver for L4vbus * L4shm based
network driver * MMC/SD/SDIO card support -> HW reset support for eMMC, MMC block device driver, Use bounce buffer for simple hosts, SDIO UART/GPS class support, Secure Digital Host Controller Interface Support, SDHCI platform and OF driver helper, MediaTek SD/MMC Card Interface support * DOS/FAT/NT Filesystem -> MSDOS fs support, VFAT fs support
however, when it build the following errors show did I do something wrong?
LD drivers/i2c/busses/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/i2c/built-in.o LD drivers/idle/built-in.o CC drivers/input/input.o CC drivers/input/input-compat.o CC drivers/input/input-mt.o CC drivers/input/ff-core.o LD drivers/input/input-core.o CC drivers/input/mousedev.o CC drivers/input/evdev.o LD drivers/input/built-in.o LD drivers/iommu/built-in.o CC drivers/irqchip/irqchip.o LD drivers/irqchip/built-in.o LD drivers/leds/built-in.o LD drivers/lguest/built-in.o LD drivers/macintosh/built-in.o LD drivers/media/common/b2c2/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/media/common/siano/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/media/common/built-in.o LD drivers/media/firewire/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/media/i2c/built-in.o LD drivers/media/mmc/siano/built-in.o LD drivers/media/mmc/built-in.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/media/pci/dm1105/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/pci/built-in.o LD drivers/media/platform/omap/built-in.o LD drivers/media/platform/built-in.o LD drivers/media/rc/keymaps/built-in.o LD drivers/media/rc/built-in.o LD drivers/media/tuners/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/built-in.o LD drivers/media/built-in.o LD drivers/mfd/built-in.o LD drivers/misc/cb710/built-in.o LD drivers/misc/eeprom/built-in.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/misc/mic/built-in.o LD drivers/misc/ti-st/built-in.o LD drivers/misc/built-in.o CC drivers/mmc/card/block.o CC drivers/mmc/card/queue.o LD drivers/mmc/card/mmc_block.o CC drivers/mmc/card/sdio_uart.o LD drivers/mmc/card/built-in.o CC drivers/mmc/core/core.o CC drivers/mmc/core/bus.o CC drivers/mmc/core/host.o CC drivers/mmc/core/mmc.o CC drivers/mmc/core/mmc_ops.o CC drivers/mmc/core/sd.o CC drivers/mmc/core/sd_ops.o CC drivers/mmc/core/sdio.o CC drivers/mmc/core/sdio_ops.o CC drivers/mmc/core/sdio_bus.o CC drivers/mmc/core/sdio_cis.o CC drivers/mmc/core/sdio_io.o CC drivers/mmc/core/sdio_irq.o CC drivers/mmc/core/quirks.o CC drivers/mmc/core/slot-gpio.o CC drivers/mmc/core/pwrseq.o CC drivers/mmc/core/debugfs.o LD drivers/mmc/core/mmc_core.o CC drivers/mmc/core/pwrseq_simple.o CC drivers/mmc/core/pwrseq_emmc.o LD drivers/mmc/core/built-in.o CC drivers/mmc/host/sdhci.o CC drivers/mmc/host/mtk-sd.o CC drivers/mmc/host/sdhci-pltfm.o CC drivers/mmc/host/sdhci-of-arasan.o CC drivers/mmc/host/sdhci-of-at91.o LD drivers/mmc/host/built-in.o LD drivers/mmc/built-in.o CC drivers/net/Space.o CC drivers/net/loopback.o CC drivers/net/l4shmnet.o LD drivers/net/built-in.o LD drivers/nfc/built-in.o LD drivers/nvme/host/built-in.o LD drivers/nvme/built-in.o CC drivers/of/base.o CC drivers/of/device.o CC drivers/of/platform.o CC drivers/of/fdt.o CC drivers/of/fdt_address.o CC drivers/of/address.o CC drivers/of/irq.o CC drivers/of/of_reserved_mem.o LD drivers/of/built-in.o LD drivers/platform/built-in.o LD drivers/power/built-in.o LD drivers/pwm/built-in.o CC drivers/rtc/rtc-lib.o LD drivers/rtc/built-in.o LD drivers/soc/bcm/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/soc/built-in.o CC drivers/tty/tty_io.o CC drivers/tty/n_tty.o CC drivers/tty/tty_ioctl.o CC drivers/tty/tty_ldisc.o CC drivers/tty/tty_buffer.o CC drivers/tty/tty_port.o CC drivers/tty/tty_mutex.o CC drivers/tty/tty_ldsem.o CC drivers/tty/pty.o CC drivers/tty/sysrq.o LD drivers/tty/ipwireless/built-in.o CC drivers/tty/serial/serial_core.o CC drivers/tty/serial/l4ser.o CC drivers/tty/serial/l4ser_shm.o LD drivers/tty/serial/built-in.o CC drivers/tty/vt/vt_ioctl.o CC drivers/tty/vt/vc_screen.o CC drivers/tty/vt/selection.o CC drivers/tty/vt/keyboard.o CC drivers/tty/vt/consolemap.o CC drivers/tty/vt/consolemap_deftbl.o CC drivers/tty/vt/vt.o CC drivers/tty/vt/defkeymap.o LD drivers/tty/vt/built-in.o LD drivers/tty/built-in.o LD drivers/video/backlight/built-in.o CC drivers/video/console/dummycon.o CC drivers/video/console/fbcon.o CC drivers/video/console/bitblit.o CC drivers/video/console/softcursor.o LD drivers/video/console/built-in.o CC drivers/video/fbdev/core/fb_cmdline.o CC drivers/video/fbdev/core/fb_notify.o CC drivers/video/fbdev/core/fbmem.o CC drivers/video/fbdev/core/fbmon.o CC drivers/video/fbdev/core/fbcmap.o CC drivers/video/fbdev/core/fbsysfs.o CC drivers/video/fbdev/core/modedb.o CC drivers/video/fbdev/core/fbcvt.o LD drivers/video/fbdev/core/fb.o LD drivers/video/fbdev/core/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/video/fbdev/built-in.o CC drivers/video/logo/logo.o LOGO drivers/video/logo/logo_linux_mono.c CC drivers/video/logo/logo_linux_mono.o LOGO drivers/video/logo/logo_linux_vga16.c CC drivers/video/logo/logo_linux_vga16.o LOGO drivers/video/logo/logo_linux_clut224.c CC drivers/video/logo/logo_linux_clut224.o LD drivers/video/logo/built-in.o LOGO drivers/video/logo/logo_superh_mono.c LOGO drivers/video/logo/clut_vga16.c LOGO drivers/video/logo/logo_blackfin_vga16.c LOGO drivers/video/logo/logo_superh_vga16.c LOGO drivers/video/logo/logo_blackfin_clut224.c LOGO drivers/video/logo/logo_dec_clut224.c LOGO drivers/video/logo/logo_m32r_clut224.c LOGO drivers/video/logo/logo_mac_clut224.c LOGO drivers/video/logo/logo_parisc_clut224.c LOGO drivers/video/logo/logo_sgi_clut224.c LOGO drivers/video/logo/logo_spe_clut224.c LOGO drivers/video/logo/logo_sun_clut224.c LOGO drivers/video/logo/logo_superh_clut224.c LD drivers/video/built-in.o LD drivers/built-in.o LD sound/built-in.o LD firmware/built-in.o CC arch/l4/drivers/vbus/l4vbus.o LD arch/l4/drivers/vbus/built-in.o CC arch/l4/drivers/events.o LD arch/l4/drivers/built-in.o CC net/socket.o LD net/802/built-in.o CC net/core/sock.o CC net/core/request_sock.o CC net/core/skbuff.o CC net/core/datagram.o CC net/core/stream.o CC net/core/scm.o CC net/core/gen_stats.o CC net/core/gen_estimator.o CC net/core/net_namespace.o CC net/core/secure_seq.o CC net/core/flow_dissector.o CC net/core/sysctl_net_core.o CC net/core/dev.o CC net/core/ethtool.o CC net/core/dev_addr_lists.o CC net/core/dst.o CC net/core/netevent.o CC net/core/neighbour.o CC net/core/rtnetlink.o CC net/core/utils.o CC net/core/link_watch.o CC net/core/filter.o CC net/core/sock_diag.o CC net/core/dev_ioctl.o CC net/core/tso.o CC net/core/sock_reuseport.o CC net/core/flow.o CC net/core/net-sysfs.o CC net/core/net-procfs.o LD net/core/built-in.o CC net/ethernet/eth.o LD net/ethernet/built-in.o CC net/ipv4/route.o CC net/ipv4/inetpeer.o CC net/ipv4/protocol.o CC net/ipv4/ip_input.o CC net/ipv4/ip_fragment.o CC net/ipv4/ip_forward.o CC net/ipv4/ip_options.o CC net/ipv4/ip_output.o CC net/ipv4/ip_sockglue.o CC net/ipv4/inet_hashtables.o CC net/ipv4/inet_timewait_sock.o CC net/ipv4/inet_connection_sock.o CC net/ipv4/tcp.o CC net/ipv4/tcp_input.o CC net/ipv4/tcp_output.o CC net/ipv4/tcp_timer.o CC net/ipv4/tcp_ipv4.o CC net/ipv4/tcp_minisocks.o CC net/ipv4/tcp_cong.o CC net/ipv4/tcp_metrics.o CC net/ipv4/tcp_fastopen.o CC net/ipv4/tcp_recovery.o CC net/ipv4/tcp_offload.o CC net/ipv4/datagram.o CC net/ipv4/raw.o CC net/ipv4/udp.o CC net/ipv4/udplite.o CC net/ipv4/udp_offload.o CC net/ipv4/arp.o CC net/ipv4/icmp.o CC net/ipv4/devinet.o CC net/ipv4/af_inet.o CC net/ipv4/igmp.o CC net/ipv4/fib_frontend.o CC net/ipv4/fib_semantics.o CC net/ipv4/fib_trie.o CC net/ipv4/inet_fragment.o CC net/ipv4/ping.o CC net/ipv4/ip_tunnel_core.o CC net/ipv4/gre_offload.o CC net/ipv4/sysctl_net_ipv4.o CC net/ipv4/proc.o CC net/ipv4/xfrm4_mode_beet.o CC net/ipv4/xfrm4_mode_transport.o CC net/ipv4/xfrm4_mode_tunnel.o CC net/ipv4/ipconfig.o CC net/ipv4/inet_diag.o CC net/ipv4/tcp_diag.o CC net/ipv4/tcp_cubic.o CC net/ipv4/xfrm4_policy.o CC net/ipv4/xfrm4_state.o CC net/ipv4/xfrm4_input.o CC net/ipv4/xfrm4_output.o CC net/ipv4/xfrm4_protocol.o LD net/ipv4/built-in.o CC net/ipv6/addrconf_core.o CC net/ipv6/exthdrs_core.o CC net/ipv6/ip6_checksum.o CC net/ipv6/ip6_icmp.o CC net/ipv6/output_core.o CC net/ipv6/protocol.o CC net/ipv6/ip6_offload.o CC net/ipv6/tcpv6_offload.o CC net/ipv6/exthdrs_offload.o LD net/ipv6/built-in.o CC net/netlink/af_netlink.o CC net/netlink/genetlink.o LD net/netlink/built-in.o CC net/packet/af_packet.o LD net/packet/built-in.o CC net/sched/sch_generic.o CC net/sched/sch_mq.o LD net/sched/built-in.o CC net/unix/af_unix.o CC net/unix/garbage.o CC net/unix/sysctl_net_unix.o LD net/unix/unix.o LD net/unix/built-in.o CC net/xfrm/xfrm_policy.o CC net/xfrm/xfrm_state.o CC net/xfrm/xfrm_hash.o CC net/xfrm/xfrm_input.o CC net/xfrm/xfrm_output.o CC net/xfrm/xfrm_sysctl.o CC net/xfrm/xfrm_replay.o LD net/xfrm/built-in.o CC net/sysctl_net.o LD net/built-in.o CC lib/lockref.o CC lib/bcd.o CC lib/div64.o CC lib/sort.o CC lib/parser.o CC lib/halfmd4.o CC lib/debug_locks.o CC lib/random32.o CC lib/bust_spinlocks.o CC lib/kasprintf.o CC lib/bitmap.o CC lib/scatterlist.o CC lib/gcd.o CC lib/lcm.o CC lib/list_sort.o CC lib/uuid.o CC lib/flex_array.o CC lib/iov_iter.o CC lib/clz_ctz.o CC lib/bsearch.o CC lib/find_bit.o CC lib/llist.o CC lib/memweight.o CC lib/kfifo.o CC lib/percpu-refcount.o CC lib/percpu_ida.o CC lib/rhashtable.o CC lib/reciprocal_div.o CC lib/once.o CC lib/string_helpers.o CC lib/hexdump.o CC lib/kstrtox.o CC lib/pci_iomap.o CC lib/iomap_copy.o CC lib/devres.o CC lib/hweight.o CC lib/bitrev.o CC lib/crc16.o HOSTCC lib/gen_crc32table GEN lib/crc32table.h CC lib/crc32.o CC lib/genalloc.o CC lib/fonts/fonts.o CC lib/fonts/font_8x8.o CC lib/fonts/font_8x16.o LD lib/fonts/font.o LD lib/fonts/built-in.o CC lib/lz4/lz4_decompress.o LD lib/lz4/built-in.o CC lib/lzo/lzo1x_decompress_safe.o LD lib/lzo/lzo_decompress.o LD lib/lzo/built-in.o CC lib/xz/xz_dec_syms.o CC lib/xz/xz_dec_stream.o CC lib/xz/xz_dec_lzma2.o CC lib/xz/xz_dec_bcj.o LD lib/xz/xz_dec.o LD lib/xz/built-in.o CC lib/zlib_inflate/inffast.o CC lib/zlib_inflate/inflate.o CC lib/zlib_inflate/infutil.o CC lib/zlib_inflate/inftrees.o CC lib/zlib_inflate/inflate_syms.o LD lib/zlib_inflate/zlib_inflate.o LD lib/zlib_inflate/built-in.o CC lib/swiotlb.o CC lib/iommu-helper.o CC lib/iommu-common.o CC lib/syscall.o CC lib/nlattr.o CC lib/dynamic_queue_limits.o CC lib/net_utils.o LD lib/built-in.o CC lib/argv_split.o CC lib/bug.o CC lib/cmdline.o CC lib/ctype.o CC lib/dec_and_lock.o CC lib/decompress.o CC lib/decompress_bunzip2.o CC lib/decompress_inflate.o CC lib/decompress_unlz4.o CC lib/decompress_unlzma.o CC lib/decompress_unlzo.o CC lib/decompress_unxz.o CC lib/dma-noop.o CC lib/dump_stack.o CC lib/earlycpio.o CC lib/extable.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC lib/fdt_ro.o CC lib/fdt_rw.o CC lib/fdt_strerror.o CC lib/fdt_sw.o CC lib/fdt_wip.o CC lib/flex_proportions.o CC lib/idr.o CC lib/int_sqrt.o CC lib/ioremap.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC lib/klist.o CC lib/kobject.o CC lib/kobject_uevent.o CC lib/md5.o CC lib/nmi_backtrace.o CC lib/nodemask.o CC lib/plist.o CC lib/radix-tree.o CC lib/ratelimit.o CC lib/rbtree.o CC lib/seq_buf.o CC lib/sha1.o CC lib/show_mem.o CC lib/string.o CC lib/timerqueue.o CC lib/vsprintf.o AR lib/lib.a CC arch/l4/lib/arch-arm/../proc.o CC arch/l4/lib/arch-arm/../debugfs.o LD arch/l4/lib/arch-arm/built-in.o AS arch/l4/lib/arch-arm/../../../arm/lib/ashldi3.o AS arch/l4/lib/arch-arm/../../../arm/lib/ashrdi3.o AS arch/l4/lib/arch-arm/../../../arm/lib/backtrace.o AS arch/l4/lib/arch-arm/../../../arm/lib/bswapsdi2.o AS arch/l4/lib/arch-arm/../../../arm/lib/call_with_stack.o AS arch/l4/lib/arch-arm/../../../arm/lib/changebit.o AS arch/l4/lib/arch-arm/../../../arm/lib/clearbit.o AS arch/l4/lib/arch-arm/../../../arm/lib/copy_page.o AS arch/l4/lib/arch-arm/../../../arm/lib/csumipv6.o AS arch/l4/lib/arch-arm/../../../arm/lib/csumpartial.o AS arch/l4/lib/arch-arm/../../../arm/lib/csumpartialcopy.o AS arch/l4/lib/arch-arm/../../../arm/lib/delay-loop.o CC arch/l4/lib/arch-arm/../../../arm/lib/delay.o AS arch/l4/lib/arch-arm/../../../arm/lib/div64.o AS arch/l4/lib/arch-arm/../../../arm/lib/findbit.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-readsb.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-readsl.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-readsw-armv4.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-writesb.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-writesl.o AS arch/l4/lib/arch-arm/../../../arm/lib/io-writesw-armv4.o AS arch/l4/lib/arch-arm/../../../arm/lib/lib1funcs.o AS arch/l4/lib/arch-arm/../../../arm/lib/lshrdi3.o AS arch/l4/lib/arch-arm/../../../arm/lib/memchr.o AS arch/l4/lib/arch-arm/../../../arm/lib/memcpy.o AS arch/l4/lib/arch-arm/../../../arm/lib/memmove.o AS arch/l4/lib/arch-arm/../../../arm/lib/memset.o AS arch/l4/lib/arch-arm/../../../arm/lib/memzero.o AS arch/l4/lib/arch-arm/../../../arm/lib/muldi3.o AS arch/l4/lib/arch-arm/../../../arm/lib/setbit.o AS arch/l4/lib/arch-arm/../../../arm/lib/strchr.o AS arch/l4/lib/arch-arm/../../../arm/lib/strrchr.o AS arch/l4/lib/arch-arm/../../../arm/lib/testchangebit.o AS arch/l4/lib/arch-arm/../../../arm/lib/testclearbit.o AS arch/l4/lib/arch-arm/../../../arm/lib/testsetbit.o AS arch/l4/lib/arch-arm/../../../arm/lib/ucmpdi2.o CC arch/l4/lib/arch-arm/../csumpartialcopyuser.o CC arch/l4/lib/arch-arm/../memcpy_user.o CC arch/l4/lib/arch-arm/../pte.o CC arch/l4/lib/arch-arm/../uaccess.o AR arch/l4/lib/arch-arm/lib.a LD arch/l4/l4lxlib/generic/built-in.o CC arch/l4/l4lxlib/generic/irq_gen.o CC arch/l4/l4lxlib/generic/legacy.o CC arch/l4/l4lxlib/generic/thread_gen.o AR arch/l4/l4lxlib/generic/lib.a LD arch/l4/l4lxlib/l4env/built-in.o CC arch/l4/l4lxlib/l4env/irq_vcpu.o CC arch/l4/l4lxlib/l4env/memory.o CC arch/l4/l4lxlib/l4env/misc.o CC arch/l4/l4lxlib/l4env/task.o CC arch/l4/l4lxlib/l4env/thread.o AR arch/l4/l4lxlib/l4env/lib.a LD virt/lib/built-in.o LD virt/built-in.o LINK vmlinux LD vmlinux.o MODPOST vmlinux.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o drivers/built-in.o: In function `sdhci_at91_probe': /home/daniel/Desktop/l4re-snapshot/src/l4linux/build-arm/../drivers/mmc/host/sdhci-of-at91.c:212: undefined reference to `clk_set_rate' make[1]: *** [vmlinux] Error 1 make[1]: Leaving directory `/home/daniel/Desktop/l4re-snapshot/src/l4linux/build-arm' make: *** [sub-make] Error 2
_______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers