Hi all,
a few weeks ago I (and a few others) started hacking on a
proof-of-concept hypervisor port to Cortex-A15 which uses and requires
ARMv7 virtualization extensions. The intention of this work was to find
out how to best support ARM v7+ on Xen. See
http://old-list-archives.xen.org/archives/html/xen-arm/2011-09/msg00013.html
for more details.
I am pleased to announce that significant progress has been made, and
that we now have a nascent Xen port for Cortex-A15. The port is based on
xen-unstable (HG CS 8d6edc3d26d2) and written from scratch exploiting
the latest virtualization, LPAE, GIC and generic timer support in
hardware.
We started the work less than three months ago, but the port is already
capable of booting a Linux 3.0 based virtual machine (dom0) up to a
shell prompt on an ARM Architecture Envelope Model, configured to emulate
an A15-based Versatile Express. In this context, we wanted to thank ARM
for making the model available to us.
Now we are looking forward to porting the tools and running multiple
guests.
The code requires virtualization, LPAE and GIC support and therefore it
won't be able to run on anything older than a Cortex-A15.
On the other hand, thanks to this, it is very small and easy to read,
write and understand.
The implementation does not distinguish between PV and HVM guests: there
is just one type of guests that would be comparable to Linux PV on HVM
in the Xen X86 world, but with no need for Qemu emulation.
The code only requires minimal changes to the Linux kernel: just enough
to support PV drivers.
Even though we are currently targeting Versatile Express and Cortex-A15
we do intend to support other machines and other ARMv7 with
virtualization extensions CPUs.
We are also looking forward to ARMv8 and 64 bits support.
Given that porting Xen to Cortex-A15 could be done with so little code,
we believe that the best course of action is to merge it into
xen-unstable as quickly as possible. There are still few rough edges to
sort out but we should be able to produce a clean and digestible patch
series for submission to xen-devel within the next couple of months. I
hope to see the first patches going to the list as soon as possible.
We would very welcome any contributions, in the form of testing, code
reviews and, of course, patches!
A git tree is available here:
git://xenbits.xen.org/people/sstabellini/xen-unstable.git arm
the gitweb url is the following:
http://xenbits.xen.org/gitweb/?p=people/sstabellini/xen-unstable.git/.git;a…
And here is the full diff:
http://xenbits.xen.org/people/sstabellini/diff
We want to point out that this effort is in addition to Samsung's
ongoing efforts to upstream Xen ARM to xen-unstable. Samsung's XenARM
port allows virtualization of Xen on ARM CPUs prior to virtualization
extensions and supports traditional PV guests.
I would like to thank Tim Deegan and Ian Campbell: if you spend some
time reading the history, you'll see that this project wouldn't have
been possible in such a short time without great contributions from
them.
Cheers,
Stefano
Amit/Mounir,
What's your guys plan with cpu_idle for each board? Are you going to
try and upstream a solution that will work across all boards? Would
you or Mounir be open to filing a BP per board so we can track when
cpu_idle will hit each board? Does it make sense to prototype
something across each board that we could land in Ubuntu and Android?
Adding other people, leads, etc...
--
Zach Pfeffer
Android Platform Team Lead, Linaro Platform Teams
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linarohttp://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
Status report in detail in
https://wiki.linaro.org/OfficeofCTO/WeeklyReport
Last weekly meeting:
https://wiki.linaro.org/OfficeofCTO/2011-11-29
Highlights:
- ARMHF (also tracked via https://launchpad.net/linaro-octo-armhf
Launchpad project)
+ Debian builds are now churning
+ Ubuntu ARMHF now happening - there were some problems unearthed (eg
https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/898172) but
moving on. Bugs which will appear will be tackled
+ Bug https://bugs.launchpad.net/offspring/+bug/892240 - offspring
does not currently support armhf. This will impede efforts to get armhf
benchmarks running on LAVA. The issue is being now tackled by infra, a
machine will be set to handle putting together *unsupported*
experimental armhf Debian images as a precursor to getting eventually
Ubuntu armhf builds supported by offspring.
- ARM Server: Preparation work is ongoing, for the roadmap and
requirements as well as initial planning for the first steps. A server
LEB will also be discussed from next week onwards.
- A number of patches sent already to deal with reducing ticks as a way
to reduce power consumption. Check patches from
http://patches.linaro.org/team/linaro-octo/
- Finally a short account of memory management:
+ CMA has seen a new version of the patches as result of the
discussion on Kernel Summit
+ there is ongoing work to enable testing of CMA via LAVA
+ getting dma-buf sharing improved based on the review comments, and
also pushing implementation of v4l2 as a user of dmabuf
+ we have a first implementation of dri2video for nouveau driver, and
also coming soon for omap
All questions, comments, are welcome,
--
Ilias Biris ilias.biris(a)linaro.org
Project Manager, Linaro
M: +358504839608, IRC: ibiris Skype: ilias_biris
Linaro.org│ Open source software for ARM SoCs
On Thu, Dec 01, 2011 at 03:31:38PM +0700, tknv wrote:
> I could not find that WERROR override code at my kernels...
>
> Sorry delay it, I did make V=1.
> There are three kinds test.
> All targets are ARM.
> All Makefiles(top of kernel tree)-KBUILD_CFLAGS are same.
> KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> -fno-strict-aliasing -fno-common \
> -Wno-format-security \
> -fno-delete-null-pointer-checks
>
> I think linaro Werror behaviour is different or I need to add FLAGS more.
>
> Compile CM-kernel with android SDK
> make -f scripts/Makefile.build obj=drivers/net/wireless/bcm4329
> rm -f drivers/net/wireless/bcm4329/built-in.o;
> /home/tknv/android/Oxygen/prebuil
> t/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-ar rcs
> drivers/net/wireless/bcm43 29/built-in.o
> /home/tknv/android/Oxygen/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eab
> i-gcc -Wp,-MD,drivers/net/wireless/bcm4329/.dhd_linux.o.d
> -nostdinc -isystem /home
> /tknv/android/Oxygen/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm
> -eabi/4.4.3/include
> -I/home/tknv/android/SuperSonic/kernels/CM-kernel/arch/arm/incl
> ude -Iinclude -include include/generated/autoconf.h
> -D__KERNEL__ -mlittle-endian - Iarch/arm/mach-msm/include
> -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-st
> rict-aliasing -fno-common -Wno-format-security
> -fno-delete-null-pointer-checks -Os -marm -mabi=aapcs-linux
> -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7
> -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024
> -fno-stack-protector -f omit-frame-pointer
> -Wdeclaration-after-statement -Wno-pointer-sign
> -fno-strict-over flow -fno-dwarf2-cfi-asm -fconserve-stack
> -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHD THREAD -DBCMWPA2
> -DUNRELEASEDCHIP -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64
> -DDHD_ FIRSTREAD=64 -DDHD_GPL -DDHD_SCHED -DBDC -DTOE
> -DDHD_BCMEVENTS -DSHOW_EVENTS -DBCMS DIO -DDHD_GPL
> -DBCMLXSDMMC -DBCMPLATFORM_BUS -Wall -Wstrict-prototypes
> -Werror -DOO B_INTR_ONLY -DCUSTOMER_HW2 -DDHD_USE_STATIC_BUF
> -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP - DSOFTAP
> -DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT
> -DGET_CUSTOM _MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DHW_OOB
> -Idrivers/net/wireless/bcm4329 -Idrive
> rs/net/wireless/bcm4329/include -DMODULE -D"KBUILD_STR(s)=#s"
> -D"KBUILD_BASENAME=K BUILD_STR(dhd_linux)"
> -D"KBUILD_MODNAME=KBUILD_STR(bcm4329)" -c -o drivers/net/wi
> reless/bcm4329/dhd_linux.o
> drivers/net/wireless/bcm4329/dhd_linux.
> ...
> [1]+ Done make V=1 > build.log 2>&1
>
> Compile CM-kernel with linaro.
> make -f scripts/Makefile.build obj=drivers/net/wireless/bcm4329
> rm -f drivers/net/wireless/bcm4329/built-in.o;
> /usr/bin/arm-linux-gnueabi-ar rcs
> drivers/net/wireless/bcm4329/built-in.o
> /usr/bin/arm-linux-gnueabi-gcc
> -Wp,-MD,drivers/net/wireless/bcm4329/.dhd_linux.o.d -nostdinc
> -isystem /usr/lib/gcc/arm-linux-gnueabi/4.6.1/include
> -I/home/tknv/android/SuperSonic/kernels/CM-kernel/arch/arm/include
> -Iinclude -include include/generated/autoconf.h -D__KERNEL__
> -mlittle-endian -Iarch/arm/mach-msm/include -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
> -Wno-format-security -fno-delete-null-pointer-checks -Os -marm
> -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables
> -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm
> -Wframe-larger-than=1024 -fno-stack-protector -fomit-frame-pointer
> -Wdeclaration-after-statement -Wno-pointer-sign
> -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack -DLINUX
> -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD -DBCMWPA2 -DUNRELEASEDCHIP
> -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64 -DDHD_FIRSTREAD=64
> -DDHD_GPL -DDHD_SCHED -DBDC -DTOE -DDHD_BCMEVENTS -DSHOW_EVENTS
> -DBCMSDIO -DDHD_GPL -DBCMLXSDMMC -DBCMPLATFORM_BUS -Wall
> -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2
> -DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP
> -DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT
> -DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DHW_OOB
> -Idrivers/net/wireless/bcm4329
> -Idrivers/net/wireless/bcm4329/include -DMODULE
> -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dhd_linux)"
> -D"KBUILD_MODNAME=KBUILD_STR(bcm4329)" -c -o
> drivers/net/wireless/bcm4329/dhd_linux.o
> drivers/net/wireless/bcm4329/dhd_linux.c
> drivers/net/wireless/bcm4329/dhd_linux.c: In function ‘
> dhd_rx_frame’:
> drivers/net/wireless/bcm4329/dhd_linux.c:1282:24: error: variable
> ‘save_pktbuf’ set but not used [-Werror=unused-but-set-variable]
> drivers/net/wireless/bcm4329/dhd_linux.c: In function ‘
> dhd_os_wd_timer’:
> drivers/net/wireless/bcm4329/dhd_linux.c:2737:14: error: variable
> ‘save_dhd_watchdog_ms’ set but not used
> [-Werror=unused-but-set-variable]
> cc1: all warnings being treated as errors
>
> make[4]: *** [drivers/net/wireless/bcm4329/dhd_linux.o] Error 1
> make[3]: *** [drivers/net/wireless/bcm4329] Error 2
> make[2]: *** [drivers/net/wireless] Error 2
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2
> ^C[1]+ Exit 2 make V=1 > build.log 2>&1
>
> Compile tiamatat-kernel with linaro.
> make -f scripts/Makefile.build obj=drivers/net/wireless/bcm4329
> /usr/bin/arm-linux-gnueabi-gcc
> -Wp,-MD,drivers/net/wireless/bcm4329/.dhd_linux.o.d -nostdinc
> -isystem /usr/lib/gcc/arm-linux-gnueabi/4.6.1/include
> -I/home/tknv/android/SuperSonic/kernels/tiamat-kernel/arch/arm/include
> -Iinclude -include include/generated/autoconf.h -D__KERNEL__
> -mlittle-endian -Iarch/arm/mach-msm/include -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
> -Wno-format-security -fno-delete-null-pointer-checks -Os -marm
> -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog
> -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=7
> -march=armv7-a -mhard-float -Uarm -Wframe-larger-than=1024
> -fno-stack-protector -fno-omit-frame-pointer
> -fno-optimize-sibling-calls -Wdeclaration-after-statement
> -Wno-pointer-sign -fno-strict-overflow -fconserve-stack
> -DCC_HAVE_ASM_GOTO -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD
> -DBCMWPA2 -DUNRELEASEDCHIP -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64
> -DDHD_FIRSTREAD=64 -DDHD_GPL -DDHD_SCHED -DBDC -DTOE -DDHD_BCMEVENTS
> -DSHOW_EVENTS -DBCMSDIO -DDHD_GPL -DBCMLXSDMMC -DBCMPLATFORM_BUS -Wall
> -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2
> -DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP
> -DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT
> -DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN -DHW_OOB
> -DKEEP_ALIVE -DPNO_SUPPORT -Idrivers/net/wireless/bcm4329
> -Idrivers/net/wireless/bcm4329/include -DMODULE -DMODULE
> -march=armv7-a -mfpu=vfpv3 -ftree-vectorize -D"KBUILD_STR(s)=#s"
> -D"KBUILD_BASENAME=KBUILD_STR(dhd_linux)"
> -D"KBUILD_MODNAME=KBUILD_STR(bcm4329)" -c -o
> drivers/net/wireless/bcm4329/dhd_linux.o
> drivers/net/wireless/bcm4329/dhd_linux.c
> drivers/net/wireless/bcm4329/dhd_linux.c: In function ‘dhd_rx_frame’
> :
> drivers/net/wireless/bcm4329/dhd_linux.c:1256:24: error: variable ‘
> save_pktbuf’ set but not used [-Werror=unused-but-set-variable]
> cc1: all warnings being treated as errors
>
> make[4]: *** [drivers/net/wireless/bcm4329/dhd_linux.o] Error 1
> make[3]: *** [drivers/net/wireless/bcm4329] Error 2
> make[2]: *** [drivers/net/wireless] Error 2
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2
> ^C[1]+ Exit 2 make V=1 > build.log 2>&1
OK, so the reason why you can't turn -Werror off is because
drivers/net/wireless/bcm4329/Makefile adds it again:
DHDCFLAGS = -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD -DBCMWPA2 \
-DUNRELEASEDCHIP -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64 \
-DDHD_FIRSTREAD=64 -DDHD_GPL -DDHD_SCHED -DBDC -DTOE -DDHD_BCMEVENTS \
-DSHOW_EVENTS -DBCMSDIO -DDHD_GPL -DBCMLXSDMMC -DBCMPLATFORM_BUS \
-Wall -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2 \
-DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP \
-DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT \
-DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN -DHW_OOB \
-DKEEP_ALIVE -DPNO_SUPPORT \
-Idrivers/net/wireless/bcm4329 -Idrivers/net/wireless/bcm4329/include
EXTRA_CFLAGS = $(DHDCFLAGS)
Kbuild doesn't allow you to override such things from the top level.
Adding -Werror overrides any preceding -Wno-error flag.
-Werror really should only be added in subdirectory Makefiles if
the code in that directory is super-clean. The exact behaviour of GCC
with -Werror *will* change between different compiler versions -- this
is not a bug. It explicitly allows GCC to fail to compile code which
might be correct.
There seems to be no good way to override -Werror in a subdirectory
Makefile from higher-level Makefiles. You may be able to remove the
error behaviour for individual warnings with -Wno-error=<warning>, but
it's not really a good idea to do this at the top level because it will
affect the whole kernel.
So far as I can see, the warnings/errors you get probably indicate real
issues in the code. It doesn't look like a compiler bug, or a problem
with Kbuild -- it's just an effect of the way the writers of that
subdirectory wrote their Makefile.
If you have not already done so, you should check for newer versions of
the code which may fix the problems. If there is no newer version, it
would be a good idea to fix the source code issues and propose those
changes for merging so that the problem gets solved for everyone.
You can also simply remove -Werror from DHDCFLAGS in your local
build tree. This will allow you to build the kernel, but it won't
prevent other people from encountering the same problem.
Since this appears to be an issue with an Android kernel tree, I suggest
if you have more questions on this you should reply via
linaro-dev(a)lists.linaro.org, or ask questions on the #linaro or
#linaro-android channels on IRC at chat.freenode.net if you need
additional help.
Cheers
---Dave
Add pm_caps into platform data and update it in SD/MMC driver
This field can be used with SDIO device such as SDIO WLAN.
Sangwook Lee (2):
ARM: SAMSUNG: Add pm_caps into platform data
mmc: sdhci-s3c: Add pm_caps into SD/MMC host
arch/arm/plat-samsung/dev-hsmmc3.c | 2 ++
arch/arm/plat-samsung/include/plat/sdhci.h | 2 ++
drivers/mmc/host/sdhci-s3c.c | 3 +++
3 files changed, 7 insertions(+), 0 deletions(-)
--
1.7.4.1
Hello.
Here is the weekly status report from the Android Platform Team.
Key Points for wider discussion
===============================
* Android 4.0 ICS boots with gcc 4.6. Still some workarounds required.
* Android 4.0 ICS up and running on iMX53.
* 11.12 Pre-release 1 (ICS) has been validated on all major boards.
Team Highlights
===============================
* 11.11 Post Mortem status, meeting and lessons learned completed.
* Blueprints for 11.12 are ready and rolling.
* Demos and articles posted to YouTube, G+ and other sites.
* Support questions answered.
* Good progress on adding Gator (for DS-5) to the ICS Builds.
* The kernel rebuild script has been tested for all boards.
* Good progress on bringing up hardware accelerated graphics on Origen.
Bugs fixed
===============================
871757, 883307, 892881, 892899, 893325, 893150, 893151, 894488, 896467,
896468, 844890, 862327
===============================
* Hackbox ran out of memory when building Android ICS.
Blueprints
===============================
https://launchpad.net/linaro-android/+milestone/11.12