New configurations for Fubarino board.

Retroone configuration deleted.
This commit is contained in:
Serge Vakulenko
2015-09-03 19:17:07 -07:00
parent d1eb7c79c2
commit a6396122f6
10 changed files with 503 additions and 247 deletions

View File

@@ -7,7 +7,7 @@ PIC32_DEVCFG (
DEVCFG0_DEBUG_DISABLED, /* ICE debugger enabled */
DEVCFG1_FNOSC_FRCDIVPLL | /* Internal FRC oscillator with PLL */
DEVCFG1_POSCMOD_DISABLE | /* No crystal */
DEVCFG1_POSCMOD_DISABLE | /* No crystal */
DEVCFG1_OSCIOFNC | /* CLKO output active */
DEVCFG1_FPBDIV_1 | /* Peripheral bus clock = SYSCLK/1 */
DEVCFG1_FCKM_DISABLE | /* Fail-safe clock monitor disable */

View File

@@ -7,3 +7,6 @@ unix.bin
unix.map
usbboot.map
vers.c
*.h
ioconf.c
swapunix.c

69
sys/pic32/fubarino/Config Normal file
View File

@@ -0,0 +1,69 @@
#
# Fubarino SD board
# ==================================
# Console on USB.
# For details, see https://github.com/RetroBSD/retrobsd/wiki/Board-Fubarino-SD
#
# To build the kernel, use:
# cd sys/pic32/fubarino
# 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 "FUBARINO" # Board type
hz 100 # Rate of clock interrupt
ldscript "cfg/bootloader-max32.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=TRISE" # for kernel activity LED...
options "LED_KERNEL_PIN=5" # ...use pin RE5
# 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 spi2 # SD card
options "SPI_ENABLED" # TODO: delete this option
# microSD card
disk sd0 at spi2 flags 0x79 # select pin RG9
options "SD0_PORT=2" # sd0 at spi2 TODO: delete
options "SD0_CS_PORT=TRISG" # for chip select... TODO: use flags
options "SD0_CS_PIN=9" # ...use pin RA9 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
# GLCD driver
device glcd0
options "GLCD_ENABLED" # TODO: delete this option

View File

@@ -0,0 +1,75 @@
#
# Fubarino SD board SRAMC swap disk
# =================================
# Console on UART2.
# Overclocked to 120MHz.
# Clock rate increased to 1000Hz.
#
# To build the kernel, use:
# cd sys/pic32/fubarino-uart-sramc
# 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 "FUBARINO" # Board type
hz 1000 # Rate of clock interrupt
ldscript "cfg/bootloader-max32.ld" # Linker script
# Standard system options
options "CPU_KHZ=120000" # Oscillator frequency of CPU core
options "BUS_KHZ=120000" # Frequency of peripheral bus
options "BUS_DIV=1" # Bus clock divisor 1/2/4/8
options "NBUF=8"
options "NMOUNT=3"
options "NPROC=25"
# LED
options "LED_KERNEL_PORT=TRISE" # for kernel activity LED...
options "LED_KERNEL_PIN=5" # ...use pin RE5
# 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=tty1" # Console on UART2
# Serial UART ports
device uart1 # Additional serial port
device uart2 # Console
options "UART1_ENABLED" # TODO: delete this option
options "UART2_ENABLED" # TODO: delete this option
# SPI ports
controller spi2 # SD card
options "SPI_ENABLED" # TODO: delete this option
# microSD card
disk sd0 at spi2 flags 0x79 # select pin RG9
options "SD0_PORT=2" # sd0 at spi2 TODO: delete
options "SD0_CS_PORT=TRISG" # for chip select... TODO: use flags
options "SD0_CS_PIN=9" # ...use pin RA9 TODO: use flags
options "SD0_MHZ=20" # increase data speed
# 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
# sramc - SRAM block device
disk sramc0 # SRAM via 4-wire CPLD interface
options "SRAMC_ENABLED" # TODO: delete this option
options "PARTITION='sramc0:sa@2048,fs@6140'" # Partition schema

View File

@@ -1,46 +1,360 @@
BUILDPATH = ../../../tools/configsys/../../sys/pic32
H = ../../../tools/configsys/../../sys/include
M = ../../../tools/configsys/../../sys/pic32
S = ../../../tools/configsys/../../sys/kernel
PARAM = -DFUBARINO
PARAM += -DPIC32MX7
PARAM += -DGLCD_ENABLED
PARAM += -DPWM_ENABLED
PARAM += -DADC_ENABLED
PARAM += -DGPIO_ENABLED
PARAM += -DSD0_CS_PIN=9
PARAM += -DSD0_CS_PORT=TRISG
PARAM += -DSD0_PORT=2
PARAM += -DSPI_ENABLED
PARAM += -DUSB_NUM_STRING_DESCRIPTORS=3
PARAM += -DUSB_MAX_EP_NUMBER=3
PARAM += -DUARTUSB_ENABLED
PARAM += -DCONSOLE_DEVICE=ttyUSB0
PARAM += -DLED_KERNEL_PIN=5
PARAM += -DLED_KERNEL_PORT=TRISE
PARAM += -DBUS_DIV=1
PARAM += -DBUS_KHZ=80000
PARAM += -DCPU_KHZ=80000
PARAM += -DHZ=100
LDSCRIPT = "cfg/bootloader-max32.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 glcd.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.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 += -DGLCD_ENABLED=YES
DEFS += -DGPIO_ENABLED=YES
DEFS += -DKERNEL
DEFS += -DLED_KERNEL_PIN=5
DEFS += -DLED_KERNEL_PORT=TRISE
DEFS += -DPIC32MX7
DEFS += -DPWM_ENABLED=YES
DEFS += -DSD0_CS_PIN=9
DEFS += -DSD0_CS_PORT=TRISG
DEFS += -DSD0_PORT=2
DEFS += -DSPI_ENABLED=YES
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 glcd.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/glcd.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 machine sys
clean-all: clean
rm -f *.h ioconf.c swapunix.c vers.c
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}
glcd.o: $S/pic32/glcd.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-max32.ld
CONFIG = FUBARINO
CONFIGPATH = ../../../tools/configsys
include ../../../tools/configsys/../../sys/pic32/kernel-post.mk
ifeq (.deps, $(wildcard .deps))
-include .deps/*.dep
endif

View File

@@ -1,25 +0,0 @@
/*
* Chip configuration.
*/
#include "machine/pic32mx.h"
PIC32_DEVCFG (
DEVCFG0_DEBUG_DISABLED, /* ICE debugger enabled */
DEVCFG1_FNOSC_PRIPLL | /* Primary oscillator with PLL */
DEVCFG1_POSCMOD_HS | /* HS oscillator */
DEVCFG1_FPBDIV_1 | /* Peripheral bus clock = SYSCLK/1 */
DEVCFG1_IESO | /* Internal-external switch over */
DEVCFG1_WDTPS_1, /* Watchdog postscale = 1/1 */
DEVCFG2_FPLLIDIV_2 | /* PLL divider = 1/2 */
DEVCFG2_FPLLMUL_20 | /* PLL multiplier = 20x */
DEVCFG2_UPLLIDIV_2 | /* USB PLL divider = 1/2 */
DEVCFG2_FPLLODIV_1, /* PLL postscaler = 1/1 */
DEVCFG3_USERID(0xffff) | /* User-defined ID */
DEVCFG3_FSRSSEL_7 | /* Assign irq priority 7 to shadow set */
DEVCFG3_FUSBIDIO | /* USBID pin: controlled by USB */
DEVCFG3_FVBUSONIO | /* VBuson pin: controlled by USB */
DEVCFG3_FCANIO | /* Default CAN pins */
DEVCFG3_FETHIO); /* Default Ethernet i/o pins */

