Add samsung specific changes

This commit is contained in:
2025-08-11 14:29:00 +02:00
parent c66122e619
commit 4d134a1294
2688 changed files with 1127995 additions and 11475 deletions

View File

@@ -42,7 +42,12 @@ config UML_DMA_EMULATION
config NO_IOMEM
bool "disable IOMEM" if EXPERT
depends on !INDIRECT_IOMEM
default y
default y if !KUNIT
config HAS_IOMEM
bool "Turns on fake IOMEM support for KUnit"
depends on KUNIT
select MOCK_IOMEM
config UML_IOMEM_EMULATION
bool
@@ -225,6 +230,11 @@ config UML_TIME_TRAVEL_SUPPORT
It is safe to say Y, but you probably don't need this.
config PLATFORM_MOCK
bool "Enable a mock architecture used for unit testing."
depends on SEC_KUNIT && OF
default y
config KASAN_SHADOW_OFFSET
hex
depends on KASAN

View File

@@ -0,0 +1,63 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_UM_IO_MOCK_SHARED_H
#define _ASM_UM_IO_MOCK_SHARED_H
#define readb readb
u8 readb(const volatile void __iomem *);
#define readw readw
u16 readw(const volatile void __iomem *);
#define readl readl
u32 readl(const volatile void __iomem *);
#ifdef CONFIG_64BIT
#define readq readq
u64 readq(const volatile void __iomem *);
#endif /* CONFIG_64BIT */
#define writeb writeb
void writeb(u8, const volatile void __iomem *);
#define writew writew
void writew(u16, const volatile void __iomem *);
#define writel writel
void writel(u32, const volatile void __iomem *);
#ifdef CONFIG_64BIT
#define writeq writeq
void writeq(u64, const volatile void __iomem *);
#endif /* CONFIG_64BIT */
#define readb_relaxed readb_relaxed
u8 readb_relaxed(const volatile void __iomem *);
#define readw_relaxed readw_relaxed
u16 readw_relaxed(const volatile void __iomem *);
#define readl_relaxed readl_relaxed
u32 readl_relaxed(const volatile void __iomem *);
#ifdef CONFIG_64BIT
#define readq_relaxed readq_relaxed
u64 readq_relaxed(const volatile void __iomem *);
#endif /* CONFIG_64BIT */
#define writeb_relaxed writeb_relaxed
void writeb_relaxed(u8, const volatile void __iomem *);
#define writew_relaxed writew_relaxed
void writew_relaxed(u16, const volatile void __iomem *);
#define writel_relaxed writel_relaxed
void writel_relaxed(u32, const volatile void __iomem *);
#ifdef CONFIG_64BIT
#define writeq_relaxed writeq_relaxed
void writeq_relaxed(u64, const volatile void __iomem *);
#endif /* CONFIG_64BIT */
#endif /* _ASM_UM_IO_MOCK_SHARED_H */

View File

