reorganize directory structure to allow making of an sd card image

This commit is contained in:
kit 2026-04-14 23:31:55 -04:00
parent 7515895a0f
commit 971bac7ec4
9 changed files with 1031 additions and 1620 deletions

2
.gitignore vendored
View file

@ -1 +1,3 @@
datasheets
.has_toolchain
.linux-bz.config

8
.gitmodules vendored
View file

@ -10,3 +10,11 @@
path = kicad
url = ssh://git@git.linuxposting.xyz:222/kit/minic-kicad.git
branch = master
[submodule "linux"]
path = linux
url = https://github.com/linux4sam/linux-at91.git
branch = linux-6.18-mchp
[submodule "at91bootstrap"]
path = at91bootstrap
url = https://github.com/linux4sam/at91bootstrap.git
branch = at91bootstrap-4.x

91
Makefile Normal file
View file

@ -0,0 +1,91 @@
COMPILER_BIN := $(shell pwd)/buildroot/output/host/bin
COMMON_MAKEOPTS := CROSS_COMPILE=${COMPILER_BIN}/arm-buildroot-linux-musleabi-
LINUX_MAKEOPTS := ${COMMON_MAKEOPTS} ARCH=arm
AT91BOOTSTRAP := ${COMMON_MAKEOPTS}
sdcard: output/rootfs.tar output/sd-kernel output/sd-boot.bin output/devicetree.dtb
@echo 'SD card things generated...'
@echo 'im not gonna bother making an image to write to the sd card'
@echo 'just copy sd-kernel and sd-boot.bin (rename to boot.bin) to the FAT partition'
@echo 'and extract rootfs.tar to the F2FS partition'
@echo 'if using the SD card image to write the QSPI image, make sure to copy those files too; xip-kernel and xip-boot.bin'
qspi: output/rootfs.cramfs output/xip-kernel output/xip-boot.bin output/devicetree.dtb
@echo 'QSPI things generated...'
@echo 'no image generated tho, youre on your own for that'
@echo 'as defined in the device tree, xip-boot.bin goes to 0, xip-kernel goes to 1, devicetree.dtb goes to 2, and rootfs.cramfs goes to 3.'
### LINUX
linux/arch/arm/boot/bzImage: .linux-bz.config .has_toolchain
output/sd-kernel: linux/arch/arm/boot/bzImage
linux/arch/arm/boot/xipImage: linux.config .has_toolchain
output/xip-kernel: linux/arch/arm/boot/xipImage
COPY_TARGETS+= output/sd-kernel output/xip-kernel
linux/arch/arm/boot/bzImage linux/arch/arm/boot/xipImage:
make -C linux ${LINUX_MAKEOPTS} KBUILD_CONFIG=../$< $@
.linux-bz.config: linux.config
sed -e 's/^CONFIG_XIP_KERNEL=y$/CONFIG_XIP_KERNEL=n/' $< > $@
make -C linux ${LINUX_MAKEOPTS} KBUILD_CONFIG=../$@ olddefconfig
.PHONY: linux-nconfig
linux-nconfig:
make -C linux ${LINUX_MAKEOPTS} KBUILD_CONFIG=../linux.config nconfig
### BUILDROOT
.has_toolchain: buildroot/.config
@test -e .has_toolchain && \
echo '.has_toolchain exists, not remaking toolchain.' && \
echo 'if you need to update the toolchain, remove the file.' || \
make -C buildroot ${BUILDROOT_MAKEOPTS} toolchain
touch .has_toolchain
output/rootfs.tar: buildroot/output/images/rootfs.tar
COPY_TARGETS+= output/rootfs.tar
# copy buildroot config
buildroot/.config: buildroot.config
COPY_TARGETS+= buildroot/.config
buildroot/output/images/rootfs.tar: buildroot/.config
make -C buildroot ${BUILDROOT_MAKEOPTS}
.PHONY: buildroot-nconfig
buildroot-nconfig: buildroot/.config
make -C buildroot ${BUILDROOT_MAKEOPTS} nconfig
cp buildroot/.config buildroot.config
### AT91BOOTSTRAP
output/sd-boot.bin: at91bootstrap-sd.config .has_toolchain
output/xip-boot.bin: at91bootstrap-xip.config .has_toolchain
output/sd-boot.bin output/xip-boot.bin:
cp $< at91bootstrap/.config
make -C at91bootstrap ${AT91BOOTSTRAP_MAKEOPTS} at91bootstrap/build/binaries/boot.bin
cp at91bootstrap/build/binaries/boot.bin $@
.PHONY: at91bootstrap-menuconfig-xip at91bootstrap-menuconfig-sd
at91bootstrap-menuconfig-xip: at91bootstrap-xip.config
at91bootstrap-menuconfig-sd: at91bootstrap-sd.config
at91bootstrap-menuconfig-xip at91bootstrap-menuconfig-sd:
cp $< at91bootstrap/.config
make -C at91bootstrap ${AT91BOOTSTRAP_MAKEOPTS} menuconfig
cp at91bootstrap/.config $<
$(COPY_TARGETS):
cp $< $@

