relocate main() to a single section
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 30 Dec 2022 13:18:41 +0000 (13:18 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 2 Jun 2023 18:51:16 +0000 (19:51 +0100)
so that it can be put at a fixed address

crypto/chacha20/Makefile.cross
crypto/chacha20/memmap
crypto/chacha20/src/svp64test.c
crypto/chacha20/src/xchacha20.c

index 9ff32d2946651ce9d3d793c3c2ee3907629d52a8..fb79bb85d12109c30b65aa9dc3bc46b3af1651f1 100755 (executable)
@@ -5,13 +5,13 @@ AS = $(CROSS)as
 CC = $(CROSS)gcc
 LD = $(CROSS)ld
 OBJCOPY = $(CROSS)objcopy
-CFLAGS = -O3 -Wall -Wextra
+CFLAGS = -O3 -Wall -Wextra -mno-vsx
 
 AFLAGS ?= -mpwr9
 
 SRCDIR = src
 
-SOURCES := $(SRCDIR)/xchacha20.c $(SRCDIR)/svp64test.c
+SOURCES := $(SRCDIR)/svp64test.c $(SRCDIR)/xchacha20.c 
 OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(SRCDIR)/%.o)
 
 OBJ = chacha20test.bin
@@ -19,7 +19,7 @@ OBJ = chacha20test.bin
 export DUMP = /tmp/out
 
 # commented for luke's convenience
-#export SILENCELOG = 1
+# export SILENCELOG = 1
 
 all: tests
 
index 052ccb0c6152eb929b24a16a3144a5c09f2f2b44..da68813a1ad5fe1fdfc296991bfd7cc80e67d6d3 100644 (file)
@@ -1,11 +1,20 @@
 
 MEMORY
 {
-    ram  : ORIGIN = 0x20000000, LENGTH = 512M
+    ram  : ORIGIN = 0x20001000, LENGTH = 512M
+    fixedaddr  : ORIGIN = 0x20000000, LENGTH = 0x1000
 }
 
+
 SECTIONS
 {
+    .fixedaddr :
+    {
+    . = ALIGN(4);
+    __fixedaddr_start__ = .;
+    *(.fixedaddr*)
+    __fixedaddr_end__ = .;
+    } > fixedaddr
    .text : { *(.text*) } > ram
    .bss  : { *(.text*) } > ram
 }
index 88402b865e348437700e5f07bd3c8954cc7ee49b..3e08113739f835a983ef75a93b963dfb466a73c6 100644 (file)
@@ -75,6 +75,9 @@ int check_cpp(void){
        return(0);
 }
 
-int main(void){
+#define LOCATE_FUNC  __attribute__((__section__(".fixedaddr")))
+
+int LOCATE_FUNC main(int argc, char **argv[]){
        return check_cpp();
 }
+
index 2b29f60b431ac82d12a4c29e8e1fb6ca9ed57a6c..aa9c9043218e76bb00e0e9b69a034eee8bbd3b6e 100644 (file)
@@ -130,6 +130,8 @@ void xchacha_encrypt_bytes(XChaCha_ctx *ctx, const uint8_t *m, uint8_t *c, uint3
        uint8_t tmp[64];
        uint32_t i;
 
+    return;
+
        if (!bytes) return;
 
        j0 = ctx->input[0];