Merge "Merge android11-5.4.134+ (dca02b1) into msm-5.4"

This commit is contained in:
qctecmdr 2021-10-06 20:43:21 -07:00 • committed by Gerrit - the friendly Code Review server
commit a0112284ff
3024 changed files with 37166 additions and 20838 deletions

View file

@ -42,8 +42,30 @@ Description:
modification of EVM-protected metadata and
disable all further modification of policy
Note that once a key has been loaded, it will no longer be
possible to enable metadata modification.
Echoing a value is additive, the new value is added to the
existing initialization flags.
For example, after::
echo 2 ><securityfs>/evm
another echo can be performed::
echo 1 ><securityfs>/evm
and the resulting value will be 3.
Note that once an HMAC key has been loaded, it will no longer
be possible to enable metadata modification. Signaling that an
HMAC key has been loaded will clear the corresponding flag.
For example, if the current value is 6 (2 and 4 set)::
echo 1 ><securityfs>/evm
will set the new value to 3 (4 cleared).
Loading an HMAC key is the only way to disable metadata
modification.
Until key loading has been signaled EVM can not create
or validate the 'security.evm' xattr, but returns

View file

@ -177,6 +177,12 @@ bitmap_flush_interval:number
The bitmap flush interval in milliseconds. The metadata buffers
are synchronized when this interval expires.
legacy_recalculate
Allow recalculating of volumes with HMAC keys. This is disabled by
default for security reasons - an attacker could modify the volume,
set recalc_sector to zero, and the kernel would not detect the
modification.
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
be changed when reloading the target (load an inactive table and swap the

View file

@ -576,6 +576,12 @@
loops can be debugged more effectively on production
systems.
clocksource.max_cswd_read_retries= [KNL]
Number of clocksource_watchdog() retries due to
external delays before the clock will be marked
unstable. Defaults to three retries, that is,
four attempts to read the clock under test.
clearcpuid=BITNUM[,BITNUM...] [X86]
Disable CPUID feature X for the kernel. See
arch/x86/include/asm/cpufeatures.h for the valid bit
@ -5467,6 +5473,10 @@
This option is obsoleted by the "nopv" option, which
has equivalent effect for XEN platform.
xen_no_vector_callback
[KNL,X86,XEN] Disable the vector callback for Xen
event channel interrupts.
xen_scrub_pages= [XEN]
Boolean option to control scrubbing pages before giving them back
to Xen, for use by other domains. Can be also changed at runtime

View file

@ -45,9 +45,14 @@ fffe8000 fffeffff DTCM mapping area for platforms with
fffe0000 fffe7fff ITCM mapping area for platforms with
ITCM mounted inside the CPU.
ffc00000 ffefffff Fixmap mapping region. Addresses provided
ffc80000 ffefffff Fixmap mapping region. Addresses provided
by fix_to_virt() will be located here.
ffc00000 ffc7ffff Guard region
ff800000 ffbfffff Permanent, fixed read-only mapping of the
firmware provided DT blob
fee00000 feffffff Mapping of PCI I/O space. This is a static
mapping within the vmalloc space.

View file

@ -461,13 +461,15 @@ or iterations will move the index to the first index in the range.
Each entry will only be returned once, no matter how many indices it
occupies.
Using xas_next() or xas_prev() with a multi-index xa_state
is not supported. Using either of these functions on a multi-index entry
will reveal sibling entries; these should be skipped over by the caller.
Using xas_next() or xas_prev() with a multi-index xa_state is not
supported. Using either of these functions on a multi-index entry will
reveal sibling entries; these should be skipped over by the caller.
Storing ``NULL`` into any index of a multi-index entry will set the entry
at every index to ``NULL`` and dissolve the tie. Splitting a multi-index
entry into entries occupying smaller ranges is not yet supported.
Storing ``NULL`` into any index of a multi-index entry will set the
entry at every index to ``NULL`` and dissolve the tie. A multi-index
entry can be split into entries occupying smaller ranges by calling
xas_split_alloc() without the xa_lock held, followed by taking the lock
and calling xas_split().
Functions and structures
========================

View file

@ -192,6 +192,12 @@ between the calls to start() and stop(), so holding a lock during that time
is a reasonable thing to do. The seq_file code will also avoid taking any
other locks while the iterator is active.
The iterater value returned by start() or next() is guaranteed to be
passed to a subsequent next() or stop() call. This allows resources
such as locks that were taken to be reliably released. There is *no*
guarantee that the iterator will be passed to show(), though in practice
it often will be.
Formatted output

View file

@ -232,12 +232,10 @@ Other notes:
is 4096.
- show() methods should return the number of bytes printed into the
buffer. This is the return value of scnprintf().
buffer.
- show() must not use snprintf() when formatting the value to be
returned to user space. If you can guarantee that an overflow
will never happen you can use sprintf() otherwise you must use
scnprintf().
- show() should only use sysfs_emit() or sysfs_emit_at() when formatting
the value to be returned to user space.
- store() should return the number of bytes used from the buffer. If the
entire buffer has been used, just return the count argument.

View file

@ -38,6 +38,7 @@ Sysfs entries
fan[1-12]_input RO fan tachometer speed in RPM
fan[1-12]_fault RO fan experienced fault
fan[1-6]_target RW desired fan speed in RPM
pwm[1-6]_enable RW regulator mode, 0=disabled, 1=manual mode, 2=rpm mode
pwm[1-6] RW fan target duty cycle (0-255)
pwm[1-6]_enable RW regulator mode, 0=disabled (duty cycle=0%), 1=manual mode, 2=rpm mode
pwm[1-6] RW read: current pwm duty cycle,
write: target pwm duty cycle (0-255)
================== === =======================================================

View file

@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/env perl
use strict;
use Text::Tabs;
use Getopt::Long;

View file

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python
# The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD
#
# Copyright (c) 2010 Rising Tide Systems

View file

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python
# add symbolic names to read_msr / write_msr in trace
# decode_msr msr-index.h < trace
import sys

View file

@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/env perl
# This is a POC (proof of concept or piece of crap, take your pick) for reading the
# text representation of trace output related to page allocation. It makes an attempt
# to extract some high-level information on what is going on. The accuracy of the parser

View file

@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/env perl
# This is a POC for reading the text representation of trace output related to
# page reclaim. It makes an attempt to extract some high-level information on
# what is going on. The accuracy of the parser may vary

View file

@ -250,14 +250,14 @@ Users can read via ``ioctl(SECCOMP_IOCTL_NOTIF_RECV)`` (or ``poll()``) on a
seccomp notification fd to receive a ``struct seccomp_notif``, which contains
five members: the input length of the structure, a unique-per-filter ``id``,
the ``pid`` of the task which triggered this request (which may be 0 if the
task is in a pid ns not visible from the listener's pid namespace), a ``flags``
member which for now only has ``SECCOMP_NOTIF_FLAG_SIGNALED``, representing
whether or not the notification is a result of a non-fatal signal, and the
``data`` passed to seccomp. Userspace can then make a decision based on this
information about what to do, and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a
response, indicating what should be returned to userspace. The ``id`` member of
``struct seccomp_notif_resp`` should be the same ``id`` as in ``struct
seccomp_notif``.
task is in a pid ns not visible from the listener's pid namespace). The
notification also contains the ``data`` passed to seccomp, and a filters flag.
The structure should be zeroed out prior to calling the ioctl.
Userspace can then make a decision based on this information about what to do,
and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a response, indicating what should be
returned to userspace. The ``id`` member of ``struct seccomp_notif_resp`` should
be the same ``id`` as in ``struct seccomp_notif``.
It is worth noting that ``struct seccomp_data`` contains the values of register
arguments to the syscall, but does not contain pointers to memory. The task's

View file

@ -172,6 +172,9 @@ is dependent on the CPU capability and the kernel configuration. The limit can
be retrieved using KVM_CAP_ARM_VM_IPA_SIZE of the KVM_CHECK_EXTENSION
ioctl() at run-time.
Creation of the VM will fail if the requested IPA size (whether it is
implicit or explicit) is unsupported on the host.
Please note that configuring the IPA size does not affect the capability
exposed by the guest CPUs in ID_AA64MMFR0_EL1[PARange]. It only affects
size of the address translated by the stage2 level (guest physical to
@ -1132,6 +1135,9 @@ field userspace_addr, which must point at user addressable memory for
the entire memory slot size. Any object may back this memory, including
anonymous memory, ordinary files, and hugetlbfs.
On architectures that support a form of address tagging, userspace_addr must
be an untagged address.
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
be identical. This allows large pages in the guest to be backed by large
pages in the host.

View file

@ -160,7 +160,7 @@ SLUB Debug output
Here is a sample of slub debug output::
====================================================================
BUG kmalloc-8: Redzone overwritten
BUG kmalloc-8: Right Redzone overwritten
--------------------------------------------------------------------
INFO: 0xc90f6d28-0xc90f6d2b. First byte 0x00 instead of 0xcc
@ -168,10 +168,10 @@ Here is a sample of slub debug output::
INFO: Object 0xc90f6d20 @offset=3360 fp=0xc90f6d58
INFO: Allocated in get_modalias+0x61/0xf5 age=53 cpu=1 pid=554
Bytes b4 0xc90f6d10: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ
Object 0xc90f6d20: 31 30 31 39 2e 30 30 35 1019.005
Redzone 0xc90f6d28: 00 cc cc cc .
Padding 0xc90f6d50: 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZ
Bytes b4 (0xc90f6d10): 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ
Object (0xc90f6d20): 31 30 31 39 2e 30 30 35 1019.005
Redzone (0xc90f6d28): 00 cc cc cc .
Padding (0xc90f6d50): 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZ
[<c010523d>] dump_trace+0x63/0x1eb
[<c01053df>] show_trace_log_lvl+0x1a/0x2f

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 86
SUBLEVEL = 134
EXTRAVERSION =
NAME = Kleptomaniac Octopus
@ -440,7 +440,7 @@ LEX = flex
YACC = bison
AWK = awk
INSTALLKERNEL := installkernel
DEPMOD = /sbin/depmod
DEPMOD = depmod
PERL = perl
PYTHON = python
PYTHON3 = python3
@ -492,7 +492,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
-Werror=implicit-function-declaration -Werror=implicit-int \
-Wno-format-security \
-Werror=return-type -Wno-format-security \
-std=gnu89
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_AFLAGS_KERNEL :=
@ -795,16 +795,16 @@ KBUILD_CFLAGS += $(call cc-disable-warning, undefined-optimized)
KBUILD_CFLAGS += -fno-builtin
else
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += -Wno-unused-but-set-variable
# Warn about unmarked fall-throughs in switch statement.
# Disabled for clang while comment to attribute conversion happens and
# https://github.com/ClangBuiltLinux/linux/issues/636 is discussed.
KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,)
endif
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
@ -1009,12 +1009,6 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
# change __FILE__ to the relative path from the srctree
KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
# ensure -fcf-protection is disabled when using retpoline as it is
# incompatible with -mindirect-branch=thunk-extern
ifdef CONFIG_RETPOLINE
KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
endif
include scripts/Makefile.kasan
include scripts/Makefile.extrawarn
include scripts/Makefile.ubsan
@ -1032,7 +1026,7 @@ LDFLAGS_vmlinux += $(call ld-option, -X,)
endif
ifeq ($(CONFIG_RELR),y)
LDFLAGS_vmlinux += --pack-dyn-relocs=relr
LDFLAGS_vmlinux += --pack-dyn-relocs=relr --use-android-relr-tags
endif
# make the checker run with the right architecture
@ -1279,11 +1273,19 @@ define filechk_utsrelease.h
endef
define filechk_version.h
echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
if [ $(SUBLEVEL) -gt 255 ]; then \
echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + 255); \
else \
echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
fi; \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + \
((c) > 255 ? 255 : (c)))'
endef
$(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0)
$(version_h): SUBLEVEL := $(if $(SUBLEVEL), $(SUBLEVEL), 0)
$(version_h): FORCE
$(call filechk,version.h)
$(Q)rm -f $(old_version_h)