View File

@@ -1,9 +0,0 @@
.compileversion
.deps/
.oldversion
machine
sys
unix.bin
unix.map
usbboot.map
vers.c

View File

@@ -1,137 +0,0 @@
#
# Build RetroBSD kernel for PIC32 platform.
#
H = ../../include
M = ..
S = ../../kernel
vpath %.c $(M):$(S)
vpath %.S $(M):$(S)
# Kernel options.
DEFS += -I. -I$(H) -DKERNEL -DPIC32MX7
DEFS += -DGLOBAL_DEBUG
# CPU frequency 80 MHz.
DEFS += -DCPU_KHZ=80000
DEFS += -DBUS_KHZ=80000 -DBUS_DIV=1
#
# Basic pic32mx795f512l chip with internal oscillator
# ===================================================
#
# Console on UART1 with hardware handshaking
DEFS += -DCONSOLE_UART1 #-DCONSOLE_RTSCTS
# SD/MMC card driver on SPI1
DEFS += -DSD0_PORT=1 -DSD0_MHZ=20
# /CS0 at pin B1
DEFS += -DSD0_CS_PORT=TRISD -DSD0_CS_PIN=9
# LEDs at pins A0, A1, A2, A3
DEFS += -DLED_DISK_PORT=TRISA -DLED_DISK_PIN=14
DEFS += -DLED_KERNEL_PORT=TRISB -DLED_KERNEL_PIN=8
DEFS += -DLED_TTY_PORT=TRISB -DLED_TTY_PIN=9
DEFS += -DLED_AUX_PORT=TRISA -DLED_AUX_PIN=9
DEPFLAGS = -MT $@ -MD -MP -MF .deps/$*.dep
CFLAGS = -O $(DEFS) $(DEPFLAGS)
ASFLAGS = $(DEFS) $(DEPFLAGS)
include ../gcc-config.mk
CC = $(MIPS_GCC_PREFIX)gcc -EL -g -mips32r2
CC += -nostdinc -fno-builtin -Werror -Wall -fno-dwarf2-cfi-asm
LDFLAGS = -nostdlib -T ../cfg/bare.ld -Wl,-Map=unix.map
SIZE = $(MIPS_GCC_PREFIX)size
OBJDUMP = $(MIPS_GCC_PREFIX)objdump
OBJCOPY = $(MIPS_GCC_PREFIX)objcopy
ifneq (${MIPS_GCC_FORMAT},)
LDFLAGS += -Wl,--oformat=${MIPS_GCC_FORMAT}
endif
# Machine-dependent files:
# startup.o MUST be loaded first.
KERNOBJ = startup.o clock.o devsw.o cons.o sysctl.o \
signal.o machdep.o mem.o exception.o
# Kernel.
KERNOBJ += 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 \
subr_log.o subr_prf.o subr_rmap.o \
sys_generic.o sys_inode.o syscalls.o \
sys_pipe.o sys_process.o tty.o exec_conf.o exec_subr.o \
exec_aout.o exec_elf.o exec_script.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 kern_glob.o swap.o spi_bus.o
# Drivers.
KERNOBJ += rd_sd.o rdisk.o
# Configuration-dependent files.
KERNOBJ += vers.o devcfg.o
# Include any local specific configuration overrides
-include Makefile.local
# GPIO driver
KERNOBJ += gpio.o
DEFS += -DGPIO_ENABLED
# ADC driver
KERNOBJ += adc.o
DEFS += -DADC_ENABLED
# GLCD driver
KERNOBJ += glcd.o
DEFS += -DGLCD_ENABLED
# PWM driver
KERNOBJ += pwm.o
DEFS += -DPWM_ENABLED
all: .deps sys machine unix.elf
$(SIZE) unix.elf
clean:
rm -rf .deps *.o *.elf *.bin *.dis *.map *.srec core \
mklog assym.h vers.c genassym sys machine
cleanest: clean
rm -f unix.hex
.deps:
mkdir .deps
sys:
ln -s ../../include $@
machine:
ln -s .. $@
unix.elf: $(KERNOBJ) ../cfg/bare.ld
$(CC) $(LDFLAGS) $(KERNOBJ) -o $@
chmod -x $@
$(OBJDUMP) -d -S $@ > unix.dis
$(OBJCOPY) -O ihex --change-addresses=0x80000000 $@ unix.hex
load: unix.elf
pic32prog unix.hex
vers.o: ../newvers.sh $(H)/*.h $(M)/*.[ch] $(S)/*.c
sh ../newvers.sh > vers.c
$(CC) -c vers.c
.SUFFIXES: .i .srec .hex .dis .cpp .cxx .bin .elf
.o.dis:
$(OBJDUMP) -d -z -S $< > $@
ifeq (.deps, $(wildcard .deps))
-include .deps/*.dep
endif

View File

@@ -1,2 +0,0 @@
This directory contains an example of RetroBSD kernel build
using plain Makefile (no configsys or kconfig tools).

View File

@@ -1,32 +0,0 @@
/*
* Chip configuration.
*/
#include "machine/pic32mx.h"
PIC32_DEVCFG (
DEVCFG0_DEBUG_ENABLED, /* ICE debugger enabled */
DEVCFG1_FNOSC_FRCDIVPLL | /* Primary oscillator with PLL */
DEVCFG1_POSCMOD_DISABLE | /* HS oscillator */
DEVCFG1_OSCIOFNC | /* CLKO output active */
DEVCFG1_FPBDIV_1 | /* Peripheral bus clock = SYSCLK/1 */
DEVCFG1_FCKM_DISABLE | /* Fail-safe clock monitor disable */
DEVCFG1_FCKS_DISABLE | /* Clock switching disable */
DEVCFG1_WDTPS_1024, /* Watchdog postscale = 1/1024 */
DEVCFG2_FPLLIDIV_2 | /* PLL divider = 1/2 */
DEVCFG2_FPLLMUL_20 | /* PLL multiplier = 20x */
DEVCFG2_UPLLIDIV_2 | /* USB PLL divider = 1/2 */
DEVCFG2_UPLLDIS | /* Disable USB PLL */
DEVCFG2_FPLLODIV_1, /* PLL postscaler = 1/1 */
DEVCFG3_USERID(0xffff) | /* User-defined ID */
DEVCFG3_FSRSSEL_7 | /* Assign irq priority 7 to shadow set */
DEVCFG3_FETHIO); /* Default Ethernet i/o pins */
#include "sys/param.h"
#include "sys/conf.h"
dev_t rootdev = makedev(0, 1); /* sd0a */
dev_t dumpdev = makedev(0, 2); /* sd0b */
dev_t swapdev = makedev(0, 2); /* sd0b */