History log of /fuchsia/zircon/kernel/platform/generic-arm/rules.mk
Revision Date Author Comments
# 291c2691 22-Sep-2018 Mike Voydanoff <voydanoff@google.com>

[mt8156s_ref] Initial support for MT8167S reference board

Zircon boots into serial console shell on MT8167S with this change.
The Zircon image is packaged to work with Android Verified Boot.
A stub board driver for the board is included in this CL.

Still to do:

- Implement interrupt support in the UART driver instead of spinning and polling.
This will require pinmuxing the interrupt to level triggered active low,
since that configuration cannot be done in the gic.

- Remove code in the boot shim that disables the watchdog timer when we have a proper
watchdog driver in userspace.

TEST: Board boots into a shell, board driver loads and "runtests" passes.

Change-Id: I2b4fa280c40b7deab061033ffcbee04f8584c407


# 529dd880 13-Jun-2018 Corey Tabaka <eieio@google.com>

[kernel] Kernel integration of runtime lock dependency tracking.

- Add kernel runtime support routines for lockdep.
- Add kernel tests for lockdep.
- Add makefile machinery to enable lockdep and tests independently.

Lock validation is disabled by default. When disabled the mechanism
is transparent and incurs zero overhead. The validator may be enabled
by setting ENABLE_LOCK_DEP to true in local.mk or through the
environment.

Bug: ZX-23
Test: Enable lockdep and kernel tests; k ut lock_dep_tests passes.

Change-Id: Ie4e9544e7b7131c6eb7c76fdcd3fb86bb77ff045


# db5822f8 23-May-2018 Gurjant Kalsi <gkalsi@google.com>

[zbi] Introduce libzbi

Introduce libzbi for ZBI manipulation from Zircon
userspace or kernel space.

There are a number of places in the system where we do
arbitrary ZBI manipulation:
+ Iterating over an image
+ Appending items to an image
+ Extracting items from an image
and it would be nice to have a single implementation
for each of these routines.

For now, this implementation provides the general
shape and layout of libzbi and ports the ARM64
platform's initialization routines to use libzbi.

If all looks well, I can continue to port x86 too.

Change-Id: I5e2825cc3e79ec12c0d408bc38e779102c75698b


# c26ba6f3 11-Apr-2018 Mike Voydanoff <voydanoff@google.com>

[kernel][arm64] Remove remaining use of MDI from the arm64 kernel

Kernel drivers are now configured via bootdata passed from the boot shims.

Change-Id: I056b9b2c74a99226d98416b0308480b85460e918


# 7f144381 29-Mar-2018 Payam Moradshahi <payamm@google.com>

[zircon][nxp][imx8] Intial support for NXP iMX8

Change-Id: Ic48bb0ddd7e21914d2e1fb63175e6464add96a11


# c0757c9a 16-Feb-2018 Payam <payamm@google.com>

[kernel][dev][hdcp] Add a mini kernel driver that can initialize the hdcp engine
This needs to be in the kernel since it requires an svc call

Change-Id: I1a0124a0d54ead279acb2a3768a1455154c81e47


# e5ed6a42 18-Jan-2018 Brijen Raval <braval@google.com>

[kernel][gic] GIC code refactoring to add support for GICv3 in Hypervisor

Change-Id: Ia3e96db67ca507a26fbf537d8eb004c1d5a9b6b0


# df852e40 22-Dec-2017 Mike Voydanoff <voydanoff@google.com>

[hikey960] Implement dm reboot and dm reboot-bootloader

Hikey can now reboot itself and also boot into the bootloader
Unfortunately I haven't figured out how to implement shutdown yet.

ZX-1506 #done
ZX-1507 #done

Change-Id: Id94a1a433140c19bbfaec5ed4b342f8514f67fe5


# 5b85fbd2 21-Dec-2017 Mike Voydanoff <voydanoff@google.com>

[kernel][pdev][power] Add support for kernel power drivers

This allows targets to have custom kernel drivers for power management
(for now, just rebooting and shutting down).