View file

@ -1 +1 @@
LTS_5.4.86_8eb841225953
LTS_5.4.134_dca02b19eb93

File diff suppressed because it is too large Load diff

View file

@ -614,6 +614,7 @@
kmalloc_order_trace
kvfree
kvmalloc_node
memdup_user
mutex_trylock
sg_alloc_table
__sg_alloc_table_from_pages
@ -790,6 +791,7 @@
net_ratelimit
nf_conntrack_destroy
__num_online_cpus
__pskb_pull_tail
_raw_spin_trylock
sched_clock
skb_add_rx_frag
@ -857,6 +859,7 @@
proto_unregister
_raw_write_lock_bh
_raw_write_unlock_bh
security_sk_clone
security_sock_graft
sk_alloc
sock_init_data

View file

@ -28,6 +28,7 @@
arm64_const_caps_ready
__arm_smccc_hvc
__arm_smccc_smc
async_schedule_node
atomic_notifier_call_chain
atomic_notifier_chain_register
atomic_notifier_chain_unregister
@ -48,6 +49,9 @@
blkdev_get_by_path
blkdev_put
blk_lookup_devt
blk_pm_runtime_init
blk_queue_update_dma_alignment
blk_queue_update_dma_pad
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
@ -58,8 +62,12 @@
bpf_trace_run5
bpf_trace_run6
bpf_trace_run7
bpf_trace_run8
bpf_trace_run9
__break_lease
bsg_job_done
bsg_remove_queue
bsg_setup_queue
build_skb
bus_find_device
bus_for_each_dev
@ -149,6 +157,7 @@
clk_register_fixed_factor
clk_register_fixed_rate
clk_register_gate
clk_round_rate
clk_set_parent
clk_set_rate
clk_unprepare
@ -242,6 +251,8 @@
devfreq_recommended_opp
devfreq_register_opp_notifier
devfreq_remove_device
devfreq_resume_device
devfreq_suspend_device
devfreq_unregister_opp_notifier
devfreq_update_status
dev_fwnode
@ -349,6 +360,7 @@
dev_pm_opp_of_remove_table
dev_pm_opp_put
dev_pm_opp_put_regulators
dev_pm_opp_remove
dev_pm_opp_set_regulators
dev_printk
dev_queue_xmit
@ -432,6 +444,7 @@
downgrade_write
down_interruptible
down_read
down_read_trylock
down_trylock
down_write
d_path
@ -464,6 +477,7 @@
filp_close
filp_open
find_get_pid
find_last_bit
find_next_bit
find_next_zero_bit
find_vma
@ -716,8 +730,11 @@
kernel_restart
kernel_write
kern_path
keyslot_manager_create
keyslot_manager_create_passthrough
keyslot_manager_destroy
keyslot_manager_private
keyslot_manager_reprogram_all_keys
__kfifo_alloc
__kfifo_free
__kfifo_in
@ -741,6 +758,7 @@
kmemdup
kobject_add
kobject_create_and_add
kobject_del
kobject_get
kobject_init
kobject_init_and_add
@ -881,6 +899,7 @@
netlink_register_notifier
netlink_unicast
netlink_unregister_notifier
net_ratelimit
nla_memcpy
__nla_parse
nla_put
@ -892,6 +911,7 @@
notify_change
nr_cpu_ids
nr_irqs
ns_capable
nsecs_to_jiffies
ns_to_timespec
ns_to_timespec64
@ -965,6 +985,7 @@
of_usb_get_phy_mode
of_usb_host_tpl_support
oops_in_progress
override_creds
pagecache_get_page
panic
panic_notifier_list
@ -1164,6 +1185,7 @@
refcount_dec_checked
refcount_inc_checked
refcount_inc_not_zero_checked
refresh_frequency_limits
__refrigerator
regcache_cache_bypass
regcache_cache_only
@ -1198,6 +1220,7 @@
regmap_write
regulator_bulk_disable
regulator_bulk_enable
regulator_count_voltages
regulator_disable
regulator_enable
regulator_force_disable
@ -1208,6 +1231,7 @@
regulator_list_voltage_linear
regulator_map_voltage_linear
regulator_put
regulator_set_load
regulator_set_mode
regulator_set_voltage
release_firmware
@ -1230,6 +1254,7 @@
reset_control_put
reset_control_reset
return_address
revert_creds
rfkill_alloc
rfkill_blocked
rfkill_destroy
@ -1257,11 +1282,29 @@
schedule_timeout
schedule_timeout_uninterruptible
scnprintf
__scsi_add_device
scsi_add_host_with_dma
scsi_autopm_get_device
scsi_autopm_put_device
scsi_block_requests
scsi_block_when_processing_errors
scsi_change_queue_depth
scsi_device_get
__scsi_device_lookup_by_target
scsi_device_put
scsi_dma_map
scsi_dma_unmap
__scsi_execute
scsi_host_alloc
scsi_host_put
scsi_is_host_device
scsi_print_command
scsi_print_sense_hdr
scsi_remove_device
scsi_remove_host
scsi_report_bus_reset
scsi_scan_host
scsi_unblock_requests
sdev_prefix_printk
sdio_signal_irq
security_sock_graft
@ -1276,6 +1319,7 @@
setup_irq
sg_alloc_table
sg_alloc_table_from_pages
sg_copy_from_buffer
sg_copy_to_buffer
sget
sg_free_table
@ -1307,6 +1351,7 @@
skb_copy_datagram_iter
skb_copy_expand
skb_dequeue
skb_dequeue_tail
skb_free_datagram
skb_pull
skb_push
@ -1510,6 +1555,7 @@
sysfs_remove_bin_file
sysfs_remove_file_ns
sysfs_remove_group
sysfs_remove_groups
sysfs_remove_link
sysfs_streq
system_freezable_wq
@ -1557,6 +1603,7 @@
__tracepoint_suspend_resume
trace_print_array_seq
trace_print_flags_seq
trace_print_hex_seq
trace_print_symbols_seq
__trace_puts
trace_raw_output_prep
@ -1722,6 +1769,7 @@
__usecs_to_jiffies
user_path_at_empty
usleep_range
utf16s_to_utf8s
v4l2_ctrl_handler_free
v4l2_ctrl_handler_init_class
v4l2_ctrl_handler_setup

View file

@ -0,0 +1,71 @@
[abi_symbol_list]
# required by appnv.ko
__lock_page
sync_blockdev
read_cache_page
blkdev_put
blkdev_get_by_dev
# required by pt.ko
input_mt_sync_frame
mod_timer_pending
# required by pt_device_access.ko
device_remove_bin_file
request_firmware_direct
# required by msm_drm.ko
mipi_dsi_dcs_write_buffer
# required by earphonedrv.ko
gpiod_put
iio_read_channel_raw
# required by drv260x.ko
devm_led_classdev_unregister
regmap_multi_reg_write
# required by leds-gpio.ko
gpiod_set_consumer_name
# required by qpnp-smb5-main.ko
param_get_uint
round_jiffies_relative
emergency_restart
# required by fj_watchdog.ko
del_timer
panic
param_get_uint
param_set_int
platform_device_register
# required by sleep_time_log.ko
register_pm_notifier
rtc_time64_to_tm
unregister_pm_notifier
# required by aw_haptic.ko
devm_gpio_free
# required by fs18xx_dlkm.ko
snd_pcm_format_physical_width
snd_pcm_hw_constraint_mask64
# required by camera.ko
i2c_unregister_device
i2c_smbus_write_byte_data
i2c_smbus_read_byte_data
# required by semi_touch_driver.ko
vfs_llseek
# required by cdfingerfp.ko
wakeup_source_remove
wakeup_source_add
# required by drv2624-ram.ko
devm_led_classdev_unregister
# required by chipone-ts.ko
input_mt_sync_frame

View file

