Commit Graph

5 Commits

Author SHA1 Message Date
Jon Mason
6acb45106d qemuarm: Swap for an arm7ve (A15) configuration
Add new QEMU BSP for a Arm Cortex-A15 system and use this as qemuarm,
moving the old armv5te Versatile PB based machine to qemuarmv5.

The new machine uses the QEMU virt machine type, which should be
faster to emulate and updates the qemuarm support to a modern
architecture.

(From OE-Core rev: 6fc70eb4f3494bee2be10ee24fe3ea1c8b5ff988)

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-12 11:57:41 -07:00
Bruce Ashfield
cda5d45599 linux-yocto/5.0: fix system tap for arm
Integrating Richard Purdie's kernel patch to fix systemtap on arm:

[
    arm/Makefile: Fix systemtap

    Currently systemtap fails to operate correctly on armv7 systems such as beaglebone and
    soon, qemuarm.

    root@qemuarm:/usr/src/kernel# env -uARCH -uKBUILD_EXTMOD -uCROSS_COMPILE -uKBUILD_IMAGE -uKCONFIG_CONFIG -uINSTALL_PATH -uLD_LIBRARY_PATH PATH=/usr/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin make -C /lib/modules/4.19.19-yocto-standard/build M=/tmp/staptcNU6M modules CONFIG_DEBUG_INFO= CONFIG_STACK_VALIDATION= ARCH=arm stap_4321_src.i --no-print-directory -j2 V=1
    test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
    echo >&2;                                                       \
    echo >&2 "  ERROR: Kernel configuration is invalid.";           \
    echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
    echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
    echo >&2 ;                                                      \
    /bin/false)
    mkdir -p /tmp/staptcNU6M/.tmp_versions ; rm -f /tmp/staptcNU6M/.tmp_versions/*
    make -f ./scripts/Makefile.build obj=/tmp/staptcNU6M
    (cat /dev/null;   echo kernel//tmp/staptcNU6M/stap_4321.ko;) > /tmp/staptcNU6M/modules.order
      gcc -Wp,-MD,/tmp/staptcNU6M/.stap_4321_src.o.d  -nostdinc -isystem /usr/lib/gcc/arm-poky-linux-gnueabi/8.3.0/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv5t -Wa,-march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -Os -Wno-maybe-uninitialized --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude2/asm/mach-default -I/lib/modules/4.19.19-yocto-standard/build -include /tmp/staptcNU6M/stapconf_4321.h -D "STP_NO_VELREL_CHECK" -freorder-blocks -fasynchronous-unwind-tables -Wframe-larger-than=512 -fno-ipa-icf -Wno-unused -Wno-tautological-compare -Werror -I/usr/share/systemtap/runtime  -DMODULE  -DKBUILD_BASENAME='"stap_4321_src"' -DKBUILD_MODNAME='"stap_4321"' -c -o /tmp/staptcNU6M/stap_4321_src.o /tmp/staptcNU6M/stap_4321_src.c
    /tmp/ccaE9CMG.s: Assembler messages:
    /tmp/ccaE9CMG.s:49: Error: selected processor does not support `dmb ish' in ARM mode
    /tmp/ccaE9CMG.s:52: Error: architectural extension `mp' is not allowed for the current b

    (which was from running the stap command with -v -v -v -k and then being able to run the command individually)

    Note that it says armv5t above.

    That comes from the code this patch changes

    root@qemuarm:/usr/src/kernel# gcc -march=armv7-a /tmp/staptcNU6M/stap_4321_aux_0.c
    cc1: error: -mfloat-abi=hard: selected processor lacks an FPU

    which makes me wonder if cc-option fails unless -mfpu-vfp is on the commandline too.

    Since we have a gcc which accepts the armv7-a arch, just remove the cc-option
    wrapper unconditionally here.

    Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
]

(From OE-Core rev: 8c446ac6c1bba1502ac0a710a39b90c78fff41a3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-12 11:57:41 -07:00
Bruce Ashfield
d5cfad0848 linux-yocto/5.0: fix systemtap for arm
We need to enable the arm unwinder for systemtap to work out of the
box:

  root@qemuarm:~# stap --disable-cache -DSTP_NO_VERREL_CHECK ./hello.stp
  [ 1600.955262] stap_2097: loading out-of-tree module taints kernel.
  hello world

This option is useful for much more than systemtap, so it is a good
idea to have on in the base configs. It make the image slightly larger,
but has no performance impacts.

(From OE-Core rev: 8a3cc10c2deb933866e384b326d730d17a49a269)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-09 14:43:11 +00:00
Bruce Ashfield
8d932f69ed linux-yocto/5.0: update configs for h/w reference boards
Integrating configuration changes from Kevin Hao for the reference
boards on the 5.0 kernel:

   be627e4e386 beaglebone: Switch to the 8250 omap driver
   957f6060c25 beaglebone: Update the audio options
   ab5298a6983 mpc8315e-rdb: Enable the CONFIG_MTD_PHYSMAP

(From OE-Core rev: 6aec31d1ca35ab1aa1cfe8f10381ad7dfd49218e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-06 16:44:37 +00:00
Bruce Ashfield
0f2b2b6c98 linux-yocto: introduce 5.0 versioned recipe
Introducing the 5.0 linux-yocto reference kernel, which will become
the "latest" kernel as part of the spring yocto release.

qemu* has been built and sanity tested against this kernel, and it
is suitable to become the default build for the emulated references.

Some minor configuration cleanup was performed, but otherwise, things
are very similar to the 4.19 kernel config:

  7fdb966db86 (HEAD -> yocto-5.0) aufs4: kbuild patch
  c76b027a8b2 iosched: remove configs for removed legacy io schedules
  5d1f8102244 netfilter: drop removed config options
  8ff16f508f5 kernel-yocto: 5.0 kernel prep

Feature wise, this is a match for 4.19, with yaffs2 and aufs4 being
kept around for another release. Aufs is scheduled for removal in
the fall release.

(From OE-Core rev: c802c355f02e808b29d396fcc286da6f18ce6a78)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-06 16:44:37 +00:00