If no power driver is specified in the MDI,
a default PSCI based implementation will be used instead.

ZX-1506 #comment

Change-Id: I589fd0d300567b3640ccf5676b1101190a303fa9


# 31352893 28-Nov-2017 Travis Geiselbrecht <travisg@google.com>

[kernel] remove MEMBASE and some other unused variables

Change-Id: I6e644de42f84b3a25e6e6e9697c32fabcedaa0d5


# 800043a2 27-Oct-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm64] remove ARCH_CPU_* defines and hard code the codegen to cortex-a53

The kernel doesn't need to be compiled or know that it's being compiled
for a specific arm core. It was always set to cortex-a53 anyway.

Change-Id: Ic682e87323682829d121bf2be97ba4867e5e881b


# 6707c390 11-Oct-2017 Roland McGrath <mcgrathr@google.com>

[kernel][arm64] Rename kernel linker script

Use the more obvious name kernel.ld, as x86 does.
Clean up the makefile mentions.

Change-Id: I443e36d1e66ab4aeaba882784339dbc5c072df64


# 5dc89c3f 01-Oct-2017 Mike Voydanoff <voydanoff@google.com>

[rpi3] Remove rpi3 kernel support

We are keeping some userspace drivers that might be converted to
generic platform drivers.

Change-Id: I67d472c4571d731d3e0e5e9fd78dcc8a76e0e329


# c40d2e9f 12-Sep-2017 Mike Voydanoff <voydanoff@google.com>

[kernel][qemu] Remove qemu specific PCIE logic from the kernel

The driver kernel/dev/qemu is now integrated into the ARM GIC v2 code
and no longer contains platform specific configuration values.
The qemu specific values are now configured via PCI syscalls
from a new userspace qemu platform bus driver.

MG-734 #comment In progress

Change-Id: I35280427999a431c7caf3e3c578cea8f7fb326e8


# b98ee880 06-Jul-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][arm] remove unused legacy #define

Change-Id: I72a07d606456918b127484078b79c4953b3797ed


# 995a8f28 30-Jun-2017 Eric Holland <hollande@google.com>

[arm64][odroidc2] OdroidC2 support

Change-Id: If817e84390a3f72bca35473db949cb92cfdec6c8


# c4b00c8a 01-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[kernel] remove the WITH_SMP flag

Always build the kernel with full SMP support.

Change-Id: I105f8e4127a93113c795ae80e1dc4d4b0d43abe8


# 3d9a9695 26-May-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][heap] general heap wrapper improvements

-Move the heap wrapper code to cpp
-Roll the heap page allocator into heap_wrapper.cpp
-Remove the compile time heap selection logic
-Remove miniheap

Change-Id: Id6d85b68ae02d410e91e95431ecb7b56d16a6f0d


# c0e3233e 17-May-2017 Eric Holland <hollande@google.com>

[qemu][uart] refactor to generic pl011

Change-Id: If6641ea29c99aad752e7de14eb3ab34ec5356916


# ba4aa661 10-May-2017 Christopher Anderson <chris@nullcode.org>

[kernel][arm] Integrate memory limit lib into platform

- Enable kernel.memory-limit-mb for all ARM64 platforms
- Remove a header that slipped into memory_limit.cpp
- Fix a typo in memory_limit tests pertaining to rpi3 memory

Change-Id: Ia3596a53c920b7c171f7230ff9f7d9dd512f1acc


# 7c356db1 11-May-2017 Yvonne Yip <yky@google.com>

remove unused msm/trapper code

Change-Id: I9737b153cd68533b7e0f4e69f4231ec4173ef8cd


# 3df48681 01-May-2017 Gurjant Kalsi <me@gurjantkalsi.com>

[rpi3][platform] Implement platform_halt_cpu.

The BCM2837 on the RPi3 does not implement a PSCI interface so we
must implement platform_halt_cpu ourselves.

To halt the CPU, we mimic the behaviour of the firmware and park the
CPU in a loop at a low memory address until somebody sets our CPU
vector and issues an SEV instruction.

