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)
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
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
Hi all,
The board I have in hand is a Beaglebone Black. This board is a TI OMAP architecture. I’m trying to enable the MMC driver for the onboard TI by enabling the L4Linux kernel config option.
* device driver => MMC => TI OMAP High Speed Multimedia Card Interface support
This driver is hidden, in order to enable it I have to select the system architecture to be TI OMAP. However, the L4Linux would allow me to build it, because seems like in order to run on top of L4re the system type has to be L4Linux:
*- ARM system type => L4Linux
If I try to use “allow multiple platform to be selected” the “patch physical to virtual translations at runtime” (CONFIG_ARM_PATCH_PHYS_VIRT) will have to be enabled which cause errors…
Is that means there is no way I can use the MMC driver (I want to use the MMC driver to host real file system)? Also I need to use the onboard Ethernet PHY and Linux network drivers for network access.
Is there any way to allow it? Any help would be appreciated.
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi
On Mon Jul 03, 2017 at 16:40:11 -0500, Daniel (Xiaolong) Wang wrote:
The board I have in hand is a Beaglebone Black. This board is a TI OMAP architecture. I’m trying to enable the MMC driver for the onboard TI by enabling the L4Linux kernel config option.
- device driver => MMC => TI OMAP High Speed Multimedia Card Interface support
This driver is hidden, in order to enable it I have to select the system architecture to be TI OMAP. However, the L4Linux would allow me to build it, because seems like in order to run on top of L4re the system type has to be L4Linux:
*- ARM system type => L4Linux
If I try to use “allow multiple platform to be selected” the “patch physical to virtual translations at runtime” (CONFIG_ARM_PATCH_PHYS_VIRT) will have to be enabled which cause errors…
Is that means there is no way I can use the MMC driver (I want to use the MMC driver to host real file system)? Also I need to use the onboard Ethernet PHY and Linux network drivers for network access.
Is there any way to allow it? Any help would be appreciated.
Just add "|| L4" on the "depends on" line in drivers/mmc/host/Kconfig so that it becomes available for our platform.
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Thank you Adam! I’m struggling on how to write the IO configure file and cfg file for Ned. I’m wondering is there any references of the function definition that I can learn from? For example I’m trying to write an IO configure for BeagleBone Black. I found one for Beagleboard under io/config/plat-beagleboard/hw_device.io. I’m trying to mimic the same way but I’m not exactly sure what’s the Hw.Scm_omap() means and what does its sub-field Resource.regs mean.
Thanks -Dan
On Jul 5, 2017, at 4:53 PM, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
Hi
On Mon Jul 03, 2017 at 16:40:11 -0500, Daniel (Xiaolong) Wang wrote:
The board I have in hand is a Beaglebone Black. This board is a TI OMAP architecture. I’m trying to enable the MMC driver for the onboard TI by enabling the L4Linux kernel config option.
- device driver => MMC => TI OMAP High Speed Multimedia Card Interface support
This driver is hidden, in order to enable it I have to select the system architecture to be TI OMAP. However, the L4Linux would allow me to build it, because seems like in order to run on top of L4re the system type has to be L4Linux:
*- ARM system type => L4Linux
If I try to use “allow multiple platform to be selected” the “patch physical to virtual translations at runtime” (CONFIG_ARM_PATCH_PHYS_VIRT) will have to be enabled which cause errors…
Is that means there is no way I can use the MMC driver (I want to use the MMC driver to host real file system)? Also I need to use the onboard Ethernet PHY and Linux network drivers for network access.
Is there any way to allow it? Any help would be appreciated.
Just add "|| L4" on the "depends on" line in drivers/mmc/host/Kconfig so that it becomes available for our platform.
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 http://l4re.org/doc/io.html <http://l4re.org/doc/io.html 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 mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi all,
I have a question. I just saw in the io/server/src/drivers/gpio directory.There are only two cc files. One is for bcm2835.c another one is for omap.cc. Does that mean if I want to make MMC and Ethernet drivers works in guest Linux on platform other than bcm2835, OMAP3 or OMAP4 I have to modify the driver file and provide support functions for that platform?
Thanks -Dan
On Jul 6, 2017, at 4:45 PM, Daniel (Xiaolong) Wang xiaolongw@mail.usf.edu wrote:
Thank you Adam! I’m struggling on how to write the IO configure file and cfg file for Ned. I’m wondering is there any references of the function definition that I can learn from? For example I’m trying to write an IO configure for BeagleBone Black. I found one for Beagleboard under io/config/plat-beagleboard/hw_device.io. I’m trying to mimic the same way but I’m not exactly sure what’s the Hw.Scm_omap() means and what does its sub-field Resource.regs mean.
Thanks -Dan
On Jul 5, 2017, at 4:53 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> wrote:
Hi
On Mon Jul 03, 2017 at 16:40:11 -0500, Daniel (Xiaolong) Wang wrote:
The board I have in hand is a Beaglebone Black. This board is a TI OMAP architecture. I’m trying to enable the MMC driver for the onboard TI by enabling the L4Linux kernel config option.
- device driver => MMC => TI OMAP High Speed Multimedia Card Interface support
This driver is hidden, in order to enable it I have to select the system architecture to be TI OMAP. However, the L4Linux would allow me to build it, because seems like in order to run on top of L4re the system type has to be L4Linux:
*- ARM system type => L4Linux
If I try to use “allow multiple platform to be selected” the “patch physical to virtual translations at runtime” (CONFIG_ARM_PATCH_PHYS_VIRT) will have to be enabled which cause errors…
Is that means there is no way I can use the MMC driver (I want to use the MMC driver to host real file system)? Also I need to use the onboard Ethernet PHY and Linux network drivers for network access.
Is there any way to allow it? Any help would be appreciated.
Just add "|| L4" on the "depends on" line in drivers/mmc/host/Kconfig so that it becomes available for our platform.
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 http://l4re.org/doc/io.html <http://l4re.org/doc/io.html 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 mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
On Friday, 7. July 2017, 02:19:34 Daniel Wang wrote:
I have a question. I just saw in the io/server/src/drivers/gpio directory.There are only two cc files. One is for bcm2835.c another one is for omap.cc. Does that mean if I want to make MMC and Ethernet drivers works in guest Linux on platform other than bcm2835, OMAP3 or OMAP4 I have to modify the driver file and provide support functions for that platform?
Therse GPIO drivers in io provide a means to pass different GPIO pins to different clients, e.g. Linuxes. It's a way to moderate access to a GPIO controller from multiple clients.
As far as I understand, you want to drive MMC and ethernet in one L4Linux. So you just have to pass the proper devices (MMIO regions and interrupts) to Linux. As Adam pointed out, you need to tweak Kconfig files to allow you to select the proper drivers. Note however that your device's drivers are most likely not sufficient to finally get the devices going. These drivers most likely need other infrastructure like clock devices and some power management. You need to find a way to either also pass these to Linux, or build a separate clock/pm server that only passes the necessary clock gates and power lines to Linux. Which also means you need to create a set of new drivers in Linux.
If you are really lucky you might be able to patch out the clock/pm calls in the Linux drivers and get a first working version. But no guarantees on that.
Hope that helps,
- Christian
Thank you so much CHristian. Sorry to bother you again. One more thing that is not clear to me hope you can give me some advice. For the the BeagleBone Black board I’m using now it seems the eMMC is connected through GPIO pins. I’m not sure how to map the MMIO regions and interrupts (https://github.com/derekmolloy/boneDeviceTree/blob/master/DTSource3.8.12/am3... https://github.com/derekmolloy/boneDeviceTree/blob/master/DTSource3.8.12/am33xx.dtsi)
For example this is the MMC1 and MMC2 I saw on the device tree:
mmc1: mmc@48060000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; ti,needs-special-hs-handling; dmas = <&edma 24 &edma 25>; dma-names = "tx", "rx"; status = "disabled"; };
mmc2: mmc@481d8000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc2"; ti,needs-special-reset; ti,needs-special-hs-handling; dmas = <&edma 2 &edma 3>; dma-names = "tx", "rx"; status = "disabled"; };
mmc3: mmc@47810000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc3"; ti,needs-special-reset; ti,needs-special-hs-handling; status = "disabled"; }; Is 48060000 the beginning of MMIO region? How about the size?
Second for the I2C I saw this: i2c0: i2c@44e0b000 { compatible = "ti,omap4-i2c"; #address-cells = <1>; #size-cells = <0>; ti,hwmods = "i2c1"; /* TODO: Fix hwmod */ reg = <0x44e0b000 0x1000>; interrupts = <70>; status = "disabled"; }; Does it mean the MMIO region is [0x44e0b000, 0x44e0c000]?
I’m sorry for asking so dumb many questions.
Thanks -Dan
On Jul 7, 2017, at 7:24 AM, Christian Ludwig christian_ludwig@genua.de wrote:
Hi,
On Friday, 7. July 2017, 02:19:34 Daniel Wang wrote:
I have a question. I just saw in the io/server/src/drivers/gpio directory.There are only two cc files. One is for bcm2835.c another one is for omap.cc. Does that mean if I want to make MMC and Ethernet drivers works in guest Linux on platform other than bcm2835, OMAP3 or OMAP4 I have to modify the driver file and provide support functions for that platform?
Therse GPIO drivers in io provide a means to pass different GPIO pins to different clients, e.g. Linuxes. It's a way to moderate access to a GPIO controller from multiple clients.
As far as I understand, you want to drive MMC and ethernet in one L4Linux. So you just have to pass the proper devices (MMIO regions and interrupts) to Linux. As Adam pointed out, you need to tweak Kconfig files to allow you to select the proper drivers. Note however that your device's drivers are most likely not sufficient to finally get the devices going. These drivers most likely need other infrastructure like clock devices and some power management. You need to find a way to either also pass these to Linux, or build a separate clock/pm server that only passes the necessary clock gates and power lines to Linux. Which also means you need to create a set of new drivers in Linux.
If you are really lucky you might be able to patch out the clock/pm calls in the Linux drivers and get a first working version. But no guarantees on that.
Hope that helps,
- Christian
-- genua GmbH Domagkstrasse 7, 85551 Kirchheim bei Muenchen tel +49 89 991950-0, fax -999, www.genua.de Geschaeftsfuehrer: Dr. Magnus Harlander, Bernhard Schneck, Mark Tesch. Amtsgericht Muenchen HRB 98238 genua ist ein Unternehmen der Bundesdruckerei-Gruppe.
Hi,
On 07/07/2017 07:02 PM, Daniel (Xiaolong) Wang wrote:
Thank you so much CHristian. Sorry to bother you again. One more thing that is not clear to me hope you can give me some advice. For the the BeagleBone Black board I’m using now it seems the eMMC is connected through GPIO pins. I’m not sure how to map the MMIO regions and interrupts (https://github.com/derekmolloy/boneDeviceTree/blob/master/DTSource3.8.12/am3...)
For example this is the MMC1 and MMC2 I saw on the device tree:
You should have a look into the AM33xx TRM to determine the properties of the MMC controller.
*/mmc1: mmc@48060000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; ti,needs-special-hs-handling; dmas = <&edma 24 &edma 25>; dma-names = "tx", "rx"; status = "disabled"; }; /*
/*mmc2: mmc@481d8000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc2"; ti,needs-special-reset; ti,needs-special-hs-handling; dmas = <&edma 2 &edma 3>; dma-names = "tx", "rx"; status = "disabled"; }; mmc3: mmc@47810000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc3"; ti,needs-special-reset; ti,needs-special-hs-handling; status = "disabled"; };* /
Is 48060000 the beginning of MMIO region? How about the size?
The kernel you are looking at is probably to old. A more recent version of the device tree looks like this:
mmc1: mmc@48060000 { compatible = "ti,omap4-hsmmc"; ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; ti,needs-special-hs-handling; dmas = <&edma_xbar 24 0 0 &edma_xbar 25 0 0>; dma-names = "tx", "rx"; interrupts = <64>; interrupt-parent = <&intc>; reg = <0x48060000 0x1000>; status = "disabled"; }
Here you can determine the MMIO region from the 'reg' property. For the IRQ number you need to work your way up through the interrupt parent node to get the correct number. You can also see that you need to pass in the DMA engine device.
Second for the I2C I saw this:
*/i2c0: i2c@44e0b000 { compatible = "ti,omap4-i2c"; #address-cells = <1>; #size-cells = <0>; ti,hwmods = "i2c1"; /* TODO: Fix hwmod */ reg = <0x44e0b000 0x1000>; interrupts = <70>; status = "disabled"; };/*
Does it mean the MMIO region is [0x44e0b000, 0x44e0c000]?
The end of the MMIO region is 0x44e0bfff.
Regards, Matthias.
I’m sorry for asking so dumb many questions.
Thanks -Dan
On Jul 7, 2017, at 7:24 AM, Christian Ludwig <christian_ludwig@genua.de mailto:christian_ludwig@genua.de> wrote:
Hi,
On Friday, 7. July 2017, 02:19:34 Daniel Wang wrote:
I have a question. I just saw in the io/server/src/drivers/gpio directory.There are only two cc files. One is for bcm2835.c another one is for omap.cc http://omap.cc. Does that mean if I want to make MMC and Ethernet drivers works in guest Linux on platform other than bcm2835, OMAP3 or OMAP4 I have to modify the driver file and provide support functions for that platform?
Therse GPIO drivers in io provide a means to pass different GPIO pins to different clients, e.g. Linuxes. It's a way to moderate access to a GPIO controller from multiple clients.
As far as I understand, you want to drive MMC and ethernet in one L4Linux. So you just have to pass the proper devices (MMIO regions and interrupts) to Linux. As Adam pointed out, you need to tweak Kconfig files to allow you to select the proper drivers. Note however that your device's drivers are most likely not sufficient to finally get the devices going. These drivers most likely need other infrastructure like clock devices and some power management. You need to find a way to either also pass these to Linux, or build a separate clock/pm server that only passes the necessary clock gates and power lines to Linux. Which also means you need to create a set of new drivers in Linux.
If you are really lucky you might be able to patch out the clock/pm calls in the Linux drivers and get a first working version. But no guarantees on that.
Hope that helps,
- Christian
-- genua GmbH Domagkstrasse 7, 85551 Kirchheim bei Muenchen tel +49 89 991950-0, fax -999, www.genua.de http://www.genua.de Geschaeftsfuehrer: Dr. Magnus Harlander, Bernhard Schneck, Mark Tesch. Amtsgericht Muenchen HRB 98238 genua ist ein Unternehmen der Bundesdruckerei-Gruppe.
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
On 07/06/2017 11:45 PM, Daniel (Xiaolong) Wang wrote:
Thank you Adam! I’m struggling on how to write the IO configure file and cfg file for Ned. I’m wondering is there any references of the function definition that I can learn from? For example I’m trying to write an IO configure for BeagleBone Black. I found one for Beagleboard under io/config/plat-beagleboard/hw_device.io. I’m trying to mimic the same way but I’m not exactly sure what’s the Hw.Scm_omap() means and what does its sub-field Resource.regs mean.
The Beagleboard hardware configuration is a good starting point. The SCM is a special IP core in OMAP SoCs that is needed for the pad control logic. For your current use case you most likely don't need it.
Io's hardware configurations are written in Lua. Each hardware device contains a table named 'Resource'. Resource.regs = FOO adds an entry named 'regs' with the value FOO into the table.
Best, Matthias.
Thanks -Dan
On Jul 5, 2017, at 4:53 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> wrote:
Hi
On Mon Jul 03, 2017 at 16:40:11 -0500, Daniel (Xiaolong) Wang wrote:
The board I have in hand is a Beaglebone Black. This board is a TI OMAP architecture. I’m trying to enable the MMC driver for the onboard TI by enabling the L4Linux kernel config option.
- device driver => MMC => TI OMAP High Speed Multimedia Card
Interface support
This driver is hidden, in order to enable it I have to select the system architecture to be TI OMAP. However, the L4Linux would allow me to build it, because seems like in order to run on top of L4re the system type has to be L4Linux:
*- ARM system type => L4Linux
If I try to use “allow multiple platform to be selected” the “patch physical to virtual translations at runtime” (CONFIG_ARM_PATCH_PHYS_VIRT) will have to be enabled which cause errors…
Is that means there is no way I can use the MMC driver (I want to use the MMC driver to host real file system)? Also I need to use the onboard Ethernet PHY and Linux network drivers for network access.
Is there any way to allow it? Any help would be appreciated.
Just add "|| L4" on the "depends on" line in drivers/mmc/host/Kconfig so that it becomes available for our platform.
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d... https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d... https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end); edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end); mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64);
-- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28);
-- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29);
-- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end);
end)
********* l4linux.io ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Hi Adam,
I setup CONFIG_L4_SERVER, I checked using nm the result is:
00000800 W l4x_srv_init 00000804 t l4x_srv_init_resolver
I also tested without the CONFIG_L4_SERVER, it works with out CONFIG_L4_SERVER. However I could not see the the MMC under /dev folder or under /sys/device. Does that mean the IO configuration file I specified does not work?
The IO stil shows “no 'iommu' capability found use CPU-phys for DMA” and a warning “warning: could not register control interface at cap 'platform_ctl'"
Attachment is the newest configuration file: ************ l4linux.cfg ************ local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvv rom/l4linux.devs rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
************ l4linux.devs ************ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
Io.hw_add_devices(function() prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); end)
************ l4linux.io ************ local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:mmc1); -- mmc2 = wrap(hw:mmc2); -- mmc3 = wrap(hw:mmc3); i2c0 = wrap(hw:i2c0); -- i2c1 = wrap(hw:i2c1); })
************ Booting info ************ Starting kernel ...
L4 Bootstrapper Build: #47 Fri Jul 7 19:33:01 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 81978000-819a149f } -> { 81a68000-81a9149f } [169120] moving module 01 { 81966000-8197733b } -> { 81a56000-81a6733b } [70460] moving module 00 { 818e4000-81965017 } -> { 819d4000-81a55017 } [528408] moving module 10 { 815e4000-818e3fff } -> { 816d4000-819d3fff } [3145728] moving module 09 { 811fa000-815e347b } -> { 812ea000-816d347b } [4101244] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-81012a0a } -> { 81102000-81102a0a } [2571] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101032d } -> { 81100000-8110032d } [814] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 819d3fff] { 8d4000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819d3fff] [0:819d4000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235892 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110032e] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io BOOTFS: [81102000-81102a0b] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-816d347c] [C:111000] vmlinuz BOOTFS: [816d4000-819d4000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io' IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0245743c phys=02000000 ephys=0245743c f_sz=003ce3d5 memsz=0045743c PH 1 offs=003889a4 flags=r-x PH-type=0x4 virt=023809a4 evirt=023809c8 phys=023809a4 ephys=023809c8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=9 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (8 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 023809c8 [3586kB] RO-Data: 022a5000 - 02368000 [780kB] Data: 023a6000 - 023c9540 [141kB] Init: 02381000 - 023a6000 [148kB] BSS: 023ce3d5 - 0245743c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000e - 0000000e Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023a7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2457fff [4448 KiB] section-with-init(-data): Phys: 0x80176000 to 0x805cdfff, [4448 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:023effa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: L4 Ignoring unrecognised tag 0x00000000 Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 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: 129696K/137220K available (2806K kernel code, 141K rwdata, 780K rodata, 148K init, 548K bss, 7524K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x023809c8 (3587 kB) .init : 0x02381000 - 0x023a6000 ( 148 kB) .data : 0x023a6000 - 0x023c9540 ( 142 kB) .bss : 0x023ce3d5 - 0x0245743c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) 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) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 clocksource: Switched to clocksource l4kipclk NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (junk in compressed archive); looks like an initrd INITRD: Freeing memory. l4x: Checks passed. NetWinder Floating Point Emulator V0.97 (double precision) futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=29 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon l4ser_shm: L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 L4IRQ: set irq type of 211 to 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 3072KiB [1 disk] into ram disk... done. EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem EXT4-fs (ram0): mounted filesystem without journal. Opts: (null) VFS: Mounted root (ext2 filesystem) readonly on device 1:0. Freeing unused kernel memory: 148K (02381000 - 023a6000) This architecture does not have kernel memory protection.
Please press Enter to activate this console.
Thanks -Dan
On Jul 7, 2017, at 6:08 PM, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d... https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi<https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d... https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi>) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io http://l4linux.io/ ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io http://l4linux.io/ BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io http://l4linux.io/' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 http://l4re.org/doc/io.html <http://l4re.org/doc/io.html 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 mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
On 07/08/2017 01:41 AM, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I setup CONFIG_L4_SERVER, I checked using nm the result is:
*00000800 W l4x_srv_init* *00000804 t l4x_srv_init_resolver*
I also tested without the CONFIG_L4_SERVER, it works with out CONFIG_L4_SERVER. However I could not see the the MMC under /dev folder or under /sys/device. Does that mean the IO configuration file I specified does not work?
The setup looks ok. In io's log output you can see that e.g. the edma and the mmc1 device both have a client. You can increase io's log verboseness by adding more (up to seven) '-v' switches. Eventually you will get the vbus configuration printed.
The reason you don't see any MMC device in /dev is that L4Linux does not know about the physical devices (yet). You have to pass in a device tree (FDT) using the 'l4x_dtb' kernel command line option e.g.
l4x_dtb=rom/your_device_tree.dtb
Don't forget to add the device tree to your entry in the modules.list file. Also make sure to enable CONFIG_USE_OF in your L4Linux configuration.
Best, Matthias.
The IO stil shows “no 'iommu' capability found use CPU-phys for DMA” and a warning “warning: could not register control interface at cap 'platform_ctl'"
Attachment is the newest configuration file: ************* l4linux.cfg ************* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvv rom/l4linux.devs rom/l4linux.io http://l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
************* l4linux.devs ************* local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
Io.hw_add_devices(function() prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end); i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
end)
************* l4linux.io http://l4linux.io ************* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:mmc1); -- mmc2 = wrap(hw:mmc2); -- mmc3 = wrap(hw:mmc3); i2c0 = wrap(hw:i2c0); -- i2c1 = wrap(hw:i2c1); })
************* Booting info ************* Starting kernel ...
L4 Bootstrapper Build: #47 Fri Jul 7 19:33:01 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 81978000-819a149f } -> { 81a68000-81a9149f } [169120] moving module 01 { 81966000-8197733b } -> { 81a56000-81a6733b } [70460] moving module 00 { 818e4000-81965017 } -> { 819d4000-81a55017 } [528408] moving module 10 { 815e4000-818e3fff } -> { 816d4000-819d3fff } [3145728] moving module 09 { 811fa000-815e347b } -> { 812ea000-816d347b } [4101244] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-81012a0a } -> { 81102000-81102a0a } [2571] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101032d } -> { 81100000-8110032d } [814] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 819d3fff] { 8d4000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819d3fff] [0:819d4000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235892 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110032e] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io BOOTFS: [81102000-81102a0b] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-816d347c] [C:111000] vmlinuz BOOTFS: [816d4000-819d4000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' *IO | Io service* *IO | Verboseness level: 4* *IO | unused physical memory space:* *IO | [00000000000000-0000007fffffff]* *IO | [00000090000000-000000ffffffff]* *IO | no 'iommu' capability found use CPU-phys for DMA* *IO | Loading: config 'rom/l4linux.devs'* *IO | warning: inconsistent fixed resource @ device: /System Bus/* *IO | : hid=MMC1* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Loading: config 'rom/l4linux.io http://l4linux.io'* *IO | Real Hardware -----------------------------------* *IO | System Bus: hid=* *IO | Resources: ==== start ====* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | mmc1: hid=MMC1* *IO | Clients: ===== start ====* *IO | mmc1: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1)* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | prcm: hid=* *IO | Clients: ===== start ====* *IO | prcm: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2)* *IO | Resources: ===== end =====* *IO | edma: hid=EDMA* *IO | Clients: ===== start ====* *IO | edma: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2)* *IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | i2c0: hid=omap4-i2c0* *IO | Clients: ===== start ====* *IO | i2c0: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | warning: could not register control interface at cap 'platform_ctl'* *IO | Ready. Waiting for request.* PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0245743c phys=02000000 ephys=0245743c f_sz=003ce3d5 memsz=0045743c PH 1 offs=003889a4 flags=r-x PH-type=0x4 virt=023809a4 evirt=023809c8 phys=023809a4 ephys=023809c8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=9 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (8 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 023809c8 [3586kB] RO-Data: 022a5000 - 02368000 [780kB] Data: 023a6000 - 023c9540 [141kB] Init: 02381000 - 023a6000 [148kB] BSS: 023ce3d5 - 0245743c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000e - 0000000e Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023a7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2457fff [4448 KiB] section-with-init(-data): Phys: 0x80176000 to 0x805cdfff, [4448 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:023effa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: L4 Ignoring unrecognised tag 0x00000000 Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 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: 129696K/137220K available (2806K kernel code, 141K rwdata, 780K rodata, 148K init, 548K bss, 7524K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x023809c8 (3587 kB) .init : 0x02381000 - 0x023a6000 ( 148 kB) .data : 0x023a6000 - 0x023c9540 ( 142 kB) .bss : 0x023ce3d5 - 0x0245743c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) 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) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 clocksource: Switched to clocksource l4kipclk NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (junk in compressed archive); looks like an initrd INITRD: Freeing memory. l4x: Checks passed. NetWinder Floating Point Emulator V0.97 (double precision) futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=29 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon l4ser_shm: L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 L4IRQ: set irq type of 211 to 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 3072KiB [1 disk] into ram disk... done. EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem EXT4-fs (ram0): mounted filesystem without journal. Opts: (null) VFS: Mounted root (ext2 filesystem) readonly on device 1:0. Freeing unused kernel memory: 148K (02381000 - 023a6000) This architecture does not have kernel memory protection.
Please press Enter to activate this console.
Thanks -Dan
On Jul 7, 2017, at 6:08 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> wrote:
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io http://l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d...https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io http://l4linux.io/ ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io http://l4linux.io/ BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io http://l4linux.io/' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 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 mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Many thanks, Matthias for your hint. Sorry for the delay I was traveling last week. Unfortunately I still have trouble.
As you suggested I turned on the CONFIG_USE_OF in L4Linux configuration. I downloaded the am3335x-black.dtb device tree from this link https://github.com/dominicgs/BeagleDancer/tree/master/devicetree https://github.com/dominicgs/BeagleDancer/tree/master/devicetree, and updated my devs file as follow:
+++++++++++++ l4linux.devs +++++++++++++ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regA = Res.mmio(0x49000000, 0x4900ffff); Resource.regB = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); end)
However when I try to boot the L4linux it shows me "error: failed to get physical address for 2000000.” and hangs… Is there anything that I did wrong? I also tried to remove Property.flags = Io.Hw_device_DF_dma_supported; setup then it result in a different error:
"IO | vbus l4linux does not support a global DMA domain error: could not assign DMA space to vBUS: -2 DMA will not work!"
Thanks -Dan
FYI
+++++++++++++ terminal log with Property.flags = Io.Hw_device_DF_dma_supported;+++++++++++++
Starting kernel ...
L4 Bootstrapper Build: #51 Sat Jul 15 18:34:35 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 12 modules behind 81100000 moving module 02 { 8198e000-819b749f } -> { 81a7e000-81aa749f } [169120] moving module 01 { 8197c000-8198d33b } -> { 81a6c000-81a7d33b } [70460] moving module 00 { 818fa000-8197b017 } -> { 819ea000-81a6b017 } [528408] moving module 11 { 815fa000-818f9fff } -> { 816ea000-819e9fff } [3145728] moving module 10 { 81200000-815f947b } -> { 812f0000-816e947b } [4166780] moving module 09 { 8108d000-811ff8c7 } -> { 8117d000-812ef8c7 } [1517768] moving module 08 { 81033000-8108c6ab } -> { 81123000-8117c6ab } [366252] moving module 07 { 81019000-81032463 } -> { 81109000-81122463 } [103524] moving module 06 { 81013000-81018bac } -> { 81103000-81108bac } [23469] moving module 05 { 81012000-81012a0d } -> { 81102000-81102a0d } [2574] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101034c } -> { 81100000-8110034c } [845] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 800001a7] { 1a8} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5c3] { f5c4} Boot bootstrap [ 81100000, 819e9fff] { 8ea000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819e9fff] [0:819ea000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235804 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110034d] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io BOOTFS: [81102000-81102a0e] [C:109000] l4linux.devs BOOTFS: [81103000-81108bad] [C:10b000] device-tree.dtb BOOTFS: [81109000-81122464] [C:10d000] l4re BOOTFS: [81123000-8117c6ac] [C:10f000] ned BOOTFS: [8117d000-812ef8c8] [C:111000] io BOOTFS: [812f0000-816e947c] [C:113000] vmlinuz BOOTFS: [816ea000-819ea000] [C:115000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 7 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io' IO | Add IRQ resources to vbus: IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | l4linux: [N12_GLOBAL__N_112Virtual_sbusE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | L4ICU: [N2Vi6Sw_icuE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | edma: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0246763c phys=02000000 ephys=0246763c f_sz=003de3d5 memsz=0046763c PH 1 offs=00396294 flags=r-x PH-type=0x4 virt=0238e294 evirt=0238e2b8 phys=0238e294 ephys=0238e2b8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=10 argv=0xafff4f7c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #5 Sat Jul 15 17:28:20 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (9 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 l4x_dtb=rom/device-tree.dtb ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0238e2b8 [3640kB] RO-Data: 022ad000 - 02375000 [800kB] Data: 023b6000 - 023d9680 [141kB] Init: 0238f000 - 023b6000 [156kB] BSS: 023de3d5 - 0246763c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000d - 0000000d MEM: 49000000 - 4900ffff IRQ: 0000000e - 0000000e IRQ: 0000000c - 0000000c Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. IO | DMA: use CPU-phys addresses for DMA l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023b7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2467fff [4512 KiB] section-with-init(-data): Phys: 0x80177000 to 0x805defff, [4512 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000.
On Jul 9, 2017, at 11:17 AM, Matthias Lange matthias.lange@kernkonzept.com wrote:
Hi,
On 07/08/2017 01:41 AM, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I setup CONFIG_L4_SERVER, I checked using nm the result is:
*00000800 W l4x_srv_init* *00000804 t l4x_srv_init_resolver*
I also tested without the CONFIG_L4_SERVER, it works with out CONFIG_L4_SERVER. However I could not see the the MMC under /dev folder or under /sys/device. Does that mean the IO configuration file I specified does not work?
The setup looks ok. In io's log output you can see that e.g. the edma and the mmc1 device both have a client. You can increase io's log verboseness by adding more (up to seven) '-v' switches. Eventually you will get the vbus configuration printed.
The reason you don't see any MMC device in /dev is that L4Linux does not know about the physical devices (yet). You have to pass in a device tree (FDT) using the 'l4x_dtb' kernel command line option e.g.
l4x_dtb=rom/your_device_tree.dtb
Don't forget to add the device tree to your entry in the modules.list file. Also make sure to enable CONFIG_USE_OF in your L4Linux configuration.
Best, Matthias.
The IO stil shows “no 'iommu' capability found use CPU-phys for DMA” and a warning “warning: could not register control interface at cap 'platform_ctl'"
Attachment is the newest configuration file: ************* l4linux.cfg ************* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvv rom/l4linux.devs rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
************* l4linux.devs ************* local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
Io.hw_add_devices(function() prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); end)
************* l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> ************* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:mmc1); -- mmc2 = wrap(hw:mmc2); -- mmc3 = wrap(hw:mmc3); i2c0 = wrap(hw:i2c0); -- i2c1 = wrap(hw:i2c1); })
************* Booting info ************* Starting kernel ...
L4 Bootstrapper Build: #47 Fri Jul 7 19:33:01 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 81978000-819a149f } -> { 81a68000-81a9149f } [169120] moving module 01 { 81966000-8197733b } -> { 81a56000-81a6733b } [70460] moving module 00 { 818e4000-81965017 } -> { 819d4000-81a55017 } [528408] moving module 10 { 815e4000-818e3fff } -> { 816d4000-819d3fff } [3145728] moving module 09 { 811fa000-815e347b } -> { 812ea000-816d347b } [4101244] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-81012a0a } -> { 81102000-81102a0a } [2571] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101032d } -> { 81100000-8110032d } [814] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 819d3fff] { 8d4000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819d3fff] [0:819d4000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235892 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110032e] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> BOOTFS: [81102000-81102a0b] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-816d347c] [C:111000] vmlinuz BOOTFS: [816d4000-819d4000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' *IO | Io service* *IO | Verboseness level: 4* *IO | unused physical memory space:* *IO | [00000000000000-0000007fffffff]* *IO | [00000090000000-000000ffffffff]* *IO | no 'iommu' capability found use CPU-phys for DMA* *IO | Loading: config 'rom/l4linux.devs'* *IO | warning: inconsistent fixed resource @ device: /System Bus/* *IO | : hid=MMC1* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>'* *IO | Real Hardware -----------------------------------* *IO | System Bus: hid=* *IO | Resources: ==== start ====* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | mmc1: hid=MMC1* *IO | Clients: ===== start ====* *IO | mmc1: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1)* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | prcm: hid=* *IO | Clients: ===== start ====* *IO | prcm: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2)* *IO | Resources: ===== end =====* *IO | edma: hid=EDMA* *IO | Clients: ===== start ====* *IO | edma: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2)* *IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | i2c0: hid=omap4-i2c0* *IO | Clients: ===== start ====* *IO | i2c0: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | warning: could not register control interface at cap 'platform_ctl'* *IO | Ready. Waiting for request.* PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0245743c phys=02000000 ephys=0245743c f_sz=003ce3d5 memsz=0045743c PH 1 offs=003889a4 flags=r-x PH-type=0x4 virt=023809a4 evirt=023809c8 phys=023809a4 ephys=023809c8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=9 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (8 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 023809c8 [3586kB] RO-Data: 022a5000 - 02368000 [780kB] Data: 023a6000 - 023c9540 [141kB] Init: 02381000 - 023a6000 [148kB] BSS: 023ce3d5 - 0245743c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000e - 0000000e Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023a7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2457fff [4448 KiB] section-with-init(-data): Phys: 0x80176000 to 0x805cdfff, [4448 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:023effa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: L4 Ignoring unrecognised tag 0x00000000 Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 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: 129696K/137220K available (2806K kernel code, 141K rwdata, 780K rodata, 148K init, 548K bss, 7524K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x023809c8 (3587 kB) .init : 0x02381000 - 0x023a6000 ( 148 kB) .data : 0x023a6000 - 0x023c9540 ( 142 kB) .bss : 0x023ce3d5 - 0x0245743c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) 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) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 clocksource: Switched to clocksource l4kipclk NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (junk in compressed archive); looks like an initrd INITRD: Freeing memory. l4x: Checks passed. NetWinder Floating Point Emulator V0.97 (double precision) futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=29 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon l4ser_shm: L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 L4IRQ: set irq type of 211 to 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 3072KiB [1 disk] into ram disk... done. EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem EXT4-fs (ram0): mounted filesystem without journal. Opts: (null) VFS: Mounted root (ext2 filesystem) readonly on device 1:0. Freeing unused kernel memory: 148K (02381000 - 023a6000) This architecture does not have kernel memory protection.
Please press Enter to activate this console.
Thanks -Dan
On Jul 7, 2017, at 6:08 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de>> wrote:
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d...https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3Chttps://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3E) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/>' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com <mailto:matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com>> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 http://l4re.org/doc/io.html <http://l4re.org/doc/io.html 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 mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Matthias Lange, matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com, +49-351-41 888 614
Kernkonzept GmbH. Sitz: Dresden. Amtsgericht Dresden, HRB 31129. Geschäftsführer: Dr.-Ing. Michael Hohmuth
Hi all,
I’m sorry to bother again on the same topic. Many thanks to Matthias and Adam, with their help I was able to make some progress on configuring the BeagleBone Black MMC driver for L4linux. But I still have problem to boot the L4linux. Here is where I am so far. I’m very frustrated now any hints and advice would be very appreciated.
Following Adam and Matthias’s suggestions I found out: 1. I need to enable TI DMA driver and TI MMC driver , so I updated Kconfig and compiled the kernel DMA engine support as well as TI MMC driver. 2. a FDT also need to be passed to L4Linux kernel, so based on beagleBoard Linux repository (https://github.com/beagleboard/linux https://github.com/beagleboard/linux) I modified the simple.dts [src/l4linux/arch/l4/boot/dts/simple.dts] (as attached)
Everything looks fine, I was able to see the l4linux scan device and pick up the FDT (as shown ”Machine model: L4Linux (DT)”) and preallocate DMA (“DMA: preallocated 256 KiB pool for atomic coherent allocations”). However the booting process stoped right after printing the following:
DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 IO | new iomem region: p=49000000 v=400000 s=400000 (bmb=0x2b138) IO | map mem: p=49000000 v=400000 s=10000: done(0) __l4x_ioremap: Mapping physaddr 49000000 [0x10000 Bytes, 49000000+010000] to 00302000+000000
The following are my .devs, .io, cfg files.
+++++++ l4linux.devs +++++++ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
scrm = Hw.Device(function() compatible = {"ti,am3-scrm"}; Resource.regs = Res.mmio(0x44e10000, 0x44e11fff);
-- pinmux = Hw.Device(function() -- compatible = {"pinctrl-single"}; -- Resource.regs = Res.mmio(0x800, 0xa37); -- end);
-- edma_xbar = Hw.Device(function() -- compatible = {"ti,am335x-edma-crossbar"}; -- Resource.regs = Res.mmio(0xf90, 0xfcf); -- end);
end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3-tpcc"}; Resource.regA = Res.mmio(0x49000000, 0x4900ffff); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
tptc0 = Hw.Device(function() Property.hid = "EDMA_TPTC0"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49800000, 0x498fffff); Resource.irq = Res.irq(112); end);
tptc1 = Hw.Device(function() Property.hid = "EDMA_TPTC1"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49900000, 0x499fffff); Resource.irq = Res.irq(113); end);
tptc2 = Hw.Device(function() Property.hid = "EDMA_TPTC2"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49a00000, 0x49afffff); Resource.irq = Res.irq(114); end);
gpio0 = Hw.Device(function() Property.hid = "GPIO0"; compatible = {"ti,omap4-gpio"}; Resource.reg = Res.mmio(0x44e07000, 0x44e07fff); Resource.irq = Res.irq(96); end);
emif = Hw.Device(function() Property.hid = "EMIF"; compatible = {"ti,emif-am3352"}; Resource.reg = Res.mmio(0x4C000000, 0x4C000fff); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); Property.flags = Io.Hw_device_DF_dma_supported; end);
ocmcram = Hw.Device(function() compatible = {"mmio-sram"}; Resource.regs = Res.mmio(0x40300000, 0x40301fff); end); end)
+++++++ l4linux.io +++++++ local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { intc = wrap(hw.intc);
prcm = wrap(hw:match("ti,am3-prcm")); srcm = wrap(hw.scrm); -- srcm_pinmux = wrap(hw.scrm.pinmux); -- srcm_edma_xbar = wrap(hw.scrm.edma_xbar);
edma = wrap(hw.edma); tptc0 = wrap(hw.tptc0); tptc1 = wrap(hw.tptc1); tptc2 = wrap(hw.tptc2);
emif = wrap(hw.emif);
mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2);
gpio0 = wrap(hw.gpio0); ocmcram = wrap(hw.ocmcram); })
+++++++ l4linux.cfg +++++++ local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvvvvv rom/l4linux.devs rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd rw root=1:0 l4x_dtb=rom/l4-device-tree.dtb ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
+++++++ terminal log +++++++
Starting kernel ...
L4 Bootstrapper Build: #78 Mon Jul 17 16:51:38 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 12 modules behind 81100000 moving module 02 { 81991000-819ba49f } -> { 81a81000-81aaa49f } [169120] moving module 01 { 8197f000-8199033b } -> { 81a6f000-81a8033b } [70460] moving module 00 { 818fd000-8197e017 } -> { 819ed000-81a6e017 } [528408] moving module 11 { 815fd000-818fcfff } -> { 816ed000-819ecfff } [3145728] moving module 10 { 811fb000-815fc47b } -> { 812eb000-816ec47b } [4199548] moving module 09 { 81088000-811fa8c7 } -> { 81178000-812ea8c7 } [1517768] moving module 08 { 8102e000-810876ab } -> { 8111e000-811776ab } [366252] moving module 07 { 81014000-8102d463 } -> { 81104000-8111d463 } [103524] moving module 06 { 81013000-81013ff4 } -> { 81103000-81103ff4 } [4085] moving module 05 { 81012000-81012e7a } -> { 81102000-81102e7a } [3707] moving module 04 { 81011000-8101135b } -> { 81101000-8110135b } [860] moving module 03 { 81010000-81010324 } -> { 81100000-81100324 } [805] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 800001ab] { 1ac} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5c3] { f5c4} Boot bootstrap [ 81100000, 819ecfff] { 8ed000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819ecfff] [0:819ed000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235792 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100325] [C:105000] l4linux.cfg BOOTFS: [81101000-8110135c] [C:107000] l4linux.io BOOTFS: [81102000-81102e7b] [C:109000] l4linux.devs BOOTFS: [81103000-81103ff5] [C:10b000] l4-device-tree.dtb BOOTFS: [81104000-8111d464] [C:10d000] l4re BOOTFS: [8111e000-811776ac] [C:10f000] ned BOOTFS: [81178000-812ea8c8] [C:111000] io BOOTFS: [812eb000-816ec47c] [C:113000] vmlinuz BOOTFS: [816ed000-819ed000] [C:115000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 7 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC2 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io' IO | Add IRQ resources to vbus: IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | l4linux: [N12_GLOBAL__N_112Virtual_sbusE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | L4ICU: [N2Vi6Sw_icuE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | gpio0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000044e07000-00000044e07fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | ocmcram: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000040300000-00000040301fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | mmc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc2: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049a00000-00000049afffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | emif: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [0000004c000000-0000004c000fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | mmc2: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | edma: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | srcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e10000-00000044e11fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | tptc0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049800000-000000498fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | tptc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049900000-000000499fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | prcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | gpio0: hid=GPIO0 IO | Clients: ===== start ==== IO | gpio0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000044e07000-00000044e07fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | ocmcram: hid= IO | Clients: ===== start ==== IO | ocmcram: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000040300000-00000040301fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc2: hid=EDMA_TPTC2 IO | Clients: ===== start ==== IO | tptc2: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049a00000-00000049afffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | tptc1: hid=EDMA_TPTC1 IO | Clients: ===== start ==== IO | tptc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049900000-000000499fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | emif: hid=EMIF IO | Clients: ===== start ==== IO | emif: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004c000000-0000004c000fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc2: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc0: hid=EDMA_TPTC0 IO | Clients: ===== start ==== IO | tptc0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049800000-000000498fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | scrm: hid= IO | Clients: ===== start ==== IO | srcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10000-00000044e11fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0246d67c phys=02000000 ephys=0246d67c f_sz=003e43d5 memsz=0046d67c PH 1 offs=0039c4f8 flags=r-x PH-type=0x4 virt=023944f8 evirt=0239451c phys=023944f8 ephys=0239451c f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=8 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #28 Mon Jul 17 15:10:51 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (7 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd rw root=1:0 ramdisk_size=4000 l4x_dtb=rom/l4-device-tree.dtb CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0239451c [3665kB] RO-Data: 022b2000 - 0237b000 [804kB] Data: 023bc000 - 023df800 [142kB] Init: 02395000 - 023bc000 [156kB] BSS: 023e43d5 - 0246d67c [548kB] Device scan: Device: L4ICU Device: gpio0 IRQ: 00000060 - 00000060 MEM: 44e07000 - 44e07fff Device: ocmcram MEM: 40300000 - 40301fff Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: tptc2 IRQ: 00000072 - 00000072 MEM: 49a00000 - 49afffff Device: emif MEM: 4c000000 - 4c000fff Device: mmc2 MEM: 481d8000 - 481d8fff IRQ: 0000001c - 0000001c DMAD: 00000000 - 00000000 Device: edma MEM: 49000000 - 4900ffff IRQ: 0000000e - 0000000e IRQ: 0000000d - 0000000d IRQ: 0000000c - 0000000c Device: srcm MEM: 44e10000 - 44e11fff Device: tptc0 IRQ: 00000070 - 00000070 MEM: 49800000 - 498fffff Device: tptc1 IRQ: 00000071 - 00000071 MEM: 49900000 - 499fffff Device: prcm MEM: 44e00000 - 44e03fff Device scan done. IO | DMA: use CPU-phys addresses for DMA l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023bdfa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x246dfff [4536 KiB] section-with-init(-data): Phys: 0x8017c000 to 0x805e9fff, [4536 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x246dfff [4536 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x246dfff [4536 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:02405fa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #28 Mon Jul 17 15:10:51 EDT 2017 DTB: virt=02600100 phys=81a00100 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine model: L4Linux (DT) Ignoring RAM at 0x80000000-0x90000000 (!CONFIG_HIGHMEM) Consider using a HIGHMEM enabled kernel. Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd rw root=1:0 ramdisk_size=4000 l4x_dtb=rom/l4-device-tree.dtb 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: 129676K/137220K available (2861K kernel code, 142K rwdata, 804K rodata, 156K init, 548K bss, 7544K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x0239451c (3666 kB) .init : 0x02395000 - 0x023bc000 ( 156 kB) .data : 0x023bc000 - 0x023df800 ( 142 kB) .bss : 0x023e43d5 - 0x0246d67c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) 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) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 IO | new iomem region: p=49000000 v=400000 s=400000 (bmb=0x2b138) IO | map mem: p=49000000 v=400000 s=10000: done(0) __l4x_ioremap: Mapping physaddr 49000000 [0x10000 Bytes, 49000000+010000] to 00302000+000000
Thanks -Dan
On Jul 15, 2017, at 5:43 PM, Daniel (Xiaolong) Wang xiaolongw@mail.usf.edu wrote:
Many thanks, Matthias for your hint. Sorry for the delay I was traveling last week. Unfortunately I still have trouble.
As you suggested I turned on the CONFIG_USE_OF in L4Linux configuration. I downloaded the am3335x-black.dtb device tree from this link https://github.com/dominicgs/BeagleDancer/tree/master/devicetree https://github.com/dominicgs/BeagleDancer/tree/master/devicetree, and updated my devs file as follow:
+++++++++++++ l4linux.devs +++++++++++++ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end); edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regA = Res.mmio(0x49000000, 0x4900ffff); Resource.regB = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end); mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end); i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
end)
However when I try to boot the L4linux it shows me "error: failed to get physical address for 2000000.” and hangs… Is there anything that I did wrong? I also tried to remove Property.flags = Io.Hw_device_DF_dma_supported; setup then it result in a different error:
"IO | vbus l4linux does not support a global DMA domain error: could not assign DMA space to vBUS: -2 DMA will not work!"
Thanks -Dan
FYI
+++++++++++++ terminal log with Property.flags = Io.Hw_device_DF_dma_supported;+++++++++++++
Starting kernel ...
L4 Bootstrapper Build: #51 Sat Jul 15 18:34:35 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 12 modules behind 81100000 moving module 02 { 8198e000-819b749f } -> { 81a7e000-81aa749f } [169120] moving module 01 { 8197c000-8198d33b } -> { 81a6c000-81a7d33b } [70460] moving module 00 { 818fa000-8197b017 } -> { 819ea000-81a6b017 } [528408] moving module 11 { 815fa000-818f9fff } -> { 816ea000-819e9fff } [3145728] moving module 10 { 81200000-815f947b } -> { 812f0000-816e947b } [4166780] moving module 09 { 8108d000-811ff8c7 } -> { 8117d000-812ef8c7 } [1517768] moving module 08 { 81033000-8108c6ab } -> { 81123000-8117c6ab } [366252] moving module 07 { 81019000-81032463 } -> { 81109000-81122463 } [103524] moving module 06 { 81013000-81018bac } -> { 81103000-81108bac } [23469] moving module 05 { 81012000-81012a0d } -> { 81102000-81102a0d } [2574] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101034c } -> { 81100000-8110034c } [845] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 800001a7] { 1a8} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5c3] { f5c4} Boot bootstrap [ 81100000, 819e9fff] { 8ea000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819e9fff] [0:819ea000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235804 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110034d] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io/ BOOTFS: [81102000-81102a0e] [C:109000] l4linux.devs BOOTFS: [81103000-81108bad] [C:10b000] device-tree.dtb BOOTFS: [81109000-81122464] [C:10d000] l4re BOOTFS: [81123000-8117c6ac] [C:10f000] ned BOOTFS: [8117d000-812ef8c8] [C:111000] io BOOTFS: [812f0000-816e947c] [C:113000] vmlinuz BOOTFS: [816ea000-819ea000] [C:115000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 7 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io http://l4linux.io/' IO | Add IRQ resources to vbus: IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | l4linux: [N12_GLOBAL__N_112Virtual_sbusE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | L4ICU: [N2Vi6Sw_icuE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | edma: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0246763c phys=02000000 ephys=0246763c f_sz=003de3d5 memsz=0046763c PH 1 offs=00396294 flags=r-x PH-type=0x4 virt=0238e294 evirt=0238e2b8 phys=0238e294 ephys=0238e2b8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=10 argv=0xafff4f7c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #5 Sat Jul 15 17:28:20 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (9 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 l4x_dtb=rom/device-tree.dtb ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0238e2b8 [3640kB] RO-Data: 022ad000 - 02375000 [800kB] Data: 023b6000 - 023d9680 [141kB] Init: 0238f000 - 023b6000 [156kB] BSS: 023de3d5 - 0246763c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000d - 0000000d MEM: 49000000 - 4900ffff IRQ: 0000000e - 0000000e IRQ: 0000000c - 0000000c Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. IO | DMA: use CPU-phys addresses for DMA l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023b7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2467fff [4512 KiB] section-with-init(-data): Phys: 0x80177000 to 0x805defff, [4512 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000.
On Jul 9, 2017, at 11:17 AM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
Hi,
On 07/08/2017 01:41 AM, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I setup CONFIG_L4_SERVER, I checked using nm the result is:
*00000800 W l4x_srv_init* *00000804 t l4x_srv_init_resolver*
I also tested without the CONFIG_L4_SERVER, it works with out CONFIG_L4_SERVER. However I could not see the the MMC under /dev folder or under /sys/device. Does that mean the IO configuration file I specified does not work?
The setup looks ok. In io's log output you can see that e.g. the edma and the mmc1 device both have a client. You can increase io's log verboseness by adding more (up to seven) '-v' switches. Eventually you will get the vbus configuration printed.
The reason you don't see any MMC device in /dev is that L4Linux does not know about the physical devices (yet). You have to pass in a device tree (FDT) using the 'l4x_dtb' kernel command line option e.g.
l4x_dtb=rom/your_device_tree.dtb
Don't forget to add the device tree to your entry in the modules.list file. Also make sure to enable CONFIG_USE_OF in your L4Linux configuration.
Best, Matthias.
The IO stil shows “no 'iommu' capability found use CPU-phys for DMA” and a warning “warning: could not register control interface at cap 'platform_ctl'"
Attachment is the newest configuration file: ************* l4linux.cfg ************* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvv rom/l4linux.devs rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
************* l4linux.devs ************* local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
Io.hw_add_devices(function() prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); end)
************* l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> ************* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:mmc1); -- mmc2 = wrap(hw:mmc2); -- mmc3 = wrap(hw:mmc3); i2c0 = wrap(hw:i2c0); -- i2c1 = wrap(hw:i2c1); })
************* Booting info ************* Starting kernel ...
L4 Bootstrapper Build: #47 Fri Jul 7 19:33:01 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 81978000-819a149f } -> { 81a68000-81a9149f } [169120] moving module 01 { 81966000-8197733b } -> { 81a56000-81a6733b } [70460] moving module 00 { 818e4000-81965017 } -> { 819d4000-81a55017 } [528408] moving module 10 { 815e4000-818e3fff } -> { 816d4000-819d3fff } [3145728] moving module 09 { 811fa000-815e347b } -> { 812ea000-816d347b } [4101244] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-81012a0a } -> { 81102000-81102a0a } [2571] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101032d } -> { 81100000-8110032d } [814] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 819d3fff] { 8d4000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819d3fff] [0:819d4000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235892 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110032e] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> BOOTFS: [81102000-81102a0b] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-816d347c] [C:111000] vmlinuz BOOTFS: [816d4000-819d4000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' *IO | Io service* *IO | Verboseness level: 4* *IO | unused physical memory space:* *IO | [00000000000000-0000007fffffff]* *IO | [00000090000000-000000ffffffff]* *IO | no 'iommu' capability found use CPU-phys for DMA* *IO | Loading: config 'rom/l4linux.devs'* *IO | warning: inconsistent fixed resource @ device: /System Bus/* *IO | : hid=MMC1* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>'* *IO | Real Hardware -----------------------------------* *IO | System Bus: hid=* *IO | Resources: ==== start ====* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | mmc1: hid=MMC1* *IO | Clients: ===== start ====* *IO | mmc1: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1)* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | prcm: hid=* *IO | Clients: ===== start ====* *IO | prcm: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2)* *IO | Resources: ===== end =====* *IO | edma: hid=EDMA* *IO | Clients: ===== start ====* *IO | edma: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2)* *IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | i2c0: hid=omap4-i2c0* *IO | Clients: ===== start ====* *IO | i2c0: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | warning: could not register control interface at cap 'platform_ctl'* *IO | Ready. Waiting for request.* PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0245743c phys=02000000 ephys=0245743c f_sz=003ce3d5 memsz=0045743c PH 1 offs=003889a4 flags=r-x PH-type=0x4 virt=023809a4 evirt=023809c8 phys=023809a4 ephys=023809c8 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000310, argc=9 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (8 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 023809c8 [3586kB] RO-Data: 022a5000 - 02368000 [780kB] Data: 023a6000 - 023c9540 [141kB] Init: 02381000 - 023a6000 [148kB] BSS: 023ce3d5 - 0245743c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000e - 0000000e Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023a7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2457fff [4448 KiB] section-with-init(-data): Phys: 0x80176000 to 0x805cdfff, [4448 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:023effa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: L4 Ignoring unrecognised tag 0x00000000 Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 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: 129696K/137220K available (2806K kernel code, 141K rwdata, 780K rodata, 148K init, 548K bss, 7524K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x023809c8 (3587 kB) .init : 0x02381000 - 0x023a6000 ( 148 kB) .data : 0x023a6000 - 0x023c9540 ( 142 kB) .bss : 0x023ce3d5 - 0x0245743c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) 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) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 clocksource: Switched to clocksource l4kipclk NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (junk in compressed archive); looks like an initrd INITRD: Freeing memory. l4x: Checks passed. NetWinder Floating Point Emulator V0.97 (double precision) futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=29 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon l4ser_shm: L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 L4IRQ: set irq type of 211 to 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 3072KiB [1 disk] into ram disk... done. EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem EXT4-fs (ram0): mounted filesystem without journal. Opts: (null) VFS: Mounted root (ext2 filesystem) readonly on device 1:0. Freeing unused kernel memory: 148K (02381000 - 023a6000) This architecture does not have kernel memory protection.
Please press Enter to activate this console.
Thanks -Dan
On Jul 7, 2017, at 6:08 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de>> wrote:
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d...https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3Chttps://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3E) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/>' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com <mailto:matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com>> wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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 http://l4re.org/doc/io.html <http://l4re.org/doc/io.html 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 mailto:l4-hackers@os.inf.tu-dresden.de > <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> > http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Matthias Lange, matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com, +49-351-41 888 614
Kernkonzept GmbH. Sitz: Dresden. Amtsgericht Dresden, HRB 31129. Geschäftsführer: Dr.-Ing. Michael Hohmuth
Hi,
On Mon Jul 17, 2017 at 16:13:58 -0500, Daniel (Xiaolong) Wang wrote:
I’m sorry to bother again on the same topic. Many thanks to Matthias and Adam, with their help I was able to make some progress on configuring the BeagleBone Black MMC driver for L4linux. But I still have problem to boot the L4linux. Here is where I am so far. I’m very frustrated now any hints and advice would be very appreciated.
Following Adam and Matthias’s suggestions I found out:
- I need to enable TI DMA driver and TI MMC driver , so I updated Kconfig and compiled the kernel DMA engine support as well as TI MMC driver.
- a FDT also need to be passed to L4Linux kernel, so based on beagleBoard Linux repository (https://github.com/beagleboard/linux https://github.com/beagleboard/linux) I modified the simple.dts [src/l4linux/arch/l4/boot/dts/simple.dts] (as attached)
Everything looks fine, I was able to see the l4linux scan device and pick up the FDT (as shown ”Machine model: L4Linux (DT)”) and preallocate DMA (“DMA: preallocated 256 KiB pool for atomic coherent allocations”). However the booting process stoped right after printing the following:
DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 IO | new iomem region: p=49000000 v=400000 s=400000 (bmb=0x2b138) IO | map mem: p=49000000 v=400000 s=10000: done(0) __l4x_ioremap: Mapping physaddr 49000000 [0x10000 Bytes, 49000000+010000] to 00302000+000000
That's hard/impossible to say what's the problem here with this output. However, adding initcall_debug=1 to the Linux command line is a big help and will tell use which function is called and then does not return.
Adam
Hi Adam,
I’m still in the process of enabling device driver for this iMX board. However no matter what I do (I added PINCTRL, added all drivers for IMX6 and compiled with the kernel) the following are the debug info printed out:
Take SPI as example:
bus: 'spi': add driver mtd_dataflash initcall dataflash_driver_init+0x0/0x10 returned 0 after 976 usecs calling spidev_init+0x0/0xbc @ 1 device class 'spidev': registering bus: 'spi': add driver spidev initcall spidev_init+0x0/0xbc returned 0 after 1953 usecs calling fsl_spi_init+0x0/0x10 @ 1 bus: 'platform': add driver fsl_spi initcall fsl_spi_init+0x0/0x10 returned 0 after 976 usecs calling spi_imx_driver_init+0x0/0x10 @ 1 bus: 'platform': add driver spi_imx bus: 'platform': driver_probe_device: matched device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 with driver spi_imx bus: 'platform': really_probe: probing driver spi_imx with device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: could not find pctldev for node /soc/aips-bus@02000000/iomuxc@020e0000/imx6x-sg/ecspi1grp, deferring probe spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: no pinctrl handle platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Driver spi_imx requests probe deferral platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Added to deferred list
I think it is something related to PINCTRL driver, but I have no idea, how to fix it. Have you seen this before?
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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
On Tue Aug 15, 2017 at 17:49:33 -0500, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I’m still in the process of enabling device driver for this iMX board. However no matter what I do (I added PINCTRL, added all drivers for IMX6 and compiled with the kernel) the following are the debug info printed out:
Take SPI as example:
bus: 'spi': add driver mtd_dataflash initcall dataflash_driver_init+0x0/0x10 returned 0 after 976 usecs calling spidev_init+0x0/0xbc @ 1 device class 'spidev': registering bus: 'spi': add driver spidev initcall spidev_init+0x0/0xbc returned 0 after 1953 usecs calling fsl_spi_init+0x0/0x10 @ 1 bus: 'platform': add driver fsl_spi initcall fsl_spi_init+0x0/0x10 returned 0 after 976 usecs calling spi_imx_driver_init+0x0/0x10 @ 1 bus: 'platform': add driver spi_imx bus: 'platform': driver_probe_device: matched device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 with driver spi_imx bus: 'platform': really_probe: probing driver spi_imx with device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: could not find pctldev for node /soc/aips-bus@02000000/iomuxc@020e0000/imx6x-sg/ecspi1grp, deferring probe spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: no pinctrl handle platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Driver spi_imx requests probe deferral platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Added to deferred list
I think it is something related to PINCTRL driver, but I have no idea, how to fix it. Have you seen this before?
probe deferral is a normal thing. The "no pinctrl handle" could be suspicious. Check why this is printed and possibly fix the condition that leads to it.
Adam
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Thank you so much, Adam! I will let you know my progress.
Thanks -Dan
On Aug 16, 2017, at 5:26 PM, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Tue Aug 15, 2017 at 17:49:33 -0500, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I’m still in the process of enabling device driver for this iMX board. However no matter what I do (I added PINCTRL, added all drivers for IMX6 and compiled with the kernel) the following are the debug info printed out:
Take SPI as example:
bus: 'spi': add driver mtd_dataflash initcall dataflash_driver_init+0x0/0x10 returned 0 after 976 usecs calling spidev_init+0x0/0xbc @ 1 device class 'spidev': registering bus: 'spi': add driver spidev initcall spidev_init+0x0/0xbc returned 0 after 1953 usecs calling fsl_spi_init+0x0/0x10 @ 1 bus: 'platform': add driver fsl_spi initcall fsl_spi_init+0x0/0x10 returned 0 after 976 usecs calling spi_imx_driver_init+0x0/0x10 @ 1 bus: 'platform': add driver spi_imx bus: 'platform': driver_probe_device: matched device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 with driver spi_imx bus: 'platform': really_probe: probing driver spi_imx with device soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000 spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: could not find pctldev for node /soc/aips-bus@02000000/iomuxc@020e0000/imx6x-sg/ecspi1grp, deferring probe spi_imx soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: no pinctrl handle platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Driver spi_imx requests probe deferral platform soc:aips-bus@02000000:spba-bus@02000000:ecspi@02008000: Added to deferred list
I think it is something related to PINCTRL driver, but I have no idea, how to fix it. Have you seen this before?
probe deferral is a normal thing. The "no pinctrl handle" could be suspicious. Check why this is printed and possibly fix the condition that leads to it.
Adam
On Jun 29, 2017, at 3:39 PM, Matthias Lange matthias.lange@kernkonzept.com wrote:
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:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- 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
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers@os.inf.tu-dresden.de