@@ -0,0 +1,74 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Mock IO functions.
*
* Copyright (C) 2018, Google LLC.
* Author: Brendan Higgins <brendanhiggins@google.com>
*/
#ifndef _ASM_UM_IO_MOCK_H
#define _ASM_UM_IO_MOCK_H
#include <asm/io-mock-shared.h>
#include <kunit/mock.h>
DECLARE_FUNCTION_MOCK(readb,
RETURNS(u8), PARAMS(const volatile void __iomem *));
DECLARE_FUNCTION_MOCK(readw,
RETURNS(u16), PARAMS(const volatile void __iomem *));
DECLARE_FUNCTION_MOCK(readl,
RETURNS(u32), PARAMS(const volatile void __iomem *));
#ifdef CONFIG_64BIT
DECLARE_FUNCTION_MOCK(readq,
RETURNS(u64), PARAMS(const volatile void __iomem *));
#endif /* CONFIG_64BIT */
DECLARE_FUNCTION_MOCK_VOID_RETURN(writeb,
PARAMS(u8, const volatile void __iomem *));
DECLARE_FUNCTION_MOCK_VOID_RETURN(writew,
PARAMS(u16, const volatile void __iomem *));
DECLARE_FUNCTION_MOCK_VOID_RETURN(writel,
PARAMS(u32, const volatile void __iomem *));
#ifdef CONFIG_64BIT
DECLARE_FUNCTION_MOCK_VOID_RETURN(writeq,
PARAMS(u64, const volatile void __iomem *));
#endif /* CONFIG_64BIT */
DECLARE_FUNCTION_MOCK(readb_relaxed,
RETURNS(u8), PARAMS(const volatile void __iomem *));
DECLARE_FUNCTION_MOCK(readw_relaxed,
RETURNS(u16), PARAMS(const volatile void __iomem *));
DECLARE_FUNCTION_MOCK(readl_relaxed,
RETURNS(u32), PARAMS(const volatile void __iomem *));
#ifdef CONFIG_64BIT
DECLARE_FUNCTION_MOCK(readq_relaxed,
RETURNS(u64), PARAMS(const volatile void __iomem *));
#endif /* CONFIG_64BIT */
DECLARE_FUNCTION_MOCK_VOID_RETURN(writeb_relaxed,
PARAMS(u8, const volatile void __iomem *));
DECLARE_FUNCTION_MOCK_VOID_RETURN(writew_relaxed,
PARAMS(u16, const volatile void __iomem *));
DECLARE_FUNCTION_MOCK_VOID_RETURN(writel_relaxed,
PARAMS(u32, const volatile void __iomem *));
#ifdef CONFIG_64BIT
DECLARE_FUNCTION_MOCK_VOID_RETURN(writeq_relaxed,
PARAMS(u64, const volatile void __iomem *));
#endif /* CONFIG_64BIT */
#endif /* _ASM_UM_IO_MOCK_H */

View File

@@ -2,6 +2,11 @@
#ifndef _ASM_UM_IO_H
#define _ASM_UM_IO_H
#include <linux/types.h>
#include <asm/byteorder.h>
#if IS_ENABLED(CONFIG_PLATFORM_MOCK)
#include <asm/io-mock-shared.h>
#endif
/* get emulated iomem (if desired) */
#include <asm-generic/logic_io.h>
@@ -13,6 +18,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, size_t size)
return NULL;
}
#endif /* ioremap */
#define ioremap_nocache ioremap
#ifndef iounmap
#define iounmap iounmap

View File

@@ -26,6 +26,7 @@ obj-$(CONFIG_OF) += dtb.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
obj-$(CONFIG_GENERIC_PCI_IOMAP) += ioport.o
obj-$(CONFIG_PLATFORM_MOCK) += io-mock.o
USER_OBJS := config.o

40
arch/um/kernel/io-mock.c Normal file
View File

@@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Mock IO functions.
*
* Copyright (C) 2018, Google LLC.
* Author: Brendan Higgins <brendanhiggins@google.com>
*/
#include <linux/mm.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <kunit/mock.h>
DEFINE_FUNCTION_MOCK(readb,
RETURNS(u8), PARAMS(const volatile void __iomem *));
DEFINE_FUNCTION_MOCK(readw,
RETURNS(u16), PARAMS(const volatile void __iomem *));
DEFINE_FUNCTION_MOCK(readl,
RETURNS(u32), PARAMS(const volatile void __iomem *));
#ifdef CONFIG_64BIT
DEFINE_FUNCTION_MOCK(readq,
RETURNS(u64), PARAMS(const volatile void __iomem *));
#endif /* CONFIG_64BIT */
DEFINE_FUNCTION_MOCK_VOID_RETURN(writeb,
PARAMS(u8, const volatile void __iomem *));
DEFINE_FUNCTION_MOCK_VOID_RETURN(writew,
PARAMS(u16, const volatile void __iomem *));
DEFINE_FUNCTION_MOCK_VOID_RETURN(writel,
PARAMS(u32, const volatile void __iomem *));
#ifdef CONFIG_64BIT
DEFINE_FUNCTION_MOCK_VOID_RETURN(writeq,
PARAMS(u64, const volatile void __iomem *));
#endif /* CONFIG_64BIT */