@ -1,5 +1,6 @@
[abi_symbol_list]
# commonly used symbols
add_timer
__alloc_disk_node
alloc_etherdev_mqs
__alloc_pages_nodemask
@ -13,6 +14,7 @@
blk_cleanup_queue
blk_queue_flag_set
blk_queue_write_cache
bpf_trace_run1
bpf_trace_run2
bpf_trace_run3
bt_err
@ -26,6 +28,7 @@
class_destroy
__close_fd
complete
complete_all
__const_udelay
consume_skb
cpu_hwcap_keys
@ -36,11 +39,14 @@
_ctype
delayed_work_timer_fn
del_gendisk
del_timer
del_timer_sync
destroy_workqueue
_dev_err
device_add_disk
device_create
device_init_wakeup
device_release_driver
device_unregister
_dev_info
__dev_kfree_skb_any
@ -62,8 +68,10 @@
event_triggers_call
fd_install
fget
find_next_bit
finish_wait
flush_work
flush_workqueue
fput
free_irq
free_netdev
@ -74,7 +82,12 @@
__get_free_pages
get_random_bytes
get_unused_fd_flags
hci_alloc_dev
__hci_cmd_sync
hci_free_dev
hci_recv_frame
hci_register_dev
hci_unregister_dev
hrtimer_cancel
hrtimer_init
hrtimer_start_range_ns
@ -107,7 +120,6 @@
kimage_voffset
__kmalloc
kmalloc_caches
kmalloc_order_trace
kmem_cache_alloc
kmem_cache_alloc_trace
kmem_cache_create
@ -120,6 +132,11 @@
kobject_put
kobject_uevent
kstrdup
kstrtoint
kstrtoll
kthread_create_on_node
kthread_should_stop
kthread_stop
ktime_get
ktime_get_mono_fast_ns
ktime_get_raw_ts64
@ -127,6 +144,8 @@
ktime_get_real_ts64
ktime_get_ts64
ktime_get_with_offset
kvfree
kvmalloc_node
__list_add_valid
__list_del_entry_valid
__local_bh_enable_ip
@ -135,6 +154,7 @@
memset
misc_deregister
misc_register
mod_timer
module_layout
module_put
__msecs_to_jiffies
@ -159,28 +179,42 @@
netif_tx_stop_all_queues
netif_tx_wake_queue
nf_conntrack_destroy
no_llseek
nonseekable_open
noop_llseek
nr_cpu_ids
__num_online_cpus
param_ops_bool
param_ops_int
passthru_features_check
pci_alloc_irq_vectors_affinity
pci_disable_device
pci_enable_device
pci_free_irq_vectors
pci_irq_vector
pci_read_config_byte
pci_read_config_dword
__pci_register_driver
pci_release_region
pci_request_region
pci_set_master
pci_set_power_state
pci_unregister_driver
perf_trace_buf_alloc
perf_trace_run_bpf_submit
physvirt_offset
platform_device_add
platform_device_alloc
platform_device_del
platform_device_put
platform_device_unregister
__platform_driver_register
platform_driver_unregister
platform_get_irq
platform_get_resource
pm_runtime_allow
pm_runtime_forbid
__pm_runtime_resume
__pm_runtime_suspend
__pm_runtime_use_autosuspend
preempt_schedule
@ -227,9 +261,13 @@
set_disk_ro
sg_init_one
sg_init_table
sg_next
skb_add_rx_frag
skb_dequeue
skb_page_frag_refill
skb_push
skb_put
skb_queue_tail
skb_to_sgvec
snd_card_register
snd_ctl_enum_info
@ -242,8 +280,10 @@
softnet_data
sort
sprintf
sscanf
__stack_chk_fail
__stack_chk_guard
strchr
strcmp
strcpy
strlcpy
@ -251,10 +291,12 @@
strncmp
strncpy
submit_bio
__sw_hweight32
sync_file_create
synchronize_irq
sysfs_create_group
sysfs_remove_group
sysfs_remove_link
system_wq
trace_define_field
trace_event_buffer_commit
@ -271,6 +313,19 @@
unregister_netdev
unregister_virtio_device
unregister_virtio_driver
usb_add_hcd
usb_create_shared_hcd
usb_disabled
usb_hcd_check_unlink_urb
usb_hcd_giveback_urb
usb_hcd_is_primary_hcd
usb_hcd_link_urb_to_ep
usb_hcd_poll_rh_status
usb_hcd_resume_root_hub
usb_hcd_unlink_urb_from_ep
usb_put_hcd
usb_remove_hcd
usleep_range
vabits_actual
virtio_check_driver_offered_feature
virtio_config_changed
@ -299,6 +354,7 @@
vring_transport_features
wait_for_completion
__wake_up
wake_up_process
__warn_printk
# required by btintel.ko
@ -321,13 +377,8 @@
gpiod_get_optional
gpiod_put
gpiod_set_value_cansleep
hci_alloc_dev
__hci_cmd_sync_ev
hci_free_dev
hci_recv_diag
hci_recv_frame
hci_register_dev
hci_unregister_dev
irq_modify_status
irq_set_irq_wake
of_irq_get_byname
@ -395,6 +446,12 @@
dma_fence_default_wait
dma_fence_free
# required by hci_vhci.ko
_copy_from_iter_full
skb_pull
skb_queue_head
skb_queue_purge
# required by incrementalfs.ko
bin2hex
__break_lease
@ -440,11 +497,13 @@
match_token
mutex_is_locked
notify_change
override_creds
pagecache_get_page
path_get
path_put
__put_cred
register_filesystem
revert_creds
seq_puts
set_anon_super
sget
@ -480,7 +539,6 @@
cfg80211_vendor_cmd_reply
dev_alloc_name
device_bind_driver
device_release_driver
dst_release
ether_setup
eth_mac_addr
@ -523,10 +581,7 @@
schedule_timeout_interruptible
skb_copy
skb_copy_expand
skb_dequeue
__skb_ext_put
skb_push
skb_queue_tail
skb_trim
skb_unlink
unregister_pernet_device
@ -570,10 +625,8 @@
capable
check_disk_change
__cpu_possible_mask
del_timer_sync
file_path
flush_signals
flush_workqueue
free_buffer_head
int_pow
invalidate_bdev
@ -585,19 +638,14 @@
kobject_del
kobject_get
kstrtobool
kstrtoll
kstrtouint
kstrtoull
kthread_create_on_node
kthread_parkme
kthread_should_park
kthread_should_stop
kthread_stop
mempool_create
mempool_destroy
mempool_kfree
mempool_kmalloc
mod_timer
__per_cpu_offset
percpu_ref_exit
percpu_ref_init
@ -623,11 +671,9 @@
synchronize_rcu
sysfs_create_link
sysfs_notify
sysfs_remove_link
unregister_reboot_notifier
unregister_sysctl_table
vfs_fsync
wake_up_process
# required by nd_virtio.ko
bio_chain
@ -653,13 +699,7 @@
unregister_netdevice_queue
# required by rtc-test.ko
add_timer
del_timer
devm_rtc_allocate_device
platform_device_add
platform_device_alloc
platform_device_del
platform_device_put
__rtc_register_device
rtc_time64_to_tm
rtc_tm_to_time64
@ -667,9 +707,7 @@
# required by snd-hda-codec-generic.ko
snd_ctl_boolean_stereo_info
strchr
strlcat
__sw_hweight32
# required by snd-hda-codec.ko
bpf_trace_run4
@ -680,13 +718,10 @@
get_device_system_crosststamp
kvasprintf
ns_to_timespec
pm_runtime_allow
__pm_runtime_disable
pm_runtime_enable
pm_runtime_forbid
pm_runtime_force_resume
pm_runtime_force_suspend
__pm_runtime_idle
pm_runtime_set_autosuspend_delay
__printk_ratelimit
regcache_mark_dirty
@ -732,9 +767,7 @@
dev_set_name
kasprintf
krealloc
kstrtoint
pm_runtime_get_if_in_use
__pm_runtime_resume
__pm_runtime_set_status
regcache_cache_only
regcache_sync
@ -747,11 +780,8 @@
snd_pcm_format_width
__sw_hweight64
timecounter_init
usleep_range
# required by snd-hda-intel.ko
bpf_trace_run1
complete_all
param_array_ops
param_get_int
param_ops_bint
@ -767,7 +797,6 @@
pci_read_config_word
pci_release_regions
pci_request_regions
pci_set_power_state
pci_write_config_byte
pci_write_config_dword
pci_write_config_word
@ -781,6 +810,23 @@
vfree
vmalloc
# required by usbip-core.ko
iov_iter_kvec
param_ops_ulong
print_hex_dump
sock_recvmsg
# required by vhci-hcd.ko
kernel_sendmsg
kernel_sock_shutdown
platform_bus
platform_device_add_data
sockfd_lookup
usb_create_hcd
usb_get_dev
usb_put_dev
usb_speed_string
# required by virtio-gpu.ko
dma_buf_get_uuid
dma_direct_map_sg
@ -867,12 +913,11 @@
drm_set_preferred_mode
drm_universal_plane_init
__get_task_comm
kvfree
kvmalloc_node
kmalloc_order_trace
memdup_user
sg_alloc_table
__sg_alloc_table_from_pages
sg_free_table
sg_next
sync_file_get_fence
__tracepoint_dma_fence_emit
ttm_bo_add_to_lru
@ -897,6 +942,8 @@
ttm_eu_fence_buffer_objects
ttm_eu_reserve_buffers
ttm_tt_init
vmalloc_to_page
vmemdup_user
ww_mutex_lock_interruptible
ww_mutex_unlock
@ -954,8 +1001,6 @@
hvc_remove
__hvc_resize
kill_fasync
no_llseek
nonseekable_open
pipe_lock
pipe_unlock
__refrigerator
@ -976,7 +1021,6 @@
iomem_resource
memparse
platform_device_register_full
sscanf
# required by virtio_net.ko
arch_bpf_jit_check_func
@ -996,7 +1040,6 @@
eth_prepare_mac_addr_change
ethtool_op_get_ts_info
eth_type_trans
find_next_bit
flow_keys_basic_dissector
__napi_alloc_skb
napi_consume_skb
@ -1009,7 +1052,6 @@
netif_schedule_queue
__netif_set_xps_queue
net_ratelimit
__num_online_cpus
_raw_spin_trylock
sched_clock
skb_coalesce_rx_frag
@ -1032,15 +1074,12 @@
# required by virtio_pci.ko
irq_set_affinity_hint
pci_alloc_irq_vectors_affinity
pci_find_capability
pci_find_ext_capability
pci_find_next_capability
pci_free_irq_vectors
pci_iomap
pci_iomap_range
pci_irq_get_affinity
pci_irq_vector
pci_release_selected_regions
pci_request_selected_regions
virtio_device_freeze
@ -1057,3 +1096,52 @@
ieee80211_tx_status_ext
ieee80211_wake_queues
init_dummy_netdev
# required by xhci-hcd.ko
cancel_delayed_work
dev_driver_string
devm_add_action
dma_direct_map_page
dma_direct_unmap_page
dma_pool_alloc
dma_pool_create
dma_pool_destroy
dma_pool_free
mod_delayed_work_on
param_ops_ullong
platform_device_add_properties
platform_device_add_resources
radix_tree_delete
radix_tree_insert
radix_tree_lookup
radix_tree_maybe_preload
schedule_timeout_uninterruptible
sg_pcopy_from_buffer
sg_pcopy_to_buffer
trace_print_symbols_seq
usb_amd_dev_put
usb_amd_pt_check_port
usb_amd_quirk_pll_disable
usb_amd_quirk_pll_enable
usb_asmedia_modifyflowcontrol
usb_disable_xhci_ports
usb_hcd_end_port_resume
usb_hc_died
usb_hcd_irq
usb_hcd_map_urb_for_dma
usb_hcd_start_port_resume
usb_hub_clear_tt_buffer
usb_root_hub_lost_power
usb_wakeup_notification
vsnprintf
wait_for_completion_timeout
# required by xhci-pci.ko
pci_d3cold_disable
pci_set_mwi
usb_amd_quirk_pll_check
usb_enable_intel_xhci_ports
usb_hcd_pci_pm_ops
usb_hcd_pci_probe
usb_hcd_pci_remove
usb_hcd_pci_shutdown

View file

@ -0,0 +1,8 @@
[abi_symbol_list]
# required by spi-hid.ko
hid_add_device
hid_allocate_device
hid_destroy_device
hid_input_report
hid_parse_report
spi_async

View file

@ -218,7 +218,9 @@
clk_prepare
clk_put
clk_register
clk_restore_context
clk_round_rate
clk_save_context
clk_set_parent
clk_set_rate
clk_sync_state

View file

