Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add board BananaPi F3 (Platform SpacemiT) v2 #6800

Closed
wants to merge 28 commits into from

Conversation

pyavitz
Copy link
Collaborator

@pyavitz pyavitz commented Jun 25, 2024

This picks up from where we left off: #6771

Added Linux Legacy and Current.

  • Legacy: 6.1.15
  • Current: 6.1.95

Wireless has been given its own function and patch directory.
Bluetooth firmware added to armbian/firmware.
esos.elf moved to: packages/blobs/riscv64/spacemit/

Host machine used for builds: Ubuntu Noble (aarch64)
Images tested: Ubuntu Noble Minimal and Debian Sid


Information:
https://docs.banana-pi.org/en/BPI-F3/BananaPi_BPI-F3
https://gitee.com/bianbu-linux

Flashing u-boot to eMMC: (This is not apart of the PR and needs to be added in the future.)

echo 0 > /sys/block/mmcblk2boot0/force_ro
sleep .50
dd if="bootinfo_emmc.bin" of="/dev/mmcblk2boot0" bs=512 conv=notrunc
dd if="FSBL.bin" of="/dev/mmcblk2boot0" bs=512 seek=1 conv=notrunc
dd if="FSBL.bin" of="/dev/mmcblk2boot0" bs=512 seek=512 conv=notrunc
dd if="fw_dynamic.itb" of="/dev/mmcblk2" bs=512 seek=1280 conv=notrunc
dd if="u-boot.itb" of="/dev/mmcblk2" bs=512 seek=2048 conv=notrunc
sync

Tested:
Bluetooth and Wifi (useless without an ANT) (bluetooth is iffy)
Ethernet (1 and 2)
PCIe
USB
HDMI (LEGACY)
Debug UART

NOTE:
One major difference between this build and the others available else where is the use of SYSLINUX/EXTLINUX instead of the ENV file.

BUGS:
HDMI currently broke on CURRENT. The screen just displays red.

[    5.132172] [drm:dpu_init] *ERROR* dpu_init wait cfg ready done timeout
[    5.132883] [drm:dpu_isr] *ERROR* Under Run! DPU_Mclk = 0, DPU BW = 0

Patrick Yavitz added 14 commits June 25, 2024 10:22
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
SpacemiT

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
This gets compiled into the kernel and embedded in the initramfs.
It will also be available on the finished img at /lib/firmware.

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Tag: 1.3
Source: https://gitee.com/bianbu-linux/opensbi
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Branch: v2022.10
Source: https://gitee.com/bianbu-linux/uboot-2022.10
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Linux 6.1.15

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Linux 6.1.y

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
@pyavitz pyavitz added the size/large PR with 250 lines or more label Jun 25, 2024
@pyavitz pyavitz requested review from a team and igorpecovnik as code owners June 25, 2024 18:19
@github-actions github-actions bot added Hardware Hardware related like kernel, U-Boot, ... Framework Framework components Patches Patches related to kernel, U-Boot, ... labels Jun 25, 2024
@pyavitz pyavitz mentioned this pull request Jun 25, 2024
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
@The-going
Copy link
Contributor

 ____  ____  _   _____ _____ 
| __ )|  _ \(_) |  ___|___ / 
|  _ \| |_) | | | |_    |_ \ 
| |_) |  __/| | |  _|  ___) |
|____/|_|   |_| |_|   |____/ 
                             
Welcome to Armbian_community 24.8.0-trunk Trixie with Linux 6.1.95-current-spacemit

No end-user support: built from trunk & unsupported (trixie) userspace!

System load:   40%              Up time:       0 min
Memory usage:  4% of 3.72G      IP:            192.168.100.101
CPU temp:      41�°C            Usage of /:    7% of 15G

leo@bananapif3:~$ armbianmonitor -m
Two CPU clusters are available for monitoring
Stop monitoring using [ctrl]-[c]
Time    CPU_cl0/CPU_cl1  load %cpu %sys %usr %nice %io %irq   Tcpu  C.St.

15:22:54  1600/1600 MHz  2.65  13%   3%   3%   0%   6%   0%  40,0 �°C  0/4
15:22:59  1600/1600 MHz  2.60   0%   0%   0%   0%   0%   0%  38,0 �°C  0/4
15:23:04  1600/1600 MHz  2.55   0%   0%   0%   0%   0%   0%  38,0 �°C  0/4
15:23:09  1600/1600 MHz  2.59   0%   0%   0%   0%   0%   0%  39,0 �°C  0/4
15:23:14  1600/1600 MHz  2.54   0%   0%   0%   0%   0%   0%  37,0 �°C  0/4