Change-Id: I91f21269cc3dd224884352903540b9c37563f270


# 968a6a8a 28-Apr-2017 Gurjant Kalsi <gkalsi@google.com>

[arm64][platform] Rename arm64 platform.c to cpp

Rename generic-arm/platform.c to platform.cpp in preparation
for converting it to C++

Change-Id: I8332389a8e80e25f51fb04b1a0b01b6e540d583e


# 16656ae0 05-Apr-2017 Brian Swetland <swetland@google.com>

[build] flatten the build

Previously we treated kernel/, system/, and third_party/ as
overlays on a shared namespace. This required the concept
of "canonical" module names, and a lot of complexity to ensure
that things didn't collide and the build worked.

This change gets rid of that, no longer passes -I to make,
so that include directives from our *.mk files do not magically
wildcard across various paths, etc.

The most user-visible change is that everywhere where a module
name is specified (MODULE_DEPS, MODULE_LIBS, etc), full module
names like kernel/lib/io or system/ulib/mxio must be used instead
of previously-allowed "short" names like lib/io and ulib/mxio.

The build output still has a similar shape, but the first segment
of the module path (kernel/, system/, or third_party/) is no
longer elided under $(BUILDDIR)

Change-Id: I525aba1da1c86eb7a86007bddc669f7eeebfedd5


# 5dbe69d1 10-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[arm64][qemu] Transition the arm64 qemu build to use the generic-arm platform:

Make the arm_gicv2 interrupt controller and qemu UART drivers pdev drivers
so they can be selectively enabled based on MDI.

Removed obsolete gic v3 compatibility support from the arm_gicv2 driver

Move qemu pcie code to kernel/dev/qemu

Fold kernel/arch/arm64/platform.c intoto generic-arm platform code

Now all arm64 builds are using the common generic-arm platform support

Change-Id: Id929c053d4e4438e6b8293918c0236a8590feb88


# daf19fb7 05-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[bcm28xx] Transition the RPi3 build to use the generic-arm platform:

Make the bcm28xx interrupt controller and debug UART drivers pdev drivers
so they can be selectively enabled based on MDI.

Move some miscellaneous code from the bcm28xx platform to kernel/dev/bcm28xx

Make arch_max_num_cpus() return CPU count from MDI rather than returning
a count of running CPUs.
This allows us to eliminate some uses of the SMP_MAX_CPU define,
which might not match actual number of CPUs in a generic-arm build.

We still have a couple MSM8998 and BCM2837 #ifdefs in platform.c,
which we will clean up later.

Change-Id: I5aca73b9bfd958b56291a9673ab9ee3adb0d687a


# 4add1288 04-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[arm64][timer] Add support for initializing the arm generic timer from MDI

The arm generic timer driver can be initialized as follows:

kernel-drivers = {
arm-generic-timer = {
irq-phys = <irq> // for using physical timer
*** OR ***
irq-virt = <irq> // for using virtual timer
*** OR ***
irq-sphys = <irq> // for using secure physical timer

freq-override = 0 // optional parameter
}
}

Change-Id: I719ab4b6457b396456f3807c28d3d8386dc23b0e


# 14379871 04-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[msm][uart] Convert the MSM UART driver to a platform driver

Change-Id: I595d09def50fae7143b42f2d8dce00225b7505e4


# aab57fe2 09-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[generic-arm] Start using pdev and MDI in generic-arm platform

The generic-arm platform now reads the MDI data from the ramdisk and
initializes the pdev driver.

We also now initiize secondary CPUs based on information in the MDI.

Change-Id: I906dcce0e92aa2bb85cb06274cf7da41e4824823


# 7df375ca 03-Mar-2017 Mike Voydanoff <voydanoff@google.com>

[platform][generic-arm] Rename platform msm8998 to generic-arm

Currently generic-arm only supports msm8998, but we will use this
as a starting point for creating a generic ARM platform that contains
all our ARM64 drivers configureable via MDI

Change-Id: I35d3eabdcf19a07f02a2c4e6c40cc62293904413