@ -51,7 +51,6 @@
clk_unprepare
complete
complete_all
completion_done
component_add
component_del
__const_udelay
@ -82,7 +81,6 @@
device_get_match_data
device_init_wakeup
device_link_add
device_link_del
device_property_present
device_property_read_u32_array
device_remove_file
@ -93,7 +91,6 @@
device_wakeup_enable
_dev_info
devm_add_action
devm_clk_bulk_get
devm_clk_get
devm_clk_get_optional
devm_extcon_dev_allocate
@ -102,22 +99,18 @@
devm_gpiod_get
devm_gpiod_get_optional
devm_gpio_request_one
devm_ioremap
devm_ioremap_resource
devm_kasprintf
devm_kfree
devm_kmalloc
__devm_of_phy_provider_register
devm_phy_create
devm_phy_get
devm_pinctrl_get
devm_platform_ioremap_resource
__devm_regmap_init_i2c
__devm_regmap_init_mmio_clk
devm_regulator_get
devm_regulator_get_optional
devm_request_threaded_irq
__devm_reset_control_get
devm_reset_controller_register
devm_snd_dmaengine_pcm_register
devm_snd_soc_register_card
@ -125,8 +118,6 @@
devm_usb_get_phy
devm_usb_get_phy_by_phandle
_dev_notice
dev_pm_domain_attach_by_name
dev_pm_domain_detach
dev_pm_set_wake_irq
_dev_warn
disable_irq
@ -145,18 +136,15 @@
dma_direct_unmap_page
dma_direct_unmap_sg
dma_free_attrs
dma_get_slave_caps
dma_mmap_attrs
dma_release_channel
dma_request_chan
__dma_request_channel
dma_request_slave_channel
dma_set_coherent_mask
dma_set_mask
down
down_interruptible
down_write
drm_add_edid_modes
drm_atomic_helper_check
drm_atomic_helper_check_plane_state
drm_atomic_helper_cleanup_planes
@ -165,9 +153,6 @@
drm_atomic_helper_commit_modeset_disables
drm_atomic_helper_commit_modeset_enables
drm_atomic_helper_commit_planes
drm_atomic_helper_connector_destroy_state
drm_atomic_helper_connector_duplicate_state
drm_atomic_helper_connector_reset
__drm_atomic_helper_crtc_destroy_state
__drm_atomic_helper_crtc_duplicate_state
drm_atomic_helper_disable_plane
@ -178,14 +163,9 @@
drm_atomic_helper_set_config
drm_atomic_helper_update_plane
drm_atomic_helper_wait_for_vblanks
drm_bridge_add
drm_bridge_attach
drm_bridge_remove
drm_compat_ioctl
drm_connector_attach_encoder
drm_connector_cleanup
drm_connector_init
drm_connector_update_edid_property
drm_crtc_arm_vblank_event
drm_crtc_cleanup
drm_crtc_handle_vblank
@ -194,7 +174,6 @@
drm_crtc_vblank_get
drm_crtc_vblank_off
drm_crtc_vblank_on
drm_detect_hdmi_monitor
drm_dev_alloc
drm_dev_printk
drm_dev_put
@ -205,25 +184,17 @@
drm_display_mode_to_videomode
drm_encoder_cleanup
drm_encoder_init
drm_err
drm_fb_cma_get_gem_obj
drm_gem_fb_create
drm_gem_prime_fd_to_handle
drm_gem_prime_handle_to_fd
drm_get_edid
drm_get_format_name
drm_hdmi_avi_infoframe_from_display_mode
drm_hdmi_vendor_infoframe_from_display_mode
drm_helper_hpd_irq_event
drm_helper_probe_single_connector_modes
drm_ioctl
drm_match_cea_mode
drm_mode_config_helper_resume
drm_mode_config_helper_suspend
drm_mode_create
drm_mode_probed_add
drm_mode_vrefresh
drm_of_find_possible_crtcs
drm_open
drm_panel_add
drm_panel_detach
@ -273,10 +244,8 @@
gpiod_direction_input
gpiod_direction_output_raw
gpiod_get_raw_value
gpiod_get_raw_value_cansleep
gpiod_get_value
gpiod_set_raw_value
gpiod_set_raw_value_cansleep
gpiod_set_value
gpiod_set_value_cansleep
gpiod_to_irq
@ -284,9 +253,6 @@
gpio_request
gpio_to_desc
handle_level_irq
hdmi_audio_infoframe_init
hdmi_vendor_infoframe_pack
i2c_add_adapter
i2c_del_adapter
i2c_del_driver
i2c_register_driver
@ -382,8 +348,6 @@
of_find_backlight_by_node
of_find_compatible_node
of_find_device_by_node
of_find_i2c_device_by_node
of_find_matching_node_and_match
of_find_node_by_name
of_find_property
of_fwnode_ops
@ -531,42 +495,18 @@
sg_init_one
sg_init_table
sg_next
snd_ctl_boolean_mono_info
snd_dma_alloc_pages
snd_dmaengine_pcm_prepare_slave_config
snd_dma_free_pages
snd_pcm_format_physical_width
snd_pcm_format_width
snd_pcm_hw_constraint_integer
snd_pcm_hw_constraint_list
snd_pcm_lib_ioctl
snd_pcm_period_elapsed
snd_soc_add_component_controls
snd_soc_card_jack_new
snd_soc_component_read32
snd_soc_component_update_bits
snd_soc_component_write
snd_soc_dai_set_fmt
snd_soc_dai_set_sysclk
snd_soc_dai_set_tdm_slot
snd_soc_dapm_add_routes
snd_soc_dapm_get_volsw
snd_soc_dapm_ignore_suspend
snd_soc_dapm_new_controls
snd_soc_dapm_put_volsw
snd_soc_get_enum_double
snd_soc_get_volsw
snd_soc_info_enum_double
snd_soc_info_volsw
snd_soc_jack_add_gpios
snd_soc_jack_report
snd_soc_of_parse_audio_routing
snd_soc_of_parse_card_name
snd_soc_params_to_bclk
snd_soc_pm_ops
snd_soc_put_enum_double
snd_soc_put_volsw
snd_soc_rtdcom_lookup
snd_soc_set_runtime_hwparams
snprintf
sprintf
@ -689,29 +629,6 @@
typec_switch_register
typec_switch_unregister
# required by cdns_mhdp_drmcore.ko
drm_atomic_get_crtc_state
drm_dbg
drm_default_rgb_quant_range
drm_dev_dbg
drm_do_get_edid
drm_dp_aux_register
drm_dp_aux_unregister
drm_dp_bw_code_to_link_rate
drm_dp_dpcd_read
drm_dp_link_rate_to_bw_code
drm_hdmi_avi_infoframe_colorspace
drm_hdmi_avi_infoframe_quant_range
drm_hdmi_infoframe_set_hdr_metadata
drm_mode_create_hdmi_colorspace_property
drm_mode_is_420_also
drm_mode_is_420_only
drm_object_attach_property
hdmi_audio_infoframe_pack
hdmi_avi_infoframe_check
hdmi_avi_infoframe_pack
hdmi_drm_infoframe_pack
# required by clk-imx8mp.ko
clk_hw_register_divider
clk_hw_register_fixed_factor
@ -747,6 +664,7 @@
regulator_put
# required by cqhci.ko
devm_ioremap
dmam_alloc_attrs
dmam_free_coherent
mmc_cqe_request_done
@ -754,6 +672,7 @@
# required by cyttsp5.ko
kobject_del
mod_timer_pending
unregister_pm_notifier
# required by cyttsp5_device_access.ko
device_remove_bin_file
@ -766,43 +685,13 @@
thermal_cooling_device_unregister
thermal_of_cooling_device_register
# required by dw-hdmi-cec.ko
cec_allocate_adapter
cec_delete_adapter
cec_notifier_cec_adap_register
cec_notifier_cec_adap_unregister
cec_received_msg_ts
cec_register_adapter
cec_transmit_attempt_done_ts
cec_unregister_adapter
devm_remove_action
# required by dw-hdmi.ko
cec_fill_conn_info_from_drm
cec_notifier_conn_register
cec_notifier_conn_unregister
cec_notifier_set_phys_addr
cec_notifier_set_phys_addr_from_edid
drm_connector_init_with_ddc
drm_detect_monitor_audio
drm_scdc_read
drm_scdc_set_high_tmds_clock_ratio
drm_scdc_set_scrambling
drm_scdc_write
i2c_put_adapter
of_get_i2c_adapter_by_node
# required by dw_hdmi-imx.ko
devm_kmemdup
devm_phy_optional_get
drm_of_encoder_active_endpoint
# required by dwc3.ko
bpf_trace_run4
clk_bulk_disable
device_property_read_string
device_property_read_u8_array
devm_clk_bulk_get_all
devm_phy_get
devm_reset_control_array_get
extcon_find_edev_by_node
extcon_get_extcon_dev
@ -853,6 +742,7 @@
# required by galcore.ko
anon_inode_getfd
cache_line_size
__devm_reset_control_get
dev_pm_opp_add
dev_pm_opp_remove
dma_buf_export
@ -939,6 +829,10 @@
i2c_add_numbered_adapter
i2c_generic_scl_recovery
i2c_recover_bus
of_find_matching_node_and_match
# required by i2c-rpmsg-imx.ko
i2c_add_adapter
# required by icx_nvp_emmc.ko
blkdev_get_by_path
@ -953,13 +847,20 @@
dev_pm_opp_set_supported_hw
nvmem_cell_read_u32
# required by imx-cxd3778gf.ko
snd_soc_jack_report
# required by imx-i2s-rpmsg.ko
unregister_rpmsg_driver
# required by imx-lcdif-crtc.ko
drm_property_destroy
# required by imx-lcdifv3-core.ko
devm_clk_bulk_get
# required by imx-lcdifv3-crtc.ko
drm_match_cea_mode
drm_mode_equal
drm_mode_find_dmt
@ -969,22 +870,29 @@
mbox_chan_txdone
# required by imx-pcm-dma-common.ko
dma_get_slave_caps
snd_dma_alloc_pages
snd_dmaengine_pcm_close_release_chan
snd_dmaengine_pcm_get_chan
snd_dmaengine_pcm_open
snd_dmaengine_pcm_open_request_chan
snd_dmaengine_pcm_pointer
snd_dmaengine_pcm_prepare_slave_config
snd_dmaengine_pcm_set_config_from_dai_data
snd_dmaengine_pcm_trigger
snd_dma_free_pages
snd_hwparams_to_dma_slave_config
snd_pcm_format_physical_width
# required by imx-pcm-rpmsg.ko
snd_pcm_period_elapsed
snd_soc_lookup_component
# required by imx-sdma.ko
dma_async_device_register
dma_async_device_unregister
dma_async_tx_descriptor_init
__dma_request_channel
gen_pool_dma_alloc
gen_pool_free_owner
of_dma_controller_register
@ -1072,6 +980,7 @@
media_device_init
__media_device_register
media_device_unregister
of_find_i2c_device_by_node
v4l2_async_notifier_register
v4l2_device_register_subdev
v4l2_device_register_subdev_nodes
@ -1080,6 +989,7 @@
regulator_set_voltage
# required by imx8m_pm_domains.ko
devm_regulator_get_optional
of_clk_get
of_genpd_add_provider_simple
of_genpd_add_subdomain
@ -1108,7 +1018,23 @@
component_master_del
component_match_add_release
component_unbind_all
drm_client_buffer_vmap
drm_client_framebuffer_create
drm_client_framebuffer_delete
drm_client_init
drm_client_modeset_commit
drm_client_modeset_commit_force
drm_client_modeset_probe
drm_client_register
drm_client_release
drm_client_rotation
drm_connector_list_iter_begin
drm_connector_list_iter_end
drm_connector_list_iter_next
drm_connector_unregister
drm_dbg
drm_dev_dbg
drm_format_info
drm_gem_cma_dumb_create
drm_gem_cma_free_object
drm_gem_cma_mmap
@ -1118,13 +1044,17 @@
drm_gem_cma_prime_vmap
drm_gem_cma_prime_vunmap
drm_gem_cma_vm_ops
drm_helper_disable_unused_functions
drm_kms_helper_poll_fini
drm_kms_helper_poll_init
drm_mode_config_cleanup
drm_mode_config_init
drm_mode_config_reset
drm_mode_legacy_fb_format
drm_of_component_match_add
drm_of_find_possible_crtcs
drm_vblank_init
memblock_free
# required by incrementalfs.ko
bin2hex
@ -1208,6 +1138,7 @@
device_initialize
# required by irq-imx-irqsteer.ko
dev_pm_domain_attach_by_name
__irq_domain_add
irq_domain_xlate_onecell
irq_of_parse_and_map
@ -1250,6 +1181,9 @@
devm_nvmem_register
# required by panel-simple.ko
drm_add_edid_modes
drm_connector_update_edid_property
drm_get_edid
drm_mode_duplicate
drm_mode_set_name
of_find_i2c_adapter_by_node
@ -1287,23 +1221,6 @@
regmap_del_irq_chip
regmap_irq_get_domain
# required by pci-imx6.ko
dw_pcie_ep_init
dw_pcie_ep_raise_legacy_irq
dw_pcie_ep_raise_msi_irq
dw_pcie_ep_raise_msix_irq
dw_pcie_ep_reset_bar
dw_pcie_host_init
dw_pcie_link_up
dw_pcie_msi_init
dw_pcie_read_dbi
dw_pcie_setup_rc
dw_pcie_wait_for_link
dw_pcie_write_dbi
pci_msi_enabled
phy_calibrate
regulator_is_enabled
# required by phy-fsl-imx8mq-usb.ko
power_supply_get_by_phandle
power_supply_get_property
@ -1340,6 +1257,8 @@
pwmchip_remove
# required by qca9377_bt_rfkill.ko
gpiod_get_raw_value_cansleep
gpiod_set_raw_value_cansleep
rfkill_alloc
rfkill_destroy
rfkill_init_sw_state
@ -1353,7 +1272,6 @@
rtc_update_irq
# required by sdhci-esdhc-imx.ko
__mmc_claim_host
mmc_gpiod_request_cd
mmc_gpiod_request_ro
mmc_gpio_get_cd
@ -1361,7 +1279,6 @@
mmc_gpio_set_cd_wake
mmc_of_parse
mmc_of_parse_voltage
mmc_release_host
mmc_retune_timer_stop
mmc_send_tuning
sdhci_add_host
@ -1381,6 +1298,12 @@
# required by sec-dsim.ko
bsearch
drm_atomic_helper_connector_destroy_state
drm_atomic_helper_connector_duplicate_state
drm_atomic_helper_connector_reset
drm_connector_attach_encoder
drm_connector_init
drm_helper_probe_single_connector_modes
drm_panel_attach
drm_panel_disable
drm_panel_enable
@ -1399,61 +1322,45 @@
# required by snd-soc-cxd3778gf.ko
irq_set_irq_type
param_get_int
snd_soc_add_component_controls
snd_soc_info_volsw
snd_soc_register_component
snd_soc_unregister_component
# required by snd-soc-fsl-dsp.ko
device_link_del
dev_pm_domain_attach_by_id
dev_pm_domain_detach
of_count_phandle_with_args
pm_system_wakeup
snd_soc_rtdcom_lookup
sysfs_streq
vfs_llseek
# required by snd-soc-fsl-easrc.ko
gcd
snd_pcm_format_big_endian
snd_pcm_format_linear
snd_pcm_format_unsigned
snd_soc_component_read
snd_soc_dpcm_get_substream
snd_soc_info_xr_sx
# required by snd-soc-fsl-micfil.ko
snd_soc_component_update_bits
snd_soc_get_enum_double
snd_soc_get_volsw_sx
snd_soc_info_volsw_sx
snd_soc_put_enum_double
snd_soc_put_volsw_sx
# required by snd-soc-fsl-sai.ko
snd_pcm_hw_constraint_step
__sw_hweight8
# required by snd-soc-hdmi-codec.ko
snd_ctl_add
snd_ctl_new1
snd_pcm_add_chmap_ctls
snd_pcm_create_iec958_consumer_hw_params
snd_pcm_hw_constraint_eld
# required by snd-soc-imx-wm8960.ko
of_parse_phandle_with_fixed_args
snd_soc_dai_set_pll
snd_soc_dapm_disable_pin
snd_soc_dapm_enable_pin
# required by snd-soc-lif-md6000-rme.ko
driver_unregister
__spi_register_driver
spi_sync
# required by snd-soc-rpmsg-wm8960.ko
__devm_regmap_init
# required by snd-soc-simple-card-utils.ko
devm_get_clk_from_child
devm_kvasprintf
snd_soc_dapm_get_pin_switch
snd_soc_dapm_info_pin_switch
snd_soc_dapm_put_pin_switch
snd_soc_jack_add_gpios
snd_soc_of_parse_audio_simple_widgets
snd_soc_of_parse_daifmt
@ -1651,6 +1558,7 @@
cfg80211_unlink_bss
cfg80211_vendor_cmd_reply
complete_and_exit
completion_done
consume_skb
cpu_topology
crypto_ahash_digest

View file

@ -90,16 +90,22 @@ libs-y += arch/arc/lib/ $(LIBGCC)
boot := arch/arc/boot
#default target for make without any arguments.
KBUILD_IMAGE := $(boot)/bootpImage
all: bootpImage
bootpImage: vmlinux
boot_targets += uImage uImage.bin uImage.gz
boot_targets := uImage.bin uImage.gz uImage.lzma
PHONY += $(boot_targets)
$(boot_targets): vmlinux
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
uimage-default-y := uImage.bin
uimage-default-$(CONFIG_KERNEL_GZIP) := uImage.gz
uimage-default-$(CONFIG_KERNEL_LZMA) := uImage.lzma
PHONY += uImage
uImage: $(uimage-default-y)
@ln -sf $< $(boot)/uImage
@$(kecho) ' Image $(boot)/uImage is ready'
CLEAN_FILES += $(boot)/uImage
archclean:
$(Q)$(MAKE) $(clean)=$(boot)

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
targets := vmlinux.bin vmlinux.bin.gz uImage
targets := vmlinux.bin vmlinux.bin.gz
# uImage build relies on mkimage being availble on your host for ARC target
# You will need to build u-boot for ARC, rename mkimage to arc-elf32-mkimage
@ -13,11 +13,6 @@ LINUX_START_TEXT = $$(readelf -h vmlinux | \
UIMAGE_LOADADDR = $(CONFIG_LINUX_LINK_BASE)
UIMAGE_ENTRYADDR = $(LINUX_START_TEXT)
suffix-y := bin
suffix-$(CONFIG_KERNEL_GZIP) := gz
suffix-$(CONFIG_KERNEL_LZMA) := lzma
targets += uImage
targets += uImage.bin
targets += uImage.gz
targets += uImage.lzma
@ -42,7 +37,3 @@ $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE
$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE
$(call if_changed,uimage,lzma)
$(obj)/uImage: $(obj)/uImage.$(suffix-y)
@ln -sf $(notdir $<) $@
@echo ' Image $@ is ready'

View file

@ -7,9 +7,22 @@
#include <uapi/asm/page.h>
#ifdef CONFIG_ARC_HAS_PAE40
#define MAX_POSSIBLE_PHYSMEM_BITS 40
#define PAGE_MASK_PHYS (0xff00000000ull | PAGE_MASK)
#else /* CONFIG_ARC_HAS_PAE40 */
#define MAX_POSSIBLE_PHYSMEM_BITS 32
#define PAGE_MASK_PHYS PAGE_MASK
#endif /* CONFIG_ARC_HAS_PAE40 */
#ifndef __ASSEMBLY__
#define clear_page(paddr) memset((paddr), 0, PAGE_SIZE)
#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
#define copy_page(to, from) memcpy((to), (from), PAGE_SIZE)
struct vm_area_struct;

View file

@ -108,8 +108,8 @@
#define ___DEF (_PAGE_PRESENT | _PAGE_CACHEABLE)
/* Set of bits not changed in pte_modify */
#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL)
#define _PAGE_CHG_MASK (PAGE_MASK_PHYS | _PAGE_ACCESSED | _PAGE_DIRTY | \
_PAGE_SPECIAL)
/* More Abbrevaited helpers */
#define PAGE_U_NONE __pgprot(___DEF)
#define PAGE_U_R __pgprot(___DEF | _PAGE_READ)
@ -133,13 +133,7 @@
#define PTE_BITS_IN_PD0 (_PAGE_GLOBAL | _PAGE_PRESENT | _PAGE_HW_SZ)
#define PTE_BITS_RWX (_PAGE_EXECUTE | _PAGE_WRITE | _PAGE_READ)
#ifdef CONFIG_ARC_HAS_PAE40
#define PTE_BITS_NON_RWX_IN_PD1 (0xff00000000 | PAGE_MASK | _PAGE_CACHEABLE)
#define MAX_POSSIBLE_PHYSMEM_BITS 40
#else
#define PTE_BITS_NON_RWX_IN_PD1 (PAGE_MASK | _PAGE_CACHEABLE)
#define MAX_POSSIBLE_PHYSMEM_BITS 32
#endif
#define PTE_BITS_NON_RWX_IN_PD1 (PAGE_MASK_PHYS | _PAGE_CACHEABLE)
/**************************************************************************
* Mapping of vm_flags (Generic VM) to PTE flags (arch specific)

View file

@ -33,5 +33,4 @@
#define PAGE_MASK (~(PAGE_SIZE-1))
#endif /* _UAPI__ASM_ARC_PAGE_H */

View file

@ -18,6 +18,7 @@
*/
struct sigcontext {
struct user_regs_struct regs;
struct user_regs_arcv2 v2abi;
};
#endif /* _ASM_ARC_SIGCONTEXT_H */

View file

@ -165,7 +165,7 @@ tracesys:
; Do the Sys Call as we normally would.
; Validate the Sys Call number
cmp r8, NR_syscalls
cmp r8, NR_syscalls - 1
mov.hi r0, -ENOSYS
bhi tracesys_exit
@ -243,7 +243,7 @@ ENTRY(EV_Trap)
;============ Normal syscall case
; syscall num shd not exceed the total system calls avail
cmp r8, NR_syscalls
cmp r8, NR_syscalls - 1
mov.hi r0, -ENOSYS
bhi .Lret_from_system_call

View file

@ -61,6 +61,41 @@ struct rt_sigframe {
unsigned int sigret_magic;
};
static int save_arcv2_regs(struct sigcontext *mctx, struct pt_regs *regs)
{
int err = 0;
#ifndef CONFIG_ISA_ARCOMPACT
struct user_regs_arcv2 v2abi;
v2abi.r30 = regs->r30;
#ifdef CONFIG_ARC_HAS_ACCL_REGS
v2abi.r58 = regs->r58;
v2abi.r59 = regs->r59;
#else
v2abi.r58 = v2abi.r59 = 0;
#endif
err = __copy_to_user(&mctx->v2abi, &v2abi, sizeof(v2abi));
#endif
return err;
}
static int restore_arcv2_regs(struct sigcontext *mctx, struct pt_regs *regs)
{
int err = 0;
#ifndef CONFIG_ISA_ARCOMPACT
struct user_regs_arcv2 v2abi;
err = __copy_from_user(&v2abi, &mctx->v2abi, sizeof(v2abi));
regs->r30 = v2abi.r30;
#ifdef CONFIG_ARC_HAS_ACCL_REGS
regs->r58 = v2abi.r58;
regs->r59 = v2abi.r59;
#endif
#endif
return err;
}
static int
stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
sigset_t *set)
@ -94,9 +129,13 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
err = __copy_to_user(&(sf->uc.uc_mcontext.regs.scratch), &uregs.scratch,
sizeof(sf->uc.uc_mcontext.regs.scratch));
if (is_isa_arcv2())
err |= save_arcv2_regs(&(sf->uc.uc_mcontext), regs);
err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));
return err;
return err ? -EFAULT : 0;
}
static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
@ -109,8 +148,12 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
err |= __copy_from_user(&uregs.scratch,
&(sf->uc.uc_mcontext.regs.scratch),
sizeof(sf->uc.uc_mcontext.regs.scratch));
if (is_isa_arcv2())
err |= restore_arcv2_regs(&(sf->uc.uc_mcontext), regs);
if (err)
return err;
return -EFAULT;
set_current_blocked(&set);
regs->bta = uregs.scratch.bta;

