diff --git a/BaS_gcc/Makefile b/BaS_gcc/Makefile index 7dfaabc..597f725 100644 --- a/BaS_gcc/Makefile +++ b/BaS_gcc/Makefile @@ -1,5 +1,4 @@ -# -# Makefile for Firebee BaS +# # Makefile for Firebee BaS # # This Makefile is meant for cross compiling the BaS with Vincent Riviere's cross compilers. # If you want to compile native on an Atari (you will need at least GCC 4.6.3), set @@ -40,11 +39,12 @@ CFLAGS=-mcpu=5474 \ -fleading-underscore \ -Wa,--register-prefix-optional -SRCDIR=sources TRGTDIRS= ./firebee ./m5484lite OBJDIRS=$(patsubst %, %/objs,$(TRGTDIRS)) TOOLDIR=util +VPATH=dma:exe:flash:fs:if:kbd:pci:spi:sys:usb:util:xhdi + # Linker control file. The final $(LDCFILE) is intermediate only (preprocessed version of $(LDCSRC) LDCFILE=bas.lk LDRFILE=ram.lk @@ -59,53 +59,53 @@ RAM_EXEC=ram.$(EXE) BASFLASH_EXEC=basflash.$(EXE) CSRCS= \ - $(SRCDIR)/sysinit.c \ - $(SRCDIR)/init_fpga.c \ - $(SRCDIR)/mmu.c \ - $(SRCDIR)/fault_vectors.c \ - $(SRCDIR)/interrupts.c \ - $(SRCDIR)/bas_printf.c \ - $(SRCDIR)/bas_string.c \ - $(SRCDIR)/BaS.c \ - $(SRCDIR)/cache.c \ - $(SRCDIR)/mmc.c \ - $(SRCDIR)/unicode.c \ - $(SRCDIR)/ff.c \ - $(SRCDIR)/sd_card.c \ - $(SRCDIR)/wait.c \ - $(SRCDIR)/s19reader.c \ - $(SRCDIR)/flash.c \ - $(SRCDIR)/dma.c \ - $(SRCDIR)/xhdi_sd.c \ - $(SRCDIR)/xhdi_interface.c \ - $(SRCDIR)/pci.c \ - $(SRCDIR)/dspi.c \ - $(SRCDIR)/driver_vec.c \ - $(SRCDIR)/MCD_dmaApi.c \ - $(SRCDIR)/MCD_tasks.c \ - $(SRCDIR)/MCD_tasksInit.c \ + sysinit.c \ + init_fpga.c \ + mmu.c \ + fault_vectors.c \ + interrupts.c \ + bas_printf.c \ + bas_string.c \ + BaS.c \ + cache.c \ + mmc.c \ + unicode.c \ + ff.c \ + sd_card.c \ + wait.c \ + s19reader.c \ + flash.c \ + dma.c \ + xhdi_sd.c \ + xhdi_interface.c \ + pci.c \ + dspi.c \ + driver_vec.c \ + MCD_dmaApi.c \ + MCD_tasks.c \ + MCD_tasksInit.c \ \ - $(SRCDIR)/usb.c \ - $(SRCDIR)/usb_mem.c \ - $(SRCDIR)/ohci-hcd.c \ - $(SRCDIR)/ehci-hcd.c \ - $(SRCDIR)/usb_mouse.c \ + usb.c \ + usb_mem.c \ + ohci-hcd.c \ + ehci-hcd.c \ + usb_mouse.c \ \ - $(SRCDIR)/ikbd.c \ + ikbd.c \ \ - $(SRCDIR)/basflash.c \ - $(SRCDIR)/basflash_start.c + basflash.c \ + basflash_start.c ASRCS= \ - $(SRCDIR)/startcf.S \ - $(SRCDIR)/printf_helper.S \ - $(SRCDIR)/exceptions.S \ - $(SRCDIR)/supervisor.S \ - $(SRCDIR)/illegal_instruction.S \ - $(SRCDIR)/xhdi_vec.S + startcf.S \ + printf_helper.S \ + exceptions.S \ + supervisor.S \ + illegal_instruction.S \ + xhdi_vec.S -COBJS=$(patsubst $(SRCDIR)/%.o,%.o,$(patsubst %.c,%.o,$(CSRCS))) -AOBJS=$(patsubst $(SRCDIR)/%.o,%.o,$(patsubst %.S,%.o,$(ASRCS))) +COBJS=$(patsubst %.c,%.o,$(CSRCS)) +AOBJS=$(patsubst %.S,%.o,$(ASRCS)) OBJS=$(COBJS) $(AOBJS) LIBBAS=libbas.a @@ -145,10 +145,10 @@ ifeq (firebee,$(1)) else MACHINE=MACHINE_M5484LITE endif -$(1)/objs/%.o:$(SRCDIR)/%.c +$(1)/objs/%.o:%.c $(CC) $$(CFLAGS) -D$$(MACHINE) $(INCLUDE) -c $$< -o $$@ -$(1)/objs/%.o:$(SRCDIR)/%.S +$(1)/objs/%.o:%.S $(CC) $$(CFLAGS) -Wa,--bitwise-or -D$$(MACHINE) $(INCLUDE) -c $$< -o $$@ endef $(foreach DIR,$(TRGTDIRS),$(eval $(call CC_TEMPLATE,$(DIR)))) diff --git a/BaS_gcc/sources/MCD_dmaApi.c b/BaS_gcc/dma/MCD_dmaApi.c similarity index 100% rename from BaS_gcc/sources/MCD_dmaApi.c rename to BaS_gcc/dma/MCD_dmaApi.c diff --git a/BaS_gcc/sources/MCD_tasks.c b/BaS_gcc/dma/MCD_tasks.c similarity index 100% rename from BaS_gcc/sources/MCD_tasks.c rename to BaS_gcc/dma/MCD_tasks.c diff --git a/BaS_gcc/sources/MCD_tasksInit.c b/BaS_gcc/dma/MCD_tasksInit.c similarity index 100% rename from BaS_gcc/sources/MCD_tasksInit.c rename to BaS_gcc/dma/MCD_tasksInit.c diff --git a/BaS_gcc/sources/dma.c b/BaS_gcc/dma/dma.c similarity index 100% rename from BaS_gcc/sources/dma.c rename to BaS_gcc/dma/dma.c diff --git a/BaS_gcc/sources/basflash.c b/BaS_gcc/exe/basflash.c similarity index 100% rename from BaS_gcc/sources/basflash.c rename to BaS_gcc/exe/basflash.c diff --git a/BaS_gcc/sources/basflash_start.c b/BaS_gcc/exe/basflash_start.c similarity index 100% rename from BaS_gcc/sources/basflash_start.c rename to BaS_gcc/exe/basflash_start.c diff --git a/BaS_gcc/sources/flash.c b/BaS_gcc/flash/flash.c similarity index 100% rename from BaS_gcc/sources/flash.c rename to BaS_gcc/flash/flash.c diff --git a/BaS_gcc/sources/s19reader.c b/BaS_gcc/flash/s19reader.c similarity index 100% rename from BaS_gcc/sources/s19reader.c rename to BaS_gcc/flash/s19reader.c diff --git a/BaS_gcc/sources/cc932.c b/BaS_gcc/fs/cc932.c similarity index 100% rename from BaS_gcc/sources/cc932.c rename to BaS_gcc/fs/cc932.c diff --git a/BaS_gcc/sources/cc936.c b/BaS_gcc/fs/cc936.c similarity index 100% rename from BaS_gcc/sources/cc936.c rename to BaS_gcc/fs/cc936.c diff --git a/BaS_gcc/sources/cc949.c b/BaS_gcc/fs/cc949.c similarity index 100% rename from BaS_gcc/sources/cc949.c rename to BaS_gcc/fs/cc949.c diff --git a/BaS_gcc/sources/cc950.c b/BaS_gcc/fs/cc950.c similarity index 100% rename from BaS_gcc/sources/cc950.c rename to BaS_gcc/fs/cc950.c diff --git a/BaS_gcc/sources/ccsbcs.c b/BaS_gcc/fs/ccsbcs.c similarity index 100% rename from BaS_gcc/sources/ccsbcs.c rename to BaS_gcc/fs/ccsbcs.c diff --git a/BaS_gcc/sources/ff.c b/BaS_gcc/fs/ff.c similarity index 100% rename from BaS_gcc/sources/ff.c rename to BaS_gcc/fs/ff.c diff --git a/BaS_gcc/sources/unicode.c b/BaS_gcc/fs/unicode.c similarity index 100% rename from BaS_gcc/sources/unicode.c rename to BaS_gcc/fs/unicode.c diff --git a/BaS_gcc/sources/driver_vec.c b/BaS_gcc/if/driver_vec.c similarity index 100% rename from BaS_gcc/sources/driver_vec.c rename to BaS_gcc/if/driver_vec.c diff --git a/BaS_gcc/sources/ikbd.c b/BaS_gcc/kbd/ikbd.c similarity index 100% rename from BaS_gcc/sources/ikbd.c rename to BaS_gcc/kbd/ikbd.c diff --git a/BaS_gcc/util/s19header.c b/BaS_gcc/nutil/s19header.c similarity index 100% rename from BaS_gcc/util/s19header.c rename to BaS_gcc/nutil/s19header.c diff --git a/BaS_gcc/sources/ehci-hcd.c b/BaS_gcc/pci/ehci-hcd.c similarity index 100% rename from BaS_gcc/sources/ehci-hcd.c rename to BaS_gcc/pci/ehci-hcd.c diff --git a/BaS_gcc/sources/ohci-hcd.c b/BaS_gcc/pci/ohci-hcd.c similarity index 100% rename from BaS_gcc/sources/ohci-hcd.c rename to BaS_gcc/pci/ohci-hcd.c diff --git a/BaS_gcc/sources/pci.c b/BaS_gcc/pci/pci.c similarity index 99% rename from BaS_gcc/sources/pci.c rename to BaS_gcc/pci/pci.c index 4f8bc6c..cf4ac38 100644 --- a/BaS_gcc/sources/pci.c +++ b/BaS_gcc/pci/pci.c @@ -789,10 +789,10 @@ void init_pci(void) xprintf("initializing PCI bridge:\r\n"); (void) res; /* for now */ - res = register_interrupt_handler(5, INT_SOURCE_PCIARB, 5, 1, pci_arb_interrupt); + res = register_interrupt_handler(0, INT_SOURCE_PCIARB, 5, 5, pci_arb_interrupt); debug_printf("registered interrupt handler for PCI arbiter: %s\r\n", (res < 0 ? "failed" : "succeeded")); - register_interrupt_handler(5, INT_SOURCE_XLBPCI, 5, 0, xlb_pci_interrupt); + register_interrupt_handler(0, INT_SOURCE_XLBPCI, 5, 5, xlb_pci_interrupt); debug_printf("registered interrupt handler for XLB PCI: %s\r\n", (res < 0 ? "failed" : "succeeded")); diff --git a/BaS_gcc/sources/main.c b/BaS_gcc/sources/main.c deleted file mode 100644 index 680a0e3..0000000 --- a/BaS_gcc/sources/main.c +++ /dev/null @@ -1,100 +0,0 @@ -/*----------------------------------------------------------------------*/ -/* FatFs sample project for generic microcontrollers (C)ChaN, 2012 */ -/*----------------------------------------------------------------------*/ - -#include -#include "ff.h" - - -FATFS Fatfs; /* File system object */ -FIL Fil; /* File object */ -uint8_t Buff[128]; /* File read buffer */ - - -void die ( /* Stop with dying message */ - FRESULT rc /* FatFs return value */ -) -{ - xprintf("Failed with rc=%u.\n", rc); - for (;;) ; -} - - -/*-----------------------------------------------------------------------*/ -/* Program Main */ -/*-----------------------------------------------------------------------*/ - -int main (void) -{ - FRESULT rc; /* Result code */ - DIR dir; /* Directory object */ - FILINFO fno; /* File information object */ - uint32_t bw, br, i; - - - f_mount(0, &Fatfs); /* Register volume work area (never fails) */ - - xprintf("\nOpen an existing file (message.txt).\n"); - rc = f_open(&Fil, "MESSAGE.TXT", FA_READ); - if (rc) die(rc); - - xprintf("\nType the file content.\n"); - for (;;) { - rc = f_read(&Fil, Buff, sizeof Buff, &br); /* Read a chunk of file */ - if (rc || !br) break; /* Error or end of file */ - for (i = 0; i < br; i++) /* Type the data */ - putchar(Buff[i]); - } - if (rc) die(rc); - - xprintf("\nClose the file.\n"); - rc = f_close(&Fil); - if (rc) die(rc); - - xprintf("\nCreate a new file (hello.txt).\n"); - rc = f_open(&Fil, "HELLO.TXT", FA_WRITE | FA_CREATE_ALWAYS); - if (rc) die(rc); - - xprintf("\nWrite a text data. (Hello world!)\n"); - rc = f_write(&Fil, "Hello world!\r\n", 14, &bw); - if (rc) die(rc); - xprintf("%u bytes written.\n", bw); - - xprintf("\nClose the file.\n"); - rc = f_close(&Fil); - if (rc) die(rc); - - xprintf("\nOpen root directory.\n"); - rc = f_opendir(&dir, ""); - if (rc) die(rc); - - xprintf("\nDirectory listing...\n"); - for (;;) { - rc = f_readdir(&dir, &fno); /* Read a directory item */ - if (rc || !fno.fname[0]) break; /* Error or end of dir */ - if (fno.fattrib & AM_DIR) - xprintf(" %s\n", fno.fname); - else - xprintf("%8lu %s\n", fno.fsize, fno.fname); - } - if (rc) die(rc); - - xprintf("\nTest completed.\n"); - for (;;) ; -} - - - -/*---------------------------------------------------------*/ -/* User Provided Timer Function for FatFs module */ -/*---------------------------------------------------------*/ - -uint32_t get_fattime (void) -{ - return ((uint32_t)(2012 - 1980) << 25) /* Year = 2012 */ - | ((uint32_t)1 << 21) /* Month = 1 */ - | ((uint32_t)1 << 16) /* Day_m = 1*/ - | ((uint32_t)0 << 11) /* Hour = 0 */ - | ((uint32_t)0 << 5) /* Min = 0 */ - | ((uint32_t)0 >> 1); /* Sec = 0 */ -} diff --git a/BaS_gcc/sources/dspi.c b/BaS_gcc/spi/dspi.c similarity index 100% rename from BaS_gcc/sources/dspi.c rename to BaS_gcc/spi/dspi.c diff --git a/BaS_gcc/sources/mmc.c b/BaS_gcc/spi/mmc.c similarity index 100% rename from BaS_gcc/sources/mmc.c rename to BaS_gcc/spi/mmc.c diff --git a/BaS_gcc/sources/sd_card.c b/BaS_gcc/spi/sd_card.c similarity index 100% rename from BaS_gcc/sources/sd_card.c rename to BaS_gcc/spi/sd_card.c diff --git a/BaS_gcc/sources/BaS.c b/BaS_gcc/sys/BaS.c similarity index 100% rename from BaS_gcc/sources/BaS.c rename to BaS_gcc/sys/BaS.c diff --git a/BaS_gcc/sources/cache.c b/BaS_gcc/sys/cache.c similarity index 100% rename from BaS_gcc/sources/cache.c rename to BaS_gcc/sys/cache.c diff --git a/BaS_gcc/sources/exceptions.S b/BaS_gcc/sys/exceptions.S similarity index 100% rename from BaS_gcc/sources/exceptions.S rename to BaS_gcc/sys/exceptions.S diff --git a/BaS_gcc/sources/fault_vectors.c b/BaS_gcc/sys/fault_vectors.c similarity index 100% rename from BaS_gcc/sources/fault_vectors.c rename to BaS_gcc/sys/fault_vectors.c diff --git a/BaS_gcc/sources/illegal_instruction.S b/BaS_gcc/sys/illegal_instruction.S similarity index 100% rename from BaS_gcc/sources/illegal_instruction.S rename to BaS_gcc/sys/illegal_instruction.S diff --git a/BaS_gcc/sources/init_fpga.c b/BaS_gcc/sys/init_fpga.c similarity index 100% rename from BaS_gcc/sources/init_fpga.c rename to BaS_gcc/sys/init_fpga.c diff --git a/BaS_gcc/sources/interrupts.c b/BaS_gcc/sys/interrupts.c similarity index 100% rename from BaS_gcc/sources/interrupts.c rename to BaS_gcc/sys/interrupts.c diff --git a/BaS_gcc/sources/mmu.c b/BaS_gcc/sys/mmu.c similarity index 100% rename from BaS_gcc/sources/mmu.c rename to BaS_gcc/sys/mmu.c diff --git a/BaS_gcc/sources/startcf.S b/BaS_gcc/sys/startcf.S similarity index 100% rename from BaS_gcc/sources/startcf.S rename to BaS_gcc/sys/startcf.S diff --git a/BaS_gcc/sources/supervisor.S b/BaS_gcc/sys/supervisor.S similarity index 100% rename from BaS_gcc/sources/supervisor.S rename to BaS_gcc/sys/supervisor.S diff --git a/BaS_gcc/sources/sysinit.c b/BaS_gcc/sys/sysinit.c similarity index 100% rename from BaS_gcc/sources/sysinit.c rename to BaS_gcc/sys/sysinit.c diff --git a/BaS_gcc/sources/usb.c b/BaS_gcc/usb/usb.c similarity index 100% rename from BaS_gcc/sources/usb.c rename to BaS_gcc/usb/usb.c diff --git a/BaS_gcc/sources/usb_mem.c b/BaS_gcc/usb/usb_mem.c similarity index 100% rename from BaS_gcc/sources/usb_mem.c rename to BaS_gcc/usb/usb_mem.c diff --git a/BaS_gcc/sources/usb_mouse.c b/BaS_gcc/usb/usb_mouse.c similarity index 100% rename from BaS_gcc/sources/usb_mouse.c rename to BaS_gcc/usb/usb_mouse.c diff --git a/BaS_gcc/sources/bas_printf.c b/BaS_gcc/util/bas_printf.c similarity index 100% rename from BaS_gcc/sources/bas_printf.c rename to BaS_gcc/util/bas_printf.c diff --git a/BaS_gcc/sources/bas_string.c b/BaS_gcc/util/bas_string.c similarity index 100% rename from BaS_gcc/sources/bas_string.c rename to BaS_gcc/util/bas_string.c diff --git a/BaS_gcc/sources/printf_helper.S b/BaS_gcc/util/printf_helper.S similarity index 100% rename from BaS_gcc/sources/printf_helper.S rename to BaS_gcc/util/printf_helper.S diff --git a/BaS_gcc/sources/wait.c b/BaS_gcc/util/wait.c similarity index 100% rename from BaS_gcc/sources/wait.c rename to BaS_gcc/util/wait.c diff --git a/BaS_gcc/sources/xhdi_interface.c b/BaS_gcc/xhdi/xhdi_interface.c similarity index 100% rename from BaS_gcc/sources/xhdi_interface.c rename to BaS_gcc/xhdi/xhdi_interface.c diff --git a/BaS_gcc/sources/xhdi_sd.c b/BaS_gcc/xhdi/xhdi_sd.c similarity index 100% rename from BaS_gcc/sources/xhdi_sd.c rename to BaS_gcc/xhdi/xhdi_sd.c diff --git a/BaS_gcc/sources/xhdi_vec.S b/BaS_gcc/xhdi/xhdi_vec.S similarity index 100% rename from BaS_gcc/sources/xhdi_vec.S rename to BaS_gcc/xhdi/xhdi_vec.S