Compare commits

...
9 Commits
Author SHA1 Message Date
Clayton Craft 6b81384914 DO NOT MERGE: ci: drop wiki test
until we agree on a name for the new device package in this branch...

[ci:ignore-count]

for gcc-x86 and musl-x86:
[ci:skip-vercheck]
2023-10-27 11:47:46 -07:00
Clayton Craft 6ac5af5f7a u-boot-pinebookpro: drop
PBP should use tow-boot for booting pmOS from now on
2023-10-27 11:47:46 -07:00
Clayton Craft 14caf75aea device-pine64-pinebookpro: use systemd-boot
Important:
- Requires a recent tow-boot (with u-boot 2023-07)
- Drops using the u-boot from pmaports
2023-10-27 11:47:46 -07:00
Clayton Craft da137041e1 linux-postmarketos-rockchip: enable EFI support 2023-10-27 11:47:46 -07:00
Clayton Craft 1aadd4b477 device-valve-jupiter: use systemd-boot 2023-10-27 11:47:45 -07:00
Clayton Craft db1685f6a5 device-pine64-pinephonepro: use systemd-boot
IMPORTANT: this requires Tow-Boot 2023.07-007 (using u-boot 2023.7),
which is unreleased... u-boot/EFI crashes when trying to boot Linux on
the older versions!
2023-10-27 11:47:45 -07:00
Clayton Craft 8f801bb541 linux-pine64-pinephonepro: enable EFI stub zboot support
This is required for booting compressed kernels with systemd-boot (and
other EFI bootloaders that don't don't do decompression)

Also enables the uefi kconfig check, to help with maintaining any
new changes to kconfig.
2023-10-27 11:47:45 -07:00
Clayton Craft 1c137885f6 device-tablet-x{64,86}uefi: drop 2023-10-27 11:47:45 -07:00
Clayton Craft 4f63bce502 device-generic-x86_64: new aport
This device package is intended to replace the tablet-x*uefi device
packages. It was made by basically merging config from those two
packages.

"efi" was excluded from the device package name, because it should (in
theory at least...) be able to simultaneously support EFI and non-EFI
boot in 1 device package. The device-qemu-amd64 package kiiiinda does
this already and could be a useful example for how to do that, though in
this situation we'd need to support syslinux for legacy boot instead of
what qemu does (bypass installed bootloader and directly boot the
kernel)
2023-10-27 11:47:45 -07:00
33 changed files with 192 additions and 1987 deletions

No files matched your search

