From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: "Rafał Miłecki" <rafal@milecki.pl>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH V2] board/broadcom: add support for BCM4908 platform devices
Date: Thu, 13 Jan 2022 23:33:15 +0100 [thread overview]
Message-ID: <20220113223315.GN1477939@scaer> (raw)
In-Reply-To: <20211220045213.2210-1-zajec5@gmail.com>
Rafał, All,
On 2021-12-20 05:52 +0100, Rafał Miłecki spake thusly:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> BCM4908 is Broadcom's 64-bit platform with Broadcom's own Brahma-B53
> CPU(s). It's mostly used for home routers.
>
> Kernel config is a minimal setup required to support on-SoC blocks like
> NAND controller, Ethernet, switch, USB.
>
> To make kernels 5.12+ boot those boards require a hacky patch modifying
> hyp-stub.S. That booting problem will hopefully get fixes on day in
> upstream kernel code.
>
> There are many BCM4908 devices and all of them can be supported with the
> same kernel & rootfs. For that reason this board compiles DTB files for
> all 3 upstream supported devices. Compiling DTS files is cheap and it
> saves duplicating the same board code for every supported board.
>
> BCM4908 devices use Broadcom's own CFE bootloader which isn't properly
> opensourced. Available CFE sources are very old and cover only some
> ancient MIPS devices.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
[--SNIP--]
> diff --git a/board/broadcom/bcm4908/linux.config b/board/broadcom/bcm4908/linux.config
> new file mode 100644
> index 0000000000..446a0bdf83
> --- /dev/null
> +++ b/board/broadcom/bcm4908/linux.config
> @@ -0,0 +1,41 @@
> +CONFIG_BLK_DEV_INITRD=y
> +CONFIG_ARCH_BCM4908=y
The in-tree arm64 defconfig has support for CONFIG_ARCH_BCM4908, so
can't we use that in-tree defconfig rather than carry a custom config
file?
If it's just because some drivers are missing, maybe provide them as
a config fragment with just the symbols for those drivers.
> diff --git a/board/broadcom/bcm4908/patches/linux/0001-arm64-don-t-issue-HVC-on-boot.patch b/board/broadcom/bcm4908/patches/linux/0001-arm64-don-t-issue-HVC-on-boot.patch
> new file mode 100644
> index 0000000000..32e2b6330b
> --- /dev/null
> +++ b/board/broadcom/bcm4908/patches/linux/0001-arm64-don-t-issue-HVC-on-boot.patch
> @@ -0,0 +1,32 @@
> +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
> +Date: Thu, 12 Aug 2021 11:52:42 +0200
> +Subject: [PATCH] arm64: don't issue HVC on boot
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
Please use a git-formated patch, which you get with:
git format-patch --no-numbered
[--SNIP--]
> diff --git a/board/broadcom/bcm4908/readme.txt b/board/broadcom/bcm4908/readme.txt
> new file mode 100644
> index 0000000000..b918ab8477
> --- /dev/null
> +++ b/board/broadcom/bcm4908/readme.txt
> @@ -0,0 +1,37 @@
> +BCM4908
> +
> +Intro
> +=====
> +
> +This readme covers BCM4908 family of Broadcom SoCs. It includes:
> + - BCM4906
> + - BCM4908
> + - BCM49408
> +
> +BCM4908 is commonly used in home routers by multiple vendors.
> +
> +Booting is handled using closed source CFE bootloader. There is no U-Boot (or
> +any other) drop-in replacement. CFE supports booting over TFTP and from flash.
Out of curiosity, and definitely not needed for that patch: is there no
way to chain-boot? I.e. have CFE load a U-Boot, adn then that U-Boot
load kernel and so on.
> +How to build it
> +===============
> +
> + $ make broadcom_bcm4908_defconfig
> +
> + $ make
> +
> +How to boot using TFTP
> +======================
> +
> +When set into h (host) / c (tftp) mode CFE tries to boot image from a TFTP
I am not sure I grasped what this "h (host) / c (tftp) mode" means. Can
we expect users who have such a board to understand that?
> +server. That allows booting buildroot built binaries. There are 3 files CFE
> +looks for: kernel (Image), rootfs (cpio) and DTB. Exact filenames depend on CFE
> +configuration.
I would maybe add something like:
Inspect the logs of your TFTP server to see what files are
requested.
Otherwise I think this readme is good.
> +Booting from TFTP requires sharing 3 above files in TFTP server root dir.
> +
> +How to write to flash
> +=====================
> +
> +Writing to flash requires using a custom BCM4908 firmware image format. It isn't
> +supported yet.
> diff --git a/configs/broadcom_bcm4908_defconfig b/configs/broadcom_bcm4908_defconfig
> new file mode 100644
> index 0000000000..85307af053
> --- /dev/null
> +++ b/configs/broadcom_bcm4908_defconfig
> @@ -0,0 +1,9 @@
> +BR2_aarch64=y
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.13.9"
You will need to pin the linux-headers to that version too:
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_13=y
However, why do you want to stick to 5.13.x? Can't we use a more recent
version (5.15, or even the brand new 5.16)?
Regards,
Yann E. MORIN.
> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/broadcom/bcm4908/linux.config"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm4908/bcm4906-netgear-r8000p broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1 broadcom/bcm4908/bcm4908-asus-gt-ac5300"
> +BR2_TARGET_ROOTFS_CPIO=y
> --
> 2.31.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2022-01-13 22:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-20 4:52 [Buildroot] [PATCH V2] board/broadcom: add support for BCM4908 platform devices Rafał Miłecki
2022-01-13 22:33 ` Yann E. MORIN [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220113223315.GN1477939@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=rafal@milecki.pl \
--cc=thomas.petazzoni@bootlin.com \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox