mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
Merge dda0ba40da ("Merge tag 'nolibc.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu") into android-mainline
Steps on the way to 6.0-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I2641bfb155867e5affc4045f16350c56cd3b5b24
This commit is contained in:
@@ -14456,6 +14456,7 @@ M: Willy Tarreau <w@1wt.eu>
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
|
||||
F: tools/include/nolibc/
|
||||
F: tools/testing/selftests/nolibc/
|
||||
|
||||
NSDEPS
|
||||
M: Matthias Maennich <maennich@google.com>
|
||||
|
||||
@@ -23,7 +23,9 @@ unsigned int __machine_arch_type;
|
||||
#include <linux/types.h>
|
||||
#include <linux/linkage.h>
|
||||
#include "misc.h"
|
||||
#ifdef CONFIG_ARCH_EP93XX
|
||||
#include "misc-ep93xx.h"
|
||||
#endif
|
||||
|
||||
static void putstr(const char *ptr);
|
||||
|
||||
|
||||
@@ -346,7 +346,7 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)
|
||||
addr = start + i * PMD_SIZE;
|
||||
domain = get_domain_name(pmd);
|
||||
if (pmd_none(*pmd) || pmd_large(*pmd) || !pmd_present(*pmd))
|
||||
note_page(st, addr, 3, pmd_val(*pmd), domain);
|
||||
note_page(st, addr, 4, pmd_val(*pmd), domain);
|
||||
else
|
||||
walk_pte(st, pmd, addr, domain);
|
||||
|
||||
|
||||
@@ -300,7 +300,11 @@ static struct mem_type mem_types[] __ro_after_init = {
|
||||
.prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
|
||||
L_PTE_XN | L_PTE_RDONLY,
|
||||
.prot_l1 = PMD_TYPE_TABLE,
|
||||
#ifdef CONFIG_ARM_LPAE
|
||||
.prot_sect = PMD_TYPE_SECT | L_PMD_SECT_RDONLY | PMD_SECT_AP2,
|
||||
#else
|
||||
.prot_sect = PMD_TYPE_SECT,
|
||||
#endif
|
||||
.domain = DOMAIN_KERNEL,
|
||||
},
|
||||
[MT_ROM] = {
|
||||
|
||||
@@ -87,7 +87,7 @@ config MMU_SUN3
|
||||
|
||||
config KEXEC
|
||||
bool "kexec system call"
|
||||
depends on M68KCLASSIC
|
||||
depends on M68KCLASSIC && MMU
|
||||
select KEXEC_CORE
|
||||
help
|
||||
kexec is a system call that implements the ability to shutdown your
|
||||
|
||||
@@ -84,7 +84,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -573,9 +572,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -594,6 +593,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -80,7 +80,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -530,9 +529,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -551,6 +550,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -87,7 +87,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -550,9 +549,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -571,6 +570,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -77,7 +77,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -522,9 +521,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -543,6 +542,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -79,7 +79,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -532,9 +531,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -553,6 +552,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -78,7 +78,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -552,9 +551,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -573,6 +572,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -98,7 +98,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -638,9 +637,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -659,6 +658,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -76,7 +76,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -521,9 +520,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -542,6 +541,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -77,7 +77,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -522,9 +521,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -543,6 +542,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -78,7 +78,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -539,9 +538,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -560,6 +559,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -74,7 +74,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -521,9 +520,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -542,6 +541,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -74,7 +74,6 @@ CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_NETLINK_HOOK=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
# CONFIG_NF_CONNTRACK_PROCFS is not set
|
||||
# CONFIG_NF_CT_PROTO_DCCP is not set
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
@@ -520,9 +519,9 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_BLAKE2S=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
@@ -541,6 +540,7 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_ARIA=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SM4_GENERIC=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -13,13 +13,8 @@
|
||||
#define BI_VIRT_VIRTIO_BASE 0x8004
|
||||
#define BI_VIRT_CTRL_BASE 0x8005
|
||||
|
||||
/*
|
||||
* A random seed used to initialize the RNG. Record format:
|
||||
*
|
||||
* - length [ 2 bytes, 16-bit big endian ]
|
||||
* - seed data [ `length` bytes, padded to preserve 2-byte alignment ]
|
||||
*/
|
||||
#define BI_VIRT_RNG_SEED 0x8006
|
||||
/* No longer used -- replaced with BI_RNG_SEED -- but don't reuse this index:
|
||||
* #define BI_VIRT_RNG_SEED 0x8006 */
|
||||
|
||||
#define VIRT_BOOTI_VERSION MK_BI_VERSION(2, 0)
|
||||
|
||||
|
||||
@@ -64,6 +64,13 @@ struct mem_info {
|
||||
/* (struct mem_info) */
|
||||
#define BI_COMMAND_LINE 0x0007 /* kernel command line parameters */
|
||||
/* (string) */
|
||||
/*
|
||||
* A random seed used to initialize the RNG. Record format:
|
||||
*
|
||||
* - length [ 2 bytes, 16-bit big endian ]
|
||||
* - seed data [ `length` bytes, padded to preserve 4-byte struct alignment ]
|
||||
*/
|
||||
#define BI_RNG_SEED 0x0008
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/nvram.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/random.h>
|
||||
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/byteorder.h>
|
||||
@@ -109,10 +110,9 @@ extern void paging_init(void);
|
||||
|
||||
static void __init m68k_parse_bootinfo(const struct bi_record *record)
|
||||
{
|
||||
const struct bi_record *first_record = record;
|
||||
uint16_t tag;
|
||||
|
||||
save_bootinfo(record);
|
||||
|
||||
while ((tag = be16_to_cpu(record->tag)) != BI_LAST) {
|
||||
int unknown = 0;
|
||||
const void *data = record->data;
|
||||
@@ -148,10 +148,21 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
|
||||
break;
|
||||
|
||||
case BI_COMMAND_LINE:
|
||||
strlcpy(m68k_command_line, data,
|
||||
strscpy(m68k_command_line, data,
|
||||
sizeof(m68k_command_line));
|
||||
break;
|
||||
|
||||
case BI_RNG_SEED: {
|
||||
u16 len = be16_to_cpup(data);
|
||||
add_bootloader_randomness(data + 2, len);
|
||||
/*
|
||||
* Zero the data to preserve forward secrecy, and zero the
|
||||
* length to prevent kexec from using it.
|
||||
*/
|
||||
memzero_explicit((void *)data, len + 2);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
if (MACH_IS_AMIGA)
|
||||
unknown = amiga_parse_bootinfo(record);
|
||||
@@ -182,6 +193,8 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
|
||||
record = (struct bi_record *)((unsigned long)record + size);
|
||||
}
|
||||
|
||||
save_bootinfo(first_record);
|
||||
|
||||
m68k_realnum_memory = m68k_num_memory;
|
||||
#ifdef CONFIG_SINGLE_MEMORY_CHUNK
|
||||
if (m68k_num_memory > 1) {
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/serial_core.h>
|
||||
#include <linux/random.h>
|
||||
#include <clocksource/timer-goldfish.h>
|
||||
|
||||
#include <asm/bootinfo.h>
|
||||
@@ -93,16 +92,6 @@ int __init virt_parse_bootinfo(const struct bi_record *record)
|
||||
data += 4;
|
||||
virt_bi_data.virtio.irq = be32_to_cpup(data);
|
||||
break;
|
||||
case BI_VIRT_RNG_SEED: {
|
||||
u16 len = be16_to_cpup(data);
|
||||
add_bootloader_randomness(data + 2, len);
|
||||
/*
|
||||
* Zero the data to preserve forward secrecy, and zero the
|
||||
* length to prevent kexec from using it.
|
||||
*/
|
||||
memzero_explicit((void *)data, len + 2);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
unknown = 1;
|
||||
break;
|
||||
|
||||
@@ -86,7 +86,7 @@ static __init void prom_init_mem(void)
|
||||
pr_debug("Assume 128MB RAM\n");
|
||||
break;
|
||||
}
|
||||
if (!memcmp(prom_init, prom_init + mem, 32))
|
||||
if (!memcmp((void *)prom_init, (void *)prom_init + mem, 32))
|
||||
break;
|
||||
}
|
||||
lowmem = mem;
|
||||
@@ -159,7 +159,7 @@ void __init bcm47xx_prom_highmem_init(void)
|
||||
|
||||
off = EXTVBASE + __pa(off);
|
||||
for (extmem = 128 << 20; extmem < 512 << 20; extmem <<= 1) {
|
||||
if (!memcmp(prom_init, (void *)(off + extmem), 16))
|
||||
if (!memcmp((void *)prom_init, (void *)(off + extmem), 16))
|
||||
break;
|
||||
}
|
||||
extmem -= lowmem;
|
||||
|
||||
@@ -105,14 +105,20 @@
|
||||
interrupts = <2>, <3>;
|
||||
};
|
||||
|
||||
wdt: watchdog@1000009c {
|
||||
compatible = "brcm,bcm7038-wdt";
|
||||
reg = <0x1000009c 0xc>;
|
||||
timer-mfd@10000080 {
|
||||
compatible = "brcm,bcm7038-twd", "simple-mfd", "syscon";
|
||||
reg = <0x10000080 0x30>;
|
||||
ranges = <0x0 0x10000080 0x30>;
|
||||
|
||||
clocks = <&periph_osc>;
|
||||
clock-names = "refclk";
|
||||
wdt: watchdog@1c {
|
||||
compatible = "brcm,bcm7038-wdt";
|
||||
reg = <0x1c 0xc>;
|
||||
|
||||
timeout-sec = <30>;
|
||||
clocks = <&periph_osc>;
|
||||
clock-names = "refclk";
|
||||
|
||||
timeout-sec = <30>;
|
||||
};
|
||||
};
|
||||
|
||||
uart0: serial@10000180 {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_DT_EASY50712) += easy50712.dtb
|
||||
dtb-$(CONFIG_DT_EASY50712) += danube_easy50712.dtb
|
||||
|
||||
obj-$(CONFIG_BUILTIN_DTB) += $(addsuffix .o, $(dtb-y))
|
||||
|
||||
@@ -28,7 +28,7 @@ struct latency_info {
|
||||
static struct latency_info li;
|
||||
static struct dentry *dir;
|
||||
|
||||
static int show_latency(struct seq_file *m, void *v)
|
||||
static int oct_ilm_show(struct seq_file *m, void *v)
|
||||
{
|
||||
u64 cpuclk, avg, max, min;
|
||||
struct latency_info curr_li = li;
|
||||
@@ -43,18 +43,7 @@ static int show_latency(struct seq_file *m, void *v)
|
||||
curr_li.interrupt_cnt, avg, max, min);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int oct_ilm_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, show_latency, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations oct_ilm_ops = {
|
||||
.open = oct_ilm_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
DEFINE_SHOW_ATTRIBUTE(oct_ilm);
|
||||
|
||||
static int reset_statistics(void *data, u64 value)
|
||||
{
|
||||
@@ -67,7 +56,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(reset_statistics_ops, NULL, reset_statistics, "%llu\n")
|
||||
static void init_debugfs(void)
|
||||
{
|
||||
dir = debugfs_create_dir("oct_ilm", 0);
|
||||
debugfs_create_file("statistics", 0222, dir, NULL, &oct_ilm_ops);
|
||||
debugfs_create_file("statistics", 0222, dir, NULL, &oct_ilm_fops);
|
||||
debugfs_create_file("reset", 0222, dir, NULL, &reset_statistics_ops);
|
||||
}
|
||||
|
||||
|
||||
@@ -530,7 +530,7 @@ void octeon_user_io_init(void)
|
||||
/* Get the current settings for CP0_CVMMEMCTL_REG */
|
||||
cvmmemctl.u64 = read_c0_cvmmemctl();
|
||||
/* R/W If set, marked write-buffer entries time out the same
|
||||
* as as other entries; if clear, marked write-buffer entries
|
||||
* as other entries; if clear, marked write-buffer entries
|
||||
* use the maximum timeout. */
|
||||
cvmmemctl.s.dismarkwblongto = 1;
|
||||
/* R/W If set, a merged store does not clear the write-buffer
|
||||
|
||||
@@ -32,9 +32,6 @@ CONFIG_IP_ROUTE_MULTIPATH=y
|
||||
CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_BIC is not set
|
||||
@@ -117,7 +114,6 @@ CONFIG_JFFS2_SUMMARY=y
|
||||
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
|
||||
CONFIG_SQUASHFS=y
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
|
||||
@@ -29,9 +29,6 @@ CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_MAC80211=m
|
||||
@@ -108,7 +105,6 @@ CONFIG_SQUASHFS_XZ=y
|
||||
# CONFIG_XZ_DEC_ARMTHUMB is not set
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
CONFIG_PRINTK_TIME=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
||||
@@ -10,12 +10,6 @@ CONFIG_EMBEDDED=y
|
||||
# CONFIG_SLUB_DEBUG is not set
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_ATH79=y
|
||||
CONFIG_ATH79_MACH_AP121=y
|
||||
CONFIG_ATH79_MACH_AP136=y
|
||||
CONFIG_ATH79_MACH_AP81=y
|
||||
CONFIG_ATH79_MACH_DB120=y
|
||||
CONFIG_ATH79_MACH_PB44=y
|
||||
CONFIG_ATH79_MACH_UBNT_XM=y
|
||||
CONFIG_HZ_100=y
|
||||
# CONFIG_SECCOMP is not set
|
||||
CONFIG_PCI=y
|
||||
@@ -29,9 +23,6 @@ CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_CFG80211=m
|
||||
CONFIG_MAC80211=m
|
||||
@@ -92,7 +83,6 @@ CONFIG_LEDS_GPIO=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_PROC_PAGE_MONITOR is not set
|
||||
CONFIG_CRC_ITU_T=m
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
||||
@@ -24,9 +24,6 @@ CONFIG_PCMCIA_BCM63XX=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_CFG80211=y
|
||||
|
||||
@@ -49,8 +49,6 @@ CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -59,7 +57,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
@@ -101,7 +98,6 @@ CONFIG_BAYCOM_SER_HDX=m
|
||||
CONFIG_YAM=m
|
||||
CONFIG_FW_LOADER=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_EEPROM_LEGACY=y
|
||||
CONFIG_EEPROM_MAX6875=y
|
||||
@@ -230,12 +226,8 @@ CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -243,7 +235,6 @@ CONFIG_CRYPTO_CAMELLIA=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -17,9 +17,6 @@ CONFIG_PACKET=y
|
||||
CONFIG_PACKET_DIAG=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_NL80211_TESTMODE=y
|
||||
|
||||
@@ -12,7 +12,6 @@ CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_CC_STACKPROTECTOR_STRONG=y
|
||||
# CONFIG_SECCOMP is not set
|
||||
CONFIG_MIPS_O32_FP64_SUPPORT=y
|
||||
# CONFIG_RD_GZIP is not set
|
||||
@@ -21,8 +20,6 @@ CONFIG_MIPS_O32_FP64_SUPPORT=y
|
||||
CONFIG_RD_XZ=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCIEASPM_POWERSAVE=y
|
||||
@@ -30,7 +27,6 @@ CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCIE_BRCMSTB=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_STAT_DETAILS=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
@@ -44,15 +40,11 @@ CONFIG_PACKET=y
|
||||
CONFIG_PACKET_DIAG=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_NL80211_TESTMODE=y
|
||||
CONFIG_WIRELESS=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_NL80211=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
# CONFIG_STANDALONE is not set
|
||||
@@ -70,10 +62,6 @@ CONFIG_IP_PNP_RARP=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_LRO is not set
|
||||
CONFIG_INET_UDP_DIAG=y
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
@@ -93,7 +81,6 @@ CONFIG_NET_SWITCHDEV=y
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_CMA_ALIGNMENT=12
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_BRCMSTB=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
@@ -105,14 +92,11 @@ CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_ROM=y
|
||||
CONFIG_MTD_ABSENT=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_MTD_M25P80=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_BRCMNAND=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_GLUEBI=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
@@ -120,7 +104,6 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_VLAN_8021Q=y
|
||||
@@ -135,7 +118,6 @@ CONFIG_INPUT_UINPUT=y
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_VT=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
# CONFIG_DEVKMEM is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
@@ -203,17 +185,14 @@ CONFIG_CMDLINE="earlycon"
|
||||
CONFIG_MIPS_CMDLINE_DTB_EXTEND=y
|
||||
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_DT_BCM974XX=y
|
||||
CONFIG_FW_CFE=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_AHCI_BRCMSTB=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_PHY_BRCM_USB=y
|
||||
CONFIG_PHY_BRCM_SATA=y
|
||||
CONFIG_PM_RUNTIME=y
|
||||
CONFIG_PM_DEBUG=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_FUNCTION_GRAPH_TRACER=y
|
||||
@@ -227,3 +206,5 @@ CONFIG_FTRACE_SYSCALLS=y
|
||||
CONFIG_TRACER_SNAPSHOT=y
|
||||
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
|
||||
CONFIG_STACK_TRACER=y
|
||||
CONFIG_AHCI_BRCM=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
|
||||
@@ -71,7 +71,6 @@ CONFIG_NETDEVICES=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
|
||||
@@ -61,7 +61,6 @@ CONFIG_INET6_AH=y
|
||||
CONFIG_INET6_ESP=y
|
||||
CONFIG_INET6_IPCOMP=y
|
||||
CONFIG_IPV6_MIP6=y
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y
|
||||
CONFIG_IPV6_VTI=y
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_GRE=y
|
||||
|
||||
@@ -37,9 +37,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -47,7 +44,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
@@ -79,7 +75,6 @@ CONFIG_NETDEVICES=y
|
||||
CONFIG_DECLANCE=y
|
||||
# CONFIG_NET_VENDOR_AQUANTIA is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_AURORA is not set
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_CADENCE is not set
|
||||
# CONFIG_NET_VENDOR_CAVIUM is not set
|
||||
@@ -193,12 +188,8 @@ CONFIG_CRYPTO_CRC32=m
|
||||
CONFIG_CRYPTO_CRCT10DIF=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
@@ -208,7 +199,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -33,9 +33,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -43,7 +40,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
@@ -75,7 +71,6 @@ CONFIG_NETDEVICES=y
|
||||
CONFIG_DECLANCE=y
|
||||
# CONFIG_NET_VENDOR_AQUANTIA is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_AURORA is not set
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_CADENCE is not set
|
||||
# CONFIG_NET_VENDOR_CAVIUM is not set
|
||||
@@ -188,12 +183,8 @@ CONFIG_CRYPTO_CRC32=m
|
||||
CONFIG_CRYPTO_CRCT10DIF=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
@@ -203,7 +194,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -32,9 +32,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -42,7 +39,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
@@ -74,7 +70,6 @@ CONFIG_NETDEVICES=y
|
||||
CONFIG_DECLANCE=y
|
||||
# CONFIG_NET_VENDOR_AQUANTIA is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_AURORA is not set
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_CADENCE is not set
|
||||
# CONFIG_NET_VENDOR_CAVIUM is not set
|
||||
@@ -188,12 +183,8 @@ CONFIG_CRYPTO_CRC32=m
|
||||
CONFIG_CRYPTO_CRCT10DIF=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
@@ -203,7 +194,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -35,8 +35,6 @@ CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_NET_IPIP=m
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_NETFILTER=y
|
||||
@@ -92,7 +90,6 @@ CONFIG_MTD_CFI_AMDSTD=m
|
||||
CONFIG_MTD_CFI_STAA=m
|
||||
CONFIG_MTD_PHYSMAP=m
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_ATA_OVER_ETH=m
|
||||
@@ -159,7 +156,6 @@ CONFIG_USB_MOUSE=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
CONFIG_USB_OTG_PRODUCTLIST=y
|
||||
CONFIG_USB_WUSB_CBAF=m
|
||||
CONFIG_USB_C67X00_HCD=m
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||
@@ -219,15 +215,10 @@ CONFIG_CRYPTO_CTS=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_DEFLATE=m
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC7=m
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
|
||||
@@ -25,7 +25,6 @@ CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_SWITCHDEV=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_MSCC_OCELOT_SWITCH=y
|
||||
CONFIG_MSCC_OCELOT_SWITCH_OCELOT=y
|
||||
CONFIG_MDIO_MSCC_MIIM=y
|
||||
CONFIG_MICROSEMI_PHY=y
|
||||
|
||||
|
||||
@@ -29,9 +29,6 @@ CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
CONFIG_NETFILTER=y
|
||||
@@ -220,9 +217,6 @@ CONFIG_HDLC_X25=m
|
||||
CONFIG_PCI200SYN=m
|
||||
CONFIG_WANXL=m
|
||||
CONFIG_FARSYNC=m
|
||||
CONFIG_DSCC4=m
|
||||
CONFIG_DSCC4_PCISYNC=y
|
||||
CONFIG_DSCC4_PCI_RST=y
|
||||
CONFIG_LAPBETHER=m
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
@@ -288,7 +282,6 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -299,7 +292,6 @@ CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_DEFLATE=m
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw ip=auto"
|
||||
|
||||
@@ -36,9 +36,6 @@ CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -47,7 +44,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
@@ -226,7 +222,6 @@ CONFIG_SERIO_RAW=m
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_SERIAL_IP22_ZILOG=m
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_RAW_DRIVER=m
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_WATCHDOG=y
|
||||
@@ -320,11 +315,7 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -333,7 +324,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -33,9 +33,6 @@ CONFIG_NET_KEY_MIGRATE=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -44,10 +41,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET6_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET6_XFRM_MODE_BEET=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
@@ -92,7 +85,6 @@ CONFIG_CFG80211=m
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_ATA_OVER_ETH=m
|
||||
CONFIG_SCSI=y
|
||||
@@ -115,7 +107,6 @@ CONFIG_SCSI_AIC94XX=m
|
||||
# CONFIG_AIC94XX_DEBUG is not set
|
||||
CONFIG_SCSI_MVSAS=m
|
||||
# CONFIG_SCSI_MVSAS_DEBUG is not set
|
||||
CONFIG_SCSI_DPT_I2O=m
|
||||
CONFIG_SCSI_MPT2SAS=m
|
||||
CONFIG_LIBFC=m
|
||||
CONFIG_SCSI_QLOGIC_1280=y
|
||||
@@ -126,8 +117,6 @@ CONFIG_SCSI_DH_RDAC=m
|
||||
CONFIG_SCSI_DH_HP_SW=m
|
||||
CONFIG_SCSI_DH_EMC=m
|
||||
CONFIG_SCSI_DH_ALUA=m
|
||||
CONFIG_SCSI_OSD_INITIATOR=m
|
||||
CONFIG_SCSI_OSD_ULD=m
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=y
|
||||
CONFIG_MD_LINEAR=m
|
||||
@@ -166,7 +155,6 @@ CONFIG_JME=m
|
||||
CONFIG_MLX4_EN=m
|
||||
# CONFIG_MLX4_DEBUG is not set
|
||||
CONFIG_KS8851_MLL=m
|
||||
CONFIG_VXGE=m
|
||||
CONFIG_AX88796=m
|
||||
CONFIG_AX88796_93CX6=y
|
||||
CONFIG_ETHOC=m
|
||||
@@ -264,7 +252,6 @@ CONFIG_I2C_VIAPRO=m
|
||||
CONFIG_I2C_OCORES=m
|
||||
CONFIG_I2C_PCA_PLATFORM=m
|
||||
CONFIG_I2C_SIMTEC=m
|
||||
CONFIG_I2C_PARPORT_LIGHT=m
|
||||
CONFIG_I2C_TAOS_EVM=m
|
||||
CONFIG_I2C_STUB=m
|
||||
# CONFIG_HWMON is not set
|
||||
@@ -309,7 +296,6 @@ CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_SQUASHFS=m
|
||||
CONFIG_OMFS_FS=m
|
||||
CONFIG_EXOFS_FS=m
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_SECURITYFS=y
|
||||
CONFIG_CRYPTO_CRYPTD=m
|
||||
@@ -321,12 +307,8 @@ CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_VMAC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -335,7 +317,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -29,9 +29,6 @@ CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_SCSI=y
|
||||
|
||||
@@ -43,7 +43,6 @@ CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
CONFIG_CONNECTOR=y
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_RAID_ATTRS=y
|
||||
CONFIG_SCSI=y
|
||||
@@ -165,7 +164,6 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
CONFIG_CRYPTO_TGR192=y
|
||||
CONFIG_CRYPTO_WP512=y
|
||||
CONFIG_CRYPTO_ANUBIS=y
|
||||
CONFIG_CRYPTO_ARC4=y
|
||||
|
||||
@@ -32,7 +32,6 @@ CONFIG_PARPORT_1284=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_FD=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
|
||||
@@ -43,9 +43,6 @@ CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_DEFAULT_BIC=y
|
||||
@@ -77,7 +74,6 @@ CONFIG_MAC80211_LEDS=y
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
@@ -312,12 +308,8 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_XTS=m
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_RMD128=m
|
||||
CONFIG_CRYPTO_RMD160=m
|
||||
CONFIG_CRYPTO_RMD256=m
|
||||
CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA1=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -326,7 +318,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
|
||||
@@ -28,9 +28,6 @@ CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
@@ -115,7 +112,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
# CONFIG_CRYPTO_ECHAINIV is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
||||
@@ -29,9 +29,6 @@ CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
@@ -116,7 +113,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
# CONFIG_CRYPTO_ECHAINIV is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
||||
@@ -95,7 +95,6 @@ CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_MTD=m
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_RAID_ATTRS=m
|
||||
@@ -229,7 +228,6 @@ CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_NONSTANDARD=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_RAW_DRIVER=m
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_PIIX4=y
|
||||
CONFIG_GPIO_LOONGSON=y
|
||||
@@ -336,7 +334,6 @@ CONFIG_DEFAULT_SECURITY_DAC=y
|
||||
CONFIG_CRYPTO_SEQIV=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
|
||||
@@ -143,7 +143,6 @@ CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_MTD=m
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
@@ -268,7 +267,6 @@ CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_NONSTANDARD=y
|
||||
CONFIG_VIRTIO_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_RAW_DRIVER=m
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_PIIX4=y
|
||||
CONFIG_GPIO_LOONGSON=y
|
||||
|
||||
@@ -42,8 +42,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -229,7 +227,6 @@ CONFIG_MTD_UBI=m
|
||||
CONFIG_MTD_UBI_GLUEBI=m
|
||||
CONFIG_BLK_DEV_FD=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
@@ -237,7 +234,6 @@ CONFIG_ATA_OVER_ETH=m
|
||||
CONFIG_RAID_ATTRS=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_ST=m
|
||||
CONFIG_CHR_DEV_OSST=m
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_CHR_DEV_SG=m
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
@@ -408,7 +404,6 @@ CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -46,8 +46,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -233,7 +231,6 @@ CONFIG_MTD_UBI=m
|
||||
CONFIG_MTD_UBI_GLUEBI=m
|
||||
CONFIG_BLK_DEV_FD=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
@@ -241,7 +238,6 @@ CONFIG_ATA_OVER_ETH=m
|
||||
CONFIG_RAID_ATTRS=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_ST=m
|
||||
CONFIG_CHR_DEV_OSST=m
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_CHR_DEV_SG=m
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
@@ -415,7 +411,6 @@ CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -76,7 +76,6 @@ CONFIG_NET_ACT_POLICE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
@@ -98,7 +97,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
@@ -172,7 +170,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -78,7 +78,6 @@ CONFIG_NET_ACT_POLICE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
@@ -100,7 +99,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
@@ -173,7 +171,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -79,7 +79,6 @@ CONFIG_NET_ACT_POLICE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
@@ -99,7 +98,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
@@ -174,7 +172,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -80,7 +80,6 @@ CONFIG_NET_ACT_POLICE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
@@ -102,7 +101,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
@@ -176,7 +174,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -77,7 +77,6 @@ CONFIG_NET_ACT_POLICE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
@@ -99,7 +98,6 @@ CONFIG_PCNET32=y
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
@@ -172,7 +170,6 @@ CONFIG_NLS_ISO8859_1=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -45,8 +45,6 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -231,7 +229,6 @@ CONFIG_MTD_UBI=m
|
||||
CONFIG_MTD_UBI_GLUEBI=m
|
||||
CONFIG_BLK_DEV_FD=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
@@ -239,7 +236,6 @@ CONFIG_ATA_OVER_ETH=m
|
||||
CONFIG_RAID_ATTRS=m
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_ST=m
|
||||
CONFIG_CHR_DEV_OSST=m
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_CHR_DEV_SG=m
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
@@ -414,7 +410,6 @@ CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -58,13 +58,9 @@ CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_NETWORK_SECMARK=y
|
||||
CONFIG_NETFILTER=y
|
||||
@@ -284,7 +280,6 @@ CONFIG_PCMCIA_XIRCOM=m
|
||||
CONFIG_DL2K=m
|
||||
CONFIG_SUNDANCE=m
|
||||
CONFIG_PCMCIA_FMVJ18X=m
|
||||
CONFIG_HP100=m
|
||||
CONFIG_E100=m
|
||||
CONFIG_E1000=m
|
||||
CONFIG_IXGB=m
|
||||
@@ -368,9 +363,6 @@ CONFIG_HDLC_X25=m
|
||||
CONFIG_PCI200SYN=m
|
||||
CONFIG_WANXL=m
|
||||
CONFIG_FARSYNC=m
|
||||
CONFIG_DSCC4=m
|
||||
CONFIG_DSCC4_PCISYNC=y
|
||||
CONFIG_DSCC4_PCI_RST=y
|
||||
CONFIG_LAPBETHER=m
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
@@ -683,7 +675,6 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
@@ -692,5 +683,4 @@ CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
|
||||
@@ -35,9 +35,6 @@ CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
|
||||
@@ -45,7 +45,6 @@ CONFIG_KEYBOARD_GPIO_POLLED=m
|
||||
CONFIG_SERIAL_PIC32=y
|
||||
CONFIG_SERIAL_PIC32_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_RAW_DRIVER=m
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_HIDRAW=y
|
||||
|
||||
@@ -33,9 +33,6 @@ CONFIG_IP_MULTIPLE_TABLES=y
|
||||
CONFIG_IP_ROUTE_MULTIPATH=y
|
||||
CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
CONFIG_INET_DIAG=m
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_CUBIC=m
|
||||
@@ -162,5 +159,4 @@ CONFIG_SQUASHFS=y
|
||||
CONFIG_CRYPTO_TEST=m
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC16=m
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
|
||||
@@ -21,9 +21,6 @@ CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_MTD=y
|
||||
@@ -51,7 +48,6 @@ CONFIG_TC35815=y
|
||||
CONFIG_SERIAL_TXX9_CONSOLE=y
|
||||
CONFIG_SERIAL_TXX9_STDSERIAL=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_TXX9=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_TXX9_WDT=m
|
||||
@@ -65,8 +61,6 @@ CONFIG_SND=m
|
||||
# CONFIG_SND_SPI is not set
|
||||
# CONFIG_SND_MIPS is not set
|
||||
CONFIG_SND_SOC=m
|
||||
CONFIG_SND_SOC_TXX9ACLC=m
|
||||
CONFIG_SND_SOC_TXX9ACLC_GENERIC=m
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
@@ -78,7 +72,6 @@ CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
|
||||
CONFIG_RTC_DRV_RS5C348=y
|
||||
CONFIG_RTC_DRV_DS1742=y
|
||||
CONFIG_RTC_DRV_TX4939=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_TXX9_DMAC=m
|
||||
# CONFIG_DNOTIFY is not set
|
||||
|
||||
@@ -29,9 +29,6 @@ CONFIG_NET_IPIP=m
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
@@ -39,7 +36,6 @@ CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
@@ -192,9 +188,7 @@ CONFIG_PARIDE_KTTI=m
|
||||
CONFIG_PARIDE_ON20=m
|
||||
CONFIG_PARIDE_ON26=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_SX8=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_ATA_OVER_ETH=m
|
||||
@@ -400,7 +394,6 @@ CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
|
||||
@@ -35,9 +35,6 @@ CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_BIC is not set
|
||||
@@ -140,7 +137,6 @@ CONFIG_CRC32_SARWATE=y
|
||||
# CONFIG_XZ_DEC_ARMTHUMB is not set
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
CONFIG_PRINTK_TIME=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
|
||||
@@ -88,7 +88,6 @@ CONFIG_CRYPTO_XCBC=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
CONFIG_CRYPTO_CAMELLIA=m
|
||||
@@ -96,7 +95,6 @@ CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_FCRYPT=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_DEFLATE=m
|
||||
|
||||
@@ -35,9 +35,6 @@ CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
|
||||
@@ -37,9 +37,6 @@ CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_BIC is not set
|
||||
@@ -146,7 +143,6 @@ CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRC_ITU_T=m
|
||||
CONFIG_CRC32_SARWATE=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
|
||||
@@ -63,10 +63,6 @@ extern void do_domain_IRQ(struct irq_domain *domain, unsigned int irq);
|
||||
extern void arch_init_irq(void);
|
||||
extern void spurious_interrupt(void);
|
||||
|
||||
extern int allocate_irqno(void);
|
||||
extern void alloc_legacy_irqno(void);
|
||||
extern void free_irqno(unsigned int irq);
|
||||
|
||||
/*
|
||||
* Before R2 the timer and performance counter interrupts were both fixed to
|
||||
* IE7. Since R2 their number has to be read from the c0_intctl register.
|
||||
|
||||
@@ -104,8 +104,6 @@ struct plat_dsl_data {
|
||||
int reset_bit_sar;
|
||||
};
|
||||
|
||||
extern int ar7_cpu_clock, ar7_bus_clock, ar7_dsp_clock;
|
||||
|
||||
static inline int ar7_is_titan(void)
|
||||
{
|
||||
return (readl((void *)KSEG1ADDR(AR7_REGS_GPIO + 0x24)) & 0xffff) ==
|
||||
|
||||
@@ -263,26 +263,6 @@ static inline void cvmx_fpa_free(void *ptr, uint64_t pool,
|
||||
cvmx_write_io(newptr.u64, num_cache_lines);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup a FPA pool to control a new block of memory.
|
||||
* This can only be called once per pool. Make sure proper
|
||||
* locking enforces this.
|
||||
*
|
||||
* @pool: Pool to initialize
|
||||
* 0 <= pool < 8
|
||||
* @name: Constant character string to name this pool.
|
||||
* String is not copied.
|
||||
* @buffer: Pointer to the block of memory to use. This must be
|
||||
* accessible by all processors and external hardware.
|
||||
* @block_size: Size for each block controlled by the FPA
|
||||
* @num_blocks: Number of blocks
|
||||
*
|
||||
* Returns 0 on Success,
|
||||
* -1 on failure
|
||||
*/
|
||||
extern int cvmx_fpa_setup_pool(uint64_t pool, const char *name, void *buffer,
|
||||
uint64_t block_size, uint64_t num_blocks);
|
||||
|
||||
/**
|
||||
* Shutdown a Memory pool and validate that it had all of
|
||||
* the buffers originally placed in it. This should only be
|
||||
|
||||
@@ -43,7 +43,6 @@ extern int octeon_get_southbridge_interrupt(void);
|
||||
extern int octeon_get_boot_coremask(void);
|
||||
extern int octeon_get_boot_num_arguments(void);
|
||||
extern const char *octeon_get_boot_argument(int arg);
|
||||
extern void octeon_hal_setup_reserved32(void);
|
||||
extern void octeon_user_io_init(void);
|
||||
|
||||
extern void octeon_init_cvmcount(void);
|
||||
|
||||
@@ -64,6 +64,4 @@ enum octeon_dma_bar_type {
|
||||
extern enum octeon_dma_bar_type octeon_dma_bar_type;
|
||||
|
||||
void octeon_pci_dma_init(void);
|
||||
extern char *octeon_swiotlb;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -32,7 +32,6 @@ extern unsigned int soc_type;
|
||||
extern unsigned int periph_rev;
|
||||
extern unsigned int zbbus_mhz;
|
||||
|
||||
extern void sb1250_time_init(void);
|
||||
extern void sb1250_mask_irq(int cpu, int irq);
|
||||
extern void sb1250_unmask_irq(int cpu, int irq);
|
||||
|
||||
|
||||
@@ -226,9 +226,6 @@ extern void sni_pcit_cplus_irq_init(void);
|
||||
extern void sni_rm200_irq_init(void);
|
||||
extern void sni_pcimt_irq_init(void);
|
||||
|
||||
/* timer inits */
|
||||
extern void sni_cpu_time_init(void);
|
||||
|
||||
/* eisa init for RM200/400 */
|
||||
#ifdef CONFIG_EISA
|
||||
extern int sni_eisa_root_init(void);
|
||||
|
||||
@@ -26,7 +26,7 @@ __init void mips_set_machine_name(const char *name)
|
||||
if (name == NULL)
|
||||
return;
|
||||
|
||||
strlcpy(mips_machine_name, name, sizeof(mips_machine_name));
|
||||
strscpy(mips_machine_name, name, sizeof(mips_machine_name));
|
||||
pr_info("MIPS: machine is %s\n", mips_get_machine_name());
|
||||
}
|
||||
|
||||
@@ -52,9 +52,9 @@ int __init __dt_register_buses(const char *bus0, const char *bus1)
|
||||
if (!of_have_populated_dt())
|
||||
panic("device tree not present");
|
||||
|
||||
strlcpy(of_ids[0].compatible, bus0, sizeof(of_ids[0].compatible));
|
||||
strscpy(of_ids[0].compatible, bus0, sizeof(of_ids[0].compatible));
|
||||
if (bus1) {
|
||||
strlcpy(of_ids[1].compatible, bus1,
|
||||
strscpy(of_ids[1].compatible, bus1,
|
||||
sizeof(of_ids[1].compatible));
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ void *__init relocate_kernel(void)
|
||||
early_init_dt_scan(fdt);
|
||||
if (boot_command_line[0]) {
|
||||
/* Boot command line was passed in device tree */
|
||||
strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
|
||||
strscpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
|
||||
}
|
||||
#endif /* CONFIG_USE_OF */
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ static void build_segment_config(char *str, unsigned int cfg)
|
||||
((cfg & MIPS_SEGCFG_EU) >> MIPS_SEGCFG_EU_SHIFT));
|
||||
}
|
||||
|
||||
static int show_segments(struct seq_file *m, void *v)
|
||||
static int segments_show(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned int segcfg;
|
||||
char str[42];
|
||||
@@ -80,18 +80,7 @@ static int show_segments(struct seq_file *m, void *v)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int segments_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, show_segments, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations segments_fops = {
|
||||
.open = segments_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
DEFINE_SHOW_ATTRIBUTE(segments);
|
||||
|
||||
static int __init segments_info(void)
|
||||
{
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <asm/setup.h>
|
||||
#include <asm/smp-ops.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/fw/fw.h>
|
||||
|
||||
#ifdef CONFIG_MIPS_ELF_APPENDED_DTB
|
||||
char __section(".appended_dtb") __appended_dtb[0x100000];
|
||||
@@ -756,6 +757,24 @@ static void __init prefill_possible_map(void)
|
||||
static inline void prefill_possible_map(void) {}
|
||||
#endif
|
||||
|
||||
static void __init setup_rng_seed(void)
|
||||
{
|
||||
char *rng_seed_hex = fw_getenv("rngseed");
|
||||
u8 rng_seed[512];
|
||||
size_t len;
|
||||
|
||||
if (!rng_seed_hex)
|
||||
return;
|
||||
|
||||
len = min(sizeof(rng_seed), strlen(rng_seed_hex) / 2);
|
||||
if (hex2bin(rng_seed, rng_seed_hex, len))
|
||||
return;
|
||||
|
||||
add_bootloader_randomness(rng_seed, len);
|
||||
memzero_explicit(rng_seed, len);
|
||||
memzero_explicit(rng_seed_hex, len * 2);
|
||||
}
|
||||
|
||||
void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
cpu_probe();
|
||||
@@ -786,6 +805,8 @@ void __init setup_arch(char **cmdline_p)
|
||||
paging_init();
|
||||
|
||||
memblock_dump_all();
|
||||
|
||||
setup_rng_seed();
|
||||
}
|
||||
|
||||
unsigned long kernelsp[NR_CPUS];
|
||||
|
||||
@@ -34,6 +34,14 @@ unsigned long physical_memsize = 0L;
|
||||
*/
|
||||
static struct ltq_soc_info soc_info;
|
||||
|
||||
/*
|
||||
* These structs are used to override vsmp_init_secondary()
|
||||
*/
|
||||
#if defined(CONFIG_MIPS_MT_SMP)
|
||||
extern const struct plat_smp_ops vsmp_smp_ops;
|
||||
static struct plat_smp_ops lantiq_smp_ops;
|
||||
#endif
|
||||
|
||||
const char *get_system_type(void)
|
||||
{
|
||||
return soc_info.sys_type;
|
||||
@@ -84,6 +92,17 @@ void __init plat_mem_setup(void)
|
||||
__dt_setup_arch(dtb);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MIPS_MT_SMP)
|
||||
static void lantiq_init_secondary(void)
|
||||
{
|
||||
/*
|
||||
* MIPS CPU startup function vsmp_init_secondary() will only
|
||||
* enable some of the interrupts for the second CPU/VPE.
|
||||
*/
|
||||
set_c0_status(ST0_IM);
|
||||
}
|
||||
#endif
|
||||
|
||||
void __init prom_init(void)
|
||||
{
|
||||
/* call the soc specific detetcion code and get it to fill soc_info */
|
||||
@@ -95,7 +114,10 @@ void __init prom_init(void)
|
||||
prom_init_cmdline();
|
||||
|
||||
#if defined(CONFIG_MIPS_MT_SMP)
|
||||
if (register_vsmp_smp_ops())
|
||||
panic("failed to register_vsmp_smp_ops()");
|
||||
if (cpu_has_mipsmt) {
|
||||
lantiq_smp_ops = vsmp_smp_ops;
|
||||
lantiq_smp_ops.init_secondary = lantiq_init_secondary;
|
||||
register_smp_ops(&lantiq_smp_ops);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
* Copyright (C) 2012 John Crispin <john@phrozen.org>
|
||||
*/
|
||||
|
||||
#include <linux/err.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
|
||||
#include <lantiq_soc.h>
|
||||
@@ -25,23 +26,28 @@ EXPORT_SYMBOL(ltq_get_cp1_base);
|
||||
static int vmmc_probe(struct platform_device *pdev)
|
||||
{
|
||||
#define CP1_SIZE (1 << 20)
|
||||
struct gpio_desc *gpio;
|
||||
int gpio_count;
|
||||
dma_addr_t dma;
|
||||
int error;
|
||||
|
||||
cp1_base =
|
||||
(void *) CPHYSADDR(dma_alloc_coherent(&pdev->dev, CP1_SIZE,
|
||||
&dma, GFP_KERNEL));
|
||||
|
||||
gpio_count = of_gpio_count(pdev->dev.of_node);
|
||||
gpio_count = gpiod_count(&pdev->dev, NULL);
|
||||
while (gpio_count > 0) {
|
||||
enum of_gpio_flags flags;
|
||||
int gpio = of_get_gpio_flags(pdev->dev.of_node,
|
||||
--gpio_count, &flags);
|
||||
if (gpio_request(gpio, "vmmc-relay"))
|
||||
gpio = devm_gpiod_get_index(&pdev->dev,
|
||||
NULL, --gpio_count, GPIOD_OUT_HIGH);
|
||||
error = PTR_ERR_OR_ZERO(gpio);
|
||||
if (error) {
|
||||
dev_err(&pdev->dev,
|
||||
"failed to request GPIO idx %d: %d\n",
|
||||
gpio_count, error);
|
||||
continue;
|
||||
dev_info(&pdev->dev, "requested GPIO %d\n", gpio);
|
||||
gpio_direction_output(gpio,
|
||||
(flags & OF_GPIO_ACTIVE_LOW) ? (0) : (1));
|
||||
}
|
||||
|
||||
gpiod_set_consumer_name(gpio, "vmmc-relay");
|
||||
}
|
||||
|
||||
dev_info(&pdev->dev, "reserved %dMB at 0x%p", CP1_SIZE >> 20, cp1_base);
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/export.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <uapi/linux/swab.h>
|
||||
|
||||
/* To silence -Wmissing-prototypes. */
|
||||
unsigned long long __bswapdi2(unsigned long long u);
|
||||
|
||||
unsigned long long notrace __bswapdi2(unsigned long long u)
|
||||
{
|
||||
return (((u) & 0xff00000000000000ull) >> 56) |
|
||||
(((u) & 0x00ff000000000000ull) >> 40) |
|
||||
(((u) & 0x0000ff0000000000ull) >> 24) |
|
||||
(((u) & 0x000000ff00000000ull) >> 8) |
|
||||
(((u) & 0x00000000ff000000ull) << 8) |
|
||||
(((u) & 0x0000000000ff0000ull) << 24) |
|
||||
(((u) & 0x000000000000ff00ull) << 40) |
|
||||
(((u) & 0x00000000000000ffull) << 56);
|
||||
return ___constant_swab64(u);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(__bswapdi2);
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/export.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <uapi/linux/swab.h>
|
||||
|
||||
/* To silence -Wmissing-prototypes. */
|
||||
unsigned int __bswapsi2(unsigned int u);
|
||||
|
||||
unsigned int notrace __bswapsi2(unsigned int u)
|
||||
{
|
||||
return (((u) & 0xff000000) >> 24) |
|
||||
(((u) & 0x00ff0000) >> 8) |
|
||||
(((u) & 0x0000ff00) << 8) |
|
||||
(((u) & 0x000000ff) << 24);
|
||||
return ___constant_swab32(u);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(__bswapsi2);
|
||||
|
||||
@@ -73,8 +73,6 @@ static void __init setup_pcimap(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
extern int sbx00_acpi_init(void);
|
||||
|
||||
static int __init pcibios_init(void)
|
||||
{
|
||||
setup_pcimap();
|
||||
|
||||
@@ -1032,7 +1032,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
|
||||
*/
|
||||
if (dec_insn.micro_mips_mode) {
|
||||
/*
|
||||
* If next instruction is a 16-bit instruction, then it
|
||||
* If next instruction is a 16-bit instruction, then
|
||||
* it cannot be a FPU instruction. This could happen
|
||||
* since we can be called for non-FPU instructions.
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* Both AR2315 and AR2316 chips have PCI interface unit, which supports DMA
|
||||
* and interrupt. PCI interface supports MMIO access method, but does not
|
||||
* seem to support I/O ports.
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_pci.h>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
__iomem void *ltq_pci_mapped_cfg;
|
||||
static __iomem void *ltq_pci_membase;
|
||||
|
||||
static int reset_gpio;
|
||||
static struct gpio_desc *reset_gpio;
|
||||
static struct clk *clk_pci, *clk_external;
|
||||
static struct resource pci_io_resource;
|
||||
static struct resource pci_mem_resource;
|
||||
@@ -95,6 +95,7 @@ static int ltq_pci_startup(struct platform_device *pdev)
|
||||
struct device_node *node = pdev->dev.of_node;
|
||||
const __be32 *req_mask, *bus_clk;
|
||||
u32 temp_buffer;
|
||||
int error;
|
||||
|
||||
/* get our clocks */
|
||||
clk_pci = clk_get(&pdev->dev, NULL);
|
||||
@@ -123,17 +124,14 @@ static int ltq_pci_startup(struct platform_device *pdev)
|
||||
clk_disable(clk_external);
|
||||
|
||||
/* setup reset gpio used by pci */
|
||||
reset_gpio = of_get_named_gpio(node, "gpio-reset", 0);
|
||||
if (gpio_is_valid(reset_gpio)) {
|
||||
int ret = devm_gpio_request(&pdev->dev,
|
||||
reset_gpio, "pci-reset");
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev,
|
||||
"failed to request gpio %d\n", reset_gpio);
|
||||
return ret;
|
||||
}
|
||||
gpio_direction_output(reset_gpio, 1);
|
||||
reset_gpio = devm_gpiod_get_optional(&pdev->dev, "reset",
|
||||
GPIOD_OUT_LOW);
|
||||
error = PTR_ERR_OR_ZERO(reset_gpio);
|
||||
if (error) {
|
||||
dev_err(&pdev->dev, "failed to request gpio: %d\n", error);
|
||||
return error;
|
||||
}
|
||||
gpiod_set_consumer_name(reset_gpio, "pci_reset");
|
||||
|
||||
/* enable auto-switching between PCI and EBU */
|
||||
ltq_pci_w32(0xa, PCI_CR_CLK_CTRL);
|
||||
@@ -195,11 +193,11 @@ static int ltq_pci_startup(struct platform_device *pdev)
|
||||
ltq_ebu_w32(ltq_ebu_r32(LTQ_EBU_PCC_IEN) | 0x10, LTQ_EBU_PCC_IEN);
|
||||
|
||||
/* toggle reset pin */
|
||||
if (gpio_is_valid(reset_gpio)) {
|
||||
__gpio_set_value(reset_gpio, 0);
|
||||
if (reset_gpio) {
|
||||
gpiod_set_value_cansleep(reset_gpio, 1);
|
||||
wmb();
|
||||
mdelay(1);
|
||||
__gpio_set_value(reset_gpio, 1);
|
||||
gpiod_set_value_cansleep(reset_gpio, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ void __init plat_mem_setup(void)
|
||||
pr_info(" builtin_cmdline : %s\n", CONFIG_CMDLINE);
|
||||
#endif
|
||||
if (dtb != __dtb_start)
|
||||
strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
|
||||
strscpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
|
||||
|
||||
#ifdef CONFIG_EARLY_PRINTK
|
||||
fw_init_early_console(-1);
|
||||
|
||||
@@ -18,22 +18,11 @@ static int bootrom_show(struct seq_file *s, void *unused)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bootrom_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, bootrom_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations bootrom_file_ops = {
|
||||
.open = bootrom_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
DEFINE_SHOW_ATTRIBUTE(bootrom);
|
||||
|
||||
static int __init bootrom_setup(void)
|
||||
{
|
||||
debugfs_create_file("bootrom", 0444, NULL, NULL, &bootrom_file_ops);
|
||||
debugfs_create_file("bootrom", 0444, NULL, NULL, &bootrom_fops);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,15 +27,18 @@ static void bridge_platform_create(nasid_t nasid, int widget, int masterwid)
|
||||
{
|
||||
struct xtalk_bridge_platform_data *bd;
|
||||
struct sgi_w1_platform_data *wd;
|
||||
struct platform_device *pdev;
|
||||
struct platform_device *pdev_wd;
|
||||
struct platform_device *pdev_bd;
|
||||
struct resource w1_res;
|
||||
unsigned long offset;
|
||||
|
||||
offset = NODE_OFFSET(nasid);
|
||||
|
||||
wd = kzalloc(sizeof(*wd), GFP_KERNEL);
|
||||
if (!wd)
|
||||
goto no_mem;
|
||||
if (!wd) {
|
||||
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
|
||||
return;
|
||||
}
|
||||
|
||||
snprintf(wd->dev_id, sizeof(wd->dev_id), "bridge-%012lx",
|
||||
offset + (widget << SWIN_SIZE_BITS));
|
||||
@@ -46,24 +49,35 @@ static void bridge_platform_create(nasid_t nasid, int widget, int masterwid)
|
||||
w1_res.end = w1_res.start + 3;
|
||||
w1_res.flags = IORESOURCE_MEM;
|
||||
|
||||
pdev = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev) {
|
||||
kfree(wd);
|
||||
goto no_mem;
|
||||
pdev_wd = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev_wd) {
|
||||
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
|
||||
goto err_kfree_wd;
|
||||
}
|
||||
if (platform_device_add_resources(pdev_wd, &w1_res, 1)) {
|
||||
pr_warn("xtalk:n%d/%x bridge failed to add platform resources.\n", nasid, widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
if (platform_device_add_data(pdev_wd, wd, sizeof(*wd))) {
|
||||
pr_warn("xtalk:n%d/%x bridge failed to add platform data.\n", nasid, widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
if (platform_device_add(pdev_wd)) {
|
||||
pr_warn("xtalk:n%d/%x bridge failed to add platform device.\n", nasid, widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
platform_device_add_resources(pdev, &w1_res, 1);
|
||||
platform_device_add_data(pdev, wd, sizeof(*wd));
|
||||
/* platform_device_add_data() duplicates the data */
|
||||
kfree(wd);
|
||||
platform_device_add(pdev);
|
||||
|
||||
bd = kzalloc(sizeof(*bd), GFP_KERNEL);
|
||||
if (!bd)
|
||||
goto no_mem;
|
||||
pdev = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev) {
|
||||
kfree(bd);
|
||||
goto no_mem;
|
||||
if (!bd) {
|
||||
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
|
||||
goto err_unregister_pdev_wd;
|
||||
}
|
||||
pdev_bd = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev_bd) {
|
||||
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
|
||||
goto err_kfree_bd;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,15 +98,31 @@ static void bridge_platform_create(nasid_t nasid, int widget, int masterwid)
|
||||
bd->io.flags = IORESOURCE_IO;
|
||||
bd->io_offset = offset;
|
||||
|
||||
platform_device_add_data(pdev, bd, sizeof(*bd));
|
||||
if (platform_device_add_data(pdev_bd, bd, sizeof(*bd))) {
|
||||
pr_warn("xtalk:n%d/%x bridge failed to add platform data.\n", nasid, widget);
|
||||
goto err_put_pdev_bd;
|
||||
}
|
||||
if (platform_device_add(pdev_bd)) {
|
||||
pr_warn("xtalk:n%d/%x bridge failed to add platform device.\n", nasid, widget);
|
||||
goto err_put_pdev_bd;
|
||||
}
|
||||
/* platform_device_add_data() duplicates the data */
|
||||
kfree(bd);
|
||||
platform_device_add(pdev);
|
||||
pr_info("xtalk:n%d/%x bridge widget\n", nasid, widget);
|
||||
return;
|
||||
|
||||
no_mem:
|
||||
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
|
||||
err_put_pdev_bd:
|
||||
platform_device_put(pdev_bd);
|
||||
err_kfree_bd:
|
||||
kfree(bd);
|
||||
err_unregister_pdev_wd:
|
||||
platform_device_unregister(pdev_wd);
|
||||
return;
|
||||
err_put_pdev_wd:
|
||||
platform_device_put(pdev_wd);
|
||||
err_kfree_wd:
|
||||
kfree(wd);
|
||||
return;
|
||||
}
|
||||
|
||||
static int probe_one_port(nasid_t nasid, int widget, int masterwid)
|
||||
|
||||
@@ -40,12 +40,15 @@ static void bridge_platform_create(int widget, int masterwid)
|
||||
{
|
||||
struct xtalk_bridge_platform_data *bd;
|
||||
struct sgi_w1_platform_data *wd;
|
||||
struct platform_device *pdev;
|
||||
struct platform_device *pdev_wd;
|
||||
struct platform_device *pdev_bd;
|
||||
struct resource w1_res;
|
||||
|
||||
wd = kzalloc(sizeof(*wd), GFP_KERNEL);
|
||||
if (!wd)
|
||||
goto no_mem;
|
||||
if (!wd) {
|
||||
pr_warn("xtalk:%x bridge create out of memory\n", widget);
|
||||
return;
|
||||
}
|
||||
|
||||
snprintf(wd->dev_id, sizeof(wd->dev_id), "bridge-%012lx",
|
||||
IP30_SWIN_BASE(widget));
|
||||
@@ -56,24 +59,35 @@ static void bridge_platform_create(int widget, int masterwid)
|
||||
w1_res.end = w1_res.start + 3;
|
||||
w1_res.flags = IORESOURCE_MEM;
|
||||
|
||||
pdev = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev) {
|
||||
kfree(wd);
|
||||
goto no_mem;
|
||||
pdev_wd = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev_wd) {
|
||||
pr_warn("xtalk:%x bridge create out of memory\n", widget);
|
||||
goto err_kfree_wd;
|
||||
}
|
||||
if (platform_device_add_resources(pdev_wd, &w1_res, 1)) {
|
||||
pr_warn("xtalk:%x bridge failed to add platform resources.\n", widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
if (platform_device_add_data(pdev_wd, wd, sizeof(*wd))) {
|
||||
pr_warn("xtalk:%x bridge failed to add platform data.\n", widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
if (platform_device_add(pdev_wd)) {
|
||||
pr_warn("xtalk:%x bridge failed to add platform device.\n", widget);
|
||||
goto err_put_pdev_wd;
|
||||
}
|
||||
platform_device_add_resources(pdev, &w1_res, 1);
|
||||
platform_device_add_data(pdev, wd, sizeof(*wd));
|
||||
/* platform_device_add_data() duplicates the data */
|
||||
kfree(wd);
|
||||
platform_device_add(pdev);
|
||||
|
||||
bd = kzalloc(sizeof(*bd), GFP_KERNEL);
|
||||
if (!bd)
|
||||
goto no_mem;
|
||||
pdev = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev) {
|
||||
kfree(bd);
|
||||
goto no_mem;
|
||||
if (!bd) {
|
||||
pr_warn("xtalk:%x bridge create out of memory\n", widget);
|
||||
goto err_unregister_pdev_wd;
|
||||
}
|
||||
pdev_bd = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO);
|
||||
if (!pdev_bd) {
|
||||
pr_warn("xtalk:%x bridge create out of memory\n", widget);
|
||||
goto err_kfree_bd;
|
||||
}
|
||||
|
||||
bd->bridge_addr = IP30_RAW_SWIN_BASE(widget);
|
||||
@@ -93,15 +107,31 @@ static void bridge_platform_create(int widget, int masterwid)
|
||||
bd->io.flags = IORESOURCE_IO;
|
||||
bd->io_offset = IP30_SWIN_BASE(widget);
|
||||
|
||||
platform_device_add_data(pdev, bd, sizeof(*bd));
|
||||
if (platform_device_add_data(pdev_bd, bd, sizeof(*bd))) {
|
||||
pr_warn("xtalk:%x bridge failed to add platform data.\n", widget);
|
||||
goto err_put_pdev_bd;
|
||||
}
|
||||
if (platform_device_add(pdev_bd)) {
|
||||
pr_warn("xtalk:%x bridge failed to add platform device.\n", widget);
|
||||
goto err_put_pdev_bd;
|
||||
}
|
||||
/* platform_device_add_data() duplicates the data */
|
||||
kfree(bd);
|
||||
platform_device_add(pdev);
|
||||
pr_info("xtalk:%x bridge widget\n", widget);
|
||||
return;
|
||||
|
||||
no_mem:
|
||||
pr_warn("xtalk:%x bridge create out of memory\n", widget);
|
||||
err_put_pdev_bd:
|
||||
platform_device_put(pdev_bd);
|
||||
err_kfree_bd:
|
||||
kfree(bd);
|
||||
err_unregister_pdev_wd:
|
||||
platform_device_unregister(pdev_wd);
|
||||
return;
|
||||
err_put_pdev_wd:
|
||||
platform_device_put(pdev_wd);
|
||||
err_kfree_wd:
|
||||
kfree(wd);
|
||||
return;
|
||||
}
|
||||
|
||||
static unsigned int __init xbow_widget_active(s8 wid)
|
||||
|
||||
@@ -262,12 +262,6 @@ void __init arch_init_irq(void)
|
||||
__raw_writeq(tmp, IOADDR(A_IMR_REGISTER(0, R_IMR_INTERRUPT_MASK)));
|
||||
__raw_writeq(tmp, IOADDR(A_IMR_REGISTER(1, R_IMR_INTERRUPT_MASK)));
|
||||
|
||||
/*
|
||||
* Note that the timer interrupts are also mapped, but this is
|
||||
* done in sb1250_time_init(). Also, the profiling driver
|
||||
* does its own management of IP7.
|
||||
*/
|
||||
|
||||
/* Enable necessary IPs, disable the rest */
|
||||
change_c0_status(ST0_IM, imask);
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ __asm__ (".section .text\n"
|
||||
".option norelax\n"
|
||||
"lla gp, __global_pointer$\n"
|
||||
".option pop\n"
|
||||
"ld a0, 0(sp)\n" // argc (a0) was in the stack
|
||||
"lw a0, 0(sp)\n" // argc (a0) was in the stack
|
||||
"add a1, sp, "SZREG"\n" // argv (a1) = sp
|
||||
"slli a2, a0, "PTRLOG"\n" // envp (a2) = SZREG*argc ...
|
||||
"add a2, a2, "SZREG"\n" // + SZREG (skip null)
|
||||
|
||||
@@ -692,12 +692,12 @@ void *sys_mmap(void *addr, size_t length, int prot, int flags, int fd,
|
||||
{
|
||||
#ifndef my_syscall6
|
||||
/* Function not implemented. */
|
||||
return -ENOSYS;
|
||||
return (void *)-ENOSYS;
|
||||
#else
|
||||
|
||||
int n;
|
||||
|
||||
#if defined(__i386__)
|
||||
#if defined(__NR_mmap2)
|
||||
n = __NR_mmap2;
|
||||
offset >>= 12;
|
||||
#else
|
||||
|
||||
4
tools/testing/selftests/nolibc/.gitignore
vendored
Normal file
4
tools/testing/selftests/nolibc/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/initramfs/
|
||||
/nolibc-test
|
||||
/run.out
|
||||
/sysroot/
|
||||
135
tools/testing/selftests/nolibc/Makefile
Normal file
135
tools/testing/selftests/nolibc/Makefile
Normal file
@@ -0,0 +1,135 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Makefile for nolibc tests
|
||||
include ../../../scripts/Makefile.include
|
||||
|
||||
# we're in ".../tools/testing/selftests/nolibc"
|
||||
ifeq ($(srctree),)
|
||||
srctree := $(patsubst %/tools/testing/selftests/,%,$(dir $(CURDIR)))
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),)
|
||||
include $(srctree)/scripts/subarch.include
|
||||
ARCH = $(SUBARCH)
|
||||
endif
|
||||
|
||||
# kernel image names by architecture
|
||||
IMAGE_i386 = arch/x86/boot/bzImage
|
||||
IMAGE_x86 = arch/x86/boot/bzImage
|
||||
IMAGE_arm64 = arch/arm64/boot/Image
|
||||
IMAGE_arm = arch/arm/boot/zImage
|
||||
IMAGE_mips = vmlinuz
|
||||
IMAGE_riscv = arch/riscv/boot/Image
|
||||
IMAGE = $(IMAGE_$(ARCH))
|
||||
IMAGE_NAME = $(notdir $(IMAGE))
|
||||
|
||||
# default kernel configurations that appear to be usable
|
||||
DEFCONFIG_i386 = defconfig
|
||||
DEFCONFIG_x86 = defconfig
|
||||
DEFCONFIG_arm64 = defconfig
|
||||
DEFCONFIG_arm = multi_v7_defconfig
|
||||
DEFCONFIG_mips = malta_defconfig
|
||||
DEFCONFIG_riscv = defconfig
|
||||
DEFCONFIG = $(DEFCONFIG_$(ARCH))
|
||||
|
||||
# optional tests to run (default = all)
|
||||
TEST =
|
||||
|
||||
# QEMU_ARCH: arch names used by qemu
|
||||
QEMU_ARCH_i386 = i386
|
||||
QEMU_ARCH_x86 = x86_64
|
||||
QEMU_ARCH_arm64 = aarch64
|
||||
QEMU_ARCH_arm = arm
|
||||
QEMU_ARCH_mips = mipsel # works with malta_defconfig
|
||||
QEMU_ARCH_riscv = riscv64
|
||||
QEMU_ARCH = $(QEMU_ARCH_$(ARCH))
|
||||
|
||||
# QEMU_ARGS : some arch-specific args to pass to qemu
|
||||
QEMU_ARGS_i386 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS_x86 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS_arm64 = -M virt -cpu cortex-a53 -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS_arm = -M virt -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS_mips = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS_riscv = -M virt -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)"
|
||||
QEMU_ARGS = $(QEMU_ARGS_$(ARCH))
|
||||
|
||||
# OUTPUT is only set when run from the main makefile, otherwise
|
||||
# it defaults to this nolibc directory.
|
||||
OUTPUT ?= $(CURDIR)/
|
||||
|
||||
ifeq ($(V),1)
|
||||
Q=
|
||||
else
|
||||
Q=@
|
||||
endif
|
||||
|
||||
CFLAGS ?= -Os -fno-ident -fno-asynchronous-unwind-tables
|
||||
LDFLAGS := -s
|
||||
|
||||
help:
|
||||
@echo "Supported targets under selftests/nolibc:"
|
||||
@echo " all call the \"run\" target below"
|
||||
@echo " help this help"
|
||||
@echo " sysroot create the nolibc sysroot here (uses \$$ARCH)"
|
||||
@echo " nolibc-test build the executable (uses \$$CC and \$$CROSS_COMPILE)"
|
||||
@echo " initramfs prepare the initramfs with nolibc-test"
|
||||
@echo " defconfig create a fresh new default config (uses \$$ARCH)"
|
||||
@echo " kernel (re)build the kernel with the initramfs (uses \$$ARCH)"
|
||||
@echo " run runs the kernel in QEMU after building it (uses \$$ARCH, \$$TEST)"
|
||||
@echo " rerun runs a previously prebuilt kernel in QEMU (uses \$$ARCH, \$$TEST)"
|
||||
@echo " clean clean the sysroot, initramfs, build and output files"
|
||||
@echo ""
|
||||
@echo "The output file is \"run.out\". Test ranges may be passed using \$$TEST."
|
||||
@echo ""
|
||||
@echo "Currently using the following variables:"
|
||||
@echo " ARCH = $(ARCH)"
|
||||
@echo " CROSS_COMPILE = $(CROSS_COMPILE)"
|
||||
@echo " CC = $(CC)"
|
||||
@echo " OUTPUT = $(OUTPUT)"
|
||||
@echo " TEST = $(TEST)"
|
||||
@echo " QEMU_ARCH = $(if $(QEMU_ARCH),$(QEMU_ARCH),UNKNOWN_ARCH) [determined from \$$ARCH]"
|
||||
@echo " IMAGE_NAME = $(if $(IMAGE_NAME),$(IMAGE_NAME),UNKNOWN_ARCH) [determined from \$$ARCH]"
|
||||
@echo ""
|
||||
|
||||
all: run
|
||||
|
||||
sysroot: sysroot/$(ARCH)/include
|
||||
|
||||
sysroot/$(ARCH)/include:
|
||||
$(QUIET_MKDIR)mkdir -p sysroot
|
||||
$(Q)$(MAKE) -C ../../../include/nolibc ARCH=$(ARCH) OUTPUT=$(CURDIR)/sysroot/ headers_standalone
|
||||
$(Q)mv sysroot/sysroot sysroot/$(ARCH)
|
||||
|
||||
nolibc-test: nolibc-test.c sysroot/$(ARCH)/include
|
||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
|
||||
-nostdlib -static -Isysroot/$(ARCH)/include $< -lgcc
|
||||
|
||||
initramfs: nolibc-test
|
||||
$(QUIET_MKDIR)mkdir -p initramfs
|
||||
$(call QUIET_INSTALL, initramfs/init)
|
||||
$(Q)cp nolibc-test initramfs/init
|
||||
|
||||
defconfig:
|
||||
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) mrproper $(DEFCONFIG) prepare
|
||||
|
||||
kernel: initramfs
|
||||
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) $(IMAGE_NAME) CONFIG_INITRAMFS_SOURCE=$(CURDIR)/initramfs
|
||||
|
||||
# run the tests after building the kernel
|
||||
run: kernel
|
||||
$(Q)qemu-system-$(QEMU_ARCH) -display none -no-reboot -kernel "$(srctree)/$(IMAGE)" -serial stdio $(QEMU_ARGS) > "$(CURDIR)/run.out"
|
||||
$(Q)grep -w FAIL "$(CURDIR)/run.out" && echo "See all results in $(CURDIR)/run.out" || echo "$$(grep -c ^[0-9].*OK $(CURDIR)/run.out) test(s) passed."
|
||||
|
||||
# re-run the tests from an existing kernel
|
||||
rerun:
|
||||
$(Q)qemu-system-$(QEMU_ARCH) -display none -no-reboot -kernel "$(srctree)/$(IMAGE)" -serial stdio $(QEMU_ARGS) > "$(CURDIR)/run.out"
|
||||
$(Q)grep -w FAIL "$(CURDIR)/run.out" && echo "See all results in $(CURDIR)/run.out" || echo "$$(grep -c ^[0-9].*OK $(CURDIR)/run.out) test(s) passed."
|
||||
|
||||
clean:
|
||||
$(call QUIET_CLEAN, sysroot)
|
||||
$(Q)rm -rf sysroot
|
||||
$(call QUIET_CLEAN, nolibc-test)
|
||||
$(Q)rm -f nolibc-test
|
||||
$(call QUIET_CLEAN, initramfs)
|
||||
$(Q)rm -rf initramfs
|
||||
$(call QUIET_CLEAN, run.out)
|
||||
$(Q)rm -rf run.out
|
||||
757
tools/testing/selftests/nolibc/nolibc-test.c
Normal file
757
tools/testing/selftests/nolibc/nolibc-test.c
Normal file
@@ -0,0 +1,757 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
/* platform-specific include files coming from the compiler */
|
||||
#include <limits.h>
|
||||
|
||||
/* libc-specific include files
|
||||
* The program may be built in 3 ways:
|
||||
* $(CC) -nostdlib -include /path/to/nolibc.h => NOLIBC already defined
|
||||
* $(CC) -nostdlib -I/path/to/nolibc/sysroot => _NOLIBC_* guards are present
|
||||
* $(CC) with default libc => NOLIBC* never defined
|
||||
*/
|
||||
#ifndef NOLIBC
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifndef _NOLIBC_STDIO_H
|
||||
/* standard libcs need more includes */
|
||||
#include <linux/reboot.h>
|
||||
#include <sys/io.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/wait.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* will be used by nolibc by getenv() */
|
||||
char **environ;
|
||||
|
||||
/* definition of a series of tests */
|
||||
struct test {
|
||||
const char *name; // test name
|
||||
int (*func)(int min, int max); // handler
|
||||
};
|
||||
|
||||
#ifndef _NOLIBC_STDLIB_H
|
||||
char *itoa(int i)
|
||||
{
|
||||
static char buf[12];
|
||||
int ret;
|
||||
|
||||
ret = snprintf(buf, sizeof(buf), "%d", i);
|
||||
return (ret >= 0 && ret < sizeof(buf)) ? buf : "#err";
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CASE_ERR(err) \
|
||||
case err: return #err
|
||||
|
||||
/* returns the error name (e.g. "ENOENT") for common errors, "SUCCESS" for 0,
|
||||
* or the decimal value for less common ones.
|
||||
*/
|
||||
const char *errorname(int err)
|
||||
{
|
||||
switch (err) {
|
||||
case 0: return "SUCCESS";
|
||||
CASE_ERR(EPERM);
|
||||
CASE_ERR(ENOENT);
|
||||
CASE_ERR(ESRCH);
|
||||
CASE_ERR(EINTR);
|
||||
CASE_ERR(EIO);
|
||||
CASE_ERR(ENXIO);
|
||||
CASE_ERR(E2BIG);
|
||||
CASE_ERR(ENOEXEC);
|
||||
CASE_ERR(EBADF);
|
||||
CASE_ERR(ECHILD);
|
||||
CASE_ERR(EAGAIN);
|
||||
CASE_ERR(ENOMEM);
|
||||
CASE_ERR(EACCES);
|
||||
CASE_ERR(EFAULT);
|
||||
CASE_ERR(ENOTBLK);
|
||||
CASE_ERR(EBUSY);
|
||||
CASE_ERR(EEXIST);
|
||||
CASE_ERR(EXDEV);
|
||||
CASE_ERR(ENODEV);
|
||||
CASE_ERR(ENOTDIR);
|
||||
CASE_ERR(EISDIR);
|
||||
CASE_ERR(EINVAL);
|
||||
CASE_ERR(ENFILE);
|
||||
CASE_ERR(EMFILE);
|
||||
CASE_ERR(ENOTTY);
|
||||
CASE_ERR(ETXTBSY);
|
||||
CASE_ERR(EFBIG);
|
||||
CASE_ERR(ENOSPC);
|
||||
CASE_ERR(ESPIPE);
|
||||
CASE_ERR(EROFS);
|
||||
CASE_ERR(EMLINK);
|
||||
CASE_ERR(EPIPE);
|
||||
CASE_ERR(EDOM);
|
||||
CASE_ERR(ERANGE);
|
||||
CASE_ERR(ENOSYS);
|
||||
default:
|
||||
return itoa(err);
|
||||
}
|
||||
}
|
||||
|
||||
static int pad_spc(int llen, int cnt, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
int len;
|
||||
int ret;
|
||||
|
||||
for (len = 0; len < cnt - llen; len++)
|
||||
putchar(' ');
|
||||
|
||||
va_start(args, fmt);
|
||||
ret = vfprintf(stdout, fmt, args);
|
||||
va_end(args);
|
||||
return ret < 0 ? ret : ret + len;
|
||||
}
|
||||
|
||||
/* The tests below are intended to be used by the macroes, which evaluate
|
||||
* expression <expr>, print the status to stdout, and update the "ret"
|
||||
* variable to count failures. The functions themselves return the number
|
||||
* of failures, thus either 0 or 1.
|
||||
*/
|
||||
|
||||
#define EXPECT_ZR(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_zr(expr, llen); } while (0)
|
||||
|
||||
static int expect_zr(int expr, int llen)
|
||||
{
|
||||
int ret = !(expr == 0);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_NZ(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_nz(expr, llen; } while (0)
|
||||
|
||||
static int expect_nz(int expr, int llen)
|
||||
{
|
||||
int ret = !(expr != 0);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_EQ(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_eq(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_eq(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr == val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_NE(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_ne(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_ne(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr != val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_GE(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_ge(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_ge(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr >= val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_GT(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_gt(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_gt(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr > val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_LE(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_le(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_le(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr <= val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_LT(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_lt(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_lt(int expr, int llen, int val)
|
||||
{
|
||||
int ret = !(expr < val);
|
||||
|
||||
llen += printf(" = %d ", expr);
|
||||
pad_spc(llen, 40, ret ? "[FAIL]\n" : " [OK]\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_SYSZR(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_syszr(expr, llen); } while (0)
|
||||
|
||||
static int expect_syszr(int expr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (expr) {
|
||||
ret = 1;
|
||||
llen += printf(" = %d %s ", expr, errorname(errno));
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += printf(" = %d ", expr);
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_SYSEQ(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_syseq(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_syseq(int expr, int llen, int val)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (expr != val) {
|
||||
ret = 1;
|
||||
llen += printf(" = %d %s ", expr, errorname(errno));
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += printf(" = %d ", expr);
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_SYSNE(cond, expr, val) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_sysne(expr, llen, val); } while (0)
|
||||
|
||||
static int expect_sysne(int expr, int llen, int val)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (expr == val) {
|
||||
ret = 1;
|
||||
llen += printf(" = %d %s ", expr, errorname(errno));
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += printf(" = %d ", expr);
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_SYSER(cond, expr, expret, experr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_syserr(expr, expret, experr, llen); } while (0)
|
||||
|
||||
static int expect_syserr(int expr, int expret, int experr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
int _errno = errno;
|
||||
|
||||
llen += printf(" = %d %s ", expr, errorname(_errno));
|
||||
if (expr != expret || _errno != experr) {
|
||||
ret = 1;
|
||||
llen += printf(" != (%d %s) ", expret, errorname(experr));
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_PTRZR(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_ptrzr(expr, llen); } while (0)
|
||||
|
||||
static int expect_ptrzr(const void *expr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%p> ", expr);
|
||||
if (expr) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_PTRNZ(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_ptrnz(expr, llen); } while (0)
|
||||
|
||||
static int expect_ptrnz(const void *expr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%p> ", expr);
|
||||
if (!expr) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_STRZR(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_strzr(expr, llen); } while (0)
|
||||
|
||||
static int expect_strzr(const char *expr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%s> ", expr);
|
||||
if (expr) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_STRNZ(cond, expr) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_strnz(expr, llen); } while (0)
|
||||
|
||||
static int expect_strnz(const char *expr, int llen)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%s> ", expr);
|
||||
if (!expr) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_STREQ(cond, expr, cmp) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_streq(expr, llen, cmp); } while (0)
|
||||
|
||||
static int expect_streq(const char *expr, int llen, const char *cmp)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%s> ", expr);
|
||||
if (strcmp(expr, cmp) != 0) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
#define EXPECT_STRNE(cond, expr, cmp) \
|
||||
do { if (!cond) pad_spc(llen, 40, "[SKIPPED]\n"); else ret += expect_strne(expr, llen, cmp); } while (0)
|
||||
|
||||
static int expect_strne(const char *expr, int llen, const char *cmp)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
llen += printf(" = <%s> ", expr);
|
||||
if (strcmp(expr, cmp) == 0) {
|
||||
ret = 1;
|
||||
llen += pad_spc(llen, 40, "[FAIL]\n");
|
||||
} else {
|
||||
llen += pad_spc(llen, 40, " [OK]\n");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* declare tests based on line numbers. There must be exactly one test per line. */
|
||||
#define CASE_TEST(name) \
|
||||
case __LINE__: llen += printf("%d %s", test, #name);
|
||||
|
||||
|
||||
/* used by some syscall tests below */
|
||||
int test_getdents64(const char *dir)
|
||||
{
|
||||
char buffer[4096];
|
||||
int fd, ret;
|
||||
int err;
|
||||
|
||||
ret = fd = open(dir, O_RDONLY | O_DIRECTORY, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = getdents64(fd, (void *)buffer, sizeof(buffer));
|
||||
err = errno;
|
||||
close(fd);
|
||||
|
||||
errno = err;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Run syscall tests between IDs <min> and <max>.
|
||||
* Return 0 on success, non-zero on failure.
|
||||
*/
|
||||
int run_syscall(int min, int max)
|
||||
{
|
||||
struct stat stat_buf;
|
||||
int proc;
|
||||
int test;
|
||||
int tmp;
|
||||
int ret = 0;
|
||||
void *p1, *p2;
|
||||
|
||||
/* <proc> indicates whether or not /proc is mounted */
|
||||
proc = stat("/proc", &stat_buf) == 0;
|
||||
|
||||
for (test = min; test >= 0 && test <= max; test++) {
|
||||
int llen = 0; // line length
|
||||
|
||||
/* avoid leaving empty lines below, this will insert holes into
|
||||
* test numbers.
|
||||
*/
|
||||
switch (test + __LINE__ + 1) {
|
||||
CASE_TEST(getpid); EXPECT_SYSNE(1, getpid(), -1); break;
|
||||
CASE_TEST(getppid); EXPECT_SYSNE(1, getppid(), -1); break;
|
||||
#ifdef NOLIBC
|
||||
CASE_TEST(gettid); EXPECT_SYSNE(1, gettid(), -1); break;
|
||||
#endif
|
||||
CASE_TEST(getpgid_self); EXPECT_SYSNE(1, getpgid(0), -1); break;
|
||||
CASE_TEST(getpgid_bad); EXPECT_SYSER(1, getpgid(-1), -1, ESRCH); break;
|
||||
CASE_TEST(kill_0); EXPECT_SYSZR(1, kill(getpid(), 0)); break;
|
||||
CASE_TEST(kill_CONT); EXPECT_SYSZR(1, kill(getpid(), 0)); break;
|
||||
CASE_TEST(kill_BADPID); EXPECT_SYSER(1, kill(INT_MAX, 0), -1, ESRCH); break;
|
||||
CASE_TEST(sbrk); if ((p1 = p2 = sbrk(4096)) != (void *)-1) p2 = sbrk(-4096); EXPECT_SYSZR(1, (p2 == (void *)-1) || p2 == p1); break;
|
||||
CASE_TEST(brk); EXPECT_SYSZR(1, brk(sbrk(0))); break;
|
||||
CASE_TEST(chdir_root); EXPECT_SYSZR(1, chdir("/")); break;
|
||||
CASE_TEST(chdir_dot); EXPECT_SYSZR(1, chdir(".")); break;
|
||||
CASE_TEST(chdir_blah); EXPECT_SYSER(1, chdir("/blah"), -1, ENOENT); break;
|
||||
CASE_TEST(chmod_net); EXPECT_SYSZR(proc, chmod("/proc/self/net", 0555)); break;
|
||||
CASE_TEST(chmod_self); EXPECT_SYSER(proc, chmod("/proc/self", 0555), -1, EPERM); break;
|
||||
CASE_TEST(chown_self); EXPECT_SYSER(proc, chown("/proc/self", 0, 0), -1, EPERM); break;
|
||||
CASE_TEST(chroot_root); EXPECT_SYSZR(1, chroot("/")); break;
|
||||
CASE_TEST(chroot_blah); EXPECT_SYSER(1, chroot("/proc/self/blah"), -1, ENOENT); break;
|
||||
CASE_TEST(chroot_exe); EXPECT_SYSER(proc, chroot("/proc/self/exe"), -1, ENOTDIR); break;
|
||||
CASE_TEST(close_m1); EXPECT_SYSER(1, close(-1), -1, EBADF); break;
|
||||
CASE_TEST(close_dup); EXPECT_SYSZR(1, close(dup(0))); break;
|
||||
CASE_TEST(dup_0); tmp = dup(0); EXPECT_SYSNE(1, tmp, -1); close(tmp); break;
|
||||
CASE_TEST(dup_m1); tmp = dup(-1); EXPECT_SYSER(1, tmp, -1, EBADF); if (tmp != -1) close(tmp); break;
|
||||
CASE_TEST(dup2_0); tmp = dup2(0, 100); EXPECT_SYSNE(1, tmp, -1); close(tmp); break;
|
||||
CASE_TEST(dup2_m1); tmp = dup2(-1, 100); EXPECT_SYSER(1, tmp, -1, EBADF); if (tmp != -1) close(tmp); break;
|
||||
CASE_TEST(dup3_0); tmp = dup3(0, 100, 0); EXPECT_SYSNE(1, tmp, -1); close(tmp); break;
|
||||
CASE_TEST(dup3_m1); tmp = dup3(-1, 100, 0); EXPECT_SYSER(1, tmp, -1, EBADF); if (tmp != -1) close(tmp); break;
|
||||
CASE_TEST(execve_root); EXPECT_SYSER(1, execve("/", (char*[]){ [0] = "/", [1] = NULL }, NULL), -1, EACCES); break;
|
||||
CASE_TEST(getdents64_root); EXPECT_SYSNE(1, test_getdents64("/"), -1); break;
|
||||
CASE_TEST(getdents64_null); EXPECT_SYSER(1, test_getdents64("/dev/null"), -1, ENOTDIR); break;
|
||||
CASE_TEST(gettimeofday_null); EXPECT_SYSZR(1, gettimeofday(NULL, NULL)); break;
|
||||
#ifdef NOLIBC
|
||||
CASE_TEST(gettimeofday_bad1); EXPECT_SYSER(1, gettimeofday((void *)1, NULL), -1, EFAULT); break;
|
||||
CASE_TEST(gettimeofday_bad2); EXPECT_SYSER(1, gettimeofday(NULL, (void *)1), -1, EFAULT); break;
|
||||
CASE_TEST(gettimeofday_bad2); EXPECT_SYSER(1, gettimeofday(NULL, (void *)1), -1, EFAULT); break;
|
||||
#endif
|
||||
CASE_TEST(ioctl_tiocinq); EXPECT_SYSZR(1, ioctl(0, TIOCINQ, &tmp)); break;
|
||||
CASE_TEST(ioctl_tiocinq); EXPECT_SYSZR(1, ioctl(0, TIOCINQ, &tmp)); break;
|
||||
CASE_TEST(link_root1); EXPECT_SYSER(1, link("/", "/"), -1, EEXIST); break;
|
||||
CASE_TEST(link_blah); EXPECT_SYSER(1, link("/proc/self/blah", "/blah"), -1, ENOENT); break;
|
||||
CASE_TEST(link_dir); EXPECT_SYSER(1, link("/", "/blah"), -1, EPERM); break;
|
||||
CASE_TEST(link_cross); EXPECT_SYSER(proc, link("/proc/self/net", "/blah"), -1, EXDEV); break;
|
||||
CASE_TEST(lseek_m1); EXPECT_SYSER(1, lseek(-1, 0, SEEK_SET), -1, EBADF); break;
|
||||
CASE_TEST(lseek_0); EXPECT_SYSER(1, lseek(0, 0, SEEK_SET), -1, ESPIPE); break;
|
||||
CASE_TEST(mkdir_root); EXPECT_SYSER(1, mkdir("/", 0755), -1, EEXIST); break;
|
||||
CASE_TEST(open_tty); EXPECT_SYSNE(1, tmp = open("/dev/null", 0), -1); if (tmp != -1) close(tmp); break;
|
||||
CASE_TEST(open_blah); EXPECT_SYSER(1, tmp = open("/proc/self/blah", 0), -1, ENOENT); if (tmp != -1) close(tmp); break;
|
||||
CASE_TEST(poll_null); EXPECT_SYSZR(1, poll(NULL, 0, 0)); break;
|
||||
CASE_TEST(poll_stdout); EXPECT_SYSNE(1, ({ struct pollfd fds = { 1, POLLOUT, 0}; poll(&fds, 1, 0); }), -1); break;
|
||||
CASE_TEST(poll_fault); EXPECT_SYSER(1, poll((void *)1, 1, 0), -1, EFAULT); break;
|
||||
CASE_TEST(read_badf); EXPECT_SYSER(1, read(-1, &tmp, 1), -1, EBADF); break;
|
||||
CASE_TEST(sched_yield); EXPECT_SYSZR(1, sched_yield()); break;
|
||||
CASE_TEST(select_null); EXPECT_SYSZR(1, ({ struct timeval tv = { 0 }; select(0, NULL, NULL, NULL, &tv); })); break;
|
||||
CASE_TEST(select_stdout); EXPECT_SYSNE(1, ({ fd_set fds; FD_ZERO(&fds); FD_SET(1, &fds); select(2, NULL, &fds, NULL, NULL); }), -1); break;
|
||||
CASE_TEST(select_fault); EXPECT_SYSER(1, select(1, (void *)1, NULL, NULL, 0), -1, EFAULT); break;
|
||||
CASE_TEST(stat_blah); EXPECT_SYSER(1, stat("/proc/self/blah", &stat_buf), -1, ENOENT); break;
|
||||
CASE_TEST(stat_fault); EXPECT_SYSER(1, stat(NULL, &stat_buf), -1, EFAULT); break;
|
||||
CASE_TEST(symlink_root); EXPECT_SYSER(1, symlink("/", "/"), -1, EEXIST); break;
|
||||
CASE_TEST(unlink_root); EXPECT_SYSER(1, unlink("/"), -1, EISDIR); break;
|
||||
CASE_TEST(unlink_blah); EXPECT_SYSER(1, unlink("/proc/self/blah"), -1, ENOENT); break;
|
||||
CASE_TEST(wait_child); EXPECT_SYSER(1, wait(&tmp), -1, ECHILD); break;
|
||||
CASE_TEST(waitpid_min); EXPECT_SYSER(1, waitpid(INT_MIN, &tmp, WNOHANG), -1, ESRCH); break;
|
||||
CASE_TEST(waitpid_child); EXPECT_SYSER(1, waitpid(getpid(), &tmp, WNOHANG), -1, ECHILD); break;
|
||||
CASE_TEST(write_badf); EXPECT_SYSER(1, write(-1, &tmp, 1), -1, EBADF); break;
|
||||
CASE_TEST(write_zero); EXPECT_SYSZR(1, write(1, &tmp, 0)); break;
|
||||
case __LINE__:
|
||||
return ret; /* must be last */
|
||||
/* note: do not set any defaults so as to permit holes above */
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int run_stdlib(int min, int max)
|
||||
{
|
||||
int test;
|
||||
int tmp;
|
||||
int ret = 0;
|
||||
void *p1, *p2;
|
||||
|
||||
for (test = min; test >= 0 && test <= max; test++) {
|
||||
int llen = 0; // line length
|
||||
|
||||
/* avoid leaving empty lines below, this will insert holes into
|
||||
* test numbers.
|
||||
*/
|
||||
switch (test + __LINE__ + 1) {
|
||||
CASE_TEST(getenv_TERM); EXPECT_STRNZ(1, getenv("TERM")); break;
|
||||
CASE_TEST(getenv_blah); EXPECT_STRZR(1, getenv("blah")); break;
|
||||
CASE_TEST(setcmp_blah_blah); EXPECT_EQ(1, strcmp("blah", "blah"), 0); break;
|
||||
CASE_TEST(setcmp_blah_blah2); EXPECT_NE(1, strcmp("blah", "blah2"), 0); break;
|
||||
CASE_TEST(setncmp_blah_blah); EXPECT_EQ(1, strncmp("blah", "blah", 10), 0); break;
|
||||
CASE_TEST(setncmp_blah_blah4); EXPECT_EQ(1, strncmp("blah", "blah4", 4), 0); break;
|
||||
CASE_TEST(setncmp_blah_blah5); EXPECT_NE(1, strncmp("blah", "blah5", 5), 0); break;
|
||||
CASE_TEST(setncmp_blah_blah6); EXPECT_NE(1, strncmp("blah", "blah6", 6), 0); break;
|
||||
CASE_TEST(strchr_foobar_o); EXPECT_STREQ(1, strchr("foobar", 'o'), "oobar"); break;
|
||||
CASE_TEST(strchr_foobar_z); EXPECT_STRZR(1, strchr("foobar", 'z')); break;
|
||||
CASE_TEST(strrchr_foobar_o); EXPECT_STREQ(1, strrchr("foobar", 'o'), "obar"); break;
|
||||
CASE_TEST(strrchr_foobar_z); EXPECT_STRZR(1, strrchr("foobar", 'z')); break;
|
||||
case __LINE__:
|
||||
return ret; /* must be last */
|
||||
/* note: do not set any defaults so as to permit holes above */
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* prepare what needs to be prepared for pid 1 (stdio, /dev, /proc, etc) */
|
||||
int prepare(void)
|
||||
{
|
||||
struct stat stat_buf;
|
||||
|
||||
/* It's possible that /dev doesn't even exist or was not mounted, so
|
||||
* we'll try to create it, mount it, or create minimal entries into it.
|
||||
* We want at least /dev/null and /dev/console.
|
||||
*/
|
||||
if (stat("/dev/.", &stat_buf) == 0 || mkdir("/dev", 0755) == 0) {
|
||||
if (stat("/dev/console", &stat_buf) != 0 ||
|
||||
stat("/dev/null", &stat_buf) != 0) {
|
||||
/* try devtmpfs first, otherwise fall back to manual creation */
|
||||
if (mount("/dev", "/dev", "devtmpfs", 0, 0) != 0) {
|
||||
mknod("/dev/console", 0600 | S_IFCHR, makedev(5, 1));
|
||||
mknod("/dev/null", 0666 | S_IFCHR, makedev(1, 3));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* If no /dev/console was found before calling init, stdio is closed so
|
||||
* we need to reopen it from /dev/console. If it failed above, it will
|
||||
* still fail here and we cannot emit a message anyway.
|
||||
*/
|
||||
if (close(dup(1)) == -1) {
|
||||
int fd = open("/dev/console", O_RDWR);
|
||||
|
||||
if (fd >= 0) {
|
||||
if (fd != 0)
|
||||
dup2(fd, 0);
|
||||
if (fd != 1)
|
||||
dup2(fd, 1);
|
||||
if (fd != 2)
|
||||
dup2(fd, 2);
|
||||
if (fd > 2)
|
||||
close(fd);
|
||||
puts("\nSuccessfully reopened /dev/console.");
|
||||
}
|
||||
}
|
||||
|
||||
/* try to mount /proc if not mounted. Silently fail otherwise */
|
||||
if (stat("/proc/.", &stat_buf) == 0 || mkdir("/proc", 0755) == 0) {
|
||||
if (stat("/proc/self", &stat_buf) != 0)
|
||||
mount("/proc", "/proc", "proc", 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This is the definition of known test names, with their functions */
|
||||
static struct test test_names[] = {
|
||||
/* add new tests here */
|
||||
{ .name = "syscall", .func = run_syscall },
|
||||
{ .name = "stdlib", .func = run_stdlib },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
int min = 0;
|
||||
int max = __INT_MAX__;
|
||||
int ret = 0;
|
||||
int err;
|
||||
int idx;
|
||||
char *test;
|
||||
|
||||
environ = envp;
|
||||
|
||||
/* when called as init, it's possible that no console was opened, for
|
||||
* example if no /dev file system was provided. We'll check that fd#1
|
||||
* was opened, and if not we'll attempt to create and open /dev/console
|
||||
* and /dev/null that we'll use for later tests.
|
||||
*/
|
||||
if (getpid() == 1)
|
||||
prepare();
|
||||
|
||||
/* the definition of a series of tests comes from either argv[1] or the
|
||||
* "NOLIBC_TEST" environment variable. It's made of a comma-delimited
|
||||
* series of test names and optional ranges:
|
||||
* syscall:5-15[:.*],stdlib:8-10
|
||||
*/
|
||||
test = argv[1];
|
||||
if (!test)
|
||||
test = getenv("NOLIBC_TEST");
|
||||
|
||||
if (test) {
|
||||
char *comma, *colon, *dash, *value;
|
||||
|
||||
do {
|
||||
comma = strchr(test, ',');
|
||||
if (comma)
|
||||
*(comma++) = '\0';
|
||||
|
||||
colon = strchr(test, ':');
|
||||
if (colon)
|
||||
*(colon++) = '\0';
|
||||
|
||||
for (idx = 0; test_names[idx].name; idx++) {
|
||||
if (strcmp(test, test_names[idx].name) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (test_names[idx].name) {
|
||||
/* The test was named, it will be called at least
|
||||
* once. We may have an optional range at <colon>
|
||||
* here, which defaults to the full range.
|
||||
*/
|
||||
do {
|
||||
min = 0; max = __INT_MAX__;
|
||||
value = colon;
|
||||
if (value && *value) {
|
||||
colon = strchr(value, ':');
|
||||
if (colon)
|
||||
*(colon++) = '\0';
|
||||
|
||||
dash = strchr(value, '-');
|
||||
if (dash)
|
||||
*(dash++) = '\0';
|
||||
|
||||
/* support :val: :min-max: :min-: :-max: */
|
||||
if (*value)
|
||||
min = atoi(value);
|
||||
if (!dash)
|
||||
max = min;
|
||||
else if (*dash)
|
||||
max = atoi(dash);
|
||||
|
||||
value = colon;
|
||||
}
|
||||
|
||||
/* now's time to call the test */
|
||||
printf("Running test '%s'\n", test_names[idx].name);
|
||||
err = test_names[idx].func(min, max);
|
||||
ret += err;
|
||||
printf("Errors during this test: %d\n\n", err);
|
||||
} while (colon && *colon);
|
||||
} else
|
||||
printf("Ignoring unknown test name '%s'\n", test);
|
||||
|
||||
test = comma;
|
||||
} while (test && *test);
|
||||
} else {
|
||||
/* no test mentioned, run everything */
|
||||
for (idx = 0; test_names[idx].name; idx++) {
|
||||
printf("Running test '%s'\n", test_names[idx].name);
|
||||
err = test_names[idx].func(min, max);
|
||||
ret += err;
|
||||
printf("Errors during this test: %d\n\n", err);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Total number of errors: %d\n", ret);
|
||||
|
||||
if (getpid() == 1) {
|
||||
/* we're running as init, there's no other process on the
|
||||
* system, thus likely started from a VM for a quick check.
|
||||
* Exiting will provoke a kernel panic that may be reported
|
||||
* as an error by Qemu or the hypervisor, while stopping
|
||||
* cleanly will often be reported as a success. This allows
|
||||
* to use the output of this program for bisecting kernels.
|
||||
*/
|
||||
printf("Leaving init with final status: %d\n", !!ret);
|
||||
if (ret == 0)
|
||||
reboot(LINUX_REBOOT_CMD_POWER_OFF);
|
||||
#if defined(__x86_64__)
|
||||
/* QEMU started with "-device isa-debug-exit -no-reboot" will
|
||||
* exit with status code 2N+1 when N is written to 0x501. We
|
||||
* hard-code the syscall here as it's arch-dependent.
|
||||
*/
|
||||
#if defined(_NOLIBC_SYS_H)
|
||||
else if (my_syscall3(__NR_ioperm, 0x501, 1, 1) == 0)
|
||||
#else
|
||||
else if (ioperm(0x501, 1, 1) == 0)
|
||||
#endif
|
||||
asm volatile ("outb %%al, %%dx" :: "d"(0x501), "a"(0));
|
||||
/* if it does nothing, fall back to the regular panic */
|
||||
#endif
|
||||
}
|
||||
|
||||
printf("Exiting with status %d\n", !!ret);
|
||||
return !!ret;
|
||||
}
|
||||
Reference in New Issue
Block a user