From 03c8414d68e3d5234c98552129964d7111fc2bda Mon Sep 17 00:00:00 2001 From: Vincent Barrilliot Date: Fri, 31 Mar 2023 23:24:35 +0200 Subject: [PATCH] Missing VBCC config files for A2560x --- vbcc/config/a2560x_flash_linux | 13 +++++ .../m68k-foenix/vlink_flash_a2560x.cmd | 49 +++++++++++++++++++ vbcc/targets/m68k-foenix/vlink_ram_a2560x.cmd | 6 +-- 3 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 vbcc/config/a2560x_flash_linux create mode 100644 vbcc/targets/m68k-foenix/vlink_flash_a2560x.cmd diff --git a/vbcc/config/a2560x_flash_linux b/vbcc/config/a2560x_flash_linux new file mode 100644 index 0000000..2201216 --- /dev/null +++ b/vbcc/config/a2560x_flash_linux @@ -0,0 +1,13 @@ +-cc=vbccm68k -quiet %s -o= %s %s -O=%ld -I$VBCC/targets/m68k-foenix/include +-ccv=vbccm68k %s -o= %s %s -O=%ld -I$VBCC/targets/m68k-foenix/include +-as=vasmm68k_mot -quiet -Fvobj -nowarn=62 %s -o %s +-asv=vasmm68k_mot -Fvobj -nowarn=62 %s -o %s +-rm=rm %s +-rmv=rm %s +-ld=vlink -brawbin1 -x -Cvbcc m68040/startup_m68040.o %s %s -L$VBCC/targets/m68k-foenix/lib -T$VBCC/targets/m68k-foenix/vlink_flash_a2560x.cmd -lvc -o %s -Mmapfile +-l2=vlink -brawbin1 -x -Cvbcc %s %s -L$VBCC/targets/m68k-foenix/lib -T$VBCC/targets/m68k-foenix/vlink_flash_a2560x.cmd -o %s -Mmapfile +-ldv=vlink -brawbin1 -t -x -Cvbcc m68040/startup_m68040.o %s %s -L$VBCC/targets/m68k-foenix/lib -T$VBCC/targets/m68k-foenix/vlink_flash_a2560x.cmd -lvc -o %s -Mmapfile +-l2v=vlink -brawbin1 -t -x -Cvbcc %s %s -L$VBCC/targets/m68k-foenix/lib -T$VBCC/targets/m68k-foenix/vlink_flash_a2560x.cmd -o %s -Mmapfile +-ul=-l%s +-cf=-F%s +-ml=1000 diff --git a/vbcc/targets/m68k-foenix/vlink_flash_a2560x.cmd b/vbcc/targets/m68k-foenix/vlink_flash_a2560x.cmd new file mode 100644 index 0000000..8d7c8e8 --- /dev/null +++ b/vbcc/targets/m68k-foenix/vlink_flash_a2560x.cmd @@ -0,0 +1,49 @@ +BINFILE_START = 0x00000000; +FLASH_START = 0xFFC00000; +VECTOR_START = 0x00000000; +STORE_START = 0x003D0000; +KERNEL_START = 0xFFC10000; + +STACK_LEN = 0x400; +VECTOR_LEN = 0x1000; +STORE_LEN = 0x00030000; +KERNEL_LEN = 0x00040000; +FLASH_LEN = 0x00200000; +PAGE_SIZE = 0x00010000; + +MEMORY +{ + binpage0: org = BINFILE_START, len = VECTOR_LEN + binpage1: org = BINFILE_START + VECTOR_LEN, len = PAGE_SIZE - VECTOR_LEN + binpages: org = BINFILE_START + PAGE_SIZE, len = FLASH_LEN - PAGE_SIZE + vectors : org = VECTOR_START, len = VECTOR_LEN + lowram : org = VECTOR_START + VECTOR_LEN, len = PAGE_SIZE - VECTOR_LEN + kernel: org = KERNEL_START, len = KERNEL_LEN + storage: org = STORE_START, len = STORE_LEN +} + +SECTIONS +{ + vectors : { *(VECTORS) } >vectors AT>binpage0 + data ALIGN(0x02) : { *(DATA) } >lowram AT>binpage1 + bss (NOLOAD) : { *(BSS) } >storage + text ALIGN(0x02) : { *(CODE) } >kernel AT>binpages + .dtors ALIGN(0x02) : { *(.dtors) } >kernel AT>binpages + .ctors ALIGN(0x02) : { *(.ctors) } >kernel AT>binpages + + + ___heap = ADDR(bss) + SIZEOF(bss); + ___heapend = STORE_START + STORE_LEN - STACK_LEN; + + ___BSSSTART = ADDR(bss); + ___BSSSIZE = SIZEOF(bss); + + ___USER_STACK = 0x00010000; + ___STACK = STORE_START + STORE_LEN; + + ___kernel_vma_start = ADDR(text); + ___kernel_lma_start = LOADADDR(text); + ___kernel_lma_end = ___kernel_lma_start + SIZEOF(text); + + ___memory_start = STORE_START; +} diff --git a/vbcc/targets/m68k-foenix/vlink_ram_a2560x.cmd b/vbcc/targets/m68k-foenix/vlink_ram_a2560x.cmd index 51b7d89..4206440 100644 --- a/vbcc/targets/m68k-foenix/vlink_ram_a2560x.cmd +++ b/vbcc/targets/m68k-foenix/vlink_ram_a2560x.cmd @@ -4,7 +4,7 @@ VECTOR_START = 0x00000000; STORE_START = 0x00180000; KERNEL_START = 0x001C0000; -STACK_LEN = 0x2000; +STACK_LEN = 0x400; VECTOR_LEN = 0x400; STORE_LEN = 0x00030000; KERNEL_LEN = 0x00040000; @@ -23,7 +23,7 @@ MEMORY SECTIONS { vectors : { *(VECTORS) } >vectors - bss ALIGN(4) (NOLOAD) : { *(BSS) } >storeage + bss (NOLOAD) : { *(BSS) } >storeage text ALIGN(0x02) : { *(CODE) } >kernel .dtors ALIGN(0x02) : { *(.dtors) } >kernel .ctors ALIGN(0x02) : { *(.ctors) } >kernel @@ -33,7 +33,7 @@ SECTIONS ___heapend = STORE_START + STORE_LEN - STACK_LEN; ___BSSSTART = ADDR(bss); - ___BSSSIZE = (SIZEOF(bss)+3)%4; + ___BSSSIZE = SIZEOF(bss); ___USER_STACK = 0x00010000; ___STACK = STORE_START + STORE_LEN;