From a9fe59997836a635705136f60648df1d45805bd3 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Thu, 5 Dec 2024 22:52:21 -0600 Subject: [PATCH] Initial commit --- .gitignore | 2 + .gitmodules | 3 + Makefile | 6 ++ aimee-os | 1 + build.packages | 2 + config | 5 + config.txt | 17 ++++ install.packages | 0 linux.config | 71 +++++++++++++ portage/package.license/raspberrypi-firmware | 1 + portage/package.use/grub | 1 + portage/savedconfig/sys-boot/u-boot | 100 +++++++++++++++++++ post-build.sh | 9 ++ 13 files changed, 218 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 160000 aimee-os create mode 100644 build.packages create mode 100644 config create mode 100644 config.txt create mode 100644 install.packages create mode 100644 linux.config create mode 100644 portage/package.license/raspberrypi-firmware create mode 100644 portage/package.use/grub create mode 100644 portage/savedconfig/sys-boot/u-boot create mode 100644 post-build.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..666cc77 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/_build/ +/images/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9bb4d57 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "aimee-os"] + path = aimee-os + url = https://git.pyrocufflink.net/aimeeos/aimee-os diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..696fa3c --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +basemake := $(MAKE) $(MAKEFLAGS) -C aimee-os CONFIGDIR=$(CURDIR) O=$(CURDIR)/_build + +all: + $(basemake) + +.PHONY: all diff --git a/aimee-os b/aimee-os new file mode 160000 index 0000000..79e69cf --- /dev/null +++ b/aimee-os @@ -0,0 +1 @@ +Subproject commit 79e69cf70df3586bd4ef4b15f577b42719380f38 diff --git a/build.packages b/build.packages new file mode 100644 index 0000000..9677552 --- /dev/null +++ b/build.packages @@ -0,0 +1,2 @@ +sys-boot/raspberrypi-firmware +sys-boot/u-boot diff --git a/config b/config new file mode 100644 index 0000000..498a548 --- /dev/null +++ b/config @@ -0,0 +1,5 @@ +target=aarch64-unknown-linux-gnu +profile=default/linux/arm64/23.0/systemd +kernel_pkg=sys-kernel/raspberrypi-sources +kernel_defconfig=bcm2835 +device_tree=broadcom/bcm2711-rpi-4-b.dtb diff --git a/config.txt b/config.txt new file mode 100644 index 0000000..4670275 --- /dev/null +++ b/config.txt @@ -0,0 +1,17 @@ +arm_64bit=1 + +start_x=1 + +bootcode_delay=0 +boot_delay=0 + +gpu_mem=32 + +kernel=u-boot.bin + +enable_uart=1 +dtoverlay=miniuart-bt + +dtparam i2c_arm=on + +device_tree=bcm2711-rpi-4-b.dtb diff --git a/install.packages b/install.packages new file mode 100644 index 0000000..e69de29 diff --git a/linux.config b/linux.config new file mode 100644 index 0000000..169ff93 --- /dev/null +++ b/linux.config @@ -0,0 +1,71 @@ +CONFIG_BTRFS_FS=y + +CONFIG_OVERLAY_FS=m + +CONFIG_MISC_FILESYSTEMS=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZSTD=y + +CONFIG_EFI=y +CONFIG_EFI_STUB=y + +CONFIG_PCI=y +CONFIG_PCIE_BRCMSTB=y +CONFIG_BLK_DEV_NVME=y + +CONFIG_FW_LOADER_COMPRESS=y + +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_GPMUX=m +CONFIG_I2C_MUX_PINCTRL=m +CONFIG_I2C_BCM2708=m +CONFIG_I2C_BCM2835=m +CONFIG_I2C_BRCMSTB=m + +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PCF85063=m + +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_ACTIVITY=y + +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_BRCM_FMAC=m +CONFIG_BT=m + +# CONFIG_KSM is not set + +CONFIG_IPV6=y +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=m + +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_SUPPORT is not set + +# CONFIG_SOUND is not set +# CONFIG_SND is not set +# CONFIG_SND_SOC is not set + +CONFIG_AUDIT=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_SELINUX=y +CONFIG_DEFAULT_SECURITY_SELINUX=y +# DEFAULT_SECURITY_DAC is not set + +CONFIG_POSIX_MQUEUE=y +CONFIG_MEMCG=y +CONFIG_CGROUP_PIDS=y +CONFIG_BLK_CGROUP=y + +CONFIG_USB_DWC2=m +CONFIG_USB_DWC2_PCI=m +CONFIG_USB_ACM=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_CP210X=m diff --git a/portage/package.license/raspberrypi-firmware b/portage/package.license/raspberrypi-firmware new file mode 100644 index 0000000..aec9b22 --- /dev/null +++ b/portage/package.license/raspberrypi-firmware @@ -0,0 +1 @@ +sys-boot/raspberrypi-firmware raspberrypi-videocore-bin diff --git a/portage/package.use/grub b/portage/package.use/grub new file mode 100644 index 0000000..9ea0163 --- /dev/null +++ b/portage/package.use/grub @@ -0,0 +1 @@ +sys-boot/grub -* GRUB_PLATFORMS: -* efi-64 diff --git a/portage/savedconfig/sys-boot/u-boot b/portage/savedconfig/sys-boot/u-boot new file mode 100644 index 0000000..fc7053b --- /dev/null +++ b/portage/savedconfig/sys-boot/u-boot @@ -0,0 +1,100 @@ +CONFIG_ARM=y +CONFIG_ARCH_BCM283X=y +CONFIG_TEXT_BASE=0x00080000 +CONFIG_TARGET_RPI_4=y +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x7fffe30 +CONFIG_ENV_SIZE=0x4000 +CONFIG_DEFAULT_DEVICE_TREE="bcm2711-rpi-4-b" +CONFIG_SYS_PROMPT="U-Boot> " +CONFIG_DM_RESET=y +CONFIG_SYS_LOAD_ADDR=0x1000000 +CONFIG_DISTRO_DEFAULTS=y +CONFIG_OF_BOARD_SETUP=y +CONFIG_USE_PREBOOT=y +CONFIG_PREBOOT="pci enum; usb start;" +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_MISC_INIT_R=y +CONFIG_FDT_SIMPLEFB=y +CONFIG_SYS_PBSIZE=1049 +CONFIG_CMD_DFU=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PCI=y +CONFIG_CMD_USB=y +CONFIG_CMD_FS_UUID=y +CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_TFTP_TSIZE=y +CONFIG_DM_DMA=y +CONFIG_DFU_MMC=y +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000 +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000 +CONFIG_BCM2835_GPIO=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_BCM2835=y +CONFIG_BCMGENET=y +CONFIG_PCI=y +CONFIG_PCI_BRCMSTB=y +CONFIG_PINCTRL=y +# CONFIG_PINCTRL_GENERIC is not set +CONFIG_DM_RNG=y +CONFIG_RNG_IPROC200=y +# CONFIG_REQUIRE_SERIAL_CONSOLE is not set +CONFIG_SYSINFO=y +CONFIG_SYSINFO_SMBIOS=y +CONFIG_USB=y +CONFIG_DM_USB_GADGET=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 +CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_VIDEO=y +# CONFIG_VIDEO_BPP8 is not set +# CONFIG_VIDEO_BPP16 is not set +CONFIG_SYS_WHITE_ON_BLACK=y +CONFIG_VIDEO_BCM2835=y +CONFIG_CONSOLE_SCROLL_LINES=10 +CONFIG_PHYS_TO_BUS=y +CONFIG_OF_LIBFDT_OVERLAY=y + +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BOOTDELAY=-2 +# CONFIG_ISO_PARTITION is not set +CONFIG_EFI_PARTITION=y +CONFIG_FS_EXT4=y +CONFIG_FS_FAT=y +# CONFIG_ENV_IS_IN_FAT is not set +# CONFIG_ENV_IS_IN_EXT4 is not set +CONFIG_ENV_IS_NOWHERE=y +CONFIG_CMD_SETEXPR=y +CONFIG_CMD_FILEENV=y +CONFIG_CMD_SQUASHFS=y +CONFIG_LZO=y + +# CONFIG_DOS_PARTITION is not set +CONFIG_USB_STORAGE=y +CONFIG_USB_FUNCTION_MASS_STORAGE=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_GENERIC=y +CONFIG_USB_OHCI_HCD=y + +CONFIG_USB_XHCI_BRCM=y + +CONFIG_NVME_PCI=y +CONFIG_CMD_NVME=y +CONFIG_NVME=y +CONFIG_CMD_USB_MASS_STORAGE=y + +CONFIG_CMD_BOOTEFI=y +CONFIG_EFI_LOADER=y + +CONFIG_LMB_MAX_REGIONS=16 diff --git a/post-build.sh b/post-build.sh new file mode 100644 index 0000000..10f74fa --- /dev/null +++ b/post-build.sh @@ -0,0 +1,9 @@ +# vim: set ft=sh sw=4 ts=4 sts=4 et : + +cp -uv \ + /usr/${target}/boot/*.bin \ + /usr/${target}/boot/*.dat \ + /usr/${target}/boot/*.elf \ + /usr/${target}/usr/share/u-boot/u-boot.bin \ + "${CONFIGDIR}"/config.txt \ + "$1"/efi-part/