1
at91bootstrap Submodule

@ -0,0 +1 @@
Subproject commit cd5610bac4d8ba8158385019ac70e191241d70f7

321
at91bootstrap-sd.config Normal file
View file

@ -0,0 +1,321 @@
#
# Automatically generated make config: don't edit
# Tue Apr 14 23:26:56 2026
#
CONFIG_HAVE_DOT_CONFIG=y
CONFIG_LOAD_AND_JUMP=y
# CONFIG_DIRECT_JUMP is not set
# CONFIG_INIT_AND_STOP is not set
# CONFIG_LOAD_AND_STOP is not set
CONFIG_LOAD_SW=y
CONFIG_JUMP_TO_SW=y
# CONFIG_SAM9X60 is not set
CONFIG_SAM9X7=y
# CONFIG_SAMA5D2 is not set
# CONFIG_SAMA5D3X is not set
# CONFIG_SAMA5D4 is not set
# CONFIG_SAMA7G5 is not set
# CONFIG_SAMA7D65 is not set
CONFIG_SPI_BUS_MAX=5
CONFIG_SPI_IOSET_MAX=6
CONFIG_QSPI_BUS_MAX=0
CONFIG_QSPI_IOSET_MAX=1
CONFIG_DEVICENAME="sam9x7"
#
# Clock Signals
#
#
# Main Crystal configuration
#
# CONFIG_CRYSTAL_12_000MHZ is not set
# CONFIG_CRYSTAL_16_000MHZ is not set
# CONFIG_CRYSTAL_16_36766MHZ is not set
# CONFIG_CRYSTAL_18_432MHZ is not set
CONFIG_CRYSTAL_24_000MHZ=y
# CONFIG_MCK_BYPASS is not set
#
# Slow Clock Configuration Options
#
CONFIG_SCLK=y
# CONFIG_SCLK_BYPASS is not set
CONFIG_ALLOW_CRYSTAL_24_000MHZ=y
# CONFIG_CPU_CLK_266MHZ is not set
# CONFIG_CPU_CLK_332MHZ is not set
# CONFIG_CPU_CLK_348MHZ is not set
# CONFIG_CPU_CLK_396MHZ is not set
# CONFIG_CPU_CLK_444MHZ is not set
# CONFIG_CPU_CLK_492MHZ is not set
# CONFIG_CPU_CLK_498MHZ is not set
# CONFIG_CPU_CLK_510MHZ is not set
# CONFIG_CPU_CLK_528MHZ is not set
# CONFIG_CPU_CLK_594MHZ is not set
# CONFIG_CPU_CLK_600MHZ is not set
CONFIG_CPU_CLK_800MHZ=y
# CONFIG_CPU_CLK_1000MHZ is not set
CONFIG_ALLOW_CPU_CLK_800MHZ=y
# CONFIG_DISABLE_CPU_CLK_240MHZ is not set
# CONFIG_BUS_SPEED_116MHZ is not set
# CONFIG_BUS_SPEED_124MHZ is not set
# CONFIG_BUS_SPEED_133MHZ is not set
# CONFIG_BUS_SPEED_148MHZ is not set
# CONFIG_BUS_SPEED_164MHZ is not set
# CONFIG_BUS_SPEED_166MHZ is not set
# CONFIG_BUS_SPEED_170MHZ is not set
# CONFIG_BUS_SPEED_176MHZ is not set
# CONFIG_BUS_SPEED_200MHZ is not set
CONFIG_BUS_SPEED_266MHZ=y
CONFIG_SUPPORT_BUS_SPEED_266MHZ=y
#
# Console and Debug
#
CONFIG_CONSOLE_INDEX=0
CONFIG_DEBUG=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_LOUD is not set
CONFIG_DEBUG_VERY_LOUD=y
CONFIG_HW_DISPLAY_BANNER=y
CONFIG_HW_BANNER="\"\\n\\nAT91Bootstrap \" AT91BOOTSTRAP_VERSION \" (\" COMPILE_TIME \")\\n\\n\""
CONFIG_LINK_ADDR="0x300000"
CONFIG_TOP_OF_MEMORY="0x310000"
# CONFIG_CPU_HAS_TRUSTZONE is not set
# CONFIG_CPU_HAS_TZC400 is not set
# CONFIG_CPU_V7 is not set
# CONFIG_HAS_PMIC_ACT8865 is not set
# CONFIG_SUPPORT_PM is not set
# CONFIG_HAS_ONE_WIRE is not set
# CONFIG_HAS_EEPROM is not set
# CONFIG_HAS_EHT0_PHY is not set
# CONFIG_HAS_EHT1_PHY is not set
# CONFIG_HAS_AUDIO_CODEC is not set
# CONFIG_HAS_HDMI is not set
CONFIG_CORE_ARM926EJS=y
# CONFIG_CORE_CORTEX_A5 is not set
# CONFIG_CORE_CORTEX_A7 is not set
# CONFIG_CPU_HAS_UMCTL2 is not set
CONFIG_CPU_HAS_DDRC=y
# CONFIG_CPU_HAS_SDDRC is not set
# CONFIG_CPU_HAS_SDRAMC is not set
CONFIG_CPU_HAS_SCKC=y
# CONFIG_CPU_HAS_H32MXDIV is not set
# CONFIG_CPU_HAS_HSMCI0 is not set
# CONFIG_CPU_HAS_HSMCI1 is not set
# CONFIG_CPU_HAS_HSMCI2 is not set
# CONFIG_CPU_HAS_MCI0 is not set
# CONFIG_CPU_HAS_MCI1 is not set
CONFIG_CPU_HAS_SDHC0=y
CONFIG_CPU_HAS_SDHC1=y
# CONFIG_CPU_HAS_SDHC2 is not set
# CONFIG_CPU_HAS_SPI is not set
# CONFIG_CPU_HAS_SPI_IOSET is not set
CONFIG_CPU_HAS_QSPI=y
# CONFIG_CPU_HAS_QSPI_IOSET is not set
CONFIG_CPU_HAS_SCLK_BYPASS=y
CONFIG_CPU_HAS_PIO3=y
# CONFIG_CPU_HAS_L2CC is not set
CONFIG_CPU_HAS_PMECC=y
# CONFIG_HAS_HW_INFO is not set
# CONFIG_TWI is not set
# CONFIG_MACB is not set
# CONFIG_AES is not set
# CONFIG_LOAD_HW_INFO is not set
# CONFIG_CPU_HAS_TWI0 is not set
# CONFIG_CPU_HAS_TWI1 is not set
# CONFIG_CPU_HAS_TWI2 is not set
# CONFIG_CPU_HAS_TWI3 is not set
CONFIG_CPU_HAS_AES=y
# CONFIG_CPU_HAS_PIO4 is not set
CONFIG_FLEXCOM=y
CONFIG_CPU_HAS_FLEXCOM0=y
CONFIG_CPU_HAS_FLEXCOM1=y
CONFIG_CPU_HAS_FLEXCOM2=y
CONFIG_CPU_HAS_FLEXCOM3=y
CONFIG_CPU_HAS_FLEXCOM4=y
CONFIG_CPU_HAS_FLEXCOM5=y
CONFIG_CPU_HAS_FLEXCOM6=y
CONFIG_CPU_HAS_FLEXCOM7=y
CONFIG_CPU_HAS_FLEXCOM8=y
CONFIG_CPU_HAS_FLEXCOM9=y
CONFIG_CPU_HAS_FLEXCOM10=y
CONFIG_CPU_HAS_FLEXCOM11=y
CONFIG_CPU_HAS_FLEXCOM12=y
CONFIG_CPU_HAS_WDT2=y
# CONFIG_CPU_HAS_DWDT is not set
CONFIG_CPU_HAS_XDMAC=y
#
# DRAM
#
# CONFIG_SDRAM is not set
# CONFIG_SDDRC is not set
CONFIG_DDRC=y
# CONFIG_UMCTL2 is not set
# CONFIG_PUBL is not set
# CONFIG_ALLOW_PSRAM is not set
# CONFIG_DDR_SEL_ADDR is not set
CONFIG_BANK_4=y
# CONFIG_BANK_8 is not set
CONFIG_DDR_SET_BY_DEVICE=y
# CONFIG_DDR_SET_BY_JEDEC is not set
# CONFIG_DDR_SET_BY_TIMING is not set
# CONFIG_DDR_MT41K128M16_D2 is not set
# CONFIG_DDR_MT41K128M16 is not set
# CONFIG_DDR_W632GU6MB is not set
# CONFIG_DDR_W972GG6KB_9X60 is not set
# CONFIG_DDR_W972GG6KB_D2 is not set
# CONFIG_DDR_W971GG6SB_D2 is not set
# CONFIG_DDR_W9712G6KB25I is not set
# CONFIG_DDR_AD210032F is not set
# CONFIG_DDR_W9751G6KB is not set
# CONFIG_DDR_W971GG6SB is not set
CONFIG_DDR_W9751G6NB=y
# CONFIG_DDR_AD220032D is not set
# CONFIG_DDR_AS4C128M32MD2A is not set
# CONFIG_DDR_MT47H128M16 is not set
# CONFIG_DDR_MT47H64M16 is not set
# CONFIG_DDR_MT47H128M8 is not set
# CONFIG_DDR_MT41K256M16TW_107 is not set
# CONFIG_DDR_MT41K512M16HA_125 is not set
# CONFIG_DDR_MT41K128M16JT_125 is not set
# CONFIG_DDR_W97AH6NBVA1K is not set
# CONFIG_DDR_AS4C256M16D3LC_12BCNTR is not set
# CONFIG_DDR_AS4C512M16D3LA_10BIN is not set
# CONFIG_DDR_IS43TR81024BL_125KBLI is not set
# CONFIG_DDR_W631GU6NB12I is not set
# CONFIG_DDR_W632GU6NB12I is not set
# CONFIG_DDR_W634GU6NB12I is not set
# CONFIG_DDR_W638GU6QB12 is not set
# CONFIG_DDR_W638GU6RB11 is not set
# CONFIG_DDR_MT47H128M16RT_25E_C is not set
# CONFIG_DDR_IS43LD16128B_25BLI is not set
# CONFIG_DDR_MT52L256M32D1PF_107 is not set
# CONFIG_DDR_EDB5432BEBH_1DAAT_F_D is not set
# CONFIG_DDR_AS4C128M16D2A_25BAN is not set
# CONFIG_DDR_EM68D16CBQC_18IH is not set
# CONFIG_NOT_DQS_DISABLED is not set
#
# Extra parameters
#
# CONFIG_DDR_EXT_TEMP_RANGE is not set
# CONFIG_SAMA5D2_LPDDR2 is not set
# CONFIG_MMU is not set
#
# Flash Memory
#
# CONFIG_DATAFLASH is not set
# CONFIG_FLASH is not set
# CONFIG_NANDFLASH is not set
CONFIG_SDCARD=y
CONFIG_MEMORY="sdcard"
#
# SD Card Configuration
#
CONFIG_SDHC=y
CONFIG_SDHC0=y
# CONFIG_SDHC1 is not set
# CONFIG_SDHC2 is not set
# CONFIG_SDHC_NODMA is not set
# CONFIG_SDHC_18V is not set
# CONFIG_SDHC_EMMC_HS_DDR is not set
# CONFIG_MMC_NONREMOVABLE is not set
CONFIG_FATFS=y
# CONFIG_SPI is not set
# CONFIG_QSPI is not set
CONFIG_BOOTSTRAP_MAXSIZE="32768"
CONFIG_PROJECT="sdcard"
# CONFIG_LOAD_OPTEE is not set
# CONFIG_LOAD_UBOOT is not set
# CONFIG_LOAD_ZEPHYR is not set
CONFIG_LOAD_LINUX=y
# CONFIG_LOAD_ANDROID is not set
# CONFIG_LOAD_1MB is not set
# CONFIG_LOAD_4MB is not set
# CONFIG_LOAD_64KB is not set
CONFIG_LINUX_IMAGE=y
#
# Kernel Image Storage Setup
#
# CONFIG_OVERRIDE_CMDLINE is not set
# CONFIG_OVERRIDE_CMDLINE_FROM_EXT_FILE is not set
CONFIG_JUMP_ADDR="0x23F00000"
#
# Flattened Device Tree
#
CONFIG_OF_LIBFDT=y
CONFIG_OF_OVERRIDE_DTB_NAME="devicetree.dtb"
CONFIG_OF_ADDRESS="0x21000000"
CONFIG_IMAGE_NAME="bzImage"
CONFIG_MACH_TYPE="3373"
# CONFIG_OVERRIDE_MACH_TYPE is not set
# CONFIG_SECURE is not set
CONFIG_THUMB=y
CONFIG_DISABLE_WATCHDOG=y
# CONFIG_BACKUP_MODE is not set
#
# Board's Workaround Options
#
CONFIG_BOARD_QUIRK_NONE=y
# CONFIG_BOARD_QUIRK_SAMA5D3 is not set
# CONFIG_BOARD_QUIRK_SAMA5D4 is not set
# CONFIG_BOARD_QUIRK_SAMA5D2_XULT is not set
# CONFIG_BOARD_QUIRK_SAMA5D2_ICP is not set
# CONFIG_BOARD_QUIRK_SAMA5D2_SIP is not set
# CONFIG_BOARD_QUIRK_SAM9X60_CURIOSITY is not set
# CONFIG_BOARD_QUIRK_SAM9X60_EK is not set
# CONFIG_BOARD_QUIRK_SAM9X60_EB is not set
# CONFIG_BOARD_QUIRK_SAMA7G5_EK is not set
# CONFIG_BOARD_QUIRK_OURASI_DDR3_EB is not set
# CONFIG_BOARD_QUIRK_SAM9X75_EB is not set
# CONFIG_BOARD_QUIRK_SAM9X75_CURIOSITY is not set
# CONFIG_LED_ON_BOARD is not set
#
# TWI BUS setting
#
# CONFIG_FLEXCOM0 is not set
# CONFIG_FLEXCOM1 is not set
# CONFIG_FLEXCOM2 is not set
# CONFIG_FLEXCOM3 is not set
# CONFIG_FLEXCOM4 is not set
# CONFIG_FLEXCOM5 is not set
# CONFIG_FLEXCOM6 is not set
# CONFIG_FLEXCOM7 is not set
# CONFIG_FLEXCOM8 is not set
# CONFIG_FLEXCOM9 is not set
# CONFIG_FLEXCOM10 is not set
# CONFIG_FLEXCOM11 is not set
# CONFIG_FLEXCOM12 is not set
# CONFIG_ACT8865 is not set
# CONFIG_MCP16502 is not set
#
# Board Hardware Information Options
#
#
# Basic Drivers support
#
CONFIG_PIT=y
# CONFIG_WDT is not set
CONFIG_WDT2=y
CONFIG_RSTC=y
CONFIG_USART=y
CONFIG_PIO=y
CONFIG_PMC_COMMON=y
CONFIG_PMC_V2=y
CONFIG_PMC_PERIPH_CLK_SAM9X5=y
CONFIG_PMC_GENERIC_CLK=y
CONFIG_PMC_PLL_CLK_SAM9X60=y
CONFIG_PMC_PLLA_DIV2_CLK=y
CONFIG_PMC_MCK_CLK=y
# CONFIG_SHDWC is not set
CONFIG_XDMAC=y

File diff suppressed because it is too large Load diff

2
kicad

@ -1 +1 @@
Subproject commit b8f041b691db776314e1813368660b41f0838157
Subproject commit 6f4e700e66653ac72bac71fd5ccd2b77b266d105

1
linux Submodule

@ -0,0 +1 @@
Subproject commit f91c79afbbd34a4563469b4279b8d4dd3bdc5b57