Hello l4-hackers,
I am currently working on porting the Fiasco.OC micro kernel onto the
Raspberry pi 2.
Therefore, I am struggling with memory mapping, and I encounter the
following error when launching the default 'hello' entry:
L4 Bootstrapper
Build: #2 Tue Feb 23 11:57:19 CET 2016, 4.8.3 20140303 (prerelease)
Scanning up to 1024 MB RAM, starting at offset 32MB
Memory size is 1024MB (00000000 - 3fffffff)
RAM: 0000000000000000 - 000000003fffffff: 1048576kB
Total RAM: 1024MB
…
[View More]Scanning fiasco
Scanning sigma0
Scanning moe
Moving up to 5 modules behind 1100000
moving module 02 { 10db000-110c4d7 } -> { 11cc000-11fd4d7 } [201944]
moving module 01 { 10c9000-10da373 } -> { 11ba000-11cb373 } [70516]
moving module 00 { 1043000-10c889f } -> { 1134000-11b989f } [546976]
moving module 04 { 1029000-10425af } -> { 111a000-11335af } [103856]
moving module 03 { 100f000-102849b } -> { 1100000-111949b } [103580]
Loading fiasco
Loading sigma0
Loading moe
find kernel info page...
found kernel info page at 0x2000
Regions of list 'regions'
[ 1000, 1aff] { b00} Kern fiasco
[ 2000, 92fff] { 91000} Kern fiasco
[ 93000, 930eb] { ec} Root mbi_rt
[ c0000, c9c33] { 9c34} Sigma0 sigma0
[ d0000, d6177] { 6178} Sigma0 sigma0
[ 140000, 16905b] { 2905c} Root moe
[ 170000, 17b58b] { b58c} Root moe
[ 1000000, 100e4ff] { e500} Boot bootstrap
[ 1100000, 1133fff] { 34000} Root Module
API Version: (87) experimental
Sigma0 config ip:000c0100 sp:00000000
Roottask config ip:00140250 sp:00000000
Starting kernel fiasco at 000012b8
Non-HYP kernel detected but running in HYP mode, switching back.
Hello from Startup::stage2
Assertion failed
at /home/adebut/Documents/snapshotTest/l4re-snapshot-2015123115/src/kernel/fiasco/src/kern/buddy_alloc.cpp:101:
(unsigned long)block >= _base
Press any key to reboot.
I am currently working on the latest snapshot (2015123115), with
U-Boot as a bootloader, and testing on a real board (Raspberry Pi 2
model B V1.1). The entry built is the standard 'hello', and I use the
ramdisk-arm.rd given in the snapshot.
I did add a custom Bsp for the board, mainly based on the first
Raspberry Pi except for the Base Address, that is 0x3F000000
instead of the first Pi's 0x20000000.
I highly think that it is an address configuration problem, because it
first happened when I did expand the RAM size to 1024MB.
With further investigation, I found out that it was the kernel memory
allocation that causes this error, and suspect an incorrect MMU mapping.
This suspicion comes from the fact that the assertion takes the address
_base (0xf0400000) and the currently allocated block (0xee100000).
I did not modify any parameter in the kern/arm/mem_layout-arm.cpp file
on the Fiasco directory, which provides the default ARM addressing.
Maybe that's where my error comes from ? How can I correctly configure
my memory mapping, besides what I already configure in the Bsp (given in
attachment) ?
Also, it is the first time that I am assigned for porting a system, do
you have some hints, like important steps to follow ?
I am pretty sure it is a newbie error, but I cannot figure it out for
now :(
Thanks in advance for your time,
--
Antoine Debut
EPITA 2016 - GISTRE
[View Less]
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 …
[View More]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
[View Less]
Hi L4 team,
I'm looking forward for information about existent or recommended
methodology to perform systematic test on single fiasco component or
L4Re service.
From what I see, there is not other option than running on qemu or
target host. What I would really like is to get sort of fiasco&L4Re
mock to be able to run systematic unit test on user level app but on
my PC (avoiding the emulator).
Any recommendation on this regard?
Thought about fiasco UX, but not sure if that …
[View More]feature is still maintained.
And if I jump into the complex task of designing this mock, any
recommendation about l4re service which is more "isolated" from
microkernel to take it as initial use case for such development?
Well that's all by now.
Thanks in advance for any feedback
Best
Agustin
[View Less]
Hi all,
I’m sorry to bother, again… But I keep getting problems hope you can give me some advice.
I’m trying to test out L4re +L4Linux on X86 and ARM i.MX6. I downloaded the newest l4re-snapshot-2006082114. I built Fiasco with Intel Pentium Pro and Virtualization (did not change anything else).
I built L4re with Pentium Pro type CPU (everything else are default settings). Then I built L4Linux with the L4re builddir. I turned off 64-bit kernel, CPU selected Pentium-Pro, turned off most of the …
[View More]settings as the warning instructed.
These are the settings of L4Linux that I enabled:
Processor type and features:
* DMA memory allocation support
* Processor feature human-readable name
* Fast CPU feature tests
* Support for extended X86 platform
* Single-depth WCHAN output
* High memory support is OFF
* Enable bounce buffers
* X86 architectural random number generator
* Enable seccomp to safety compute untrusted bytecode
* Enable the LDT
Power Management and ACPI options:
* Suspend to RAM and standby
* device power management core functionality
* CPU Frequency scaling is OFF
Bus Options:
* PCI support
* PCI access mode is Direct
I was able to compile all three parts and build both iso image (for vmware fusion on macOS) and qemu simulator. I first tested hello, hello-cfg, hello-shared, frame buffer-example-x86, all of those works as expected.
However when I tried to build L4Linux-basic and L4Linux-mag-x86. Not of them works.
for L4Linux-mag-x86 the system shows a diagram “system is booting” then hang forever.
for L4Linux-basic the image boot but freeze soon. The screen shows:
l4cdds: No name given, not starting
brd: module loaded
l4cdds: no name given, not starting
moused: ps/2 mouse device common for all mice
l4x: Faking dummy RTC
rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
rtc_cmos rtc_cmos: only 24-hr supported
rtc_l4x: l4x-rtc: Could not find ‘rtc’ cap
rtc_l4x: probe of rtc-l4x failed with error -2
NET: Registered protocol family 17
L4IRQ: set irq type of 64 to 1
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 3072KiB [1 disk] into ram disk… done.
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing unused kernel memory 188K (00494000 - 004c3000)
Write protecting the kernel text: 2684K
Write protecting the kernel read-only data 768k
rodata_test: test data was not read only
Please press Enter to activate this console. clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2845e81c5f6, max-idle_ns: 440795276432 ns
clocksource: Switched to clocksource tsc
Initially I thought it might related RTC so I checked out all Real time clock in L4Linux, but it still the same. Any help would be appreciated.
Thanks
-Dan
[View Less]
Hi L4-hackers,
i am currently working on a checkpoint/restore component (for the Genode
framework) which aims at the migration of processes/components.
When I first start the target component of the checkpointer, its object
looks like this:
000204 :0016e* Gate 0015f* Gate 00158* Gate 00152* Gate
000208 :00154* Gate 0017e* Gate 0017f* Gate 00179* Gate
00020c :00180* Gate 00188* Gate -- --
000210 : -- -- 0018a* Gate 0018c* Gate
000214 :…
[View More]0018e* Gate 00196* Gate 00145* Gate 00144* IRQ
000218 :00198* Gate -- -- --
00021c : -- 0019c* Gate -- --
At position 000217 is an IRQ object which is used for signaling.
I would like to know if this IRQ object carries any information which I
need to store in order to recreate a new IRQ object for the restarted
component.
If you are interested in more context you can take a look at:
https://sourceforge.net/p/genode/mailman/message/35904942/
Kind Regards,
David Werner
[View Less]
Hi all,
I’m trying to use L4re to run L4linux. I successfully built the fiasco kernel and l4re with the default setting from the newest l4re-snapshot. However when I try to build L4linux it shows it shows:
“ld: skipping incompatible /home/daniel/Desktop/l4re-snapshot/src/l4/builddir/lib/x86_pentium4/l4f/libl4sys-direct.a when searching for -ll4sys-direct”
"ld: skipping incompatible /home/daniel/Desktop/l4re-snapshot/src/l4/builddir/lib/x86_pentium4/l4f/libl4sys.a when searching for -ll4sys"
"…
[View More]ld: cannot find -ll4sys”
I assume it is the platform of L4re I built is not compatible with the L4Linux settings. I built L4re for x86_586 and x86_pentium4.
My question is that is there a compatible X86 CPU platform the works for both L4re and L4Linux? Should I built AMD64 instead?
Thanks
-Dan
[View Less]
Hi all,
I’m new to L4re. I would like to use L4re as a microvisor and run L4linux VM. Is there any tutorial shows how to build the system like that?
Thanks
-Dan
Hi Adam,
Thanks for your hint!
> Hm, tried adding more memory to the VM?
Perhaps other users might experienced the same issue:
L4x: Main thread running, waiting...
L4x: Memory size: 64MB
L4x: Setting superpages for main memory
l4x_setup_memory: Can't get main memory of 65536kiB! Please try to add
more memory to the VM.
MOE[mem_alloc]: quota: limit=-1 Byte, used=9646080 Byte
MOE[mem_alloc]: global: avail=52121376 Byte
MOE[mem_alloc]: free list (start address/size):
MOE[mem_alloc]: …
[View More]0x210e0 - 0x213ff (800 Byte)
MOE[mem_alloc]: 0x273400 - 0x273fff (3 kB)
MOE[mem_alloc]: 0x370000 - 0x3fffff (576 kB)
MOE[mem_alloc]: 0xba6000 - 0x18aafff (13 MB)
MOE[mem_alloc]: 0x541a000 - 0x7838fff (36 MB)
Terminating L4Linux.
so I simply added "Please try to add more memory to the VM."
Index: arch/l4/kernel/main.c
===================================================================
--- arch/l4/kernel/main.c (revision 54)
+++ arch/l4/kernel/main.c (working copy)
@@ -1384,7 +1384,8 @@
if (l4re_ma_alloc_align(mem_chunk_sz[i], l4x_ds_mainmem[i],
f, virt_phys_alignment)) {
- LOG_printf("%s: Can't get main memory of %ldkiB!\n",
+ LOG_printf("%s: Can't get main memory of %ldkiB!
Please try to "
+ "add more memory to the VM.\n",
__func__, mem_chunk_sz[i] >> 10);
l4re_debug_obj_debug(l4re_env()->mem_alloc, 0);
l4x_exit_l4linux();
then users might realized that using qemu-system-x86_64 -m 1024M to
launch L4Linux-mag-x86, and L4Linux is able to run happily :)
https://pbs.twimg.com/media/DB3YY0zVwAA9CM9.png sorry for posting
screenshots on Twitter but I am so happy! so excited! and my sincere
thank goes to you and Jean! you are teaching me patiently and carefully :)
--
Regards,
Leslie Zhai - a LLVM hacker https://reviews.llvm.org/p/xiangzhai/
[View Less]
Hi Jean,
Thanks for your help!
在 2017年06月09日 00:53, Jean Wolter 写道:
> On 08/06/17 04:18, Leslie Zhai wrote:
>> Hi Matthias,
>>
>> Jean taught me about how to debug L4Re using jdb in qemu
>> http://os.inf.tu-dresden.de/pipermail/l4-hackers/2017/008038.html it
>> used a on purpose bug (null ptr deref) to crash Ned, then L4Re
>> thrown: unhandled write page fault at 0x0 pc=0x100398d, and addr2line
>> ... -e ned -a 100398d to indicate the root …
[View More]cause line.
>>
>> But how to find out the root cause if unclear that which components
>> bring in the issue?
>
> I think there might be a misunderstanding. I only introduced the null
> pointer dereference to demonstrate how to do it using a known problem.
> You can apply exactly the same steps in a different situation.
I just want to express the ('on purpose' is misuse, sorry for my poor
English) debug patch is a demo to guide me how to debug with jdb in the
qemu :) you are my mentor teaching me patiently and carefully!
>
> But I would like to add something. You actually had all the
> information you needed:
>
> MOE: loading 'rom/ned'
> Ned says: Hi World!
> [1] 0 pf: 0022 pfa=0000000000000018 ip=fffffffff0031ea9 (R-)
> spc=0xffffffff807c3dd
> [2] L4Re[rm]: unhandled read page fault at 0x18 pc=0x102e893
> [3] L4Re: unhandled exception: pc=0xfffffffff0031ea9 (pfa=18)
> L4Re: Global::l4re_aux->ldr_flags=0
>
>
> In [2] you see the message from the local pager, that is unable to
> find a valid region for the pagefault address and complains. It shows
> the 0x18 as pagefault address and an instruction pointer 0x102e893.
> The instruction pointer did not make any sense at that time. The local
> pager triggers an exception.
>
> In [3] you see the exception message. It shows the instruction pointer
> where the pagefault was actually raised: 0xfffffffff0031ea9. This is
> an address inside the kernel:
That is the key point! it is magic to me that 0xfffffffff0031ea9 is an
address inside the kernel, I need to deepinto Fiasco about address
space, correct?
> ~/build/tmp/l4re$ addr2line -p -i -e
> ../leslie/fiasco/build/fiasco.image -a fffffffff0031ea9
> 0xfffffffff0031ea9:
> /home/zhaixiang/project/l4re/kernel/fiasco/src/drivers/amd64/processor-amd64.cpp:67
> ...
> (inlined by)
> /home/zhaixiang/project/l4re/kernel/fiasco/src/kern/ram_quota.cpp:53
>
> /home/zhaixiang/project/l4re/kernel/fiasco/src/drivers/amd64/processor-amd64.cpp:67
> fffffffff0031ea8: fa cli
> fffffffff0031ea9: 48 8b 47 18 mov 0x18(%rdi),%rax
> fffffffff0031ead: 48 03 77 10 add 0x10(%rdi),%rsi
> _ZN9Ram_quota5allocEl():
> /home/zhaixiang/project/l4re/kernel/fiasco/src/kern/ram_quota.cpp:54
>
> If it is not a kernel fault and you need to find out, which component
> is responsible (or need more information about the current state) you
> can press 'i' when line [0] appears. You enter the kernel debugger and
> can look at the current thread using t<enter>. The thread has an id,
> which you can lookup in the list of present threads (using 'lp'). Here
> it is thread 22:
>
> id cpu name pr sp wait to stack state
> 2e 0 ----- 2 1e - ( 920) rcv_wait
> 2b 0 ----- 10 1e - (1072) rcv_wait
> 22 0 ----- 2 1e (1776) ready
> 1f 0 #ned ff 1e - (1072)
> ready,rcv_wait
>
> All threads shown here have the same address space and therefore the
> problem happened in the context of ned.
>
>>
>> The same story is how to debug L4Linux?
>> http://os.inf.tu-dresden.de/pipermail/l4-hackers/2017/008047.html
>> please give me some advice, thanks a lot!
>>
> Maybe you can add "-serial stdio" to your qemu options and provide the
> complete backtrace for the problem? It looks like a framebuffer issue,
> but there should be more information in the lines above ...
I will try instead of posting screenshots on Twitter, sorry for my posting!
>
> regards,
> Jean
>
--
Regards,
Leslie Zhai - a LLVM hacker https://reviews.llvm.org/p/xiangzhai/
[View Less]