openwrt/package/kernel/brcm2708-gpu-fw/Makefile

113 lines
3.3 KiB
Makefile
Raw Normal View History

#
# Copyright (C) 2012-2016 OpenWrt.org
# Copyright (C) 2017 LEDE project
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=brcm2708-gpu-fw
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
PKG_VERSION:=2018-05-16
PKG_RELEASE:=0f5f899ccec1c2ef8bba02aa49700b4ec19b4199
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/rpi-firmware-$(PKG_RELEASE)
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
RPI_FIRMWARE_URL:=@GITHUB/raspberrypi/firmware/$(PKG_RELEASE)/boot/
RPI_FIRMWARE_FILE:=rpi-firmware-$(PKG_RELEASE)
define Download/LICENCE_broadcom
FILE:=$(RPI_FIRMWARE_FILE)-LICENCE.broadcom
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=LICENCE.broadcom
HASH:=ba76edfc10a248166d965b8eaf320771c44f4f432d4fce2fd31fd272e7038add
endef
$(eval $(call Download,LICENCE_broadcom))
define Download/bootcode_bin
FILE:=$(RPI_FIRMWARE_FILE)-bootcode.bin
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=bootcode.bin
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
HASH:=c9eb5258766fabf7127e790b257f106e2717f0ccaaed37544b970b0d113956fc
endef
$(eval $(call Download,bootcode_bin))
define Download/fixup_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup.dat
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
HASH:=8a6311e73d0f349be9b8424db0644fd8f48aaf721f3f2f487488c83d7316cbdf
endef
$(eval $(call Download,fixup_dat))
define Download/fixup_cd_dat
FILE:=$(RPI_FIRMWARE_FILE)-fixup_cd.dat
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=fixup_cd.dat
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
HASH:=973b008aae9711d57ddce4f058354fe5a0b4725dd825673f784a2e2754da1f28
endef
$(eval $(call Download,fixup_cd_dat))
define Download/start_elf
FILE:=$(RPI_FIRMWARE_FILE)-start.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start.elf
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
HASH:=8e77c4cce7e44ced609e5046dd55f19cb7656a8ce4694e733b7eb6ecab915fe1
endef
$(eval $(call Download,start_elf))
define Download/start_cd_elf
FILE:=$(RPI_FIRMWARE_FILE)-start_cd.elf
URL:=$(RPI_FIRMWARE_URL)
URL_FILE:=start_cd.elf
brcm2708: Update brcm2708-gpu-fw package Problem - rapsberry pi 3 b/b+ does not boot with bcm2710 images! How Raspberry Pi boots Actualy? When Raspberry is switched on GPU is activated. 1. GPU execute First stage bootloader from ROM. First stage bootloader mount the FAT boot partition on the SD card and execute second stage bootloader (bootcode.bin). 2. Second stage bootloader (bootcode.bin) activate SDRAM. Load the GPU firmware (start.elf). 3. GPU firmware (start.elf) a) display Rainbow splash. b) read firmware configuration file config.txt and split the RAM using fixup.dat. c) loads a cmdline.txt d) enables the CPU. e) loads the kernel image configurable via config.txt In your target/linux/brcm2708/image/config.txt 493 ## kernel (string) 494 ## Alternative name to use when loading kernel. 495 ## 496 #kernel="" it is not configured! But in your target/linux/brcm2708/image/Makefile 75 KERNEL_IMG := kernel8.img 76 DEVICE_TITLE := Raspberry Pi 3B/3B+ you have kernel8.img GPU Firmware search order by default for a PI 3 is: kernel8.img if found boot in 64 bit mode kernel8-32.img if found boot in 32 bit mode kernel7.img if found boot in 32 bit mode kernel.img if found boot in 32 bit mode But a PI 2 will start the search from kernel7.img and a PI 1 only looks for kernel.img. Оbviously the kernel has been found. But something goes wrong and the device is restarted. In your package/kernel/brcm2708-gpu-fw/Makefile 11 PKG_NAME:=brcm2708-gpu-fw 12 PKG_VERSION:=2017-08-08 13 PKG_RELEASE:=e7ba7ab135f5a68b2c00a919ea9ac8d5528a5d5b boot loader is 10 monts old. In conclusion, the best way to solve the problem is to update the boot loader! Fixup_cd.dat and start_cd.elf files are not necessary. These are used when GPU memory is set to 16 MB, which disables some GPU features. I did not remove them just in case! cheers Signed-off-by: Christo Nedev <christo.nedev@gmail.com> (backported from c335649629e641209a3539209defffeea090ad8f)
2018-06-01 14:23:21 +00:00
HASH:=25223b479b7aca1d74c6f7a1829aba69fd14906ca5b25ae12571fe71ea2c5a4a
endef
$(eval $(call Download,start_cd_elf))
define Package/brcm2708-gpu-fw
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_brcm2708
TITLE:=brcm2708-gpu-fw
DEFAULT:=y if TARGET_brcm2708
endef
define Package/brcm2708-gpu-fw/description
GPU and kernel boot firmware for brcm2708.
endef
define Build/Prepare
rm -rf $(PKG_BUILD_DIR)
mkdir -p $(PKG_BUILD_DIR)
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-LICENCE.broadcom $(PKG_BUILD_DIR)/LICENCE.broadcom
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-bootcode.bin $(PKG_BUILD_DIR)/bootcode.bin
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-fixup.dat $(PKG_BUILD_DIR)/fixup.dat
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-fixup_cd.dat $(PKG_BUILD_DIR)/fixup_cd.dat
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start.elf $(PKG_BUILD_DIR)/start.elf
cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start_cd.elf $(PKG_BUILD_DIR)/start_cd.elf
endef
define Build/Compile
true
endef
define Package/brcm2708-gpu-fw/install
true
endef
define Build/InstallDev
$(CP) $(PKG_BUILD_DIR)/bootcode.bin $(KERNEL_BUILD_DIR)
$(CP) $(PKG_BUILD_DIR)/LICENCE.broadcom $(KERNEL_BUILD_DIR)
$(CP) $(PKG_BUILD_DIR)/start.elf $(KERNEL_BUILD_DIR)
$(CP) $(PKG_BUILD_DIR)/start_cd.elf $(KERNEL_BUILD_DIR)
$(CP) $(PKG_BUILD_DIR)/fixup.dat $(KERNEL_BUILD_DIR)
$(CP) $(PKG_BUILD_DIR)/fixup_cd.dat $(KERNEL_BUILD_DIR)
endef
$(eval $(call BuildPackage,brcm2708-gpu-fw))