diff --git a/Makefile b/Makefile index 4e00a76..824ef7d 100644 --- a/Makefile +++ b/Makefile @@ -8,34 +8,6 @@ # The `make' will compile everything, including a kernel, utilities # and a root filesystem image. -# -# Supported boards -# -MAX32 = sys/pic32/max32/MAX32 -FUBARINO = sys/pic32/fubarino/FUBARINO -FUBARINOBIG = sys/pic32/fubarino/FUBARINO-UART2CONS-UART1-SRAMC -SDXL = sys/pic32/sdxl/SDXL -MAXIMITE = sys/pic32/maximite/MAXIMITE -MAXCOLOR = sys/pic32/maximite-color/MAXCOLOR -DUINOMITE = sys/pic32/duinomite/DUINOMITE -DUINOMITEUART = sys/pic32/duinomite-uart/DUINOMITE-UART -DUINOMITEE = sys/pic32/duinomite-e/DUINOMITE-E -DUINOMITEEUART = sys/pic32/duinomite-e-uart/DUINOMITE-E-UART -PINGUINO = sys/pic32/pinguino-micro/PINGUINO-MICRO -MMBMX7 = sys/pic32/mmb-mx7/MMB-MX7 -WF32 = sys/pic32/wf32/WF32 -UBW32 = sys/pic32/ubw32/UBW32 -UBW32UART = sys/pic32/ubw32-uart/UBW32-UART -UBW32UARTSDRAM = sys/pic32/ubw32-uart-sdram/UBW32-UART-SDRAM -EXPLORER16 = sys/pic32/explorer16/EXPLORER16 -STARTERKIT = sys/pic32/starter-kit/STARTER-KIT -BAREMETAL = sys/pic32/baremetal/BAREMETAL -RETROONE = sys/pic32/retroone/RETROONE -PINGUINO-MICRO = sys/pic32/pinguino-micro/PINGUINO-MICRO - -# Select target board -TARGET ?= $(MAX32) - # Filesystem and swap sizes. FS_MBYTES = 100 U_MBYTES = 100 @@ -57,8 +29,6 @@ FSUTIL = tools/fsutil/fsutil -include Makefile.user -TARGETDIR = $(shell dirname $(TARGET)) -TARGETNAME = $(shell basename $(TARGET)) TOPSRC = $(shell pwd) CONFIG = $(TOPSRC)/tools/configsys/config @@ -69,11 +39,8 @@ all: .profile $(MAKE) kernel $(MAKE) fs -kernel: $(TARGETDIR)/Makefile - $(MAKE) -C $(TARGETDIR) - -$(TARGETDIR)/Makefile: $(CONFIG) $(TARGETDIR)/$(TARGETNAME) - cd $(TARGETDIR) && ../../../tools/configsys/config $(TARGETNAME) +kernel: $(CONFIG) + $(MAKE) -C sys/pic32 all fs: sdcard.img diff --git a/sys/pic32/Makefile b/sys/pic32/Makefile index b07418a..e0f9f93 100644 --- a/sys/pic32/Makefile +++ b/sys/pic32/Makefile @@ -1,8 +1,8 @@ # Programs that live in subdirectories, and have makefiles of their own. # -SUBDIR = baremetal duinomite duinomite-uart duinomite-e \ - duinomite-e-uart explorer16 max32 maximite \ +SUBDIR = baremetal duinomite duinomite-emega \ + explorer16 max32 maximite \ meb starter-kit sdxl ubw32 ubw32-uart \ ubw32-uart-sdram baremetal fubarino mmb-mx7 maximite-color \ 32mxsdram-uart picadillo wf32 pinguino-micro diff --git a/sys/pic32/duinomite-e-uart/Makefile b/sys/pic32/duinomite-e-uart/Makefile deleted file mode 100644 index e0c4acc..0000000 --- a/sys/pic32/duinomite-e-uart/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -BUILDPATH = ../../../tools/configsys/../../sys/pic32 -H = ../../../tools/configsys/../../sys/include -M = ../../../tools/configsys/../../sys/pic32 -S = ../../../tools/configsys/../../sys/kernel - -vpath %.c $(M):$(S) -vpath %.S $(M):$(S) - -KERNOBJ += clock.o cons.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o uart.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o -EXTRA_TARGETS = - -DEFS += -DBUS_DIV=1 -DEFS += -DBUS_KHZ=40000 -DEFS += -DCONSOLE_DEVICE=tty5 -DEFS += -DCPU_IDIV=2 -DEFS += -DCPU_KHZ=80000 -DEFS += -DCPU_MUL=20 -DEFS += -DCPU_ODIV=1 -DEFS += -DCRYSTAL=8 -DEFS += -DEXEC_AOUT -DEFS += -DEXEC_ELF -DEFS += -DEXEC_SCRIPT -DEFS += -DGPIO_ENABLED=YES -DEFS += -DKERNEL -DEFS += -DLED_DISK_PIN=1 -DEFS += -DLED_DISK_PORT=TRISC -DEFS += -DLED_KERNEL_PIN=15 -DEFS += -DLED_KERNEL_PORT=TRISB -DEFS += -DPIC32MX7 -DEFS += -DSD0_CS_PIN=12 -DEFS += -DSD0_CS_PORT=TRISG -DEFS += -DSD0_ENA_PIN=13 -DEFS += -DSD0_ENA_PORT=TRISG -DEFS += -DSD0_PORT=3 -DEFS += -DUART5_BAUD=115200 -DEFS += -DUART5_ENABLED=YES -DEFS += -DUART5_ENA_PIN=13 -DEFS += -DUART5_ENA_PORT=TRISG -DEFS += -DUCB_METER - - -LDSCRIPT = ../../../tools/configsys/../../sys/pic32/cfg/bootloader-maximite.ld - -CONFIG = DUINOMITE-E-UART -CONFIGPATH = ../../../tools/configsys - -include ../../../tools/configsys/../../sys/pic32/kernel-post.mk diff --git a/sys/pic32/duinomite-e/.gitignore b/sys/pic32/duinomite-e/.gitignore deleted file mode 100644 index 6a22af6..0000000 --- a/sys/pic32/duinomite-e/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -.compileversion -.deps/ -.oldversion -machine -sys -unix.bin -unix.map -usbboot.map -vers.c diff --git a/sys/pic32/duinomite-e/Makefile b/sys/pic32/duinomite-e/Makefile deleted file mode 100644 index 12abe54..0000000 --- a/sys/pic32/duinomite-e/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -BUILDPATH = ../../../tools/configsys/../../sys/pic32 -H = ../../../tools/configsys/../../sys/include -M = ../../../tools/configsys/../../sys/pic32 -S = ../../../tools/configsys/../../sys/kernel - -vpath %.c $(M):$(S) -vpath %.S $(M):$(S) - -KERNOBJ += clock.o cons.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o usb_device.o usb_function_cdc.o usb_uart.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o -EXTRA_TARGETS = - -DEFS += -DBUS_DIV=1 -DEFS += -DBUS_KHZ=40000 -DEFS += -DCONSOLE_DEVICE=ttyUSB0 -DEFS += -DCPU_IDIV=2 -DEFS += -DCPU_KHZ=80000 -DEFS += -DCPU_MUL=20 -DEFS += -DCPU_ODIV=1 -DEFS += -DCRYSTAL=8 -DEFS += -DEXEC_AOUT -DEFS += -DEXEC_ELF -DEFS += -DEXEC_SCRIPT -DEFS += -DGPIO_ENABLED=YES -DEFS += -DKERNEL -DEFS += -DLED_DISK_PIN=1 -DEFS += -DLED_DISK_PORT=TRISC -DEFS += -DLED_KERNEL_PIN=15 -DEFS += -DLED_KERNEL_PORT=TRISB -DEFS += -DPIC32MX7 -DEFS += -DSD0_CS_PIN=12 -DEFS += -DSD0_CS_PORT=TRISG -DEFS += -DSD0_ENA_PIN=13 -DEFS += -DSD0_ENA_PORT=TRISG -DEFS += -DSD0_PORT=3 -DEFS += -DUARTUSB_ENABLED=YES -DEFS += -DUCB_METER -DEFS += -DUSB_MAX_EP_NUMBER=3 -DEFS += -DUSB_NUM_STRING_DESCRIPTORS=3 - - -LDSCRIPT = ../../../tools/configsys/../../sys/pic32/cfg/bootloader-maximite.ld - -CONFIG = DUINOMITE-E -CONFIGPATH = ../../../tools/configsys - -include ../../../tools/configsys/../../sys/pic32/kernel-post.mk diff --git a/sys/pic32/duinomite-e-uart/.gitignore b/sys/pic32/duinomite-emega/.gitignore similarity index 77% rename from sys/pic32/duinomite-e-uart/.gitignore rename to sys/pic32/duinomite-emega/.gitignore index 6a22af6..7e25ca8 100644 --- a/sys/pic32/duinomite-e-uart/.gitignore +++ b/sys/pic32/duinomite-emega/.gitignore @@ -7,3 +7,6 @@ unix.bin unix.map usbboot.map vers.c +*.h +ioconf.c +swapunix.c diff --git a/sys/pic32/duinomite-emega/Config b/sys/pic32/duinomite-emega/Config new file mode 100644 index 0000000..0f7cd34 --- /dev/null +++ b/sys/pic32/duinomite-emega/Config @@ -0,0 +1,70 @@ +# +# Olimex Duinomite-eMega board +# ============================ +# Console on USB. +# For Windows, use the driver: http://www.schmalzhaus.com/UBW32/FW/UBW32inf.zip +# For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-Olimex-Duinomite +# +# To build the kernel, use: +# cd sys/pic32/duinomite-e +# kconfig Config +# make clean +# make +# +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig +# +architecture "pic32" +cpu "PIC32MX7" # Processor variant +board "DUINOMITE" # Board type +hz 100 # Rate of clock interrupt +ldscript "cfg/bootloader-maximite.ld" # Linker script + +# Standard system options +options "CPU_KHZ=80000" # Oscillator frequency of CPU core +options "BUS_KHZ=40000" # Frequency of peripheral bus +options "BUS_DIV=1" # Bus clock divisor 1/2/4/8 + +# LED +options "LED_KERNEL_PORT=TRISB" # for kernel activity LED... +options "LED_KERNEL_PIN=15" # ...use pin RB15 +options "LED_DISK_PORT=TRISC" # for disk activity LED... +options "LED_DISK_PIN=1" # ...use pin RC1 + +# Root filesystem at /dev/sd0a, swap at /dev/sd0b +config unix root on sd0a + swap on sd0b + dumps on sd0b + +# Console options +options "CONSOLE_DEVICE=ttyUSB0" # Console on USB + +# Virtual UART on USB +pseudo-device uartusb +options "UARTUSB_ENABLED" # TODO: delete this option +options "USB_MAX_EP_NUMBER=3" +options "USB_NUM_STRING_DESCRIPTORS=3" + +# SPI ports +controller spi3 # SD card +options "SPI_ENABLED" # TODO: delete this option + +# microSD card +disk sd0 at spi3 flags 0x7c # select pin RG12 +options "SD0_PORT=3" # at spi3 TODO: delete +options "SD0_CS_PORT=TRISG" # for chip select... TODO: use flags +options "SD0_CS_PIN=12" # ...use pin RG12 TODO: use flags +options "SD0_ENA_PORT=TRISG" # for SD enable... TODO: use flags +options "SD0_ENA_PIN=13" # ...use pin RG13 TODO: use flags + +# General purpose I/O ports +device gpio0 +options "GPIO_ENABLED" # TODO: delete this option + +# ADC driver +device adc0 +options "ADC_ENABLED" # TODO: delete this option + +# PWM driver +device pwm0 +options "PWM_ENABLED" # TODO: delete this option diff --git a/sys/pic32/duinomite-emega/Config-uart b/sys/pic32/duinomite-emega/Config-uart new file mode 100644 index 0000000..34a1709 --- /dev/null +++ b/sys/pic32/duinomite-emega/Config-uart @@ -0,0 +1,70 @@ +# +# Olimex Duinomite-eMega board +# ============================ +# Console on UART5. +# For Windows, use the driver: http://www.schmalzhaus.com/UBW32/FW/UBW32inf.zip +# For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-Olimex-Duinomite +# +# To build the kernel, use: +# cd sys/pic32/duinomite-e +# kconfig Config +# make clean +# make +# +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig +# +architecture "pic32" +cpu "PIC32MX7" # Processor variant +board "DUINOMITE" # Board type +hz 100 # Rate of clock interrupt +ldscript "cfg/bootloader-maximite.ld" # Linker script + +# Standard system options +options "CPU_KHZ=80000" # Oscillator frequency of CPU core +options "BUS_KHZ=40000" # Frequency of peripheral bus +options "BUS_DIV=1" # Bus clock divisor 1/2/4/8 + +# LED +options "LED_KERNEL_PORT=TRISB" # for kernel activity LED... +options "LED_KERNEL_PIN=15" # ...use pin RB15 +options "LED_DISK_PORT=TRISC" # for disk activity LED... +options "LED_DISK_PIN=1" # ...use pin RC1 + +# Root filesystem at /dev/sd0a, swap at /dev/sd0b +config unix root on sd0a + swap on sd0b + dumps on sd0b + +# Console options +options "CONSOLE_DEVICE=tty4" # Console on UART5 + +# Serial UART ports +device uart5 # RS-232 port +options "UART5_ENABLED" # TODO: delete this option +options "UART5_ENA_PORT=TRISB" # for RS-232 enable... TODO: use flags +options "UART5_ENA_PIN=13" # ...use pin RB13 TODO: use flags + +# SPI ports +controller spi3 # SD card +options "SPI_ENABLED" # TODO: delete this option + +# microSD card +disk sd0 at spi3 flags 0x7c # select pin RG12 +options "SD0_PORT=3" # at spi3 TODO: delete +options "SD0_CS_PORT=TRISG" # for chip select... TODO: use flags +options "SD0_CS_PIN=12" # ...use pin RG12 TODO: use flags +options "SD0_ENA_PORT=TRISG" # for SD enable... TODO: use flags +options "SD0_ENA_PIN=13" # ...use pin RG13 TODO: use flags + +# General purpose I/O ports +device gpio0 +options "GPIO_ENABLED" # TODO: delete this option + +# ADC driver +device adc0 +options "ADC_ENABLED" # TODO: delete this option + +# PWM driver +device pwm0 +options "PWM_ENABLED" # TODO: delete this option diff --git a/sys/pic32/duinomite-e/DUINOMITE-E b/sys/pic32/duinomite-emega/DUINOMITE-EMEGA similarity index 100% rename from sys/pic32/duinomite-e/DUINOMITE-E rename to sys/pic32/duinomite-emega/DUINOMITE-EMEGA diff --git a/sys/pic32/duinomite-e-uart/DUINOMITE-E-UART b/sys/pic32/duinomite-emega/DUINOMITE-EMEGA-UART similarity index 100% rename from sys/pic32/duinomite-e-uart/DUINOMITE-E-UART rename to sys/pic32/duinomite-emega/DUINOMITE-EMEGA-UART diff --git a/sys/pic32/duinomite-emega/Makefile b/sys/pic32/duinomite-emega/Makefile new file mode 100644 index 0000000..02006c2 --- /dev/null +++ b/sys/pic32/duinomite-emega/Makefile @@ -0,0 +1,360 @@ +PARAM = -DDUINOMITE +PARAM += -DPIC32MX7 +PARAM += -DPWM_ENABLED +PARAM += -DADC_ENABLED +PARAM += -DGPIO_ENABLED +PARAM += -DSD0_ENA_PIN=13 +PARAM += -DSD0_ENA_PORT=TRISG +PARAM += -DSD0_CS_PIN=12 +PARAM += -DSD0_CS_PORT=TRISG +PARAM += -DSD0_PORT=3 +PARAM += -DSPI_ENABLED +PARAM += -DUSB_NUM_STRING_DESCRIPTORS=3 +PARAM += -DUSB_MAX_EP_NUMBER=3 +PARAM += -DUARTUSB_ENABLED +PARAM += -DCONSOLE_DEVICE=ttyUSB0 +PARAM += -DLED_DISK_PIN=1 +PARAM += -DLED_DISK_PORT=TRISC +PARAM += -DLED_KERNEL_PIN=15 +PARAM += -DLED_KERNEL_PORT=TRISB +PARAM += -DBUS_DIV=1 +PARAM += -DBUS_KHZ=40000 +PARAM += -DCPU_KHZ=80000 +PARAM += -DHZ=100 +LDSCRIPT = "cfg/bootloader-maximite.ld" +# +# Makefile for RetroBSD, pic32 target +# +# DEBUG is set to -g by kconfig if debugging is requested (kconfig -g). +# +include ../gcc-config.mk + +AS = ${MIPS_GCC_PREFIX}as ${DEBUG} -mips32r2 -EL +CC = ${MIPS_GCC_PREFIX}gcc ${DEBUG} -mips32r2 -EL -nostdinc -fno-builtin -Werror -Wall +CPP = ${MIPS_GCC_PREFIX}cpp +LD = ${MIPS_GCC_PREFIX}gcc -mips32r2 -EL +LDFLAGS = -nostdlib -T ../${LDSCRIPT} -Wl,-Map=unix.map +SIZE = ${MIPS_GCC_PREFIX}size +OBJCOPY = ${MIPS_GCC_PREFIX}objcopy +OBJDUMP = ${MIPS_GCC_PREFIX}objdump + +ifneq (${MIPS_GCC_FORMAT},) + LDFLAGS += -Wl,--oformat=${MIPS_GCC_FORMAT} +endif + +# sources are located via $S relative to the compilation directory +S = ../.. + +DEPFLAGS = -MT $@ -MP -MD -MF .deps/$*.dep +DEFS = -I. ${PARAM} -DKERNEL $(DEPFLAGS) +CFLAGS = -O ${DEFS} + +# compile rules: rules are named COMPILE_${SUFFIX} +# SUFFIX is the file suffix, capitalized (e.g. C for a .c file). + +COMPILE_C = ${CC} -c ${CFLAGS} $< +COMPILE_S = ${CC} -c ${DEFS} $< + +OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ + init_main.o init_sysent.o kern_clock.o kern_descrip.o \ + kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ + kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ + subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ + sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ + ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ + ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ + ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o adc.o \ + clock.o cons.o devsw.o exception.o gpio.o machdep.o mem.o pwm.o \ + rd_sd.o signal.o spi.o spi_bus.o swap.o sysctl.o usb_device.o \ + usb_function_cdc.o usb_uart.o + +CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ + $S/kernel/exec_script.c $S/kernel/exec_subr.c \ + $S/kernel/init_main.c $S/kernel/init_sysent.c \ + $S/kernel/kern_clock.c $S/kernel/kern_descrip.c \ + $S/kernel/kern_exec.c $S/kernel/kern_exit.c \ + $S/kernel/kern_fork.c $S/kernel/kern_mman.c \ + $S/kernel/kern_proc.c $S/kernel/kern_prot.c \ + $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ + $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ + $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ + $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ + $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ + $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ + $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ + $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ + $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ + $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ + $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ + $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ + $S/kernel/vm_swp.c $S/pic32/adc.c $S/pic32/clock.c \ + $S/pic32/cons.c $S/pic32/devsw.c $S/pic32/exception.c \ + $S/pic32/gpio.c $S/pic32/machdep.c $S/pic32/mem.c $S/pic32/pwm.c \ + $S/pic32/rd_sd.c $S/pic32/signal.c $S/pic32/spi.c \ + $S/pic32/spi_bus.c $S/pic32/swap.c $S/pic32/sysctl.c \ + $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ + $S/pic32/usb_uart.c swapunix.c + +# load lines for config "xxx" will be emitted as: +# xxx: ${SYSTEM_DEP} swapxxx.o +# ${SYSTEM_LD_HEAD} +# ${SYSTEM_LD} swapxxx.o +# ${SYSTEM_LD_TAIL} +SYSTEM_OBJ = startup.o ${OBJS} #ioconf.o +ifeq (devcfg.c,$(wildcard devcfg.c)) + SYSTEM_OBJ += devcfg.o +endif +SYSTEM_DEP = Makefile ioconf.c swapunix.c machine sys .deps ${SYSTEM_OBJ} +SYSTEM_LD_HEAD = sh ../newvers.sh > vers.c; ${CC} $(CFLAGS) -c vers.c; rm -f $@ +SYSTEM_LD = -@echo ${LD} ${LDFLAGS} '$${SYSTEM_OBJ}' vers.o -o unix.elf; \ + ${LD} ${LDFLAGS} ${SYSTEM_OBJ} vers.o -o unix.elf +SYSTEM_LD_TAIL = ${SIZE} unix.elf; \ + $(OBJCOPY) -O ihex --change-addresses=0x80000000 $@ unix.hex; \ + $(OBJCOPY) -O binary -R .boot -R .config $@ unix.bin; \ + $(OBJDUMP) -d -S unix.elf > unix.dis + +unix.elf: ${SYSTEM_DEP} swapunix.o + ${SYSTEM_LD_HEAD} + ${SYSTEM_LD} swapunix.o + ${SYSTEM_LD_TAIL} + +swapunix.o: swapunix.c + ${COMPILE_C} + +all: unix.elf + +clean: + rm -rf .deps *.elf *.o *.map *.dis *.bin + +clean-all: clean + rm -f *.h *.c machine sys + +reconfig ioconf.c swapunix.c: Config ../../../tools/kconfig/kconfig + ../../../tools/kconfig/kconfig Config + $(MAKE) clean + +load: unix.elf + pic32prog unix.hex + +machine: + ln -s .. $@ + +sys: + ln -s ../../include $@ + +.deps: + mkdir .deps + +startup.o: ../startup.S + ${COMPILE_S} + +ioconf.o: ioconf.c + ${COMPILE_C} + +exec_aout.o: $S/kernel/exec_aout.c + ${COMPILE_C} + +exec_conf.o: $S/kernel/exec_conf.c + ${COMPILE_C} + +exec_elf.o: $S/kernel/exec_elf.c + ${COMPILE_C} + +exec_script.o: $S/kernel/exec_script.c + ${COMPILE_C} + +exec_subr.o: $S/kernel/exec_subr.c + ${COMPILE_C} + +init_main.o: $S/kernel/init_main.c + ${COMPILE_C} + +init_sysent.o: $S/kernel/init_sysent.c + ${COMPILE_C} + +kern_clock.o: $S/kernel/kern_clock.c + ${COMPILE_C} + +kern_descrip.o: $S/kernel/kern_descrip.c + ${COMPILE_C} + +kern_exec.o: $S/kernel/kern_exec.c + ${COMPILE_C} + +kern_exit.o: $S/kernel/kern_exit.c + ${COMPILE_C} + +kern_fork.o: $S/kernel/kern_fork.c + ${COMPILE_C} + +kern_mman.o: $S/kernel/kern_mman.c + ${COMPILE_C} + +kern_proc.o: $S/kernel/kern_proc.c + ${COMPILE_C} + +kern_prot.o: $S/kernel/kern_prot.c + ${COMPILE_C} + +kern_prot2.o: $S/kernel/kern_prot2.c + ${COMPILE_C} + +kern_resource.o: $S/kernel/kern_resource.c + ${COMPILE_C} + +kern_sig.o: $S/kernel/kern_sig.c + ${COMPILE_C} + +kern_sig2.o: $S/kernel/kern_sig2.c + ${COMPILE_C} + +kern_subr.o: $S/kernel/kern_subr.c + ${COMPILE_C} + +kern_synch.o: $S/kernel/kern_synch.c + ${COMPILE_C} + +kern_sysctl.o: $S/kernel/kern_sysctl.c + ${COMPILE_C} + +kern_time.o: $S/kernel/kern_time.c + ${COMPILE_C} + +rdisk.o: $S/kernel/rdisk.c + ${COMPILE_C} + +subr_prf.o: $S/kernel/subr_prf.c + ${COMPILE_C} + +subr_rmap.o: $S/kernel/subr_rmap.c + ${COMPILE_C} + +sys_generic.o: $S/kernel/sys_generic.c + ${COMPILE_C} + +sys_inode.o: $S/kernel/sys_inode.c + ${COMPILE_C} + +sys_pipe.o: $S/kernel/sys_pipe.c + ${COMPILE_C} + +sys_process.o: $S/kernel/sys_process.c + ${COMPILE_C} + +syscalls.o: $S/kernel/syscalls.c + ${COMPILE_C} + +tty.o: $S/kernel/tty.c + ${COMPILE_C} + +tty_subr.o: $S/kernel/tty_subr.c + ${COMPILE_C} + +tty_tty.o: $S/kernel/tty_tty.c + ${COMPILE_C} + +ufs_alloc.o: $S/kernel/ufs_alloc.c + ${COMPILE_C} + +ufs_bio.o: $S/kernel/ufs_bio.c + ${COMPILE_C} + +ufs_bmap.o: $S/kernel/ufs_bmap.c + ${COMPILE_C} + +ufs_dsort.o: $S/kernel/ufs_dsort.c + ${COMPILE_C} + +ufs_fio.o: $S/kernel/ufs_fio.c + ${COMPILE_C} + +ufs_inode.o: $S/kernel/ufs_inode.c + ${COMPILE_C} + +ufs_mount.o: $S/kernel/ufs_mount.c + ${COMPILE_C} + +ufs_namei.o: $S/kernel/ufs_namei.c + ${COMPILE_C} + +ufs_subr.o: $S/kernel/ufs_subr.c + ${COMPILE_C} + +ufs_syscalls.o: $S/kernel/ufs_syscalls.c + ${COMPILE_C} + +ufs_syscalls2.o: $S/kernel/ufs_syscalls2.c + ${COMPILE_C} + +vfs_vnops.o: $S/kernel/vfs_vnops.c + ${COMPILE_C} + +vm_sched.o: $S/kernel/vm_sched.c + ${COMPILE_C} + +vm_swap.o: $S/kernel/vm_swap.c + ${COMPILE_C} + +vm_swp.o: $S/kernel/vm_swp.c + ${COMPILE_C} + +adc.o: $S/pic32/adc.c + ${COMPILE_C} + +clock.o: $S/pic32/clock.c + ${COMPILE_C} + +cons.o: $S/pic32/cons.c + ${COMPILE_C} + +devsw.o: $S/pic32/devsw.c + ${COMPILE_C} + +exception.o: $S/pic32/exception.c + ${COMPILE_C} + +gpio.o: $S/pic32/gpio.c + ${COMPILE_C} + +machdep.o: $S/pic32/machdep.c + ${COMPILE_C} + +mem.o: $S/pic32/mem.c + ${COMPILE_C} + +pwm.o: $S/pic32/pwm.c + ${COMPILE_C} + +rd_sd.o: $S/pic32/rd_sd.c + ${COMPILE_C} + +signal.o: $S/pic32/signal.c + ${COMPILE_C} + +spi.o: $S/pic32/spi.c + ${COMPILE_C} + +spi_bus.o: $S/pic32/spi_bus.c + ${COMPILE_C} + +swap.o: $S/pic32/swap.c + ${COMPILE_C} + +sysctl.o: $S/pic32/sysctl.c + ${COMPILE_C} + +usb_device.o: $S/pic32/usb_device.c + ${COMPILE_C} + +usb_function_cdc.o: $S/pic32/usb_function_cdc.c + ${COMPILE_C} + +usb_uart.o: $S/pic32/usb_uart.c + ${COMPILE_C} + + +ifeq (.deps, $(wildcard .deps)) +-include .deps/*.dep +endif diff --git a/sys/pic32/duinomite-uart/.gitignore b/sys/pic32/duinomite-uart/.gitignore deleted file mode 100644 index 6a22af6..0000000 --- a/sys/pic32/duinomite-uart/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -.compileversion -.deps/ -.oldversion -machine -sys -unix.bin -unix.map -usbboot.map -vers.c diff --git a/sys/pic32/duinomite-uart/Makefile b/sys/pic32/duinomite-uart/Makefile deleted file mode 100644 index a605dac..0000000 --- a/sys/pic32/duinomite-uart/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -BUILDPATH = ../../../tools/configsys/../../sys/pic32 -H = ../../../tools/configsys/../../sys/include -M = ../../../tools/configsys/../../sys/pic32 -S = ../../../tools/configsys/../../sys/kernel - -vpath %.c $(M):$(S) -vpath %.S $(M):$(S) - -KERNOBJ += clock.o cons.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o uart.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o -EXTRA_TARGETS = - -DEFS += -DBUS_DIV=1 -DEFS += -DBUS_KHZ=80000 -DEFS += -DCONSOLE_DEVICE=tty4 -DEFS += -DCPU_IDIV=2 -DEFS += -DCPU_KHZ=80000 -DEFS += -DCPU_MUL=20 -DEFS += -DCPU_ODIV=1 -DEFS += -DCRYSTAL=8 -DEFS += -DEXEC_AOUT -DEFS += -DEXEC_ELF -DEFS += -DEXEC_SCRIPT -DEFS += -DGPIO_ENABLED=YES -DEFS += -DKERNEL -DEFS += -DLED_DISK_PIN=12 -DEFS += -DLED_DISK_PORT=TRISB -DEFS += -DLED_KERNEL_PIN=15 -DEFS += -DLED_KERNEL_PORT=TRISB -DEFS += -DPIC32MX7 -DEFS += -DSD0_CS_PIN=5 -DEFS += -DSD0_CS_PORT=TRISD -DEFS += -DSD0_ENA_PIN=13 -DEFS += -DSD0_ENA_PORT=TRISB -DEFS += -DSD0_PORT=3 -DEFS += -DUART5_BAUD=115200 -DEFS += -DUART5_ENABLED=YES -DEFS += -DUART5_ENA_PIN=13 -DEFS += -DUART5_ENA_PORT=TRISB -DEFS += -DUCB_METER - - -LDSCRIPT = ../../../tools/configsys/../../sys/pic32/cfg/bootloader-maximite.ld - -CONFIG = DUINOMITE-UART -CONFIGPATH = ../../../tools/configsys - -include ../../../tools/configsys/../../sys/pic32/kernel-post.mk diff --git a/sys/pic32/duinomite/.gitignore b/sys/pic32/duinomite/.gitignore index 6a22af6..7e25ca8 100644 --- a/sys/pic32/duinomite/.gitignore +++ b/sys/pic32/duinomite/.gitignore @@ -7,3 +7,6 @@ unix.bin unix.map usbboot.map vers.c +*.h +ioconf.c +swapunix.c diff --git a/sys/pic32/duinomite/Config b/sys/pic32/duinomite/Config new file mode 100644 index 0000000..dddcc1b --- /dev/null +++ b/sys/pic32/duinomite/Config @@ -0,0 +1,69 @@ +# +# Duinomite and Duinomite-Mega boards +# =================================== +# Console on USB. +# For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-Olimex-Duinomite +# +# To build the kernel, use: +# cd sys/pic32/duinomite +# kconfig Config +# make clean +# make +# +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig +# +architecture "pic32" +cpu "PIC32MX7" # Processor variant +board "DUINOMITE" # Board type +hz 100 # Rate of clock interrupt +ldscript "cfg/bootloader-maximite.ld" # Linker script + +# Standard system options +options "CPU_KHZ=80000" # Oscillator frequency of CPU core +options "BUS_KHZ=80000" # Frequency of peripheral bus +options "BUS_DIV=1" # Bus clock divisor 1/2/4/8 + +# LED +options "LED_KERNEL_PORT=TRISB" # for kernel activity LED... +options "LED_KERNEL_PIN=15" # ...use pin RB15 +options "LED_DISK_PORT=TRISB" # for disk activity LED... +options "LED_DISK_PIN=12" # ...use pin RB12 + +# Root filesystem at /dev/sd0a, swap at /dev/sd0b +config unix root on sd0a + swap on sd0b + dumps on sd0b + +# Console options +options "CONSOLE_DEVICE=ttyUSB0" # Console on USB + +# Virtual UART on USB +pseudo-device uartusb +options "UARTUSB_ENABLED" # TODO: delete this option +options "USB_MAX_EP_NUMBER=3" +options "USB_NUM_STRING_DESCRIPTORS=3" + +# SPI ports +controller spi3 # SD card +options "SPI_ENABLED" # TODO: delete this option + +# microSD card +disk sd0 at spi3 flags 0x45 # select pin RD5 +options "SD0_PORT=3" # at spi3 TODO: delete +options "SD0_CS_PORT=TRISD" # for chip select... TODO: use flags +options "SD0_CS_PIN=5" # ...use pin RD5 TODO: use flags +options "SD0_ENA_PORT=TRISB" # for SD enable... TODO: use flags +options "SD0_ENA_PIN=13" # ...use pin RB13 TODO: use flags + +# General purpose I/O ports +device gpio0 +options "GPIO_ENABLED" # TODO: delete this option + +# ADC driver +device adc0 +options "ADC_ENABLED" # TODO: delete this option + +# PWM driver +device pwm0 +options "PWM_ENABLED" # TODO: delete this option diff --git a/sys/pic32/duinomite/Config-uart b/sys/pic32/duinomite/Config-uart new file mode 100644 index 0000000..f1f3848 --- /dev/null +++ b/sys/pic32/duinomite/Config-uart @@ -0,0 +1,69 @@ +# +# Duinomite and Duinomite-Mega boards +# =================================== +# Console on UART5. +# For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-Olimex-Duinomite +# +# To build the kernel, use: +# cd sys/pic32/duinomite +# kconfig Config +# make clean +# make +# +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig +# +architecture "pic32" +cpu "PIC32MX7" # Processor variant +board "DUINOMITE" # Board type +hz 100 # Rate of clock interrupt +ldscript "cfg/bootloader-maximite.ld" # Linker script + +# Standard system options +options "CPU_KHZ=80000" # Oscillator frequency of CPU core +options "BUS_KHZ=80000" # Frequency of peripheral bus +options "BUS_DIV=1" # Bus clock divisor 1/2/4/8 + +# LED +options "LED_KERNEL_PORT=TRISB" # for kernel activity LED... +options "LED_KERNEL_PIN=15" # ...use pin RB15 +options "LED_DISK_PORT=TRISB" # for disk activity LED... +options "LED_DISK_PIN=12" # ...use pin RB12 + +# Root filesystem at /dev/sd0a, swap at /dev/sd0b +config unix root on sd0a + swap on sd0b + dumps on sd0b + +# Console options +options "CONSOLE_DEVICE=tty4" # Console on UART5 + +# Serial UART ports +device uart5 # RS-232 port +options "UART5_ENABLED" # TODO: delete this option +options "UART5_ENA_PORT=TRISB" # for RS-232 enable... TODO: use flags +options "UART5_ENA_PIN=13" # ...use pin RB13 TODO: use flags + +# SPI ports +controller spi3 # SD card +options "SPI_ENABLED" # TODO: delete this option + +# microSD card +disk sd0 at spi3 flags 0x45 # select pin RD5 +options "SD0_PORT=3" # at spi3 TODO: delete +options "SD0_CS_PORT=TRISD" # for chip select... TODO: use flags +options "SD0_CS_PIN=5" # ...use pin RD5 TODO: use flags +options "SD0_ENA_PORT=TRISB" # for SD enable... TODO: use flags +options "SD0_ENA_PIN=13" # ...use pin RB13 TODO: use flags + +# General purpose I/O ports +device gpio0 +options "GPIO_ENABLED" # TODO: delete this option + +# ADC driver +device adc0 +options "ADC_ENABLED" # TODO: delete this option + +# PWM driver +device pwm0 +options "PWM_ENABLED" # TODO: delete this option diff --git a/sys/pic32/duinomite-uart/DUINOMITE-UART b/sys/pic32/duinomite/DUINOMITE-UART similarity index 100% rename from sys/pic32/duinomite-uart/DUINOMITE-UART rename to sys/pic32/duinomite/DUINOMITE-UART diff --git a/sys/pic32/duinomite/Makefile b/sys/pic32/duinomite/Makefile index 1801c95..fc7c1f3 100644 --- a/sys/pic32/duinomite/Makefile +++ b/sys/pic32/duinomite/Makefile @@ -1,48 +1,360 @@ -BUILDPATH = ../../../tools/configsys/../../sys/pic32 -H = ../../../tools/configsys/../../sys/include -M = ../../../tools/configsys/../../sys/pic32 -S = ../../../tools/configsys/../../sys/kernel +PARAM = -DDUINOMITE +PARAM += -DPIC32MX7 +PARAM += -DPWM_ENABLED +PARAM += -DADC_ENABLED +PARAM += -DGPIO_ENABLED +PARAM += -DSD0_ENA_PIN=13 +PARAM += -DSD0_ENA_PORT=TRISB +PARAM += -DSD0_CS_PIN=5 +PARAM += -DSD0_CS_PORT=TRISD +PARAM += -DSD0_PORT=3 +PARAM += -DSPI_ENABLED +PARAM += -DUSB_NUM_STRING_DESCRIPTORS=3 +PARAM += -DUSB_MAX_EP_NUMBER=3 +PARAM += -DUARTUSB_ENABLED +PARAM += -DCONSOLE_DEVICE=ttyUSB0 +PARAM += -DLED_DISK_PIN=12 +PARAM += -DLED_DISK_PORT=TRISB +PARAM += -DLED_KERNEL_PIN=15 +PARAM += -DLED_KERNEL_PORT=TRISB +PARAM += -DBUS_DIV=1 +PARAM += -DBUS_KHZ=80000 +PARAM += -DCPU_KHZ=80000 +PARAM += -DHZ=100 +LDSCRIPT = "cfg/bootloader-maximite.ld" +# +# Makefile for RetroBSD, pic32 target +# +# DEBUG is set to -g by kconfig if debugging is requested (kconfig -g). +# +include ../gcc-config.mk -vpath %.c $(M):$(S) -vpath %.S $(M):$(S) +AS = ${MIPS_GCC_PREFIX}as ${DEBUG} -mips32r2 -EL +CC = ${MIPS_GCC_PREFIX}gcc ${DEBUG} -mips32r2 -EL -nostdinc -fno-builtin -Werror -Wall +CPP = ${MIPS_GCC_PREFIX}cpp +LD = ${MIPS_GCC_PREFIX}gcc -mips32r2 -EL +LDFLAGS = -nostdlib -T ../${LDSCRIPT} -Wl,-Map=unix.map +SIZE = ${MIPS_GCC_PREFIX}size +OBJCOPY = ${MIPS_GCC_PREFIX}objcopy +OBJDUMP = ${MIPS_GCC_PREFIX}objdump -KERNOBJ += adc.o clock.o cons.o devsw.o exception.o exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o gpio.o init_main.o init_sysent.o kern_clock.o kern_descrip.o kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o kern_subr.o kern_synch.o kern_sysctl.o kern_time.o machdep.o mem.o pwm.o rd_sd.o rdisk.o signal.o spi_bus.o startup.o subr_prf.o subr_rmap.o swap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o syscalls.o sysctl.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o usb_device.o usb_function_cdc.o usb_uart.o vers.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o -EXTRA_TARGETS = +ifneq (${MIPS_GCC_FORMAT},) + LDFLAGS += -Wl,--oformat=${MIPS_GCC_FORMAT} +endif -DEFS += -DADC_ENABLED=YES -DEFS += -DBUS_DIV=1 -DEFS += -DBUS_KHZ=80000 -DEFS += -DCONSOLE_DEVICE=ttyUSB0 -DEFS += -DCPU_IDIV=2 -DEFS += -DCPU_KHZ=80000 -DEFS += -DCPU_MUL=20 -DEFS += -DCPU_ODIV=1 -DEFS += -DCRYSTAL=8 -DEFS += -DEXEC_AOUT -DEFS += -DEXEC_ELF -DEFS += -DEXEC_SCRIPT -DEFS += -DGPIO_ENABLED=YES -DEFS += -DKERNEL -DEFS += -DLED_DISK_PIN=12 -DEFS += -DLED_DISK_PORT=TRISB -DEFS += -DLED_KERNEL_PIN=15 -DEFS += -DLED_KERNEL_PORT=TRISB -DEFS += -DPIC32MX7 -DEFS += -DPWM_ENABLED=YES -DEFS += -DSD0_CS_PIN=5 -DEFS += -DSD0_CS_PORT=TRISD -DEFS += -DSD0_ENA_PIN=13 -DEFS += -DSD0_ENA_PORT=TRISB -DEFS += -DSD0_PORT=3 -DEFS += -DUARTUSB_ENABLED=YES -DEFS += -DUCB_METER -DEFS += -DUSB_MAX_EP_NUMBER=3 -DEFS += -DUSB_NUM_STRING_DESCRIPTORS=3 +# sources are located via $S relative to the compilation directory +S = ../.. + +DEPFLAGS = -MT $@ -MP -MD -MF .deps/$*.dep +DEFS = -I. ${PARAM} -DKERNEL $(DEPFLAGS) +CFLAGS = -O ${DEFS} + +# compile rules: rules are named COMPILE_${SUFFIX} +# SUFFIX is the file suffix, capitalized (e.g. C for a .c file). + +COMPILE_C = ${CC} -c ${CFLAGS} $< +COMPILE_S = ${CC} -c ${DEFS} $< + +OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ + init_main.o init_sysent.o kern_clock.o kern_descrip.o \ + kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ + kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ + subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ + sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ + ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ + ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ + ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o adc.o \ + clock.o cons.o devsw.o exception.o gpio.o machdep.o mem.o pwm.o \ + rd_sd.o signal.o spi.o spi_bus.o swap.o sysctl.o usb_device.o \ + usb_function_cdc.o usb_uart.o + +CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ + $S/kernel/exec_script.c $S/kernel/exec_subr.c \ + $S/kernel/init_main.c $S/kernel/init_sysent.c \ + $S/kernel/kern_clock.c $S/kernel/kern_descrip.c \ + $S/kernel/kern_exec.c $S/kernel/kern_exit.c \ + $S/kernel/kern_fork.c $S/kernel/kern_mman.c \ + $S/kernel/kern_proc.c $S/kernel/kern_prot.c \ + $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ + $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ + $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ + $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ + $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ + $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ + $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ + $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ + $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ + $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ + $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ + $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ + $S/kernel/vm_swp.c $S/pic32/adc.c $S/pic32/clock.c \ + $S/pic32/cons.c $S/pic32/devsw.c $S/pic32/exception.c \ + $S/pic32/gpio.c $S/pic32/machdep.c $S/pic32/mem.c $S/pic32/pwm.c \ + $S/pic32/rd_sd.c $S/pic32/signal.c $S/pic32/spi.c \ + $S/pic32/spi_bus.c $S/pic32/swap.c $S/pic32/sysctl.c \ + $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ + $S/pic32/usb_uart.c swapunix.c + +# load lines for config "xxx" will be emitted as: +# xxx: ${SYSTEM_DEP} swapxxx.o +# ${SYSTEM_LD_HEAD} +# ${SYSTEM_LD} swapxxx.o +# ${SYSTEM_LD_TAIL} +SYSTEM_OBJ = startup.o ${OBJS} #ioconf.o +ifeq (devcfg.c,$(wildcard devcfg.c)) + SYSTEM_OBJ += devcfg.o +endif +SYSTEM_DEP = Makefile ioconf.c swapunix.c machine sys .deps ${SYSTEM_OBJ} +SYSTEM_LD_HEAD = sh ../newvers.sh > vers.c; ${CC} $(CFLAGS) -c vers.c; rm -f $@ +SYSTEM_LD = -@echo ${LD} ${LDFLAGS} '$${SYSTEM_OBJ}' vers.o -o unix.elf; \ + ${LD} ${LDFLAGS} ${SYSTEM_OBJ} vers.o -o unix.elf +SYSTEM_LD_TAIL = ${SIZE} unix.elf; \ + $(OBJCOPY) -O ihex --change-addresses=0x80000000 $@ unix.hex; \ + $(OBJCOPY) -O binary -R .boot -R .config $@ unix.bin; \ + $(OBJDUMP) -d -S unix.elf > unix.dis + +unix.elf: ${SYSTEM_DEP} swapunix.o + ${SYSTEM_LD_HEAD} + ${SYSTEM_LD} swapunix.o + ${SYSTEM_LD_TAIL} + +swapunix.o: swapunix.c + ${COMPILE_C} + +all: unix.elf + +clean: + rm -rf .deps *.elf *.o *.map *.dis *.bin + +clean-all: clean + rm -f *.h *.c machine sys + +reconfig ioconf.c swapunix.c: Config ../../../tools/kconfig/kconfig + ../../../tools/kconfig/kconfig Config + $(MAKE) clean + +load: unix.elf + pic32prog unix.hex + +machine: + ln -s .. $@ + +sys: + ln -s ../../include $@ + +.deps: + mkdir .deps + +startup.o: ../startup.S + ${COMPILE_S} + +ioconf.o: ioconf.c + ${COMPILE_C} + +exec_aout.o: $S/kernel/exec_aout.c + ${COMPILE_C} + +exec_conf.o: $S/kernel/exec_conf.c + ${COMPILE_C} + +exec_elf.o: $S/kernel/exec_elf.c + ${COMPILE_C} + +exec_script.o: $S/kernel/exec_script.c + ${COMPILE_C} + +exec_subr.o: $S/kernel/exec_subr.c + ${COMPILE_C} + +init_main.o: $S/kernel/init_main.c + ${COMPILE_C} + +init_sysent.o: $S/kernel/init_sysent.c + ${COMPILE_C} + +kern_clock.o: $S/kernel/kern_clock.c + ${COMPILE_C} + +kern_descrip.o: $S/kernel/kern_descrip.c + ${COMPILE_C} + +kern_exec.o: $S/kernel/kern_exec.c + ${COMPILE_C} + +kern_exit.o: $S/kernel/kern_exit.c + ${COMPILE_C} + +kern_fork.o: $S/kernel/kern_fork.c + ${COMPILE_C} + +kern_mman.o: $S/kernel/kern_mman.c + ${COMPILE_C} + +kern_proc.o: $S/kernel/kern_proc.c + ${COMPILE_C} + +kern_prot.o: $S/kernel/kern_prot.c + ${COMPILE_C} + +kern_prot2.o: $S/kernel/kern_prot2.c + ${COMPILE_C} + +kern_resource.o: $S/kernel/kern_resource.c + ${COMPILE_C} + +kern_sig.o: $S/kernel/kern_sig.c + ${COMPILE_C} + +kern_sig2.o: $S/kernel/kern_sig2.c + ${COMPILE_C} + +kern_subr.o: $S/kernel/kern_subr.c + ${COMPILE_C} + +kern_synch.o: $S/kernel/kern_synch.c + ${COMPILE_C} + +kern_sysctl.o: $S/kernel/kern_sysctl.c + ${COMPILE_C} + +kern_time.o: $S/kernel/kern_time.c + ${COMPILE_C} + +rdisk.o: $S/kernel/rdisk.c + ${COMPILE_C} + +subr_prf.o: $S/kernel/subr_prf.c + ${COMPILE_C} + +subr_rmap.o: $S/kernel/subr_rmap.c + ${COMPILE_C} + +sys_generic.o: $S/kernel/sys_generic.c + ${COMPILE_C} + +sys_inode.o: $S/kernel/sys_inode.c + ${COMPILE_C} + +sys_pipe.o: $S/kernel/sys_pipe.c + ${COMPILE_C} + +sys_process.o: $S/kernel/sys_process.c + ${COMPILE_C} + +syscalls.o: $S/kernel/syscalls.c + ${COMPILE_C} + +tty.o: $S/kernel/tty.c + ${COMPILE_C} + +tty_subr.o: $S/kernel/tty_subr.c + ${COMPILE_C} + +tty_tty.o: $S/kernel/tty_tty.c + ${COMPILE_C} + +ufs_alloc.o: $S/kernel/ufs_alloc.c + ${COMPILE_C} + +ufs_bio.o: $S/kernel/ufs_bio.c + ${COMPILE_C} + +ufs_bmap.o: $S/kernel/ufs_bmap.c + ${COMPILE_C} + +ufs_dsort.o: $S/kernel/ufs_dsort.c + ${COMPILE_C} + +ufs_fio.o: $S/kernel/ufs_fio.c + ${COMPILE_C} + +ufs_inode.o: $S/kernel/ufs_inode.c + ${COMPILE_C} + +ufs_mount.o: $S/kernel/ufs_mount.c + ${COMPILE_C} + +ufs_namei.o: $S/kernel/ufs_namei.c + ${COMPILE_C} + +ufs_subr.o: $S/kernel/ufs_subr.c + ${COMPILE_C} + +ufs_syscalls.o: $S/kernel/ufs_syscalls.c + ${COMPILE_C} + +ufs_syscalls2.o: $S/kernel/ufs_syscalls2.c + ${COMPILE_C} + +vfs_vnops.o: $S/kernel/vfs_vnops.c + ${COMPILE_C} + +vm_sched.o: $S/kernel/vm_sched.c + ${COMPILE_C} + +vm_swap.o: $S/kernel/vm_swap.c + ${COMPILE_C} + +vm_swp.o: $S/kernel/vm_swp.c + ${COMPILE_C} + +adc.o: $S/pic32/adc.c + ${COMPILE_C} + +clock.o: $S/pic32/clock.c + ${COMPILE_C} + +cons.o: $S/pic32/cons.c + ${COMPILE_C} + +devsw.o: $S/pic32/devsw.c + ${COMPILE_C} + +exception.o: $S/pic32/exception.c + ${COMPILE_C} + +gpio.o: $S/pic32/gpio.c + ${COMPILE_C} + +machdep.o: $S/pic32/machdep.c + ${COMPILE_C} + +mem.o: $S/pic32/mem.c + ${COMPILE_C} + +pwm.o: $S/pic32/pwm.c + ${COMPILE_C} + +rd_sd.o: $S/pic32/rd_sd.c + ${COMPILE_C} + +signal.o: $S/pic32/signal.c + ${COMPILE_C} + +spi.o: $S/pic32/spi.c + ${COMPILE_C} + +spi_bus.o: $S/pic32/spi_bus.c + ${COMPILE_C} + +swap.o: $S/pic32/swap.c + ${COMPILE_C} + +sysctl.o: $S/pic32/sysctl.c + ${COMPILE_C} + +usb_device.o: $S/pic32/usb_device.c + ${COMPILE_C} + +usb_function_cdc.o: $S/pic32/usb_function_cdc.c + ${COMPILE_C} + +usb_uart.o: $S/pic32/usb_uart.c + ${COMPILE_C} -LDSCRIPT = ../../../tools/configsys/../../sys/pic32/cfg/bootloader-maximite.ld - -CONFIG = DUINOMITE -CONFIGPATH = ../../../tools/configsys - -include ../../../tools/configsys/../../sys/pic32/kernel-post.mk +ifeq (.deps, $(wildcard .deps)) +-include .deps/*.dep +endif diff --git a/sys/pic32/max32/Config b/sys/pic32/max32/Config index 8c9f642..464b2ab 100644 --- a/sys/pic32/max32/Config +++ b/sys/pic32/max32/Config @@ -1,5 +1,6 @@ # # chipKIT Max32 board with SD card shield +# ======================================= # For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-chipKIT-Max32 # # To build the kernel, use: @@ -8,7 +9,8 @@ # make clean # make # -# For details, see http://retrobsd.org/wiki/doku.php/doc/kconfig +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig # architecture "pic32" cpu "PIC32MX7" # Processor variant diff --git a/sys/pic32/rd_sdramp.c b/sys/pic32/rd_sdramp.c index 203e8a1..661a3db 100644 --- a/sys/pic32/rd_sdramp.c +++ b/sys/pic32/rd_sdramp.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/pic32/wf32/Config b/sys/pic32/wf32/Config index 2f0554e..d6e6826 100644 --- a/sys/pic32/wf32/Config +++ b/sys/pic32/wf32/Config @@ -7,6 +7,9 @@ # make clean # make # +# Format of this file is described on page: +# http://retrobsd.org/wiki/doku.php/doc/kconfig +# architecture "pic32" cpu "PIC32MX7" # Processor variant board "CHIPKIT_WF32" # Board type