]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[arm] Split out 32-bit-specific code to arch/arm32
authorMichael Brown <mcb30@ipxe.org>
Sat, 7 May 2016 23:18:35 +0000 (00:18 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sat, 7 May 2016 23:18:35 +0000 (00:18 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
20 files changed:
src/arch/arm/Makefile
src/arch/arm/Makefile.efi
src/arch/arm/core/arm_io.c
src/arch/arm32/Makefile [new file with mode: 0644]
src/arch/arm32/Makefile.efi [new file with mode: 0644]
src/arch/arm32/core/arm32_bigint.c [moved from src/arch/arm/core/arm_bigint.c with 100% similarity]
src/arch/arm32/core/setjmp.S [moved from src/arch/arm/core/setjmp.S with 100% similarity]
src/arch/arm32/include/bits/bigint.h [moved from src/arch/arm/include/bits/bigint.h with 100% similarity]
src/arch/arm32/include/bits/bitops.h [moved from src/arch/arm/include/bits/bitops.h with 100% similarity]
src/arch/arm32/include/bits/byteswap.h [moved from src/arch/arm/include/bits/byteswap.h with 100% similarity]
src/arch/arm32/include/bits/compiler.h [moved from src/arch/arm/include/bits/compiler.h with 100% similarity]
src/arch/arm32/include/bits/profile.h [moved from src/arch/arm/include/bits/profile.h with 100% similarity]
src/arch/arm32/include/bits/stdint.h [moved from src/arch/arm/include/bits/stdint.h with 100% similarity]
src/arch/arm32/include/bits/strings.h [moved from src/arch/arm/include/bits/strings.h with 100% similarity]
src/arch/arm32/include/efi/ipxe/dhcp_arch.h [moved from src/arch/arm/include/efi/ipxe/dhcp_arch.h with 100% similarity]
src/arch/arm32/include/gdbmach.h [moved from src/arch/arm/include/gdbmach.h with 100% similarity]
src/arch/arm32/include/limits.h [moved from src/arch/arm/include/limits.h with 100% similarity]
src/arch/arm32/include/setjmp.h [moved from src/arch/arm/include/setjmp.h with 100% similarity]
src/arch/arm32/libgcc/lldivmod.S [moved from src/arch/arm/libgcc/lldivmod.S with 100% similarity]
src/arch/arm32/libgcc/llshift.S [moved from src/arch/arm/libgcc/llshift.S with 100% similarity]

index f883a64d6abffc5f6452ad67b5b9f5f6359e1dec..3cee5f3aca89714b13ff2f7d05f857a0002e48e9 100644 (file)
@@ -3,23 +3,10 @@
 ASM_TCHAR      := %
 ASM_TCHAR_OPS  := %%
 
-# ARM-specific directories containing source files
-#
-SRCDIRS                += arch/arm/core
-SRCDIRS                += arch/arm/libgcc
-SRCDIRS                += arch/arm/interface/efi
-
-# ARM-specific flags
+# Include common ARM headers
 #
-CFLAGS         += -mthumb -mcpu=cortex-a15 -mabi=aapcs -mfloat-abi=soft
-CFLAGS         += -mword-relocations
-ASFLAGS                += -mthumb -mcpu=cortex-a15
+INCDIRS                += arch/arm/include
 
-# EFI requires -fshort-wchar, and nothing else currently uses wchar_t
-#
-CFLAGS         += -fshort-wchar
-
-# Include platform-specific Makefile
+# ARM-specific directories containing source files
 #
-MAKEDEPS       += arch/arm/Makefile.$(PLATFORM)
-include arch/arm/Makefile.$(PLATFORM)
+SRCDIRS                += arch/arm/interface/efi
index 909c8d21b8ec3063b06518e8bfa549cf5d189544..f04be425b8b650ef5207f344ceadc3748949a5c9 100644 (file)
@@ -1,13 +1,5 @@
 # -*- makefile -*- : Force emacs to use Makefile mode
 
-# Specify EFI image builder
-#
-ELF2EFI                = $(ELF2EFI32)
-
-# Specify EFI boot file
-#
-EFI_BOOT_FILE  = bootarm.efi
-
 # Include generic EFI Makefile
 #
 MAKEDEPS       += Makefile.efi
index 804014c9a411581f8fc3588ebd5415eab8c75e4b..4bc47a5c673be617ccf9acf6d2d04c98a5763348 100644 (file)
@@ -33,7 +33,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  */
 
 /** An ARM I/O qword */
-union arm_io_qword {
+union arm32_io_qword {
        uint64_t qword;
        uint32_t dword[2];
 };
@@ -44,12 +44,12 @@ union arm_io_qword {
  * @v io_addr          I/O address
  * @ret data           Value read
  *
- * This is not atomic for ARM.
+ * This is not atomic for ARM32.
  */
-static uint64_t arm_readq ( volatile uint64_t *io_addr ) {
-       volatile union arm_io_qword *ptr =
-               container_of ( io_addr, union arm_io_qword, qword );
-       union arm_io_qword tmp;
+static uint64_t arm32_readq ( volatile uint64_t *io_addr ) {
+       volatile union arm32_io_qword *ptr =
+               container_of ( io_addr, union arm32_io_qword, qword );
+       union arm32_io_qword tmp;
 
        tmp.dword[0] = readl ( &ptr->dword[0] );
        tmp.dword[1] = readl ( &ptr->dword[1] );
@@ -62,12 +62,12 @@ static uint64_t arm_readq ( volatile uint64_t *io_addr ) {
  * @v data             Value to write
  * @v io_addr          I/O address
  *
- * This is not atomic for ARM.
+ * This is not atomic for ARM32.
  */
-static void arm_writeq ( uint64_t data, volatile uint64_t *io_addr ) {
-       volatile union arm_io_qword *ptr =
-               container_of ( io_addr, union arm_io_qword, qword );
-       union arm_io_qword tmp;
+static void arm32_writeq ( uint64_t data, volatile uint64_t *io_addr ) {
+       volatile union arm32_io_qword *ptr =
+               container_of ( io_addr, union arm32_io_qword, qword );
+       union arm32_io_qword tmp;
 
        tmp.qword = data;
        writel ( tmp.dword[0], &ptr->dword[0] );
@@ -84,5 +84,5 @@ PROVIDE_IOAPI_INLINE ( arm, writew );
 PROVIDE_IOAPI_INLINE ( arm, writel );
 PROVIDE_IOAPI_INLINE ( arm, iodelay );
 PROVIDE_IOAPI_INLINE ( arm, mb );
-PROVIDE_IOAPI ( arm, readq, arm_readq );
-PROVIDE_IOAPI ( arm, writeq, arm_writeq );
+PROVIDE_IOAPI ( arm, readq, arm32_readq );
+PROVIDE_IOAPI ( arm, writeq, arm32_writeq );
diff --git a/src/arch/arm32/Makefile b/src/arch/arm32/Makefile
new file mode 100644 (file)
index 0000000..3a7c092
--- /dev/null
@@ -0,0 +1,23 @@
+# ARM32-specific directories containing source files
+#
+SRCDIRS                += arch/arm32/core
+SRCDIRS                += arch/arm32/libgcc
+
+# ARM32-specific flags
+#
+CFLAGS         += -mthumb -mcpu=cortex-a15 -mabi=aapcs -mfloat-abi=soft
+CFLAGS         += -mword-relocations
+ASFLAGS                += -mthumb -mcpu=cortex-a15
+
+# EFI requires -fshort-wchar, and nothing else currently uses wchar_t
+#
+CFLAGS         += -fshort-wchar
+
+# Include common ARM Makefile
+MAKEDEPS       += arch/arm/Makefile
+include arch/arm/Makefile
+
+# Include platform-specific Makefile
+#
+MAKEDEPS       += arch/arm32/Makefile.$(PLATFORM)
+include arch/arm32/Makefile.$(PLATFORM)
diff --git a/src/arch/arm32/Makefile.efi b/src/arch/arm32/Makefile.efi
new file mode 100644 (file)
index 0000000..a06354f
--- /dev/null
@@ -0,0 +1,14 @@
+# -*- makefile -*- : Force emacs to use Makefile mode
+
+# Specify EFI image builder
+#
+ELF2EFI                = $(ELF2EFI32)
+
+# Specify EFI boot file
+#
+EFI_BOOT_FILE  = bootarm.efi
+
+# Include generic EFI Makefile
+#
+MAKEDEPS       += arch/arm/Makefile.efi
+include arch/arm/Makefile.efi