-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
#6771
Add board BananaPi F3
#6771
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So many patches and 2 million lines of code as well as some blobs 🤯
Since this PR is adding a whole new family, using only one commit `[Add board BananaPi F3] might not do the whoel thing justice :)
Maybe do at least two commits instead of a huge single one (add family, then add board).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe these blobs are better suited inside the packages/blobs
directory?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can safely move the firmware into armbian/firmware, including this elf file. It would still need to be available for the kernel build process and if moving it into packages/blobs
makes people happier, that's fine by me.
I'll be honest. "and I'm not trying to be a dick" If the commit isn't acceptable because of its size, it can just be rejected and closed. Submitting the PR in TWOS will be the same amount code, but just making me do extra work. I was asked if I could do the PR, so I did so. If its size is a problem, than someone else can pick it up and redo it how ever they see fit. I've spent enough time working on this :) Peace. |
Sorry, I wrote this in a way that can be easily misunderstood 😅 I was simply surprised whe I opened this PR that says "Add board x" and it was much larger than I expected, since the last few "add board x" PRs that I opened were basically just a board file 😄
It makes the history cleaner, as well as git blame: When someone hovers over a line and sees that this was added by bananapi they might be confused. But when it says "add family keystone-k1", it's instantly clear that this line was part of the initial family addition. Just let me know and I'll do the work for you 😄
I don't think size is a problem neccessarily. When this board reaches mainline, probably 95% of the patches and blobs can be removed again so it's not a permament thing.
Appreciated! Btw I have tested to build this board's kernel with the latest mainline 6.1 version. "Only" 9 of the patches are failing to apply. So whoever did these patches can likely port them over to the latest kernel version in a comparatively low amount of time, compared to the time it took to make all these patches :) (Before any misunderstanding happens, no I'm not saying you should do this work) |
Feel free to fixup whatever you want. As for application of the patches further up the branch. I've been slowly working on that. Around rev .28 the PCIe becomes non-functional, so I stopped at that point. SpacemiT recently submitted a v1.0.3 to their github, which is apart of this PR, but I have yet to test it and see if that fixes anything up the line. Overall though the board becomes slightly unstable after 6.1.15. There is this, so by 2027 we should be good. I guess ;) |
Firmware package was incorrectly marked as machine dependent. This was fixed in radxa-pkg/aic8800#12, causing the file name to change. Signed-off-by: ZHANG Yuntian <yt@radxa.com>
SoC: SpacemiT Keystone K1 Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Based on the SpacemiT Keystone K1 SoC
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
MODULES_CURRENT was working, not sure what happened? Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
I did (mainly splitting the initial commit into two), but can't push to your branch, so here you go: https://github.com/armbian/build/tree/BPI-F3-001 😄
Ah that's a shame, but maybe they will be able to improve it soon.
That's awesome! Even i fit's just a first step, this is an important one :) |
As long as all the work is in this new branch, you can just open a new PR and we can close this one. |
47f4b58
to
d728322
Compare
No need, it just needed a sync :) Done. |
PR armbian:main from pyavitz:BPI-F3-001 Maybe it's better to take the first steps here: |
Stupid question. Why family: |
It's my bad. The short of it is; I was working out of two WORK-DIR and for reasons changed it to keystone in the second. I ended up going with the second WORK-DIR and forgot to change it back to |
@The-going What do we wanna call it? There is also BOARDFAMILY. Should we keep that the same or change it? |
Good. I'll take that as a basis. All the main work is done here. When splitting commits for the kernel, I got more than 100 patches.
I think |
If you wanna take over the PR that's fine by me. |
Maybe I put it wrong. As for my job, I would prefer to do patches for the kernel, u-boot. |
Are there any objections? |
Well besides changing the BOARD and LINUXFAMILY and renaming some bits, not much else to do on that front concerning the build system. In the future we may want to add some of the extra firmware and services, but that can be done after. As for the patching you are welcome to clean that up. I only ask we keep it on EXTLINUX. It is more practical than using the ENV file. Unless you have some idea on how to make the boot.cmd file functional in its place? |
If we keep the EXTLINUX bit we can boot from NVMe without much effort.
Basically erase the eMMC, flash u-boot to it, flash an img or transfer an SD install to the NVMe, pull the SD and it will then boot from NVMe. This should also work using SPI once its figured out. |
Let's start making pull requests from our repositories to the branch: |
My gitfoo is not all that amazing. Can you handle this? I made the change you requested. |
There is no correct or wrong approach, at least comparing the two approaches. Armbian is currently doing Trunk Based Development: https://trunkbaseddevelopment.com/ Also, since I'm already posting links, I'm just gonna leave this here since this (or similar posts) helped me personally on my journey 😄 : |
No problems!
Thank you. I see and will try to make an image assembly.
Nevertheless, you made the right move yourself. If I had sent the changes to this auxiliary branch from the very beginning,
I raise both hands for this document. |
@pyavitz Which commit do the kernel patches correspond to? No need to worry. I figured it out. |
Progress.
I had to revert a few things to get NVMe to come up though. |
@pyavitz I can't find some files after applying all the patches to the kernel tree: |
As far as I know they aren't actually required to bring up the board. Unless you know something I don't? The driver source for them is also HUGE, just like the |
This driver is questionable as well |
@The-going As for |
@pyavitz Alternatively, we can do the same as sunxi: |
The kernel build is successful, but:
Compilation on VM ubuntu-22.04
@pyavitz Which compiler (version) was used in your case? |
I saw: |
Indeed; Ubuntu Noble |
GCC11 is too old, you need to use GCC13 (which comes with Ubuntu 24.04) or GCC14. Just tested to build a minimal Sid image, it compiles just fine: Build command: Compiler:
Edit: (Don't use Debian Trixie, doesn't currently work because of missing packages, only Debian Sid builds fine) |
@pyavitz Patrick, you're doing great. Good job. P.S. My kernel patches are more strongly separated. |
Thanx.
Wow. You are way more patient than me. As an aside, we've been trying to figure out this horrid load avg problem it currently has. So far we've discovered if you remove |
Does this mean you won't be making any changes to this PR? |
This means that I do not plan to change, add, or modify patches for the kernel in this pull request. But I want to correct the story a little, if you don't mind. |
I only ask as I am thinking about submitting another PR that is more segmented "and closing this one" and adding the BT firmware to armbian/firmware. Which I will then follow up with a $CURRENT linux patch set that will get us up to v6.1.95.
|
Good. If you've already done it, then I'm all for it. And leave this one for comparison for now. |
@pyavitz Patrick, then please make commits for the files separately: |
Sounds nice!
Looks good! Most important is imo the differentiation between the addition of the "Spacemit K1" SoC and the addition of the board "BananaPi F3" (which is what I did in the beginning) |
v2 of this PR: #6800 This one can be closed. |
Congratulations! |
Information:
https://docs.banana-pi.org/en/BPI-F3/BananaPi_BPI-F3
https://gitee.com/bianbu-linux
Boot log: https://paste.armbian.com/ucabodotet.yaml
Linux dmesg: https://paste.armbian.com/exagihupok.yaml
Currently booting from SPI is an unknown.
Flashing u-boot to eMMC: (This is not apart of the PR and needs to be added in the future.)
Tested:
Bluetooth and Wifi (useless without an ANT)
Ethernet (1 and 2)
PCIe
USB
HDMI
Debug UART
The only IMG I was able to build and test on was Ubuntu Noble Minimal. Not sure if that is a limitation of RISCV in the builder or a problem elsewhere. Neither
Debian Sidor Ubuntu Noble Standard would build without error.NOTE:
One major difference between this build and the others available else where is the use of SYSLINUX/EXTLINUX instead of the ENV file.