-13
View File
@@ -22,19 +22,6 @@ stages:
- merge_requests
- tags
# device documentation
wiki:
stage: lint
<<: *only-default
only:
refs:
- merge_requests
changes:
- device/*/device-*/*
script:
- .ci/lib/gitlab_prepare_ci.sh
- .ci/wiki.sh
# testcases linting
flake8:
stage: lint
@@ -2,8 +2,8 @@
# Maintainer: Clayton Craft <clayton@craftyguy.net>
pkgname=device-pine64-pinebookpro
pkgdesc="PINE64 Pinebook Pro"
pkgver=16
pkgrel=4
pkgver=17
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -11,12 +11,12 @@ options="!check !archcheck"
depends="
alsa-ucm-conf>=1.2.7
eudev-hwids
iw
linux-postmarketos-rockchip>=5.14
nvme-cli
postmarketos-base>=25-r1
soc-rockchip-rk3399
u-boot-pinebookpro
iw
systemd-boot
"
makedepends="devicepkg-dev"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware $pkgname-elogind"
@@ -60,7 +60,7 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="
7ebb7e00ae1566fd4c176839c4cd6501f237b577e8db1180aa9934d70101807f8f9b513e529da3f0e96b73d682708b1f51a94430bc90d655f0d7ac059b076a04 deviceinfo
2b983d10e276474e19e4a0f48bd4f6c2f5b8788552115835f7cc4cfdf6f9428afa6f24da7946f4524a2524ff415fb9fb46bc181485f3f67be5a7e7a7f4087f23 deviceinfo
6e3d97855a1f898db46b87ae1eb190d23d841fcb72332fcac4d11cd27c8f7d50eb8fd73007ed0447f106d19ff2e0fc1f34da1baf890e1465135dd692d65df2ba modules-initfs
2abfa31fa56028339efc6d2b6cb838f310990d7110ac4dd996bc4cfcf90f0a8770e70f28f77f7b6929d110e494bc33731302f16b9717729f991c2732be0731d5 nvme-powersave.initd
0fd7580e197e409978c219726af627cabe347404ee826e32892b61f3da1775b0fd81f8ed5e9a0f0bfaad87faa434d7a73ddaebf475ed0ad8fdcef6690cd692d3 wlan-powersave-off.start
@@ -25,6 +25,7 @@ deviceinfo_dev_internal_storage_repartition="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=tty0 console=ttyS2,1500000n8 panic=10 coherent_pool=1M video=HDMI-A-1:1920x1080@60 video=eDP-1:1920x1080@60 loglevel=5 PMOS_NO_OUTPUT_REDIRECT PMOS_FORCE_PARTITION_RESIZE fw_devlink=off nvme_core.default_ps_max_latency_us=5500 pcie_aspm.policy=performance"
deviceinfo_generate_extlinux_config="true"
deviceinfo_sd_embed_firmware="u-boot/pine64-rockpro64/u-boot-rockchip.bin:32"
deviceinfo_boot_part_start="32768"
deviceinfo_boot_filesystem="fat32"
deviceinfo_partition_type="gpt"
deviceinfo_generate_systemd_boot="true"
@@ -2,13 +2,12 @@
# Maintainer: Martijn Braam <martijn@brixit.nl>
pkgname=device-pine64-pinephonepro
pkgdesc="PINE64 PinePhone Pro"
pkgver=3.8
pkgrel=4
pkgver=3.9
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
# pmb:strict is required for grub
options="!check !archcheck pmb:strict"
options="!check !archcheck"
depends="
alsa-ucm-conf>=1.2.6.2
eg25-manager>=0.4.2
@@ -16,12 +15,9 @@ depends="
postmarketos-base>=25-r1
fwupd>=1.8.6
soc-rockchip-rk3399
systemd-boot
"
makedepends="
devicepkg-dev
grub
grub-efi
"
makedepends="devicepkg-dev"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-gnome
@@ -49,41 +45,11 @@ source="
build() {
devicepkg_build $startdir $pkgname
grub-mkimage \
--prefix="/grub" \
--output="bootaa64.efi" \
--format="arm64-efi" \
--compression="xz" \
\
all_video \
cat \
configfile \
disk \
echo \
efi_gop \
fat \
gzio \
help \
iso9660 \
linux \
ls \
normal \
part_gpt \
part_msdos \
search \
search_label \
test \
true
}
package() {
devicepkg_package $startdir $pkgname
# Grub / bootloader
install -Dm644 -t "$pkgdir"/boot/EFI/Boot \
"$srcdir"/bootaa64.efi
# Alsa usecase manager config
install -Dm644 -t "$pkgdir"/usr/share/alsa/ucm2/PinePhonePro \
"$srcdir"/HiFi.conf \
@@ -138,7 +104,7 @@ x11() {
sha512sums="
2d68ffe143f633a86670f30e45dbad1cc313f219f22b7cd3319ab44bb7209c20cb29f2ff2c60c92390154af9c9a6815c4186be555364cf31552005eba024c0e7 51_keyboard.gschema.override
98e9dcfb36dd5843ff441b148e3bffb70757c59601c5f01f55a584e8f017c7ca73f2275c1bff46e4236dd8174df36a43d10abf9b8dadee988b962036846dc6ed 90-modem-eg25.rules
aa33c497b145f0e840ccf646814cc7f53c49e7472c013b3cb951614766d568e70578869305dfd5bbc87490927e2b5b5798437b5cf31efe7baca8089f0b7b7771 deviceinfo
9745c850d50430b407c0374bb049853621147922d58a39c06ba5c72a9f801d249d1e2e9d294bf3e57dab72ceda12efd20de5bc76881009005bef0d726086ee79 deviceinfo
3ab1a9482d97739b03299f9237d15cb1d1d76ca2298bc6c1b4d1214590464cb13139d1a9c98c3eb7761ef8a5db060d5e365b38efcac57ed9ae34a1d12657e3f5 modules-initfs
c5006c38828eb519917d57756f7831c4552feffef2d4922a384073f6a551535f615ad397d784e313818e0b943e1f6212bcca0aff9ce37da60b29547b1631f24b modemmanager.conf
43f67e94491791685cdbb4874bb3034b1d297bdf3d23e7405c45ba8c58de72b4fb6a9943b79f46ef7b8f4dbc4d9db254ebec8eb3453d720a5a8fad277c6a9d88 ppkb.sh
@@ -25,6 +25,6 @@ deviceinfo_dev_internal_storage_repartition="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="console=tty0 earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,115200 panic=10 coherent_pool=1M loglevel=1 mem_sleep_default=s2idle PMOS_NO_OUTPUT_REDIRECT PMOS_FORCE_PARTITION_RESIZE fw_devlink=off"
deviceinfo_generate_grub_config="true"
deviceinfo_boot_filesystem="fat32"
deviceinfo_partition_type="gpt"
deviceinfo_generate_systemd_boot="true"
@@ -5,7 +5,7 @@ pkgname=linux-pine64-pinephonepro
pkgver=6.4.7
_pkgver=6.4
_tagdate=20230801-1055
pkgrel=1
pkgrel=2
pkgdesc="Mainline kernel for the pinephone pro"
arch="aarch64"
_flavor="${pkgname#linux-}"
@@ -14,6 +14,7 @@ license="GPL-2.0-only"
options="!strip !check !tracedeps
pmb:cross-native
pmb:kconfigcheck-community
pmb:kconfigcheck-uefi
"
makedepends="
bash
@@ -74,5 +75,5 @@ package() {
sha512sums="
bcf86ccbbf3f9f7e2e47c1d7d59c7da344fab58f9605c27af17864f3be30ca016318028ca9baec58e3ef72535e69854bd8a07ed14d925fe5a774db5595644768 linux-ppp-6.4-20230801-1055.tar.gz
afa9c8a0ec00c4d8396de3c422eb1e4a9ef0a012e48e6ef49d9bfd5bdbf090bc1d3d7c7685ceef13c8cd6b3f48a255f286d65e13e7d6b83a5c24bb5408529817 config-pine64-pinephonepro.aarch64
d671dbc40b9a498e90be1e8a82a4ea6979891774d4d474d3dac1ab5acee9130f77a2ba24e5fcfe701b2a2e5b69937755950befa4c897c294e5e1695f755b6a86 config-pine64-pinephonepro.aarch64
"
@@ -11,6 +11,8 @@ CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
@@ -29,6 +31,18 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_HAVE_KERNEL_ZSTD=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="localhost"
CONFIG_SYSVIPC=y
@@ -1783,7 +1797,7 @@ CONFIG_EFI_VARS_PSTORE=y
CONFIG_EFI_PARAMS_FROM_FDT=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFI_GENERIC_STUB=y
# CONFIG_EFI_ZBOOT is not set
CONFIG_EFI_ZBOOT=y
CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_BOOTLOADER_CONTROL is not set
CONFIG_EFI_CAPSULE_LOADER=m
@@ -11,7 +11,7 @@
pkgname=linux-postmarketos-rockchip
pkgver=6.2
pkgrel=8
pkgrel=9
pkgdesc="Mainline kernel for rockchip devices"
arch="aarch64"
_carch="arm64"
@@ -21,6 +21,7 @@ license="GPL-2.0-only"
options="!strip !check !tracedeps
pmb:cross-native
pmb:kconfigcheck-community
pmb:kconfigcheck-uefi
"
makedepends="
bash
@@ -73,14 +74,11 @@ package() {
INSTALL_MOD_PATH="$pkgdir" \
INSTALL_DTBS_PATH="$pkgdir/boot/dtbs"
gzip -v "$pkgdir"/boot/vmlinuz
mv "$pkgdir"/boot/vmlinuz.gz "$pkgdir"/boot/vmlinuz
install -D "$builddir"/include/config/kernel.release \
"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
}
sha512sums="
a01bee0b968b95183934fe3504516be7ef5811944a061f5aed05ecebaa27b5eb64e33232fd0a8dd622b3c8743bfe462ef7e464d381734d111a0ad6a6d9f66ddd linux-6.2.tar.xz
2a63dbb3caebed1375e025633fe3156eaeb9e61950ecc015ed76cc6cd7fb28644c9b24f716251d8d7393d7bf72392ff60ae3d097ebc10ee430d047e647968200 config-postmarketos-rockchip.aarch64
a6672ee09d1be939a85307e5139af2d86220075cfc73e6869ec07bff6bc887923c25952c699c2b0cb243c5452d9ebbe6fcca79af8a60f0788b4d8b2a5a96e4b5 config-postmarketos-rockchip.aarch64
"
@@ -29,6 +29,18 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_HAVE_KERNEL_ZSTD=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="localhost"
CONFIG_SYSVIPC=y
@@ -489,7 +501,9 @@ CONFIG_STACKPROTECTOR_PER_TASK=y
# Boot options
#
CONFIG_CMDLINE=""
# CONFIG_EFI is not set
CONFIG_EFI_STUB=y
CONFIG_EFI=y
CONFIG_DMI=y
# end of Boot options
#
@@ -568,6 +582,8 @@ CONFIG_ARM_SCPI_CPUFREQ=m
# end of CPU Frequency scaling
# end of CPU Power Management
CONFIG_ARCH_SUPPORTS_ACPI=y
# CONFIG_ACPI is not set
CONFIG_IRQ_BYPASS_MANAGER=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
@@ -686,6 +702,7 @@ CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_HAVE_ARCH_COMPILER_H=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_RELR=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
@@ -1765,6 +1782,7 @@ CONFIG_PCI_ECAM=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_LABEL=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=4
CONFIG_HOTPLUG_PCI=y
@@ -1897,10 +1915,35 @@ CONFIG_CONNECTOR=m
CONFIG_ARM_SCPI_PROTOCOL=m
CONFIG_ARM_SCPI_POWER_DOMAIN=m
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
# CONFIG_SYSFB_SIMPLEFB is not set
# CONFIG_ARM_FFA_TRANSPORT is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=m
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
CONFIG_EFI_PARAMS_FROM_FDT=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFI_GENERIC_STUB=y
CONFIG_EFI_ZBOOT=y
CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_BOOTLOADER_CONTROL is not set
# CONFIG_EFI_CAPSULE_LOADER is not set
# CONFIG_EFI_TEST is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_EFI_DISABLE_PCI_DMA is not set
CONFIG_EFI_EARLYCON=y
# CONFIG_EFI_DISABLE_RUNTIME is not set
# CONFIG_EFI_COCO_SECRET is not set
# end of EFI (Extensible Firmware Interface) Support
CONFIG_ARM_PSCI_FW=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_HAVE_ARM_SMCCC=y
@@ -4801,6 +4844,7 @@ CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_EFI is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
@@ -5993,6 +6037,7 @@ CONFIG_RTC_DRV_RV3029_HWMON=y
# CONFIG_RTC_DRV_DS1685_FAMILY is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_DS2404 is not set
# CONFIG_RTC_DRV_EFI is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
@@ -7254,6 +7299,7 @@ CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
CONFIG_MEMFD_CREATE=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=m
CONFIG_EFIVAR_FS=m
# end of Pseudo filesystems
CONFIG_MISC_FILESYSTEMS=y
@@ -7445,6 +7491,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
# CONFIG_SECURITY_LANDLOCK is not set
# CONFIG_INTEGRITY is not set
# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM=""
@@ -7864,6 +7911,7 @@ CONFIG_MPILIB=y
CONFIG_DIMLIB=y
CONFIG_LIBFDT=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_HAVE_GENERIC_VDSO=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_VDSO_TIME_NS=y
@@ -1,43 +0,0 @@
diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
index 1a2e24d3ef..296321d697 100644
--- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
@@ -24,6 +24,10 @@
u-boot,dm-pre-reloc;
};
+&rng {
+ status = "okay";
+};
+
&sdhci {
max-frequency = <25000000>;
u-boot,dm-pre-reloc;
diff --git a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
index bac09df4a3..cb8991aa25 100644
--- a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
@@ -19,6 +19,10 @@
};
};
+&rng {
+ status = "okay";
+};
+
&spi1 {
spi_flash: flash@0 {
u-boot,dm-pre-reloc;
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index 0c129b9aeb..21eecf477c 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -54,6 +54,8 @@ CONFIG_DM_PMIC_FAN53555=y
CONFIG_PMIC_RK8XX=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_RK8XX=y
+CONFIG_DM_RNG=y
+CONFIG_RNG_ROCKCHIP=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM_RK3399_LPDDR4=y
CONFIG_DM_RESET=y
@@ -1,37 +0,0 @@
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index 21eecf477c..733463556a 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -61,6 +61,8 @@ CONFIG_RAM_RK3399_LPDDR4=y
CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
CONFIG_ROCKCHIP_SPI=y
CONFIG_SYSRESET=y
CONFIG_USB=y
@@ -68,8 +70,11 @@ CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
CONFIG_USB_DWC3=y
CONFIG_ROCKCHIP_USB2_PHY=y
+CONFIG_DM_KEYBOARD=y
CONFIG_USB_KEYBOARD=y
CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_ASIX=y
diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h
index 4bc8802d11..d910830582 100644
--- a/include/configs/pinebook-pro-rk3399.h
+++ b/include/configs/pinebook-pro-rk3399.h
@@ -25,4 +25,7 @@
#define SDRAM_BANK_SIZE (2UL << 30)
+#define CONFIG_USB_OHCI_NEW
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
+
#endif
@@ -1,646 +0,0 @@
From 5ae3afa4547eb82b92d93553ff07892eb8ff1665 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:11 -0400
Subject: [PATCH 01/11] drivers/video/rockchip/rk_vop.c: Use endpoint
compatible string to find VOP mode
The current code is using an hard coded enum and the of node reg value of
endpoint to find out if the endpoint is mipi/hdmi/lvds/edp/dp. The order
is different between rk3288, rk3399 vop little, rk3399 vop big.
A possible solution would be to make sure that the rk3288.dtsi and
rk3399.dtsi files have "expected" reg value or an other solution is
to find the kind of endpoint by comparing the endpoint compatible value.
This patch is implementing the more flexible second solution.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/dts_vop_mode.patch
---
.../include/asm/arch-rockchip/vop_rk3288.h | 15 +----------
drivers/video/rockchip/rk_vop.c | 25 +++++++++++++++++--
2 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/arch/arm/include/asm/arch-rockchip/vop_rk3288.h b/arch/arm/include/asm/arch-rockchip/vop_rk3288.h
index 872a158b71..bf19e05997 100644
--- a/arch/arm/include/asm/arch-rockchip/vop_rk3288.h
+++ b/arch/arm/include/asm/arch-rockchip/vop_rk3288.h
@@ -85,26 +85,13 @@ enum {
LB_RGB_1280X8 = 0x5
};
-#if defined(CONFIG_ROCKCHIP_RK3399)
enum vop_modes {
VOP_MODE_EDP = 0,
VOP_MODE_MIPI,
VOP_MODE_HDMI,
- VOP_MODE_MIPI1,
- VOP_MODE_DP,
- VOP_MODE_NONE,
-};
-#else
-enum vop_modes {
- VOP_MODE_EDP = 0,
- VOP_MODE_HDMI,
VOP_MODE_LVDS,
- VOP_MODE_MIPI,
- VOP_MODE_NONE,
- VOP_MODE_AUTO_DETECT,
- VOP_MODE_UNKNOWN,
+ VOP_MODE_DP,
};
-#endif
/* VOP_VERSION_INFO */
#define M_FPGA_VERSION (0xffff << 16)
diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c
index 9032eb430e..6cd4ccc97a 100644
--- a/drivers/video/rockchip/rk_vop.c
+++ b/drivers/video/rockchip/rk_vop.c
@@ -235,12 +235,11 @@ static int rk_display_init(struct udevice *dev, ulong fbbase, ofnode ep_node)
struct clk clk;
enum video_log2_bpp l2bpp;
ofnode remote;
+ const char *compat;
debug("%s(%s, %lu, %s)\n", __func__,
dev_read_name(dev), fbbase, ofnode_get_name(ep_node));
- vop_id = ofnode_read_s32_default(ep_node, "reg", -1);
- debug("vop_id=%d\n", vop_id);
ret = ofnode_read_u32(ep_node, "remote-endpoint", &remote_phandle);
if (ret)
return ret;
@@ -282,6 +281,28 @@ static int rk_display_init(struct udevice *dev, ulong fbbase, ofnode ep_node)
if (disp)
break;
};
+ compat = ofnode_get_property(remote, "compatible", NULL);
+ if (!compat) {
+ debug("%s(%s): Failed to find compatible property\n",
+ __func__, dev_read_name(dev));
+ return -EINVAL;
+ }
+ if (strstr(compat, "edp")) {
+ vop_id = VOP_MODE_EDP;
+ } else if (strstr(compat, "mipi")) {
+ vop_id = VOP_MODE_MIPI;
+ } else if (strstr(compat, "hdmi")) {
+ vop_id = VOP_MODE_HDMI;
+ } else if (strstr(compat, "cdn-dp")) {
+ vop_id = VOP_MODE_DP;
+ } else if (strstr(compat, "lvds")) {
+ vop_id = VOP_MODE_LVDS;
+ } else {
+ debug("%s(%s): Failed to find vop mode for %s\n",
+ __func__, dev_read_name(dev), compat);
+ return -EINVAL;
+ }
+ debug("vop_id=%d\n", vop_id);
disp_uc_plat = dev_get_uclass_platdata(disp);
debug("Found device '%s', disp_uc_priv=%p\n", disp->name, disp_uc_plat);
--
2.25.4
From 382c53d4970c609a9f787422fbcd5f804ee00c3f Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:11 -0400
Subject: [PATCH 02/11] drivers/video/rockchip/rk_edp.c: Add rk3399 support
According to linux commit "drm/rockchip: analogix_dp: add rk3399 eDP
support" (82872e42bb1501dd9e60ca430f4bae45a469aa64), rk3288 and rk3399
eDP IPs are nearly the same, the difference is in the grf register
(SOC_CON6 versus SOC_CON20). So, change the code to use the right
register on each IP.
The clocks don't seem to be the same, the eDP clock is not at index 1
on rk3399, so don't try changing the clock at index 1 to rate 0 on
rk3399.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_edp_rk3399.patch
---
.../include/asm/arch-rockchip/edp_rk3288.h | 5 +-
drivers/video/rockchip/rk_edp.c | 85 ++++++++++++++-----
2 files changed, 68 insertions(+), 22 deletions(-)
diff --git a/arch/arm/include/asm/arch-rockchip/edp_rk3288.h b/arch/arm/include/asm/arch-rockchip/edp_rk3288.h
index 105a335dab..c861f0eab1 100644
--- a/arch/arm/include/asm/arch-rockchip/edp_rk3288.h
+++ b/arch/arm/include/asm/arch-rockchip/edp_rk3288.h
@@ -232,8 +232,9 @@ check_member(rk3288_edp, pll_reg_5, 0xa00);
#define PD_CH0 (0x1 << 0)
/* pll_reg_1 */
-#define REF_CLK_24M (0x1 << 1)
-#define REF_CLK_27M (0x0 << 1)
+#define REF_CLK_24M (0x1 << 0)
+#define REF_CLK_27M (0x0 << 0)
+#define REF_CLK_MASK (0x1 << 0)
/* line_map */
#define LANE3_MAP_LOGIC_LANE_0 (0x0 << 6)
diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c
index 000bd48140..1b2f5f706d 100644
--- a/drivers/video/rockchip/rk_edp.c
+++ b/drivers/video/rockchip/rk_edp.c
@@ -17,11 +17,10 @@
#include <asm/gpio.h>
#include <asm/io.h>
#include <asm/arch-rockchip/clock.h>
+#include <asm/arch-rockchip/hardware.h>
#include <asm/arch-rockchip/edp_rk3288.h>
#include <asm/arch-rockchip/grf_rk3288.h>
-#include <asm/arch-rockchip/hardware.h>
-#include <dt-bindings/clock/rk3288-cru.h>
-#include <linux/delay.h>
+#include <asm/arch-rockchip/grf_rk3399.h>
#define MAX_CR_LOOP 5
#define MAX_EQ_LOOP 5
@@ -37,18 +36,42 @@ static const char * const pre_emph_names[] = {
#define DP_VOLTAGE_MAX DP_TRAIN_VOLTAGE_SWING_1200
#define DP_PRE_EMPHASIS_MAX DP_TRAIN_PRE_EMPHASIS_9_5
+#define RK3288_GRF_SOC_CON6 0x025c
+#define RK3288_GRF_SOC_CON12 0x0274
+#define RK3399_GRF_SOC_CON20 0x6250
+#define RK3399_GRF_SOC_CON25 0x6264
+
+enum rockchip_dp_types {
+ RK3288_DP = 0,
+ RK3399_EDP
+};
+
+struct rockchip_dp_data {
+ unsigned long reg_vop_big_little;
+ unsigned long reg_vop_big_little_sel;
+ unsigned long reg_ref_clk_sel;
+ unsigned long ref_clk_sel_bit;
+ enum rockchip_dp_types chip_type;
+};
+
struct rk_edp_priv {
struct rk3288_edp *regs;
- struct rk3288_grf *grf;
+ void *grf;
struct udevice *panel;
struct link_train link_train;
u8 train_set[4];
};
-static void rk_edp_init_refclk(struct rk3288_edp *regs)
+static void rk_edp_init_refclk(struct rk3288_edp *regs, enum rockchip_dp_types chip_type)
{
writel(SEL_24M, &regs->analog_ctl_2);
- writel(REF_CLK_24M, &regs->pll_reg_1);
+ u32 reg;
+
+ reg = REF_CLK_24M;
+ if (chip_type == RK3288_DP)
+ reg ^= REF_CLK_MASK;
+ writel(reg, &regs->pll_reg_1);
+
writel(LDO_OUTPUT_V_SEL_145 | KVCO_DEFALUT | CHG_PUMP_CUR_SEL_5US |
V2L_CUR_SEL_1MA, &regs->pll_reg_2);
@@ -1023,6 +1046,8 @@ static int rk_edp_probe(struct udevice *dev)
struct display_plat *uc_plat = dev_get_uclass_platdata(dev);
struct rk_edp_priv *priv = dev_get_priv(dev);
struct rk3288_edp *regs = priv->regs;
+ struct rockchip_dp_data *edp_data = (struct rockchip_dp_data *)dev_get_driver_data(dev);
+
struct clk clk;
int ret;
@@ -1037,16 +1062,17 @@ static int rk_edp_probe(struct udevice *dev)
int vop_id = uc_plat->source_id;
debug("%s, uc_plat=%p, vop_id=%u\n", __func__, uc_plat, vop_id);
- ret = clk_get_by_index(dev, 1, &clk);
- if (ret >= 0) {
- ret = clk_set_rate(&clk, 0);
- clk_free(&clk);
- }
- if (ret) {
- debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret);
- return ret;
+ if (edp_data->chip_type == RK3288_DP) {
+ ret = clk_get_by_index(dev, 1, &clk);
+ if (ret >= 0) {
+ ret = clk_set_rate(&clk, 0);
+ clk_free(&clk);
+ }
+ if (ret) {
+ debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret);
+ return ret;
+ }
}
-
ret = clk_get_by_index(uc_plat->src_dev, 0, &clk);
if (ret >= 0) {
ret = clk_set_rate(&clk, 192000000);
@@ -1059,15 +1085,17 @@ static int rk_edp_probe(struct udevice *dev)
}
/* grf_edp_ref_clk_sel: from internal 24MHz or 27MHz clock */
- rk_setreg(&priv->grf->soc_con12, 1 << 4);
+ rk_setreg(priv->grf + edp_data->reg_ref_clk_sel,
+ edp_data->ref_clk_sel_bit);
/* select epd signal from vop0 or vop1 */
- rk_clrsetreg(&priv->grf->soc_con6, (1 << 5),
- (vop_id == 1) ? (1 << 5) : (0 << 5));
+ rk_clrsetreg(priv->grf + edp_data->reg_vop_big_little,
+ edp_data->reg_vop_big_little_sel,
+ (vop_id == 1) ? edp_data->reg_vop_big_little_sel : 0);
rockchip_edp_wait_hpd(priv);
- rk_edp_init_refclk(regs);
+ rk_edp_init_refclk(regs, edp_data->chip_type);
rk_edp_init_interrupt(regs);
rk_edp_enable_sw_function(regs);
ret = rk_edp_init_analog_func(regs);
@@ -1083,8 +1111,25 @@ static const struct dm_display_ops dp_rockchip_ops = {
.enable = rk_edp_enable,
};
+static const struct rockchip_dp_data rk3399_edp = {
+ .reg_vop_big_little = RK3399_GRF_SOC_CON20,
+ .reg_vop_big_little_sel = BIT(5),
+ .reg_ref_clk_sel = RK3399_GRF_SOC_CON25,
+ .ref_clk_sel_bit = BIT(11),
+ .chip_type = RK3399_EDP,
+};
+
+static const struct rockchip_dp_data rk3288_dp = {
+ .reg_vop_big_little = RK3288_GRF_SOC_CON6,
+ .reg_vop_big_little_sel = BIT(5),
+ .reg_ref_clk_sel = RK3288_GRF_SOC_CON12,
+ .ref_clk_sel_bit = BIT(4),
+ .chip_type = RK3288_DP,
+};
+
static const struct udevice_id rockchip_dp_ids[] = {
- { .compatible = "rockchip,rk3288-edp" },
+ { .compatible = "rockchip,rk3288-edp", .data = (ulong)&rk3288_dp },
+ { .compatible = "rockchip,rk3399-edp", .data = (ulong)&rk3399_edp },
{ }
};
--
2.25.4
From b5776e11f8e7c79ff61bc2b93be9b6253db939f1 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:12 -0400
Subject: [PATCH 03/11] drivers/video/rockchip/rk_edp.c: Change interrupt
polarity configuration
The linux code is setting polarity configuration to 3 but
uboot code is setting it to 1. Change the configuration to match the
linux configuration
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_edp_vs_linux.patch
---
drivers/video/rockchip/rk_edp.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c
index 1b2f5f706d..13fa78aced 100644
--- a/drivers/video/rockchip/rk_edp.c
+++ b/drivers/video/rockchip/rk_edp.c
@@ -100,10 +100,13 @@ static void rk_edp_init_refclk(struct rk3288_edp *regs, enum rockchip_dp_types c
&regs->dp_reserv2);
}
+#define INT_POL1 (0x1 << 1)
+#define INT_POL0 (0x1 << 0)
+
static void rk_edp_init_interrupt(struct rk3288_edp *regs)
{
/* Set interrupt pin assertion polarity as high */
- writel(INT_POL, &regs->int_ctl);
+ writel(INT_POL0 | INT_POL1, &regs->int_ctl);
/* Clear pending registers */
writel(0xff, &regs->common_int_sta_1);
--
2.25.4
From c1f23be1f6e1aa94e6b22e0a403ec061ca311f42 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:12 -0400
Subject: [PATCH 04/11] drivers/video/rockchip/rk_edp.c: Change clock rate
The current code is setting the clock rate to 192000000, but
due to the current device-tree configuration and linux code,
it should rather be 100000000.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_vop_clk_rate.patch
---
drivers/video/rockchip/rk_edp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c
index 13fa78aced..c2dc79faac 100644
--- a/drivers/video/rockchip/rk_edp.c
+++ b/drivers/video/rockchip/rk_edp.c
@@ -1078,7 +1078,7 @@ static int rk_edp_probe(struct udevice *dev)
}
ret = clk_get_by_index(uc_plat->src_dev, 0, &clk);
if (ret >= 0) {
- ret = clk_set_rate(&clk, 192000000);
+ ret = clk_set_rate(&clk, 100000000);
clk_free(&clk);
}
if (ret < 0) {
--
2.25.4
From 8ecab272ff922477da225f1856cb4bc492d41fb2 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:12 -0400
Subject: [PATCH 05/11] drivers/video/rockchip/rk_vop.c: Reserve efi fb memory
When booting with EFI and graphics, the memory used for framebuffer
has to be reserved, otherwise it may leads to kernel memory
overwrite.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_vop_reserve_fb_memory.patch
---
drivers/video/rockchip/rk_vop.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c
index 6cd4ccc97a..98d33a3cec 100644
--- a/drivers/video/rockchip/rk_vop.c
+++ b/drivers/video/rockchip/rk_vop.c
@@ -20,6 +20,8 @@
#include <asm/arch-rockchip/vop_rk3288.h>
#include <dm/device-internal.h>
#include <dm/uclass-internal.h>
+#include <efi.h>
+#include <efi_loader.h>
#include <linux/bitops.h>
#include <linux/err.h>
#include <power/regulator.h>
@@ -394,6 +396,13 @@ int rk_vop_probe(struct udevice *dev)
if (!(gd->flags & GD_FLG_RELOC))
return 0;
+ plat->base = gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - plat->size;
+
+#if defined(CONFIG_EFI_LOADER)
+ debug("Adding to EFI map %d @ %lx\n", plat->size, plat->base);
+ efi_add_memory_map(plat->base, plat->size, EFI_RESERVED_MEMORY_TYPE);
+#endif
+
priv->regs = (struct rk3288_vop *)dev_read_addr(dev);
/*
--
2.25.4
From 68098155f59cf102add0817d65a3570513500092 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:12 -0400
Subject: [PATCH 06/11] rk3399-pinebook-pro-u-boot.dtsi: Enable edp
- uboot rockchip edp code is looking for a rockchip,panel property
for the edp dts node, so add it.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/update_pinebook_pro_uboot_dtsi.patch
---
arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
index 1a2e24d3ef..f0b58909a4 100644
--- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
@@ -41,3 +41,7 @@
&vdd_log {
regulator-init-microvolt = <950000>;
};
+
+&edp {
+ rockchip,panel = <&edp_panel>;
+};
--
2.25.4
From cc514ca0d224b80713b0a653094f498c520bd1b3 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:13 -0400
Subject: [PATCH 07/11] configs/pinebook-pro-rk3399_defconfig: enable
SYS_USB_EVENT_POLL_VIA_INT_QUEUE
The default configuration will use SYS_USB_EVENT_POLL for handling the
usb keyboard and it makes the system really slow (eg slow keypress,
loading kernel/initrd from grub-efi is taking ages).
Using CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE seems to be improving
things a lot, so use it.
Tested-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/pbp_defconfig_usb_poll.patch
---
configs/pinebook-pro-rk3399_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index 0c129b9aeb..fa53bef6b9 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -69,6 +69,7 @@ CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_DWC3=y
CONFIG_ROCKCHIP_USB2_PHY=y
CONFIG_USB_KEYBOARD=y
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_ASIX=y
CONFIG_USB_ETHER_RTL8152=y
--
2.25.4
From f3cae111f1daf8ef6a085cc435d37f741141675a Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:13 -0400
Subject: [PATCH 08/11] drivers/pwm/rk_pwm.c: Fix default polarity
In the code, the default polarity is set to positive/positive,
which is neither normal polarity or inverted polarity. It's
only the hardware default. This leads to booting linux with
wrong polarity setting.
Update the code to use PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE
by default instead.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Origin: http://people.hupstream.com/~rtp/pbp/20200911/pwm-fix-default-polarity.patch
---
drivers/pwm/rk_pwm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pwm/rk_pwm.c b/drivers/pwm/rk_pwm.c
index 911da1d426..c743feb920 100644
--- a/drivers/pwm/rk_pwm.c
+++ b/drivers/pwm/rk_pwm.c
@@ -146,7 +146,7 @@ static int rk_pwm_probe(struct udevice *dev)
priv->data = (struct rockchip_pwm_data *)dev_get_driver_data(dev);
if (priv->data->supports_polarity)
- priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_POSTIVE;
+ priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE;
return 0;
}
--
2.25.4
From 60046c90d749e29348ee140583b0646e63c838be Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:13 -0400
Subject: [PATCH 09/11] [HACK NOTFORMERGE] PBP: Fix panel reset
On warm reset, the pinebook pro panel is not working correctly.
The issue is not yet debugged so, for now, this hack seems to be
enough. It toggles the GPIO1_C6 gpio [ LCDVCC_EN signal in the
schematics ] used by the vcc3v3_panel regulator.
There's no gpio_request, since the gpio is already in use at this
stage, so it can only fail.
Origin: http://people.hupstream.com/~rtp/pbp/20200911/hack-reset.patch
---
board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c b/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
index 516292aaa5..6b8376d6cd 100644
--- a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
+++ b/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c
@@ -7,9 +7,12 @@
#include <common.h>
#include <dm.h>
#include <syscon.h>
+#include <linux/delay.h>
+#include <asm/gpio.h>
#include <asm/io.h>
#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/grf_rk3399.h>
+#include <asm/arch-rockchip/gpio.h>
#include <asm/arch-rockchip/hardware.h>
#include <asm/arch-rockchip/misc.h>
#include <power/regulator.h>
@@ -59,6 +62,7 @@ int misc_init_r(void)
const u32 cpuid_length = 0x10;
u8 cpuid[cpuid_length];
int ret;
+ unsigned int gpio;
setup_iodomain();
@@ -70,6 +74,11 @@ int misc_init_r(void)
if (ret)
return ret;
+ gpio_lookup_name("B22", NULL, NULL, &gpio);
+ gpio_direction_output(gpio, 0);
+ mdelay(500);
+ gpio_direction_output(gpio, 1);
+
return ret;
}
#endif
--
2.25.4
From 5e8bdb80f959e8fab2821191ec7f2868871a9798 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:13 -0400
Subject: [PATCH 10/11] SPL malloc() before relocation used 0x22d0 bytes (8 KB)
>>TPL: board_init_r() spl_init Trying to boot from BOOTROM Returning to boot
ROM... spl_early_init pmic@1b: ret=-6 i2c@ff3c0000: ret=-6 dm_scan_fdt()
failed: -6 dm_extended_scan_dt() failed: -6 dm_init_and_scan() returned error
-6 spl_early_init() failed: -6 ### ERROR ### Please RESET the board ###
Origin: http://people.hupstream.com/~rtp/pbp/20200911/pmic-dm-reloc.patch
---
arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
index f0b58909a4..0f8879c4ca 100644
--- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
@@ -20,9 +20,9 @@
u-boot,dm-pre-reloc;
};
-&rk808 {
+/*&rk808 {
u-boot,dm-pre-reloc;
-};
+};*/
&sdhci {
max-frequency = <25000000>;
--
2.25.4
From 771c6108e693223e82d2672a18a81d8468c2d0f4 Mon Sep 17 00:00:00 2001
From: Arnaud Patard <arnaud.patard@rtp-net.org>
Date: Fri, 11 Sep 2020 16:26:14 -0400
Subject: [PATCH 11/11] (patch file disable_cdp_dp.patch)
Origin: http://people.hupstream.com/~rtp/pbp/20200911/disable_cdp_dp.patch
---
arch/arm/dts/rk3399-pinebook-pro.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts
index 294d21bf45..4e2dd14084 100644
--- a/arch/arm/dts/rk3399-pinebook-pro.dts
+++ b/arch/arm/dts/rk3399-pinebook-pro.dts
@@ -372,9 +372,9 @@
};
};
-&cdn_dp {
+/*&cdn_dp {
status = "okay";
-};
+};*/
&cpu_b0 {
cpu-supply = <&vdd_cpu_b>;
--
2.25.4
@@ -1,54 +0,0 @@
From 61eb4a33dfbffbf19ab5aca62533d20b0e4cba43 Mon Sep 17 00:00:00 2001
From: dhivael <dhivael.git@eno.space>
Date: Sat, 11 Jan 2020 15:04:46 +0100
Subject: [PATCH] rk3399: light pinebook power and standby leds during early
boot
this is a hack, but it works for now.
Origin: https://git.eno.space/pbp-uboot.git/commit/?id=1a01021c9361c4e017cb5b032300f5555c393710
---
arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index 4fda93b1527..952ac881711 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -19,6 +19,8 @@
#include <asm/arch-rockchip/hardware.h>
#include <linux/bitops.h>
#include <power/regulator.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -119,8 +121,8 @@ void board_debug_uart_init(void)
struct rk3399_grf_regs * const grf = (void *)GRF_BASE;
#ifdef CONFIG_TARGET_CHROMEBOOK_BOB
struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE;
- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE;
#endif
+ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE;
#if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000)
/* Enable early UART0 on the RK3399 */
@@ -153,6 +155,14 @@ void board_debug_uart_init(void)
spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL);
#endif /* CONFIG_TARGET_CHROMEBOOK_BOB */
+ {
+ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH
+ // set GPIO0_A2/B3 to OUTPUT
+ int mask = (1UL << RK_PA2)/* | (1UL << RK_PB3) green LED */;
+ setbits_le32(&gpio->swport_dr, mask);
+ setbits_le32(&gpio->swport_ddr, mask);
+ }
+
/* Enable early UART2 channel C on the RK3399 */
rk_clrsetreg(&grf->gpio4c_iomux,
GRF_GPIO4C3_SEL_MASK,
--
2.25.4
@@ -1,53 +0,0 @@
From f091aa06bfd4f7f9066dabe7a7caf268cd9c6683 Mon Sep 17 00:00:00 2001
From: dhivael <dhivael.git@eno.space>
Date: Thu, 6 Feb 2020 22:34:34 +0100
Subject: [PATCH] support SPI flash boot
SPI uboot images can be built with
tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl-dtb.bin:spl/u-boot-spl-dtb.bin spl.bin
cat <(dd if=spl.bin bs=512K conv=sync) u-boot.itb >spiflash.bin
and written to spi flash with uboot sf commands, any hardware flasher
available, rkdeveloptool, or possibly other methods.
Origin: https://git.eno.space/pbp-uboot.git/commit/?id=3d3dbebfe8726cf2ae51ed44dc49bbc497d62ac5
---
arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 2 +-
configs/pinebook-pro-rk3399_defconfig | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
index f3d85e1dba1..a40b71fa204 100644
--- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi
@@ -12,7 +12,7 @@
};
chosen {
- u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc;
+ u-boot,spl-boot-order = "same-as-spl", &spiflash, &sdhci, &sdmmc;
};
};
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index 733463556a2..dbbd43ed9f3 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -85,3 +85,13 @@ CONFIG_VIDEO_ROCKCHIP=y
CONFIG_DISPLAY_ROCKCHIP_EDP=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
+
+# SPI boot Support
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_SPI_FLASH_TINY=n
+CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
--
2.25.4
@@ -1,640 +0,0 @@
From 375503f9a98878297ee05ba12c3be14afa795812 Mon Sep 17 00:00:00 2001
From: Da Xue <da@libre.computer>
Date: Fri, 8 May 2020 16:35:27 -0400
Subject: [PATCH] splash: fix CONFIG_SPLASH_SOURCE and enable backup logo load
Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/8ddf2cded4efad8b5596b0b15a507aa3fb00f6d0
---
common/splash.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/common/splash.c b/common/splash.c
index 2b9313e03f1..cca81bff8ed 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -82,11 +82,12 @@ static inline int splash_video_logo_load(void) { return -ENOSYS; }
__weak int splash_screen_prepare(void)
{
- if (CONFIG_IS_ENABLED(SPLASH_SOURCE))
- return splash_source_load(default_splash_locations,
- ARRAY_SIZE(default_splash_locations));
-
- return splash_video_logo_load();
+ return
+#ifdef CONFIG_SPLASH_SOURCE
+ splash_source_load(default_splash_locations,
+ ARRAY_SIZE(default_splash_locations)) &&
+#endif
+ splash_video_logo_load();
}
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
--
2.25.4
From 02328c238f24591e135bd7bae7ac5ca3f8bb59fa Mon Sep 17 00:00:00 2001
From: Da Xue <da@libre.computer>
Date: Tue, 7 Jul 2020 04:47:48 -0400
Subject: [PATCH] hack: bmp: compressed logo
Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/9f849b044b60cf9a05618ef7da13db3961120304
---
tools/Makefile | 6 +++++-
tools/bmp_logo.c | 29 +++++++++++++++++++++++++----
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile
index 879c3fd4a74..199378d8cea 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -256,7 +256,6 @@ ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
endif
endif
-
endif # !LOGO_BMP
#
@@ -279,8 +278,13 @@ $(LOGO_H): $(obj)/bmp_logo $(LOGO_BMP)
$(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@
ifeq ($(CONFIG_DM_VIDEO),y)
+ifneq ($(wildcard $(LOGO_BMP).gz),)
+$(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP)
+ $(obj)/bmp_logo --gen-bmp-gz $(LOGO_BMP) $(LOGO_BMP).gz > $@
+else
$(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP)
$(obj)/bmp_logo --gen-bmp $(LOGO_BMP) > $@
+endif
else
$(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP)
$(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@
diff --git a/tools/bmp_logo.c b/tools/bmp_logo.c
index 74fcadca63e..d8727c227fd 100644
--- a/tools/bmp_logo.c
+++ b/tools/bmp_logo.c
@@ -3,7 +3,8 @@
enum {
MODE_GEN_INFO,
MODE_GEN_DATA,
- MODE_GEN_BMP
+ MODE_GEN_BMP,
+ MODE_GEN_BMP_GZ
};
typedef struct bitmap_s { /* bitmap description */
@@ -17,7 +18,7 @@ typedef struct bitmap_s { /* bitmap description */
void usage(const char *prog)
{
- fprintf(stderr, "Usage: %s [--gen-info|--gen-data|--gen-bmp] file\n",
+ fprintf(stderr, "Usage: %s [--gen-info|--gen-data|--gen-bmp|--gen-bmp-gz] file\n",
prog);
}
@@ -76,7 +77,7 @@ int main (int argc, char *argv[])
{
int mode, i, x;
int size;
- FILE *fp;
+ FILE *fp, *gzfp;
bitmap_t bmp;
bitmap_t *b = &bmp;
uint16_t data_offset, n_colors, hdr_size;
@@ -92,6 +93,8 @@ int main (int argc, char *argv[])
mode = MODE_GEN_DATA;
else if (!strcmp(argv[1], "--gen-bmp"))
mode = MODE_GEN_BMP;
+ else if (!strcmp(argv[1], "--gen-bmp-gz"))
+ mode = MODE_GEN_BMP_GZ;
else {
usage(argv[0]);
exit(EXIT_FAILURE);
@@ -102,9 +105,17 @@ int main (int argc, char *argv[])
perror(argv[2]);
exit (EXIT_FAILURE);
}
-
+
if (fgetc (fp) != 'B' || fgetc (fp) != 'M')
error ("Input file is not a bitmap", fp);
+
+ if (mode == MODE_GEN_BMP_GZ){
+ gzfp = fopen(argv[3], "rb");
+ if (!gzfp) {
+ perror(argv[3]);
+ exit (EXIT_FAILURE);
+ }
+ }
/*
* read width and height of the image, and the number of colors used;
@@ -182,6 +193,11 @@ int main (int argc, char *argv[])
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
+ } else if (mode == MODE_GEN_BMP_GZ) {
+ /* copy full bmp file */
+ fseek(gzfp, 0L, SEEK_END);
+ size = ftell(gzfp);
+ fseek(gzfp, 0L, SEEK_SET);
} else {
fseek(fp, (long)data_offset, SEEK_SET);
}
@@ -200,6 +216,10 @@ int main (int argc, char *argv[])
/* write full bmp */
for (i = 0; i < size; i++)
b->data[i] = (uint8_t)fgetc(fp);
+ } else if (mode == MODE_GEN_BMP_GZ) {
+ /* write full bmp */
+ for (i = 0; i < size; i++)
+ b->data[i] = (uint8_t)fgetc(gzfp);
} else {
for (i = (b->height - 1) * b->width; i >= 0; i -= b->width) {
for (x = 0; x < b->width; x++) {
@@ -224,5 +244,6 @@ int main (int argc, char *argv[])
out:
fclose(fp);
+ if (mode == MODE_GEN_BMP_GZ) fclose(gzfp);
return 0;
}
--
2.25.4
From 1cc7a56f46f8b8195ece2d8f647cfed45505a457 Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Tue, 7 Jul 2020 00:59:45 -0400
Subject: [PATCH] bootmenu: Replace reverse for truetype console
The truetype console doesn't support many ANSI escape sequences, among
those the reverse sequence is *broken*. It reverses the text, but does
not change the background color.
This, instead, uses characters to show which option is currently active.
---
cmd/bootmenu.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c
index 18efe25751f..7b7db74c8e2 100644
--- a/cmd/bootmenu.c
+++ b/cmd/bootmenu.c
@@ -61,23 +61,24 @@ static char *bootmenu_getoption(unsigned short int n)
static void bootmenu_print_entry(void *data)
{
struct bootmenu_entry *entry = data;
- int reverse = (entry->menu->active == entry->num);
+ int active = (entry->menu->active == entry->num);
/*
* Move cursor to line where the entry will be drown (entry->num)
* First 3 lines contain bootmenu header + 1 empty line
*/
printf(ANSI_CURSOR_POSITION, entry->num + 4, 1);
+ puts(ANSI_CLEAR_LINE);
- puts(" ");
-
- if (reverse)
- puts(ANSI_COLOR_REVERSE);
+ if (active)
+ puts(" => [");
+ else
+ puts(" ");
puts(entry->title);
- if (reverse)
- puts(ANSI_COLOR_RESET);
+ if (active)
+ puts("]");
}
static void bootmenu_autoboot_loop(struct bootmenu_data *menu,
--
2.25.4
From c904267ca621815876eba5c21b967306a30c4cce Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Tue, 7 Jul 2020 05:04:53 -0400
Subject: [PATCH] vidconsole-uclass: Implement ANSI_CURSOR_COLUMN
---
drivers/video/vidconsole-uclass.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 9b761547212..3e8895017a1 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -306,6 +306,18 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
set_cursor_position(priv, row, col);
break;
}
+ case 'G': {
+ int row, col;
+ get_cursor_position(priv, &row, &col);
+ char *s = priv->escape_buf;
+ s++; /* [ */
+ s = parsenum(s, &col);
+ col = col-1;
+ if (col < 0)
+ col = 0;
+ set_cursor_position(priv, row, col);
+ break;
+ }
case 'H':
case 'f': {
int row, col;
--
2.25.4
From 6676c66c0108f4a2db1d17ce8c742189df7fb7eb Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Tue, 7 Jul 2020 22:17:36 -0400
Subject: [PATCH] autoboot: Make all prompts configurable
This is a multi-purpose commit. Though it is hard to split into distinct
changes.
1. Allows the non-keyed prompt to be configured
This is self-explanatory. This allows better customization for the
integrator. Though, more to the point, this reduces the confusion that
comes from the option name and description. Now it is used for all
auto-boot prompts, not only for the keyed prompt.
2. Redraws using ANSI escapes
This is required for (1), as we can't backspace over the arbitrary
amount of characters to redraw the countdown.
This is done through resetting the column to 1 and clearing the line for
maximum compatibility. Tested against serial, default dm_video and the
truetype console.
---
cmd/Kconfig | 4 ++--
common/autoboot.c | 15 ++++++++++-----
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 192b3b262f1..f5d6781473a 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -86,8 +86,8 @@ config AUTOBOOT_KEYED
config AUTOBOOT_PROMPT
string "Autoboot stop prompt"
- depends on AUTOBOOT_KEYED
- default "Autoboot in %d seconds\\n"
+ default "Autoboot in %d seconds\\n" if AUTOBOOT_KEYED
+ default "Hit any key to stop autoboot: %2d \\n"
help
This string is displayed before the boot delay selected by
CONFIG_BOOTDELAY starts. If it is not defined there is no
diff --git a/common/autoboot.c b/common/autoboot.c
index 6d78716a266..a3b2fb0c16f 100644
--- a/common/autoboot.c
+++ b/common/autoboot.c
@@ -5,6 +5,7 @@
*/
#include <common.h>
+#include <ansi.h>
#include <autoboot.h>
#include <bootretry.h>
#include <cli.h>
@@ -251,14 +252,16 @@ static int abortboot_single_key(int bootdelay)
int abort = 0;
unsigned long ts;
- printf("Hit any key to stop autoboot: %2d ", bootdelay);
+ printf(CONFIG_AUTOBOOT_PROMPT, bootdelay);
/*
* Check if key already pressed
*/
if (tstc()) { /* we got a key press */
- (void) getc(); /* consume input */
- puts("\b\b\b 0");
+ (void) getc(); /* consume input */
+ puts(ANSI_CLEAR_LINE);
+ printf(ANSI_CURSOR_COLUMN, 1);
+ printf(CONFIG_AUTOBOOT_PROMPT, 0);
abort = 1; /* don't auto boot */
}
@@ -272,7 +275,7 @@ static int abortboot_single_key(int bootdelay)
abort = 1; /* don't auto boot */
bootdelay = 0; /* no more delay */
- key = getc(); /* consume input */
+ key = getc(); /* consume input */
if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY))
menukey = key;
break;
@@ -280,7 +283,9 @@ static int abortboot_single_key(int bootdelay)
udelay(10000);
} while (!abort && get_timer(ts) < 1000);
- printf("\b\b\b%2d ", bootdelay);
+ puts(ANSI_CLEAR_LINE);
+ printf(ANSI_CURSOR_COLUMN, 1);
+ printf(CONFIG_AUTOBOOT_PROMPT, bootdelay);
}
putc('\n');
--
2.25.4
From 0a4a4fca5af332e93d9b44032fe8afd7686387f4 Mon Sep 17 00:00:00 2001
From: Da Xue <da@libre.computer>
Date: Tue, 7 Jul 2020 22:23:48 -0400
Subject: [PATCH] autoboot: correct config naming, only allow escape key to
menu
Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/e8dc057670e9ff0e8ecfea4fd549ce8cc2516378
---
common/autoboot.c | 51 ++++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 16 deletions(-)
diff --git a/common/autoboot.c b/common/autoboot.c
index a3b2fb0c16f..82eb7ba3440 100644
--- a/common/autoboot.c
+++ b/common/autoboot.c
@@ -44,8 +44,12 @@ static int menukey;
#define AUTOBOOT_STOP_STR_SHA256 ""
#endif
-#ifdef CONFIG_USE_AUTOBOOT_MENUKEY
-#define AUTOBOOT_MENUKEY CONFIG_USE_AUTOBOOT_MENUKEY
+#ifdef CONFIG_AUTOBOOT_USE_MENUKEY
+#ifdef CONFIG_AUTOBOOT_MENUKEY
+#define AUTOBOOT_MENUKEY CONFIG_AUTOBOOT_MENUKEY
+#else
+#define AUTOBOOT_MENUKEY 0
+#endif
#else
#define AUTOBOOT_MENUKEY 0
#endif
@@ -258,11 +262,22 @@ static int abortboot_single_key(int bootdelay)
* Check if key already pressed
*/
if (tstc()) { /* we got a key press */
- (void) getc(); /* consume input */
- puts(ANSI_CLEAR_LINE);
- printf(ANSI_CURSOR_COLUMN, 1);
- printf(CONFIG_AUTOBOOT_PROMPT, 0);
- abort = 1; /* don't auto boot */
+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)){
+ menukey = getc();
+ puts(ANSI_CLEAR_LINE);
+ printf(ANSI_CURSOR_COLUMN, 1);
+ printf(CONFIG_AUTOBOOT_PROMPT, 0);
+ if (menukey == AUTOBOOT_MENUKEY) {
+ abort = 1;
+ bootdelay = 0;
+ }
+ } else {
+ (void) getc(); /* consume input */
+ puts(ANSI_CLEAR_LINE);
+ printf(ANSI_CURSOR_COLUMN, 1);
+ printf(CONFIG_AUTOBOOT_PROMPT, 0);
+ abort = 1; /* don't auto boot */
+ }
}
while ((bootdelay > 0) && (!abort)) {
@@ -271,13 +286,18 @@ static int abortboot_single_key(int bootdelay)
ts = get_timer(0);
do {
if (tstc()) { /* we got a key press */
- int key;
-
- abort = 1; /* don't auto boot */
- bootdelay = 0; /* no more delay */
- key = getc(); /* consume input */
- if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY))
- menukey = key;
+
+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)){
+ menukey = getc();
+ if (menukey == AUTOBOOT_MENUKEY){
+ abort = 1;
+ bootdelay = 0;
+ }
+ } else {
+ abort = 1; /* don't auto boot */
+ bootdelay = 0; /* no more delay */
+ menukey = getc(); /* consume input */
+ }
break;
}
udelay(10000);
@@ -383,8 +403,7 @@ void autoboot_command(const char *s)
disable_ctrlc(prev); /* restore Ctrl-C checking */
}
- if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY) &&
- menukey == AUTOBOOT_MENUKEY) {
+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)) {
s = env_get("menucmd");
if (s)
run_command_list(s, -1, 0);
--
2.25.4
From c2832bcbc0ae86b2fe85abc68dd98a406ee0deeb Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Wed, 8 Jul 2020 01:26:30 -0400
Subject: [PATCH] Define a very-opinionated boot sequence
---
configs/pinebook-pro-rk3399_defconfig | 25 +++++++++++++++++++++++++
include/configs/pinebook-pro-rk3399.h | 17 +++++++++++++++++
2 files changed, 42 insertions(+)
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index dbbd43ed9f3..4acccdfb0f7 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -95,3 +95,28 @@ CONFIG_SPL_SPI_FLASH_TINY=n
CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
+
+# Boot menu required for the menu (duh)
+CONFIG_CMD_BOOTMENU=y
+
+# Truetype console configuration
+CONFIG_CONSOLE_TRUETYPE=y
+CONFIG_CONSOLE_TRUETYPE_NIMBUS=y
+CONFIG_CONSOLE_TRUETYPE_SIZE=26
+
+# Boot menu and default boot configuration
+
+# Gives *some* time for the user to act.
+# Though an already-knowledgeable user will know they can use the key before
+# the message is shown.
+# Conversely, CTRL+C can cancel the default boot, showing the menu as expected
+# In reality, this gives us MUCH MORE slop in the time window than 1 second.
+CONFIG_BOOTDELAY=1
+# This would be escape, but the USB drivers don't really play well and
+# escape doesn't work from the keyboard.
+CONFIG_AUTOBOOT_MENUKEY=27
+# So we'll fake that using CTRL+C is what we want...
+# It's only a side-effect.
+CONFIG_AUTOBOOT_PROMPT="Press CTRL+C for the boot menu."
+# And this ends up causing the menu to be used on CTRL+C (or escape)
+CONFIG_AUTOBOOT_USE_MENUKEY=y
diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h
index d9108305824..5b1234ac7ad 100644
--- a/include/configs/pinebook-pro-rk3399.h
+++ b/include/configs/pinebook-pro-rk3399.h
@@ -7,7 +7,24 @@
#ifndef __PINEBOOK_PRO_RK3399_H
#define __PINEBOOK_PRO_RK3399_H
+// This sets up additional environment variables for our opinionated setup.
+// (See rk3399_common.h, it should be apended to ROCKCHIP_DEVICE_SETTINGS here
+// but it makes patches harder to apply...)
+#define OPINIONATED_ENV \
+ "setup_leds=led green:power on; led red:standby on\0" \
+ "bootcmd=run setup_leds; run distro_bootcmd\0" \
+ "bootmenu_delay=-1\0" \
+ "bootmenu_0=Default U-Boot boot=run distro_bootcmd; echo \"Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_1=Boot from eMMC=run bootcmd_mmc0; echo \"eMMC Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_2=Boot from SD=run bootcmd_mmc1; echo \"SD Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_3=Boot from USB=run bootcmd_usb0; echo \"USB Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_4=Boot PXE=run bootcmd_pxe; echo \"PXE Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_5=Boot DHCP=run bootcmd_dhcp; echo \"DHCP Boot failed.\"; sleep 5; $menucmd -1\0" \
+ "bootmenu_6=Reboot=reset\0" \
+ "menucmd=bootmenu\0"
+
#define ROCKCHIP_DEVICE_SETTINGS \
+ OPINIONATED_ENV \
"stdin=serial,usbkbd\0" \
"stdout=serial,vidconsole\0" \
"stderr=serial,vidconsole\0"
--
2.25.4
From 7fad5fa92dc905a11cf53549a4fc52940571e204 Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Wed, 8 Jul 2020 01:26:55 -0400
Subject: [PATCH] Configure boot splash logo
This assumes LOGO_BMP is set by the derivation as a make flag.
---
configs/pinebook-pro-rk3399_defconfig | 3 +++
include/configs/pinebook-pro-rk3399.h | 16 ++++++++++++++++
2 files changed, 19 insertions(+)
diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig
index 4acccdfb0f7..8dc5bc95cd9 100644
--- a/configs/pinebook-pro-rk3399_defconfig
+++ b/configs/pinebook-pro-rk3399_defconfig
@@ -99,6 +99,9 @@ CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
# Boot menu required for the menu (duh)
CONFIG_CMD_BOOTMENU=y
+# Required for the splash (see include/configs/pinebook-pro-rk3399.h)
+CONFIG_CMD_BMP=y
+
# Truetype console configuration
CONFIG_CONSOLE_TRUETYPE=y
CONFIG_CONSOLE_TRUETYPE_NIMBUS=y
diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h
index 5b1234ac7ad..2c276476ca8 100644
--- a/include/configs/pinebook-pro-rk3399.h
+++ b/include/configs/pinebook-pro-rk3399.h
@@ -7,10 +7,26 @@
#ifndef __PINEBOOK_PRO_RK3399_H
#define __PINEBOOK_PRO_RK3399_H
+// The following bunch of defines is for the splash
+#define CONFIG_SPLASHIMAGE_GUARD
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_SPLASH_SOURCE
+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (1920*1080*4)
+#define CONFIG_VIDEO_BMP_GZIP
+#define CONFIG_VIDEO_BMP_LOGO
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_VIDEO_LOGO
+#define SPLASH_ENV \
+ "splashimage=0x08080000\0" \
+ "splashpos=m,m\0" \
+ "splashsource=mmc_fs\0"
+
// This sets up additional environment variables for our opinionated setup.
// (See rk3399_common.h, it should be apended to ROCKCHIP_DEVICE_SETTINGS here
// but it makes patches harder to apply...)
#define OPINIONATED_ENV \
+ SPLASH_ENV \
"setup_leds=led green:power on; led red:standby on\0" \
"bootcmd=run setup_leds; run distro_bootcmd\0" \
"bootmenu_delay=-1\0" \
--
2.25.4
From 025775cd6469ed0a5a818d2708cc82a43755abb9 Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Thu, 9 Jul 2020 02:50:29 -0400
Subject: [PATCH] [WIP] cli: Clear ctrl+c before running a command
This fixes an issue where:
With an environment like so:
bootmenu_0=Default U-Boot boot=run distro_bootcmd; $menucmd -1
* Running bootmenu
* Running the option
* Cancelling using CTRL-C
Would show the menu as expected, but running *any* command
post-cancellation would spuriously exit in unexplainable ways.
---
common/cli.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/common/cli.c b/common/cli.c
index 6635ab2bcf8..f49a0689cc7 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -45,6 +45,9 @@ int run_command(const char *cmd, int flag)
if (flag & CMD_FLAG_ENV)
hush_flags |= FLAG_CONT_ON_NEWLINE;
+
+ clear_ctrlc(); /* forget any previous Control C */
+
return parse_string_outer(cmd, hush_flags);
#endif
}
@@ -65,6 +68,9 @@ int run_command_repeatable(const char *cmd, int flag)
* parse_string_outer() returns 1 for failure, so clean up
* its result.
*/
+
+ clear_ctrlc(); /* forget any previous Control C */
+
if (parse_string_outer(cmd,
FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP))
return -1;
@@ -105,6 +111,9 @@ int run_command_list(const char *cmd, int len, int flag)
buff[len] = '\0';
}
#ifdef CONFIG_HUSH_PARSER
+
+ clear_ctrlc(); /* forget any previous Control C */
+
rcode = parse_string_outer(buff, FLAG_PARSE_SEMICOLON);
#else
/*
--
2.25.4
@@ -1,29 +0,0 @@
From dd52b971005271d615e63f4f946a0ee9331925bc Mon Sep 17 00:00:00 2001
From: dhivael <dhivael.git@eno.space>
Date: Sat, 11 Jan 2020 15:04:04 +0100
Subject: [PATCH 3/5] rockchip: move mmc1 before mmc0 in default boot order
on pinebooks mmc1 is the external card, which should take boot priority
over the internal emmc even if the emmc is bootable.
---
include/configs/rockchip-common.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h
index 0b9e24d1db4..6610f95b7b9 100644
--- a/include/configs/rockchip-common.h
+++ b/include/configs/rockchip-common.h
@@ -17,8 +17,8 @@
/* First try to boot from SD (index 0), then eMMC (index 1) */
#if CONFIG_IS_ENABLED(CMD_MMC)
#define BOOT_TARGET_MMC(func) \
- func(MMC, mmc, 0) \
- func(MMC, mmc, 1)
+ func(MMC, mmc, 1) \
+ func(MMC, mmc, 0)
#else
#define BOOT_TARGET_MMC(func)
#endif
--
2.25.3
@@ -1,55 +0,0 @@
From 4b11a4444983c997addc5c581da1ec287f27fa47 Mon Sep 17 00:00:00 2001
From: dhivael <dhivael.git@eno.space>
Date: Sat, 11 Jan 2020 15:04:04 +0100
Subject: [PATCH 4/5] rockchip: move usb0 after mmc1 in default boot order
now that we support booting from USB we should prefer USB boot over eMMC
boot. we still try to boot from SD cards first.
---
include/configs/rockchip-common.h | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h
index 6610f95b7b9..d743ebe83e6 100644
--- a/include/configs/rockchip-common.h
+++ b/include/configs/rockchip-common.h
@@ -16,11 +16,10 @@
/* First try to boot from SD (index 0), then eMMC (index 1) */
#if CONFIG_IS_ENABLED(CMD_MMC)
- #define BOOT_TARGET_MMC(func) \
- func(MMC, mmc, 1) \
- func(MMC, mmc, 0)
+ #define BOOT_TARGET_MMC(func, idx) \
+ func(MMC, mmc, idx)
#else
- #define BOOT_TARGET_MMC(func)
+ #define BOOT_TARGET_MMC(func, idx)
#endif
#if CONFIG_IS_ENABLED(CMD_NVME)
@@ -55,16 +54,18 @@
#ifdef CONFIG_ROCKCHIP_RK3399
#define BOOT_TARGET_DEVICES(func) \
- BOOT_TARGET_MMC(func) \
- BOOT_TARGET_NVME(func) \
+ BOOT_TARGET_MMC(func, 1) \
BOOT_TARGET_USB(func) \
+ BOOT_TARGET_NVME(func) \
+ BOOT_TARGET_MMC(func, 0) \
BOOT_TARGET_PXE(func) \
BOOT_TARGET_DHCP(func) \
BOOT_TARGET_SF(func)
#else
#define BOOT_TARGET_DEVICES(func) \
- BOOT_TARGET_MMC(func) \
+ BOOT_TARGET_MMC(func, 1) \
BOOT_TARGET_USB(func) \
+ BOOT_TARGET_MMC(func, 0) \
BOOT_TARGET_PXE(func) \
BOOT_TARGET_DHCP(func)
#endif
--
2.25.3
@@ -1,28 +0,0 @@
From 9482bb0eea3ad397b06ef195f9c2f09de94e74cb Mon Sep 17 00:00:00 2001
From: Tian Yuanhao <tianyuanhao@aliyun.com>
Date: Mon, 6 Jul 2020 16:46:33 +0800
Subject: [PATCH] rk3399: boot from compressed Image
Add kernel_comp_addr_r and kernel_comp_size to rk3399_common.h, so that
people can use compressed Image (e.g. Image.gz) in extlinux.conf.
Signed-off-by: Tian Yuanhao <tianyuanhao@aliyun.com>
---
include/configs/rk3399_common.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h
index f0ae6e67a7..6a275818d0 100644
--- a/include/configs/rk3399_common.h
+++ b/include/configs/rk3399_common.h
@@ -53,7 +53,9 @@
"pxefile_addr_r=0x00600000\0" \
"fdt_addr_r=0x01f00000\0" \
"kernel_addr_r=0x02080000\0" \
- "ramdisk_addr_r=0x06000000\0"
+ "kernel_comp_addr_r=0x06000000\0" \
+ "kernel_comp_size=0x02000000\0" \
+ "ramdisk_addr_r=0x08000000\0"
#ifndef ROCKCHIP_DEVICE_SETTINGS
#define ROCKCHIP_DEVICE_SETTINGS
@@ -1,81 +0,0 @@
# Maintainer: Clayton Craft <clayton@craftyguy.net>
# Seperate u-boot package for the pine64-pinebookpro because this includes
# a driver for the display and supports efi loading operating systems
pkgname=u-boot-pinebookpro
pkgver=2020.07
pkgrel=5
pkgdesc="u-boot bootloader for the rk3399"
url="https://gitlab.denx.de/u-boot/u-boot"
arch="aarch64"
license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs
ISC LGPL-2.0-only LGPL-2.1-only X11"
makedepends="$depends_dev
arm-trusted-firmware
bc
bison
dtc
flex
openssl-dev
python3-dev
swig
u-boot-tools
"
options="!check"
source="
ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver//_/-}.tar.bz2
0001-enable-rockchip-rng.patch
0002-enable-usb-keyboard.patch
0003-display-support.patch
0004-rk3399-light-pinebook-power-and-standby-leds.patch
0005-support-SPI-flash-boot.patch
0006-implement-boot-menu.patch
0007-rockchip-boot-order.patch
0008-rockchip-boot-order-add-usb.patch
0009-rk3399-support-compressed-kernel.patch
pine64.bmp
"
builddir="$srcdir"/u-boot-${pkgver//_/-}
build() {
touch include/config.h
LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > include/timestamp_autogenerated.h
LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> include/timestamp_autogenerated.h
export BL31="/usr/share/arm-trusted-firmware/rk3399/bl31.elf"
export BUILD_DIR="$builddir"/build
mkdir -p "$BUILD_DIR"
make O="$BUILD_DIR" HOSTCC=gcc ARCH=arm LOGO_BMP=$srcdir/pine64.bmp pinebook-pro-rk3399_defconfig
make O="$BUILD_DIR" HOSTCC=gcc ARCH=arm LOGO_BMP=$srcdir/pine64.bmp all
mkimage -n rk3399 -T rkspi -d build/tpl/u-boot-tpl-dtb.bin:build/spl/u-boot-spl-dtb.bin spl.bin
dd if=spl.bin bs=512K conv=sync of=u-boot.spiflash.bin
cat u-boot.spiflash.bin build/u-boot.itb > build/u-boot.spiflash.bin
# Make the image the exact size of the spi flash so flashrom does what it's supposed to
truncate -s 16777216 build/u-boot.spiflash.bin
truncate -s 50MB bootable.img
dd if=build/idbloader.img of=bootable.img bs=512 seek=64 conv=notrunc
dd if=build/u-boot.itb of=bootable.img bs=512 seek=16384 conv=notrunc
}
package() {
install -D -m644 build/u-boot-rockchip.bin \
"$pkgdir"/usr/share/u-boot/pine64-rockpro64/u-boot-rockchip.bin
install -D -m644 build/u-boot.spiflash.bin \
"$pkgdir"/usr/share/u-boot/pine64-rockpro64/u-boot.spiflash.bin
install -D -m644 bootable.img \
"$pkgdir"/usr/share/u-boot/pine64-rockpro64/bootable.img
}
sha512sums="df91264fe8a42e676c3f2aa09d644c6a3035cc8169bf52a8ab95efe7e542cfc758a0ef150949b0d9f03c7dec7d95f8d20a2efe2dbb60c2ef1a61c8063770478d u-boot-2020.07.tar.bz2
058408fdf8921bcde5f9ca9ea03fdad6d87dd94f09bd6768792d72af43e64e801dfd8cb3f16e83be14153d9c38b3e3e23fe949778d9347ff72bada996bd82cfe 0001-enable-rockchip-rng.patch
8e454e486a7c9fe486a1bdbececf8c6b163b90b7b57a3822afb2a30f42ba9552439360d08a6ecc19a2ebe807c6c15961a73e0fe47dce9d2a7f86ce4742cb2510 0002-enable-usb-keyboard.patch
7292dab0af5b0127663eac7966499fc5af87c544485168b5269cdf16a226cd8a215b76a4745cf19afb751ea6fea680e26b86adfdaab54e3ec7fc8fd8bec85c6b 0003-display-support.patch
5188c54bb1efe18471b3e0ff8113b0d46d6ecad2be222416c7fb89021e76f2816771793d3efaba561602064a8079cf0da66e25228e132d44a0f6b14658f93ffb 0004-rk3399-light-pinebook-power-and-standby-leds.patch
ee51dca25a5a00011186c7f750e20ed08061a5a64a67bd81ca6d96cefdb139a15078d48c2c5b6ecb09b4ab5d778e11f3b62ff3daa74ffc7d73963b15e4eee215 0005-support-SPI-flash-boot.patch
8d989d200639204c8f7fb2620209bd1e096e8c5ea04085f68486b71490deb60e89e2d54704508bfe22c006b0d331dcc0c5cbfac6c0e02328a01b0f0b611d6b58 0006-implement-boot-menu.patch
3a91ae0f499ca668ac95cc24c3b2794b0884acfcba2a76493cb2329b8e00d84eb1bbfdcdb2475064cc5b0fb0b52df849afc59b6399de44699db9dfda4d0c5f3c 0007-rockchip-boot-order.patch
b655dfd83c12925d5e90f317c97d8bca9f047df337202627bfe40e0ebaba79d8adc429575a04f5af531bcc2626521b517ea7b9026dbdffb54ba97316d1674cf9 0008-rockchip-boot-order-add-usb.patch
cc03b87e42ce0ade1d3ddd9eebc76304451c01c4ee2ea2f52aa572ab8a30d84960df4d47f14315d96943467793fccee2052f53ace9fbac059e30c86c749d7ccc 0009-rk3399-support-compressed-kernel.patch
e317f8527dbb3b8a40a45d20da6c42f8cfd98b968060d6b4f1fa5453736441d36d1048bdc4359af47c2129fa86b6d43b3e263ef282f5c7b2e54f702d8b6bd8b1 pine64.bmp"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

@@ -0,0 +1,77 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-generic-x86_64
# note: this could also support legacy boot in the future, e.g. with syslinux!
pkgdesc="Generic x86_64 system, with EFI"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
options="!check !archcheck"
depends="
alsa-ucm-conf
postmarketos-base
sof-firmware
systemd-boot
"
makedepends="devicepkg-dev"
source="
deviceinfo
modules-initfs
"
subpackages="
$pkgname-kernel-edge:kernel_edge
$pkgname-kernel-lts:kernel_lts
$pkgname-libva
$pkgname-mesa
$pkgname-vulkan
"
provides="device-tablet-x64uefi device-tablet-x86uefi"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
libva() {
install_if="$pkgname=$pkgver-r$pkgrel libva"
provides="device-tablet-x64uefi-libva device-tablet-x86uefi-libva"
depends="intel-media-driver libva-intel-driver mesa-va-gallium"
mkdir "$subpkgdir"
}
mesa() {
install_if="$pkgname=$pkgver-r$pkgrel mesa-gl"
provides="device-tablet-x64uefi-mesa device-tablet-x86uefi-mesa"
depends="mesa-dri-gallium"
mkdir "$subpkgdir"
}
kernel_edge() {
pkgdesc="Alpine Edge kernel"
provides="device-tablet-x64uefi-kernel-edge device-tablet-x86uefi-kernel-edge"
depends="linux-edge"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
kernel_lts() {
pkgdesc="Alpine LTS kernel"
provides="device-tablet-x64uefi-kernel-lts device-tablet-x86uefi-kernel-lts"
depends="linux-lts"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
vulkan() {
install_if="$pkgname=$pkgver-r$pkgrel vulkan-loader"
provides="device-tablet-x64uefi-vulkan device-tablet-x86uefi-vulkan"
depends="mesa-vulkan-intel"
mkdir "$subpkgdir"
}
sha512sums="
33f0450413c7b364390fdc715578b41389bced5ff69f04a2128155f5ad828ed0e1cc17a20b610eccf4bd99560e21be91e362faaa72e9decad4623f8669e8ab7a deviceinfo
d65ca12564ef032507c19359643794a14579fd1d065777f9042d40d38aad4d40d99c10aae9a3acd7799f4ad95651b6ca9d83335501d08869dc391f3050df4d1f modules-initfs
"
@@ -1,20 +1,23 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Various tablets with atom CPU"
deviceinfo_manufacturer="Various"
deviceinfo_codename="tablet-x64uefi"
deviceinfo_name="generic x86_64 system"
deviceinfo_manufacturer="generic"
deviceinfo_codename="generic-x86_64"
deviceinfo_year="1999"
deviceinfo_arch="x86_64"
deviceinfo_gpu_accelerated="true"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="800"
deviceinfo_screen_height="600"
deviceinfo_gpu_accelerated="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_boot_filesystem="fat16"
deviceinfo_kernel_cmdline="PMOS_FORCE_PARTITION_RESIZE"
deviceinfo_partition_type="gpt"
deviceinfo_boot_filesystem="fat32"
deviceinfo_generate_systemd_boot="true"
@@ -1,21 +1,22 @@
jbd2
mbcache
scsi_mod
sd_mod
sg
libata
sd
ahci
libahci
usb_storage
usb
xhci_hcd
ehci_hcd
uas
xhci_pci
i915
sdhci_acpi
mmc_core
mmc_block
ehci_pci
hid-multitouch
i2c_hid_acpi
i915
jbd2
libahci
libata
mbcache
mmc_block
mmc_core
scsi_mod
sd
sd_mod
sdhci_acpi
sg
uas
usb
usb_storage
xhci_hcd
xhci_pci
@@ -1,108 +0,0 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-tablet-x64uefi
pkgdesc="Various tablets with atom CPU"
pkgver=0.4
pkgrel=5
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
# pmb:strict: avoid grub-related install error during build with pmbootstrap
options="!check !archcheck pmb:strict"
depends="
postmarketos-base
sof-firmware
"
makedepends="
devicepkg-dev
grub
grub-efi
"
subpackages="
$pkgname-libva
$pkgname-kernel-lts:kernel_lts
$pkgname-kernel-edge:kernel_edge
$pkgname-vulkan
"
source="
deviceinfo
modules-initfs
grub_early.cfg
grub_edge.cfg
grub_lts.cfg
"
build() {
devicepkg_build $startdir $pkgname
grub-mkimage \
--config="$srcdir/grub_early.cfg" \
--prefix="" \
--output="bootx64.efi" \
--format="x86_64-efi" \
--compression="xz" \
\
all_video \
cat \
configfile \
disk \
echo \
efi_gop \
fat \
gzio \
help \
iso9660 \
linux \
ls \
normal \
part_gpt \
part_msdos \
search \
search_label \
test \
true
}
package() {
devicepkg_package $startdir $pkgname
install -Dm644 "$srcdir"/bootx64.efi \
"$pkgdir"/boot/EFI/Boot/bootx64.efi
}
libva() {
install_if="$pkgname=$pkgver-r$pkgrel libva"
depends="intel-media-driver libva-intel-driver mesa-va-gallium"
mkdir "$subpkgdir"
}
kernel_edge() {
pkgdesc="Alpine Edge kernel"
depends="linux-edge"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
install -Dm644 "$srcdir"/grub_edge.cfg \
"$pkgdir"/boot/grub/grub.cfg
}
kernel_lts() {
pkgdesc="Alpine LTS kernel"
depends="linux-lts"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
install -Dm644 "$srcdir"/grub_lts.cfg \
"$pkgdir"/boot/grub/grub.cfg
}
vulkan() {
install_if="$pkgname vulkan-loader"
depends="mesa-vulkan-intel"
mkdir "$subpkgdir"
}
sha512sums="
1035baaccf774d6db6166b3f13b7fe4ac709dc681c7e846c67d1394fcd30753430dac8751ddce5dd79c9ba1a1c3ad11dd47559b7fd13ea7b5d75aa30b8b9a7a4 deviceinfo
9606a2f61bfd9e0a2ea04fbe45e25093b702fd5b5cccf9f4f50768ee3b501251d8d3e1605485e5ec8f485b4bff7e44fe20d488f80736837654a9951391a97789 modules-initfs
0f9357d4eea089628fbceb1e3e96d21a3f4329aeb6743158a6f877f967ef274506404eba949d5f01b7e1adea149f9a3aef992a5e8cd4181f93ab00909b1c5ecd grub_early.cfg
1fcae6891028bc07051e6e6faf9dd3ec2304c6165f9df05198f28a7fa2ba85c1dd8d07b72a5122d9628b67a2b0096ac180a9a2de0f391f9ce850c07dc79ac857 grub_edge.cfg
e15beaf385a350a7c36be249cf9495e4622f7888c8def6ac47359ebd2ef2c994f954abec8ccb16b402269f949e6f6016d41711e6596f46ba3dad240f84ba163f grub_lts.cfg
"
@@ -1,2 +0,0 @@
search --no-floppy --set=root --label "pmOS_boot"
set prefix=($root)/grub
@@ -1,6 +0,0 @@
timeout=0
menuentry "postmarketOS" {
linux ($root)/vmlinuz-edge console=tty0 PMOS_NO_OUTPUT_REDIRECT
initrd ($root)/initramfs
}
@@ -1,6 +0,0 @@
timeout=0
menuentry "postmarketOS" {
linux ($root)/vmlinuz-lts console=tty0 PMOS_NO_OUTPUT_REDIRECT
initrd ($root)/initramfs
}
@@ -1,16 +0,0 @@
jbd2
mbcache
scsi_mod
sd_mod
sg
libata
sd
ahci
libahci
usb_storage
usb
xhci_hcd
ehci_hcd
uas
xhci_pci
ehci_pci
@@ -1,60 +0,0 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-tablet-x86uefi
pkgdesc="Various tablets with atom CPU"
pkgver=7
pkgrel=4
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
options="!check !archcheck"
depends="
alsa-ucm-conf
grub-x86
linux-lts
postmarketos-base
sof-firmware
"
makedepends="devicepkg-dev"
subpackages="
$pkgname-libva
$pkgname-nonfree-firmware:nonfree_firmware
"
source="
ath6kl.conf
deviceinfo
modules-initfs
grub.cfg
"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
install -D "$srcdir"/grub.cfg \
"$pkgdir"/boot/grub/grub.cfg
install -Dm644 "$srcdir"/ath6kl.conf \
-t "$pkgdir"/lib/modprobe.d/
}
libva() {
install_if="$pkgname=$pkgver-r$pkgrel libva"
depends="intel-media-driver libva-intel-driver mesa-va-gallium"
mkdir "$subpkgdir"
}
nonfree_firmware() {
pkgdesc="WiFi/BT firmware, used by some tablets"
depends="firmware-ath6kl"
mkdir "$subpkgdir"
}
sha512sums="
41bfee76f89b323afa642a2d96f18b33cb73fec28518873e1e3f7e05764d85afd7b620b1ef23fd8d43172fd1cc164056ed893f872fa1894eebafc7ce7b2030f1 ath6kl.conf
fa5610e95b58f8f24e8d6d1a77d12fe3f1ed04f42c35d1f94de77479316b9bd5933d3d7ac3413c986e41acf5aedef8322b28c191054774eb3b1da03b34d4a536 deviceinfo
63206caf9a86ddd6185b47a498f424b322bb926507e4ff91dedb5991a055343c0b0e33d1153e0ef91f016928254b3043da6f2dc0dd014755d2bd4ef32e5a5922 modules-initfs
2d951d71102181db85a2468fd770ee3a7958c06b14e27e52e0d4ff0e9b88f3ab3c5c9b15c8a938d1cd2ae0c94ad2aad7001f1b6fe943f96a38602085f481a4cf grub.cfg
"
@@ -1 +0,0 @@
options ath6kl_core heart_beat_poll=1000 recovery_enable=1
@@ -1,20 +0,0 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="Various tablets with atom CPU"
deviceinfo_manufacturer="Various"
deviceinfo_codename="tablet-x86uefi"
deviceinfo_arch="x86_64"
# Device related
deviceinfo_gpu_accelerated="true"
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="800"
deviceinfo_screen_height="600"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_boot_filesystem="fat16"
@@ -1,6 +0,0 @@
timeout=0
menuentry "postmarketOS" {
linux ($root)/vmlinuz-lts console=null
initrd ($root)/initramfs
}
+1 -1
View File
@@ -8,10 +8,10 @@ license="MIT"
arch="x86_64"
options="!check !archcheck"
depends="
gummiboot
linux-edge
linux-firmware-none
postmarketos-base
systemd-boot
"
makedepends="devicepkg-dev"
subpackages="