Very good job.
I don't have anything that I can add to this pull request.
I approve.

@ColorfulRhino
Copy link
Collaborator

Nice one 👍

Nit: The commit subjects should reflect if the commit is for either Banana Pi F3 or for the SoC Family (Spacemit K1).
I can reword them later, easy task :)

Patrick Yavitz added 5 commits June 26, 2024 08:39
legacy: k1-x_deb1.dts

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
k1-bananapi-f3.dts

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Removed bluetooth service and function as they are no longer
required.

Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
@amazingfate
Copy link
Contributor

I just tried the rtl8852bs driver with armsom sige5 and rk's 6.1 kernel and made it work with patch:

diff --git a/lib/functions/compilation/patch/drivers_network.sh b/lib/functions/compilation/patch/drivers_network.sh
index 43a8c7a89..c9b011cf7 100644
--- a/lib/functions/compilation/patch/drivers_network.sh
+++ b/lib/functions/compilation/patch/drivers_network.sh
@@ -345,7 +345,7 @@ driver_rtw88() {

 driver_rtl8852bs() {
        # BananaPi F3 Realtek 8852B SDIO Wireless driver
-       if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" == spacemit ]]; then
+       if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" == spacemit || "$LINUXFAMILY" == rk35xx ]]; then
                display_alert "Adding" "Realtek 8852B SDIO Wireless driver" "info"
                process_patch_file "${SRC}/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
                process_patch_file "${SRC}/patch/misc/rtl8852bs/002-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
diff --git a/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch b/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch
index b5936cf44..8ff1b7f13 100644
--- a/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch
+++ b/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch
@@ -784,8 +784,8 @@ index 000000000000..8794b98d980c
 +CONFIG_PLATFORM_AML_S905 = n
 +CONFIG_PLATFORM_AML_S905_L3A = n
 +CONFIG_PLATFORM_HUANGLONG = n
-+CONFIG_PLATFORM_ARM_ROCKCHIP = n
-+CONFIG_PLATFORM_SPACEMIT = y
++CONFIG_PLATFORM_ARM_ROCKCHIP = y
++CONFIG_PLATFORM_SPACEMIT = n
 +
 +########### CUSTOMER ################################
 +

@ColorfulRhino
Copy link
Collaborator

ColorfulRhino commented Jun 28, 2024

Updating legacy is not gonna be a big event. Pull the patch, remove the Makefile and DTS files that don't concern us, make sure it applies in the correct order and that's about it. It will take more time to get it merged, than it will be to get it done.

What's against using vendor's KERNELSOURCE instead a mega patchset? This would mean almost no maintenance at all since stuff gets pulled automatically. This is what other vendor kernels do. Have you tested it?

But if I were to download one image and had to decide between two kernels, an outdated one (6.1.15) and a recent one (6.1.95) , I would without hesitation choose the up-to-date one, if only for the fixes and security updates 😄
So imo energy is best focused on one of those since difference is marginal.

The problem with the repo is spoken about here; BPI-SINOVOIP/pi-linux#2

I don't get it, maybe we're talking about different things 😄 i just didn't understand this or what or who Leonid is:

You can just tell me for example this:
Leonid, make a set of patches for the 6.6 or 6.9 kernel, we won't get there soon.

@The-going
Copy link
Contributor

I don't quite understand, what do you mean?

What's against using vendor's KERNELSOURCE instead a mega patchset?

If you want to talk about this topic, then please write me a private message on the forum @going

Copy link
Contributor

@joekhoobyar joekhoobyar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know nothing about the spacemit board family

# SpacemiT K1 octa core RISC-V SoC 2GB/4GB RAM 8GB/16GB eMMC 4x USB3 2x GbE
BOARD_NAME="Banana Pi F3"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER=""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this supposed to be blank?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't plan to be the official maintainer, so I left it empty. Do you want the job?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having it empty is correct -- Igor's secret script will PR updates to it later. Not-having it will block such machinery from working

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the board does not have a maintainer attached, shouldn't it be .csc then?

@pyavitz
Copy link
Collaborator Author

pyavitz commented Jun 28, 2024

@amazingfate

Would you like me to make this adjustment?

diff -Naur armbian.orig/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch armbian/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch
--- armbian.orig/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch	2024-06-28 13:38:14.548085819 -0400
+++ armbian/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch	2024-06-28 13:20:34.453319175 -0400
@@ -785,7 +785,7 @@
 +CONFIG_PLATFORM_AML_S905_L3A = n
 +CONFIG_PLATFORM_HUANGLONG = n
 +CONFIG_PLATFORM_ARM_ROCKCHIP = n
-+CONFIG_PLATFORM_SPACEMIT = y
++CONFIG_PLATFORM_SPACEMIT = n
 +
 +########### CUSTOMER ################################
 +
diff -Naur armbian.orig/lib/functions/compilation/patch/drivers_network.sh armbian/lib/functions/compilation/patch/drivers_network.sh
--- armbian.orig/lib/functions/compilation/patch/drivers_network.sh	2024-06-28 13:38:12.512084887 -0400
+++ armbian/lib/functions/compilation/patch/drivers_network.sh	2024-06-28 13:32:29.336411221 -0400
@@ -344,8 +344,8 @@
 }
 
 driver_rtl8852bs() {
-	# BananaPi F3 Realtek 8852B SDIO Wireless driver
-	if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" == spacemit ]]; then
+	# Realtek 8852B SDIO Wireless driver
+	if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" =~ ^(rk35xx|spacemit)$ ]]; then
 		display_alert "Adding" "Realtek 8852B SDIO Wireless driver" "info"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/002-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
@@ -355,6 +355,10 @@
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/006-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/007-update-rtw_regd_init-for-kernel-v6.1.0.patch" "applying"
 	fi
+	if [[ "$LINUXFAMILY" == rk35xx ]]; then sed -i "s/CONFIG_PLATFORM_ARM_ROCKCHIP = n/CONFIG_PLATFORM_ARM_ROCKCHIP = y/g" \
+		"$kerneldir/drivers/net/wireless/realtek/rtl8852bs/Makefile"; fi
+	if [[ "$LINUXFAMILY" == spacemit ]]; then sed -i "s/CONFIG_PLATFORM_SPACEMIT = n/CONFIG_PLATFORM_SPACEMIT = y/g" \
+		"$kerneldir/drivers/net/wireless/realtek/rtl8852bs/Makefile"; fi
 }
 
 driver_rtl88x2cs() {

@amazingfate
Copy link
Contributor

@amazingfate

Would you like me to make this adjustment?

diff -Naur armbian.orig/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch armbian/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch
--- armbian.orig/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch	2024-06-28 13:38:14.548085819 -0400
+++ armbian/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch	2024-06-28 13:20:34.453319175 -0400
@@ -785,7 +785,7 @@
 +CONFIG_PLATFORM_AML_S905_L3A = n
 +CONFIG_PLATFORM_HUANGLONG = n
 +CONFIG_PLATFORM_ARM_ROCKCHIP = n
-+CONFIG_PLATFORM_SPACEMIT = y
++CONFIG_PLATFORM_SPACEMIT = n
 +
 +########### CUSTOMER ################################
 +
diff -Naur armbian.orig/lib/functions/compilation/patch/drivers_network.sh armbian/lib/functions/compilation/patch/drivers_network.sh
--- armbian.orig/lib/functions/compilation/patch/drivers_network.sh	2024-06-28 13:38:12.512084887 -0400
+++ armbian/lib/functions/compilation/patch/drivers_network.sh	2024-06-28 13:32:29.336411221 -0400
@@ -344,8 +344,8 @@
 }
 
 driver_rtl8852bs() {
-	# BananaPi F3 Realtek 8852B SDIO Wireless driver
-	if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" == spacemit ]]; then
+	# Realtek 8852B SDIO Wireless driver
+	if linux-version compare "${version}" ge 6.1 && [[ "$LINUXFAMILY" =~ ^(rk35xx|spacemit)$ ]]; then
 		display_alert "Adding" "Realtek 8852B SDIO Wireless driver" "info"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/001-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/002-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
@@ -355,6 +355,10 @@
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/006-Realtek-8852B-SDIO-Wireless-driver.patch" "applying"
 		process_patch_file "${SRC}/patch/misc/rtl8852bs/007-update-rtw_regd_init-for-kernel-v6.1.0.patch" "applying"
 	fi
+	if [[ "$LINUXFAMILY" == rk35xx ]]; then sed -i "s/CONFIG_PLATFORM_ARM_ROCKCHIP = n/CONFIG_PLATFORM_ARM_ROCKCHIP = y/g" \
+		"$kerneldir/drivers/net/wireless/realtek/rtl8852bs/Makefile"; fi
+	if [[ "$LINUXFAMILY" == spacemit ]]; then sed -i "s/CONFIG_PLATFORM_SPACEMIT = n/CONFIG_PLATFORM_SPACEMIT = y/g" \
+		"$kerneldir/drivers/net/wireless/realtek/rtl8852bs/Makefile"; fi
 }
 
 driver_rtl88x2cs() {

That's great!

The related defconfig will need to be modified. That is beyond
the scope of this PR.

Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
@github-actions github-actions bot added the BSP Board Support Packages label Jun 29, 2024
@pyavitz
Copy link
Collaborator Author

pyavitz commented Jun 29, 2024

@amazingfate
d737fcc

Patrick Yavitz added 5 commits June 29, 2024 19:26
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
@ColorfulRhino
Copy link
Collaborator

I've been working on an update, stay tuned 😄
I'll send an updated PR soon with a collaborative branch.

@pyavitz
Copy link
Collaborator Author

pyavitz commented Jul 1, 2024

#6850

@pyavitz pyavitz closed this Jul 1, 2024
@The-going
Copy link
Contributor

The-going commented Jul 1, 2024

@pyavitz Maybe you shouldn't have closed it?
And just continue

@pyavitz
Copy link
Collaborator Author

pyavitz commented Jul 1, 2024

@pyavitz Maybe you shouldn't have closed it? And just continue

What's the point? Another PR was opened. If that is the approach that best fits Armbians needs, than so be it.

@pyavitz pyavitz reopened this Jul 1, 2024
@pyavitz pyavitz closed this Jul 1, 2024
@The-going
Copy link
Contributor

What's the point?

Patrick, I suggest we just continue working on this branch in your repository.
If you have a desire to continue in your plans.

@The-going
Copy link
Contributor

We will just do something while the community decides how to formalize and accept it.

@pyavitz
Copy link
Collaborator Author

pyavitz commented Jul 1, 2024

What's the point?

Patrick, I suggest we just continue working on this branch in your repository. If you have a desire to continue in your plans.

I just want one of these PR's to be accepted so that we can close the door on this. This could have been accepted days ago and adjustments made after the fact.

Now we are at v3 and we are downloading from gitee and also pulling in a wireless repo? All to save 100MBs give or take on our armbian/build git clone. Unfortunately now we are downloading even more to build the kernel and wireless driver.

This seems counterproductive to me; but... whatever. I'm sick of looking at this PR.

@igorpecovnik
Copy link
Member

I'm sick of looking at this PR.

It is also going beyond my (any of) concentration to review it ...

@The-going

I had a discussion with @pyavitz and @ColorfulRhino an hour ago regarding this PR. This is new SoC and its not expected that everything is pushed to perfection at the time of adding. There was a lot of discussions in those PRs and this is good, but let's not fragment this further.

I will merge v3 of this PR, so we can make it available for more people that has hw. Also its easier to keep track when contributions are smaller. HW will remain unsupported / WIP until its decided otherwise.

If image can be built and it boots with "some" functionality, I suggest its merged like "now".

@ColorfulRhino
Copy link
Collaborator

ColorfulRhino commented Jul 1, 2024

I didn't realize there were more discussions going on here 😅

I apologize if I annoyed anyone, that was not my intention. I also apologize if my earlier comments were not clear enough and led to misunderstandings. I will refrain from further comments on this topic but would like to explain my perspective on the size issue.

Now we are at v3 and we are downloading from gitee and also pulling in a wireless repo? All to save 100MBs give or take on our armbian/build git clone. Unfortunately now we are downloading even more to build the kernel and wireless driver.

A general user who does not have any RISCV board is actually downloading less, not more. The build framework only downloads the kernel and driver when needed, which is consistent with the behavior of most boards and board families.

Imagine if every vendor kernel and driver were patched-in using patches instead of being downloaded from repositories like https://github.com/armbian/linux-rockchip or the driver repos. This would significantly increase the repo size, potentially pushing it over 1GB. If someone wants to clone the repo to build an image for their RaspberryPi or OrangePi, they would have to download all the other unnecessary components. By downloading from repos dynamically, we avoid this issue. Additionally, the caching in Armbian works really well, thanks to whoever developed this.

This could have been accepted days ago and adjustments made after the fact.

For smaller adjustments, I fully agree.
However, it's important to note that Git stores all its history. If a large file, like a 2GB video, is accidentally committed to the repo, even if deleted later, the repo size will remain above 2.25GB forever unless the history is rewritten, which is not trivial.

Returning to the example of patching-in all kernels and drivers, this approach would mean that all past kernels and drivers, even those deleted, would bloat the repo size due to Git's history storage. We already face this issue with some old blobs in the armbian/build git history. These files contribute to unnecessary repo size because of design choices made years ago (not blaming anyone; Armbian was likely much smaller back then, and its current popularity was hard to foresee 😄). GitHub recommends keeping repository sizes ideally below 1GB.

Larger repository sizes can also slow down Git operations. For instance, working within the full Linux kernel repo can be very slow, and my IDE takes several seconds to display file histories and git blame lines. This is, of course, an extreme example.

In summary, this is a complex topic, but I hope my explanation clarifies why size matters (at least in the context of Git), why I intervened and spent way too much time and effort on a family/board that I don't even own, and why we need to take the future (5+ years) into account for certain design choices.

@The-going
Copy link
Contributor

I understand everything perfectly.
I just asked to combine this PR as it is into a separate branch so that we can send changes there
and discuss in parallel what is ugly or not suitable and what would be better to do.

After discussion, it would be possible to make version 3 to merge into the main branch.

Even if we add 3 gigabytes of new files and 1000 commits to this branch, after deleting it,
the size of the git will decrease by these 3 gigabytes.
I thought it was obvious.

What's done is done.

@pyavitz
Copy link
Collaborator Author

pyavitz commented Jul 2, 2024

A general user who does not have any RISCV board is actually downloading less, not more. The build framework only downloads the kernel and driver when needed, which is consistent with the behavior of most boards and board families.

I understand the argument and agree to an extent. I had made a comment "not sure if it was here or to Igor" that the wireless driver patch set was really large and would be better suited in a repo. With that said, the other patches don't amount to very much

ls -lh patches/spacemit/bsp/6.1
total 17M

I'm fairly certain we are gonna be downloading way more from gitee :)

The CURRENT patch dir is 16M. I'm not a mathematician, but if you add those two numbers together it doesn't seem like we are adding much to armbian/build. Plus. we are adding an whole new Platform. It is bound to take up space.

As to the argument of "this will affect other people", well this is a builder after all. Everytime I git clone this repo I am pulling whatnots someone else put here. Pretty sure no one is gonna lose sleep over 33MB.

@ColorfulRhino
Copy link
Collaborator

ColorfulRhino commented Jul 3, 2024

The CURRENT patch dir is 16M. I'm not a mathematician, but if you add those two numbers together it doesn't seem like we are adding much to armbian/build. Plus. we are adding an whole new Platform. It is bound to take up space.

I do agree with you that concerning disk space, 16MB is not a lot in todays standards. But this will add up over the years, different families, different branches, then when bumping someone copies instead of renames and so on. If you do this for lets say 5 different families over 3 branches (5x3x16=240MB, very simplified dumb example), it might still not seem much when only looking at disk space. But for Git, these numbers are pretty big, especially when added up over 5, 10, 20 years 😄

To put this into perspective, the spacemit patch set is now the 2nd largest one, with the biggest one being sunxi-6.1 which is only so huge because it includes a 14MB driver patch. The 3rd largest is only half the size at around 8MB. Most patch folders are below 1MB. The total size of the upstream U-Boot repo since 2005 is 228MB.
I am simply trying to think about the future and do my best that browsing the repo will feel snappy even if Armbian grows 10x in popularity. If there's a route that might mean slightly more work in the short term, but will benefit the long term, I will always take it :)

I will refrain from further commenting on the topic now, but I hope this clears some things up on my perspective.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BSP Board Support Packages Framework Framework components Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more Work in progress Unfinished / work in progress
Development

Successfully merging this pull request may close these issues.

8 participants