View file

@ -53,9 +53,10 @@ EXPORT_SYMBOL(ioremap);
void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size,
unsigned long flags)
{
unsigned int off;
unsigned long vaddr;
struct vm_struct *area;
phys_addr_t off, end;
phys_addr_t end;
pgprot_t prot = __pgprot(flags);
/* Don't allow wraparound, zero size */
@ -72,7 +73,7 @@ void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size,
/* Mappings have to be page-aligned */
off = paddr & ~PAGE_MASK;
paddr &= PAGE_MASK;
paddr &= PAGE_MASK_PHYS;
size = PAGE_ALIGN(end + 1) - paddr;
/*

View file

@ -597,7 +597,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned,
pte_t *ptep)
{
unsigned long vaddr = vaddr_unaligned & PAGE_MASK;
phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK;
phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK_PHYS;
struct page *page = pfn_to_page(pte_pfn(*ptep));
create_tlb(vma, vaddr, ptep);

View file

@ -122,8 +122,8 @@ asflags-y := -DZIMAGE
# Supply kernel BSS size to the decompressor via a linker symbol.
KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \
sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \
-e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) )
sed -n -e 's/^\([^ ]*\) [ABD] __bss_start$$/-0x\1/p' \
-e 's/^\([^ ]*\) [ABD] __bss_stop$$/+0x\1/p') )) )
LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
# Supply ZRELADDR to the decompressor via a linker symbol.
ifneq ($(CONFIG_AUTO_ZRELADDR),y)

View file

@ -1142,9 +1142,9 @@ __armv4_mmu_cache_off:
__armv7_mmu_cache_off:
mrc p15, 0, r0, c1, c0
#ifdef CONFIG_MMU
bic r0, r0, #0x000d
bic r0, r0, #0x0005
#else
bic r0, r0, #0x000c
bic r0, r0, #0x0004
#endif
mcr p15, 0, r0, c1, c0 @ turn MMU and cache off
mov r12, lr

View file

@ -516,7 +516,7 @@ status = "okay";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;
ti,pindir-d0-out-d1-in = <1>;
ti,pindir-d0-out-d1-in;
/* WLS1271 WiFi */
wlcore: wlcore@1 {
compatible = "ti,wl1271";

View file

@ -40,6 +40,9 @@
ethernet1 = &cpsw_emac1;
spi0 = &spi0;
spi1 = &spi1;
mmc0 = &mmc1;
mmc1 = &mmc2;
mmc2 = &mmc3;
};
cpus {

View file

@ -848,7 +848,7 @@
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi0_pins_default>;
pinctrl-1 = <&spi0_pins_sleep>;
ti,pindir-d0-out-d1-in = <1>;
ti,pindir-d0-out-d1-in;
};
&spi1 {
@ -856,7 +856,7 @@
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi1_pins_default>;
pinctrl-1 = <&spi1_pins_sleep>;
ti,pindir-d0-out-d1-in = <1>;
ti,pindir-d0-out-d1-in;
};
&usb2_phy1 {

View file

@ -236,6 +236,7 @@
status = "okay";
compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22";
reg = <1>;
marvell,reg-init = <3 18 0 0x4985>;
/* irq is connected to &pcawan pin 7 */
};

View file

@ -70,6 +70,9 @@
system-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&helios_system_led_pins>;
status-led {
label = "helios4:green:status";
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
@ -86,6 +89,9 @@
io-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&helios_io_led_pins>;
sata1-led {
label = "helios4:green:ata1";
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
@ -121,11 +127,15 @@
fan1: j10-pwm {
compatible = "pwm-fan";
pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
pinctrl-names = "default";
pinctrl-0 = <&helios_fan1_pins>;
};
fan2: j17-pwm {
compatible = "pwm-fan";
pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
pinctrl-names = "default";
pinctrl-0 = <&helios_fan2_pins>;
};
usb2_phy: usb2-phy {
@ -291,16 +301,22 @@
"mpp39", "mpp40";
marvell,function = "sd0";
};
helios_led_pins: helios-led-pins {
marvell,pins = "mpp24", "mpp25",
"mpp49", "mpp50",
helios_system_led_pins: helios-system-led-pins {
marvell,pins = "mpp24", "mpp25";
marvell,function = "gpio";
};
helios_io_led_pins: helios-io-led-pins {
marvell,pins = "mpp49", "mpp50",
"mpp52", "mpp53",
"mpp54";
marvell,function = "gpio";
};
helios_fan_pins: helios-fan-pins {
marvell,pins = "mpp41", "mpp43",
"mpp48", "mpp55";
helios_fan1_pins: helios_fan1_pins {
marvell,pins = "mpp41", "mpp43";
marvell,function = "gpio";
};
helios_fan2_pins: helios_fan2_pins {
marvell,pins = "mpp48", "mpp55";
marvell,function = "gpio";
};
microsom_spi1_cs_pins: spi1-cs-pins {

View file

@ -371,6 +371,7 @@
compatible = "aspeed,ast2400-ibt-bmc";
reg = <0xc0 0x18>;
interrupts = <8>;
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
status = "disabled";
};
};

View file

@ -464,6 +464,7 @@
compatible = "aspeed,ast2500-ibt-bmc";
reg = <0xc0 0x18>;
interrupts = <8>;
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
status = "disabled";
};
};

View file

@ -44,8 +44,8 @@
pinctrl-0 = <&pinctrl_macb0_default>;
phy-mode = "rmii";
ethernet-phy@0 {
reg = <0x0>;
ethernet-phy@7 {
reg = <0x7>;
interrupt-parent = <&pioA>;
interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";

View file

@ -494,27 +494,27 @@
<0x1811b408 0x004>,
<0x180293a0 0x01c>;
reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "spi_lr_fullness_reached",
<GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mspi_done",
"mspi_halted",
"spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overhead",
"mspi_done",
"mspi_halted";
"spi_lr_overread";
clocks = <&iprocmed>;
clock-names = "iprocmed";
num-cs = <2>;
#address-cells = <1>;
#size-cells = <0>;
spi_nor: spi-nor@0 {
spi_nor: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <20000000>;

View file

@ -75,7 +75,7 @@
s2mps14_pmic@66 {
compatible = "samsung,s2mps14-pmic";
interrupt-parent = <&gpx3>;
interrupts = <5 IRQ_TYPE_NONE>;
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&s2mps14_irq>;
reg = <0x66>;

View file

@ -195,7 +195,7 @@
s2mps14_pmic@66 {
compatible = "samsung,s2mps14-pmic";
interrupt-parent = <&gpx0>;
interrupts = <7 IRQ_TYPE_NONE>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
reg = <0x66>;
wakeup-source;

View file

@ -260,7 +260,7 @@
s2mps14_pmic@66 {
compatible = "samsung,s2mps14-pmic";
interrupt-parent = <&gpx0>;
interrupts = <7 IRQ_TYPE_NONE>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
reg = <0x66>;
wakeup-source;

View file

@ -139,7 +139,7 @@
max77693@66 {
compatible = "maxim,max77693";
interrupt-parent = <&gpx1>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&max77693_irq>;
reg = <0x66>;
@ -187,7 +187,7 @@
max77693-fuel-gauge@36 {
compatible = "maxim,max17047";
interrupt-parent = <&gpx2>;
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&max77693_fuel_irq>;
reg = <0x36>;
@ -588,7 +588,7 @@
max77686: max77686_pmic@9 {
compatible = "maxim,max77686";
interrupt-parent = <&gpx0>;
interrupts = <7 IRQ_TYPE_NONE>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
pinctrl-0 = <&max77686_irq>;
pinctrl-names = "default";
reg = <0x09>;

View file

@ -274,7 +274,7 @@
max77686: pmic@9 {
compatible = "maxim,max77686";
interrupt-parent = <&gpx3>;
interrupts = <2 IRQ_TYPE_NONE>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&max77686_irq>;
reg = <0x09>;

View file

@ -133,7 +133,7 @@
compatible = "maxim,max77686";
reg = <0x09>;
interrupt-parent = <&gpx3>;
interrupts = <2 IRQ_TYPE_NONE>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&max77686_irq>;
wakeup-source;

View file

@ -292,7 +292,7 @@
max77686: max77686@9 {
compatible = "maxim,max77686";
interrupt-parent = <&gpx3>;
interrupts = <2 IRQ_TYPE_NONE>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&max77686_irq>;
wakeup-source;

View file

@ -108,7 +108,7 @@
compatible = "samsung,s5m8767-pmic";
reg = <0x66>;
interrupt-parent = <&gpx3>;
interrupts = <2 IRQ_TYPE_NONE>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
wakeup-source;

View file

@ -349,7 +349,7 @@
reg = <0x66>;
interrupt-parent = <&gpx3>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&s2mps11_irq>;

View file

@ -141,7 +141,7 @@
samsung,s2mps11-acokb-ground;
interrupt-parent = <&gpx0>;
interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&s2mps11_irq>;

View file

@ -22,7 +22,7 @@
label = "blue:heartbeat";
pwms = <&pwm 2 2000000 0>;
pwm-names = "pwm2";
max_brightness = <255>;
max-brightness = <255>;
linux,default-trigger = "heartbeat";
};
};

View file

@ -24,7 +24,7 @@
label = "blue:heartbeat";
pwms = <&pwm 2 2000000 0>;
pwm-names = "pwm2";
max_brightness = <255>;
max-brightness = <255>;
linux,default-trigger = "heartbeat";
};
};

View file

@ -22,7 +22,7 @@
* Green LED is much brighter than the others
* so limit its max brightness
*/
max_brightness = <127>;
max-brightness = <127>;
linux,default-trigger = "mmc0";
};
@ -30,7 +30,7 @@
label = "blue:heartbeat";
pwms = <&pwm 2 2000000 0>;
pwm-names = "pwm2";
max_brightness = <255>;
max-brightness = <255>;
linux,default-trigger = "heartbeat";
};
};

View file

@ -125,18 +125,6 @@
};
};
ethernet@60000000 {
status = "okay";
ethernet-port@0 {
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
ethernet-port@1 {
/* Not used in this platform */
};
};
usb@68000000 {
status = "okay";
};

View file

@ -99,9 +99,13 @@
phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
phy-reset-duration = <20>;
phy-supply = <&sw2_reg>;
phy-handle = <&ethphy0>;
status = "okay";
fixed-link {
speed = <1000>;
full-duplex;
};
mdio {
#address-cells = <1>;
#size-cells = <0>;

View file

@ -98,30 +98,40 @@
reg = <0>;
max-speed = <100>;
reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
reset-delay-us = <1000>;
reset-post-delay-us = <1000>;
reset-assert-us = <1000>;
reset-deassert-us = <1000>;
smsc,disable-energy-detect; /* Make plugin detection reliable */
};
};
};
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c1>;
pinctrl-1 = <&pinctrl_i2c1_gpio>;
scl-gpios = <&gpio3 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio3 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
};
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c2>;
pinctrl-1 = <&pinctrl_i2c2_gpio>;
scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
};
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c3>;
pinctrl-1 = <&pinctrl_i2c3_gpio>;
scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
ltc3676: pmic@3c {
@ -287,6 +297,13 @@
>;
};
pinctrl_i2c1_gpio: i2c1-gpio-grp {
fsl,pins = <
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b8b1
MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x4001b8b1
>;
};
pinctrl_i2c2: i2c2-grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
@ -294,6 +311,13 @@
>;
};
pinctrl_i2c2_gpio: i2c2-gpio-grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x4001b8b1
MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x4001b8b1
>;
};
pinctrl_i2c3: i2c3-grp {
fsl,pins = <
MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
@ -301,6 +325,13 @@
>;
};
pinctrl_i2c3_gpio: i2c3-gpio-grp {
fsl,pins = <
MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1
MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1
>;
};
pinctrl_pmic_hw300: pmic-hw300-grp {
fsl,pins = <
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1B0B0
@ -408,6 +439,18 @@
vin-supply = <&sw1_reg>;
};
&reg_pu {
vin-supply = <&sw1_reg>;
};
&reg_vdd1p1 {
vin-supply = <&sw2_reg>;
};
&reg_vdd2p5 {
vin-supply = <&sw2_reg>;
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;

View file

@ -126,7 +126,7 @@
compatible = "nxp,pca8574";
reg = <0x3a>;
gpio-controller;
#gpio-cells = <1>;
#gpio-cells = <2>;
};
};

