arm: boot: ep93xx: don't rely on machine_is_*() for removed board files
Subsystems (2)
PATCH 1/1 arm: boot: ep93xx: don't rely on machine_is_*() for removed board files
Code in misc-ep93xx.h relies on machine_is_*() macros for several boards that no longer have legacy board files. They were removed in commit e5ef574dda70 ("ARM: ep93xx: delete all boardfiles"). This prevents the removal of machine IDs no longer used by the kernel from mach-types. To resolve this issue, create local copies of these macros. (The checks themselves are still valid because the IDs are still passed in by the bootloader on these machines.) Also take the opportunity to remove three repeated checks for the same ID.
--- arch/arm/boot/compressed/misc-ep93xx.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)
arch/arm/boot/compressed/misc-ep93xx.h +16 -4
@@ -3,7 +3,22 @@* Copyright (C) 2006 Lennert Buytenhek <[email protected]> */ -#include <asm/mach-types.h> +/* +* These machine IDs are no longer used by the kernel since EP93xx was converted +* to DT booting, but they are still passed in by bootloaders, so we use our own +* local definitions of the relevant macros. +*/ +#define machine_is_bk3 () (__machine_arch_type == 1880) +#define machine_is_edb9301 () (__machine_arch_type == 462) +#define machine_is_edb9302a () (__machine_arch_type == 1127) +#define machine_is_edb9302 () (__machine_arch_type == 538) +#define machine_is_edb9307a () (__machine_arch_type == 1128) +#define machine_is_edb9307 () (__machine_arch_type == 607) +#define machine_is_edb9312 () (__machine_arch_type == 451) +#define machine_is_edb9315a () (__machine_arch_type == 772) +#define machine_is_edb9315 () (__machine_arch_type == 463) +#define machine_is_ts72xx () (__machine_arch_type == 673) +#define machine_is_vision_ep9307 () (__machine_arch_type == 1578)static inline unsigned int __raw_readl (unsigned int ptr) {
@@ -60,14 +75,11 @@ static inline void ep93xx_decomp_setup(void)if (machine_is_edb9301 () ||machine_is_edb9302 () ||machine_is_edb9302a () || -machine_is_edb9302a () ||machine_is_edb9307 () ||machine_is_edb9307a () || -machine_is_edb9307a () ||machine_is_edb9312 () ||machine_is_edb9315 () ||machine_is_edb9315a () || -machine_is_edb9315a () ||machine_is_ts72xx () ||machine_is_bk3 () ||machine_is_vision_ep9307 ())
Signature · 1 line
2.43.0
Alexander Sverdlin
maintainerHi Ethan,
Quoted 8 lines · Ethan Nelson-Moore
Code in
misc-ep93xx.hrelies on machine_is_*() macros for several boards that no longer have legacy board files. They were removed in commite5ef574dda70("ARM: ep93xx: delete all boardfiles"). This prevents the removal of machine IDs no longer used by the kernel from mach-types. To resolve this issue, create local copies of these macros. (The checks themselves are still valid because the IDs are still passed in by the bootloader on these machines.) Also take the opportunity to remove three repeated checks for the same ID.
I most probably miss something, but what is the reason for removing the machine IDs from the mach-types, especially if they are still used by the kernel (though only in its decompressor code)?
Quoted 48 lines
Signed-off-by Ethan Nelson-Moore <[email protected]>---
arch/arm/boot/compressed/misc-ep93xx.h | 20 ++++++++++++++++----1 file changed, 16 insertions(+), 4 deletions(-)arch/arm/boot/compressed/misc-ep93xx.h +0
-0@@ -3,7 +3,22 @@* Copyright (C) 2006 Lennert Buytenhek <[email protected]> */ arch/arm/boot/compressed/misc-ep93xx.h +16
-1-#include <asm/mach-types.h> +/* +* These machine IDs are no longer used by the kernel since EP93xx was converted +* to DT booting, but they are still passed in by bootloaders, so we use our own +* local definitions of the relevant macros. +*/ +#define machine_is_bk3 () (__machine_arch_type == 1880) +#define machine_is_edb9301 () (__machine_arch_type == 462) +#define machine_is_edb9302a () (__machine_arch_type == 1127) +#define machine_is_edb9302 () (__machine_arch_type == 538) +#define machine_is_edb9307a () (__machine_arch_type == 1128) +#define machine_is_edb9307 () (__machine_arch_type == 607) +#define machine_is_edb9312 () (__machine_arch_type == 451) +#define machine_is_edb9315a () (__machine_arch_type == 772) +#define machine_is_edb9315 () (__machine_arch_type == 463) +#define machine_is_ts72xx () (__machine_arch_type == 673) +#define machine_is_vision_ep9307 () (__machine_arch_type == 1578)
static inline unsigned int__raw_readl(unsigned int ptr){arch/arm/boot/compressed/misc-ep93xx.h +0
-0@@ -60,14 +75,11 @@ static inline void ep93xx_decomp_setup(void)if (
machine_is_edb9301()||
machine_is_edb9302()||
machine_is_edb9302a()||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9302a() ||
machine_is_edb9307()||
machine_is_edb9307a()||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9307a() ||machine_is_edb9312() || machine_is_edb9315() || machine_is_edb9315a() ||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9315a() ||
machine_is_ts72xx()||
machine_is_bk3()||
machine_is_vision_ep9307())
Signature · 1 line
Alexander Sverdlin.
Quoted 3 lines · Alexander Sverdlin
I most probably miss something, but what is the reason for removing the machine IDs from the mach-types, especially if they are still used by the kernel (though only in its decompressor code)?
Hi, Alexander,
My plan after all my related patches are merged is to remove all entries for legacy board files that are not used by the kernel (i.e.:
boards that were removed, never in mainline, or converted to DT booting). This would reduce mach-types from 579 to 28 entries and would allow it to be used as a list of non-DT boards remaining in the kernel. The last time mach-types was similarly filtered was in 2016.
Ethan
Hi Ethan,
Quoted 10 lines · Ethan Nelson-Moore
Code in
misc-ep93xx.hrelies on machine_is_*() macros for several boards that no longer have legacy board files. They were removed in commite5ef574dda70("ARM: ep93xx: delete all boardfiles"). This prevents the removal of machine IDs no longer used by the kernel from mach-types. To resolve this issue, create local copies of these macros. (The checks themselves are still valid because the IDs are still passed in by the bootloader on these machines.) Also take the opportunity to remove three repeated checks for the same ID.Signed-off-by Ethan Nelson-Moore <[email protected]>
I'll pick the patch and send it to Arnd if there will be no objection during this week.
Quoted 47 lines
---
arch/arm/boot/compressed/misc-ep93xx.h | 20 ++++++++++++++++----1 file changed, 16 insertions(+), 4 deletions(-)arch/arm/boot/compressed/misc-ep93xx.h +0
-0@@ -3,7 +3,22 @@* Copyright (C) 2006 Lennert Buytenhek <[email protected]> */ arch/arm/boot/compressed/misc-ep93xx.h +16
-1-#include <asm/mach-types.h> +/* +* These machine IDs are no longer used by the kernel since EP93xx was converted +* to DT booting, but they are still passed in by bootloaders, so we use our own +* local definitions of the relevant macros. +*/ +#define machine_is_bk3 () (__machine_arch_type == 1880) +#define machine_is_edb9301 () (__machine_arch_type == 462) +#define machine_is_edb9302a () (__machine_arch_type == 1127) +#define machine_is_edb9302 () (__machine_arch_type == 538) +#define machine_is_edb9307a () (__machine_arch_type == 1128) +#define machine_is_edb9307 () (__machine_arch_type == 607) +#define machine_is_edb9312 () (__machine_arch_type == 451) +#define machine_is_edb9315a () (__machine_arch_type == 772) +#define machine_is_edb9315 () (__machine_arch_type == 463) +#define machine_is_ts72xx () (__machine_arch_type == 673) +#define machine_is_vision_ep9307 () (__machine_arch_type == 1578)
static inline unsigned int__raw_readl(unsigned int ptr){arch/arm/boot/compressed/misc-ep93xx.h +0
-0@@ -60,14 +75,11 @@ static inline void ep93xx_decomp_setup(void)if (
machine_is_edb9301()||
machine_is_edb9302()||
machine_is_edb9302a()||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9302a() ||
machine_is_edb9307()||
machine_is_edb9307a()||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9307a() ||machine_is_edb9312() || machine_is_edb9315() || machine_is_edb9315a() ||arch/arm/boot/compressed/misc-ep93xx.h +0
-1- machine_is_edb9315a() ||
machine_is_ts72xx()||
machine_is_bk3()||
machine_is_vision_ep9307())
Signature · 1 line
Alexander Sverdlin.