View file

@ -273,7 +273,7 @@
/* VDD_AUD_1P8: Audio codec */
reg_aud_1p8v: ldo3 {
regulator-name = "vdd1p8";
regulator-name = "vdd1p8a";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;

View file

@ -167,7 +167,7 @@
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
status = "disabld"
status = "disabled";
};
i2c_cam: i2c-gpio-cam {
@ -179,7 +179,7 @@
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
status = "disabld"
status = "disabled";
};
};

View file

@ -432,6 +432,7 @@
pinctrl-0 = <&pinctrl_usdhc2>;
cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
vmmc-supply = <&vdd_sd1_reg>;
status = "disabled";
};
@ -441,5 +442,6 @@
&pinctrl_usdhc3_cdwp>;
cd-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
vmmc-supply = <&vdd_sd0_reg>;
status = "disabled";
};

View file

@ -193,7 +193,7 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1>;
keep-power-in-suspend;
tuning-step = <2>;
fsl,tuning-step = <2>;
vmmc-supply = <&reg_3p3v>;
no-1-8-v;
broken-cd;

View file

@ -307,7 +307,7 @@
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
bus-width = <4>;
tuning-step = <2>;
fsl,tuning-step = <2>;
vmmc-supply = <&reg_3p3v>;
wakeup-source;
no-1-8-v;

View file

@ -329,9 +329,6 @@
clocks = <&xtal_32k>, <&xtal>;
clock-names = "xtal_32k", "xtal";
assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
assigned-clock-rates = <208000000>;
};
};

View file

@ -23,6 +23,9 @@
i2c0 = &i2c1;
i2c1 = &i2c2;
i2c2 = &i2c3;
mmc0 = &mmc1;
mmc1 = &mmc2;
mmc2 = &mmc3;
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;

View file

@ -22,6 +22,11 @@
i2c1 = &i2c2;
i2c2 = &i2c3;
i2c3 = &i2c4;
mmc0 = &mmc1;
mmc1 = &mmc2;
mmc2 = &mmc3;
mmc3 = &mmc4;
mmc4 = &mmc5;
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;

View file

@ -33,10 +33,12 @@
};
ocp {
/* 4430 has only gpio_86 tshut and no talert interrupt */
bandgap: bandgap@4a002260 {
reg = <0x4a002260 0x4
0x4a00232C 0x4>;
compatible = "ti,omap4430-bandgap";
gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
#thermal-sensor-cells = <0>;
};

View file

@ -770,14 +770,6 @@
ti,max-div = <2>;
};
sha2md5_fck: sha2md5_fck@15c8 {
#clock-cells = <0>;
compatible = "ti,gate-clock";
clocks = <&l3_div_ck>;
ti,bit-shift = <1>;
reg = <0x15c8>;
};
usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
#clock-cells = <0>;
compatible = "ti,gate-clock";

View file

@ -25,6 +25,11 @@
i2c2 = &i2c3;
i2c3 = &i2c4;
i2c4 = &i2c5;
mmc0 = &mmc1;
mmc1 = &mmc2;
mmc2 = &mmc3;
mmc3 = &mmc4;
mmc4 = &mmc5;
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;

View file

@ -45,18 +45,21 @@
emac: gem@30000 {
compatible = "cadence,gem";
reg = <0x30000 0x10000>;
interrupt-parent = <&vic0>;
interrupts = <31>;
};
dmac1: dmac@40000 {
compatible = "snps,dw-dmac";
reg = <0x40000 0x10000>;
interrupt-parent = <&vic0>;
interrupts = <25>;
};
dmac2: dmac@50000 {
compatible = "snps,dw-dmac";
reg = <0x50000 0x10000>;
interrupt-parent = <&vic0>;
interrupts = <26>;
};
@ -234,6 +237,7 @@
axi2pico@c0000000 {
compatible = "picochip,axi2pico-pc3x2";
reg = <0xc0000000 0x10000>;
interrupt-parent = <&vic0>;
interrupts = <13 14 15 16 17 18 19 20 21>;
};
};

View file

@ -146,7 +146,7 @@
status = "okay";
clocks = <&mstp1_clks R8A7779_CLK_DU>, <&x3_clk>;
clock-names = "du", "dclkin.0";
clock-names = "du.0", "dclkin.0";
ports {
port@0 {

View file

@ -463,6 +463,7 @@
reg = <0xfff80000 0x40000>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&mstp1_clks R8A7779_CLK_DU>;
clock-names = "du.0";
power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
status = "disabled";

View file

@ -914,7 +914,7 @@
0xffffffff 0x3ffcfe7c 0x1c010101 /* pioA */
0x7fffffff 0xfffccc3a 0x3f00cc3a /* pioB */
0xffffffff 0x3ff83fff 0xff00ffff /* pioC */
0x0003ff00 0x8002a800 0x00000000 /* pioD */
0xb003ff00 0x8002a800 0x00000000 /* pioD */
0xffffffff 0x7fffffff 0x76fff1bf /* pioE */
>;

View file

@ -110,7 +110,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy-handle = <&phy1>;
phy-mode = "rgmii";
phy-mode = "rgmii-id";
phy-supply = <&reg_gmac_3v3>;
status = "okay";
};

View file

@ -571,7 +571,7 @@
clocks = <&sys_clk 6>;
reset-names = "ether";
resets = <&sys_rst 6>;
phy-mode = "rgmii";
phy-mode = "rgmii-id";
local-mac-address = [00 00 00 00 00 00];
socionext,syscon-phy-mode = <&soc_glue 0>;

View file

@ -2,7 +2,7 @@
#ifndef _ASM_FIXMAP_H
#define _ASM_FIXMAP_H
#define FIXADDR_START 0xffc00000UL
#define FIXADDR_START 0xffc80000UL
#define FIXADDR_END 0xfff00000UL
#define FIXADDR_TOP (FIXADDR_END - PAGE_SIZE)

View file

@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ARM_KEXEC_INTERNAL_H
#define _ARM_KEXEC_INTERNAL_H
struct kexec_relocate_data {
unsigned long kexec_start_address;
unsigned long kexec_indirection_page;
unsigned long kexec_mach_type;
unsigned long kexec_r2;
};
#endif

View file

@ -56,7 +56,7 @@ extern char __kvm_hyp_init_end[];
extern void __kvm_flush_vm_context(void);
extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);

View file

@ -335,6 +335,7 @@ static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {}
static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {}
static inline void kvm_arm_init_debug(void) {}
static inline void kvm_arm_vcpu_init_debug(struct kvm_vcpu *vcpu) {}
static inline void kvm_arm_setup_debug(struct kvm_vcpu *vcpu) {}
static inline void kvm_arm_clear_debug(struct kvm_vcpu *vcpu) {}
static inline void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu) {}

View file

@ -67,6 +67,10 @@
*/
#define XIP_VIRT_ADDR(physaddr) (MODULES_VADDR + ((physaddr) & 0x000fffff))
#define FDT_FIXED_BASE UL(0xff800000)
#define FDT_FIXED_SIZE (2 * SECTION_SIZE)
#define FDT_VIRT_BASE(physbase) ((void *)(FDT_FIXED_BASE | (physbase) % SECTION_SIZE))
#if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)
/*
* Allow 16MB-aligned ioremap pages
@ -107,6 +111,7 @@ extern unsigned long vectors_base;
#define MODULES_VADDR PAGE_OFFSET
#define XIP_VIRT_ADDR(physaddr) (physaddr)
#define FDT_VIRT_BASE(physbase) ((void *)(physbase))
#endif /* !CONFIG_MMU */

View file

@ -9,12 +9,12 @@
#ifdef CONFIG_OF
extern const struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
extern const struct machine_desc *setup_machine_fdt(void *dt_virt);
extern void __init arm_dt_init_cpu_maps(void);
#else /* CONFIG_OF */
static inline const struct machine_desc *setup_machine_fdt(unsigned int dt_phys)
static inline const struct machine_desc *setup_machine_fdt(void *dt_virt)
{
return NULL;
}

View file

@ -15,6 +15,7 @@
#include <linux/kvm_host.h>
#endif
#include <asm/cacheflush.h>
#include <asm/kexec-internal.h>
#include <asm/glue-df.h>
#include <asm/glue-pf.h>
#include <asm/mach/arch.h>
@ -26,6 +27,7 @@
#include <asm/vdso_datapage.h>
#include <asm/hardware/cache-l2x0.h>
#include <linux/kbuild.h>
#include <linux/arm-smccc.h>
#include "signal.h"
/*
@ -159,6 +161,8 @@ int main(void)
DEFINE(SLEEP_SAVE_SP_PHYS, offsetof(struct sleep_save_sp, save_ptr_stash_phys));
DEFINE(SLEEP_SAVE_SP_VIRT, offsetof(struct sleep_save_sp, save_ptr_stash));
#endif
DEFINE(ARM_SMCCC_QUIRK_ID_OFFS, offsetof(struct arm_smccc_quirk, id));
DEFINE(ARM_SMCCC_QUIRK_STATE_OFFS, offsetof(struct arm_smccc_quirk, state));
BLANK();
DEFINE(DMA_BIDIRECTIONAL, DMA_BIDIRECTIONAL);
DEFINE(DMA_TO_DEVICE, DMA_TO_DEVICE);
@ -190,5 +194,9 @@ int main(void)
DEFINE(MPU_RGN_PRBAR, offsetof(struct mpu_rgn, prbar));
DEFINE(MPU_RGN_PRLAR, offsetof(struct mpu_rgn, prlar));
#endif
DEFINE(KEXEC_START_ADDR, offsetof(struct kexec_relocate_data, kexec_start_address));
DEFINE(KEXEC_INDIR_PAGE, offsetof(struct kexec_relocate_data, kexec_indirection_page));
DEFINE(KEXEC_MACH_TYPE, offsetof(struct kexec_relocate_data, kexec_mach_type));
DEFINE(KEXEC_R2, offsetof(struct kexec_relocate_data, kexec_r2));
return 0;
}

View file

@ -2,11 +2,11 @@
void convert_to_tag_list(struct tag *tags);
#ifdef CONFIG_ATAGS
const struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer,
const struct machine_desc *setup_machine_tags(void *__atags_vaddr,
unsigned int machine_nr);
#else
static inline const struct machine_desc * __init __noreturn
setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
setup_machine_tags(void *__atags_vaddr, unsigned int machine_nr)
{
early_print("no ATAGS support: can't continue\n");
while (true);

View file

@ -176,7 +176,7 @@ static void __init squash_mem_tags(struct tag *tag)
}
const struct machine_desc * __init
setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
setup_machine_tags(void *atags_vaddr, unsigned int machine_nr)
{
struct tag *tags = (struct tag *)&default_tags;
const struct machine_desc *mdesc = NULL, *p;
@ -197,8 +197,8 @@ setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
if (!mdesc)
return NULL;
if (__atags_pointer)
tags = phys_to_virt(__atags_pointer);
if (atags_vaddr)
tags = atags_vaddr;
else if (mdesc->atag_offset)
tags = (void *)(PAGE_OFFSET + mdesc->atag_offset);

View file

@ -203,12 +203,12 @@ static const void * __init arch_get_next_mach(const char *const **match)
/**
* setup_machine_fdt - Machine setup when an dtb was passed to the kernel
* @dt_phys: physical address of dt blob
* @dt_virt: virtual address of dt blob
*
* If a dtb was passed to the kernel in r2, then use it to choose the
* correct machine_desc and to setup the system.
*/
const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
const struct machine_desc * __init setup_machine_fdt(void *dt_virt)
{
const struct machine_desc *mdesc, *mdesc_best = NULL;
@ -221,7 +221,7 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
mdesc_best = &__mach_desc_GENERIC_DT;
#endif
if (!dt_phys || !early_init_dt_verify(phys_to_virt(dt_phys)))
if (!dt_virt || !early_init_dt_verify(dt_virt))
return NULL;
mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach);

View file

@ -252,31 +252,10 @@ __und_svc:
#else
svc_entry
#endif
@
@ call emulation code, which returns using r9 if it has emulated
@ the instruction, or the more conventional lr if we are to treat
@ this as a real undefined instruction
@
@ r0 - instruction
@
#ifndef CONFIG_THUMB2_KERNEL
ldr r0, [r4, #-4]
#else
mov r1, #2
ldrh r0, [r4, #-2] @ Thumb instruction at LR - 2
cmp r0, #0xe800 @ 32-bit instruction if xx >= 0
blo __und_svc_fault
ldrh r9, [r4] @ bottom 16 bits
add r4, r4, #2
str r4, [sp, #S_PC]
orr r0, r9, r0, lsl #16
#endif
badr r9, __und_svc_finish
mov r2, r4
bl call_fpe
mov r1, #4 @ PC correction to apply
__und_svc_fault:
THUMB( tst r5, #PSR_T_BIT ) @ exception taken in Thumb mode?
THUMB( movne r1, #2 ) @ if so, fix up PC correction
mov r0, sp @ struct pt_regs *regs
bl __und_fault

View file

@ -274,11 +274,10 @@ __create_page_tables:
* We map 2 sections in case the ATAGs/DTB crosses a section boundary.
*/
mov r0, r2, lsr #SECTION_SHIFT
movs r0, r0, lsl #SECTION_SHIFT
subne r3, r0, r8
addne r3, r3, #PAGE_OFFSET
addne r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER)
orrne r6, r7, r0
cmp r2, #0
ldrne r3, =FDT_FIXED_BASE >> (SECTION_SHIFT - PMD_ORDER)
addne r3, r3, r4
orrne r6, r7, r0, lsl #SECTION_SHIFT
strne r6, [r3], #1 << PMD_ORDER
addne r6, r6, #1 << SECTION_SHIFT
strne r6, [r3]

View file

@ -883,7 +883,7 @@ static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)
info->trigger = addr;
pr_debug("breakpoint fired: address = 0x%x\n", addr);
perf_bp_event(bp, regs);
if (!bp->overflow_handler)
if (is_default_overflow_handler(bp))
enable_single_step(bp, addr);
goto unlock;
}

View file

@ -15,6 +15,7 @@
#include <asm/pgalloc.h>
#include <asm/mmu_context.h>
#include <asm/cacheflush.h>
#include <asm/kexec-internal.h>
#include <asm/fncpy.h>
#include <asm/mach-types.h>
#include <asm/smp_plat.h>
@ -24,11 +25,6 @@
extern void relocate_new_kernel(void);
extern const unsigned int relocate_new_kernel_size;
extern unsigned long kexec_start_address;
extern unsigned long kexec_indirection_page;
extern unsigned long kexec_mach_type;
extern unsigned long kexec_boot_atags;
static atomic_t waiting_for_crash_ipi;
/*
@ -161,6 +157,7 @@ void (*kexec_reinit)(void);
void machine_kexec(struct kimage *image)
{
unsigned long page_list, reboot_entry_phys;
struct kexec_relocate_data *data;
void (*reboot_entry)(void);
void *reboot_code_buffer;
@ -176,18 +173,17 @@ void machine_kexec(struct kimage *image)
reboot_code_buffer = page_address(image->control_code_page);
/* Prepare parameters for reboot_code_buffer*/
set_kernel_text_rw();
kexec_start_address = image->start;
kexec_indirection_page = page_list;
kexec_mach_type = machine_arch_type;
kexec_boot_atags = image->arch.kernel_r2;
/* copy our kernel relocation code to the control code page */
reboot_entry = fncpy(reboot_code_buffer,
&relocate_new_kernel,
relocate_new_kernel_size);
data = reboot_code_buffer + relocate_new_kernel_size;
data->kexec_start_address = image->start;
data->kexec_indirection_page = page_list;
data->kexec_mach_type = machine_arch_type;
data->kexec_r2 = image->arch.kernel_r2;
/* get the identity mapping physical address for the reboot code */
reboot_entry_phys = virt_to_idmap(reboot_entry);

View file

@ -773,10 +773,10 @@ static inline void armv7pmu_write_counter(struct perf_event *event, u64 value)
pr_err("CPU%u writing wrong counter %d\n",
smp_processor_id(), idx);
} else if (idx == ARMV7_IDX_CYCLE_COUNTER) {
asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value));
asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" ((u32)value));
} else {
armv7_pmnc_select_counter(idx);
asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (value));
asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" ((u32)value));
}
}

View file

@ -5,14 +5,16 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h>
#include <asm/kexec.h>
.align 3 /* not needed for this code, but keeps fncpy() happy */
ENTRY(relocate_new_kernel)
ldr r0,kexec_indirection_page
ldr r1,kexec_start_address
adr r7, relocate_new_kernel_end
ldr r0, [r7, #KEXEC_INDIR_PAGE]
ldr r1, [r7, #KEXEC_START_ADDR]
/*
* If there is no indirection page (we are doing crashdumps)
@ -57,34 +59,16 @@ ENTRY(relocate_new_kernel)
2:
/* Jump to relocated kernel */
mov lr,r1
mov r0,#0
ldr r1,kexec_mach_type
ldr r2,kexec_boot_atags
ARM( ret lr )
THUMB( bx lr )
.align
.globl kexec_start_address
kexec_start_address:
.long 0x0
.globl kexec_indirection_page
kexec_indirection_page:
.long 0x0
.globl kexec_mach_type
kexec_mach_type:
.long 0x0
/* phy addr of the atags for the new kernel */
.globl kexec_boot_atags
kexec_boot_atags:
.long 0x0
mov lr, r1
mov r0, #0
ldr r1, [r7, #KEXEC_MACH_TYPE]
ldr r2, [r7, #KEXEC_R2]
ARM( ret lr )
THUMB( bx lr )
ENDPROC(relocate_new_kernel)
.align 3
relocate_new_kernel_end:
.globl relocate_new_kernel_size

View file

@ -18,6 +18,7 @@
#include <linux/of_platform.h>
#include <linux/init.h>
#include <linux/kexec.h>
#include <linux/libfdt.h>
#include <linux/of_fdt.h>
#include <linux/cpu.h>
#include <linux/interrupt.h>
@ -543,9 +544,11 @@ void notrace cpu_init(void)
* In Thumb-2, msr with an immediate value is not allowed.
*/
#ifdef CONFIG_THUMB2_KERNEL
#define PLC "r"
#define PLC_l "l"
#define PLC_r "r"
#else
#define PLC "I"
#define PLC_l "I"
#define PLC_r "I"
#endif
/*
@ -567,15 +570,15 @@ void notrace cpu_init(void)
"msr cpsr_c, %9"
:
: "r" (stk),
PLC (PSR_F_BIT | PSR_I_BIT | IRQ_MODE),
PLC_r (PSR_F_BIT | PSR_I_BIT | IRQ_MODE),
"I" (offsetof(struct stack, irq[0])),
PLC (PSR_F_BIT | PSR_I_BIT | ABT_MODE),
PLC_r (PSR_F_BIT | PSR_I_BIT | ABT_MODE),
"I" (offsetof(struct stack, abt[0])),
PLC (PSR_F_BIT | PSR_I_BIT | UND_MODE),
PLC_r (PSR_F_BIT | PSR_I_BIT | UND_MODE),
"I" (offsetof(struct stack, und[0])),
PLC (PSR_F_BIT | PSR_I_BIT | FIQ_MODE),
PLC_r (PSR_F_BIT | PSR_I_BIT | FIQ_MODE),
"I" (offsetof(struct stack, fiq[0])),
PLC (PSR_F_BIT | PSR_I_BIT | SVC_MODE)
PLC_l (PSR_F_BIT | PSR_I_BIT | SVC_MODE)
: "r14");
#endif
}
@ -1089,19 +1092,27 @@ static struct notifier_block arm_restart_nb = {
void __init setup_arch(char **cmdline_p)
{
const struct machine_desc *mdesc;
const struct machine_desc *mdesc = NULL;
void *atags_vaddr = NULL;
if (__atags_pointer)
atags_vaddr = FDT_VIRT_BASE(__atags_pointer);
setup_processor();
mdesc = setup_machine_fdt(__atags_pointer);
if (atags_vaddr) {
mdesc = setup_machine_fdt(atags_vaddr);
if (mdesc)
memblock_reserve(__atags_pointer,
fdt_totalsize(atags_vaddr));
}
if (!mdesc)
mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
mdesc = setup_machine_tags(atags_vaddr, __machine_arch_type);
if (!mdesc) {
early_print("\nError: invalid dtb and unrecognized/unsupported machine ID\n");
early_print(" r1=0x%08x, r2=0x%08x\n", __machine_arch_type,
__atags_pointer);
if (__atags_pointer)
early_print(" r2[]=%*ph\n", 16,
phys_to_virt(__atags_pointer));
early_print(" r2[]=%*ph\n", 16, atags_vaddr);
dump_machine_table();
}

View file

@ -694,18 +694,20 @@ struct page *get_signal_page(void)
addr = page_address(page);
/* Poison the entire page */
memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
PAGE_SIZE / sizeof(u32));
/* Give the signal return code some randomness */
offset = 0x200 + (get_random_int() & 0x7fc);
signal_return_offset = offset;
/*
* Copy signal return handlers into the vector page, and
* set sigreturn to be a pointer to these.
*/
/* Copy signal return handlers into the page */
memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
ptr = (unsigned long)addr + offset;
flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
/* Flush out all instructions in this page */
ptr = (unsigned long)addr;
flush_icache_range(ptr, ptr + PAGE_SIZE);
return page;
}

Some files were not shown because too many files have changed in this diff Show more