logo: add mem logo
This is a fix for issue [746-000092] logo: Implement logo driver to showlogo from RAM
If CONFIG_LOGO_SECO_MEMLOGO is set, logo driver will get logo memory address and size from dtb. And if this points to a correct data, logo, loaded into memory will be displayed.
If some part of dtb node is missing or data in the memory is incorrect, a logo, which was selected by the driver before will be used.
It is also necessary to reserve memory to which logo is loaded.
Exampled dtb nodes:
seco-memlogo {
compatible = "seco,memlogo";
address = <0x14000000>;
size = <74501>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
logo_reserved: logo@14000000 {
reusable;
reg = <0x14000000 74501>;
};
};
Example script, which will generate logo from logo.png:
WIDTH=492
HEIGHT=150
pngtopam logo.png > logo.ppm
pnmpad -width $WIDTH -height $HEIGHT logo.ppm > logo_pad.ppm
pnmcolormap 224 logo_pad.ppm > colormap
pnmremap -floyd -plain -mapfile=colormap logo_pad.ppm > logo_plain.ppm
seco-pnmtologo -t clut224 -o logo.dat -f bin logo_plain.ppm
Example command to load logo into memory from U-Boot:
load mmc 1:3 0x14000000 logo.dat
Merge request reports
Activity
assigned to @mikhail.vanyulin
requested review from @jonas.hoeppner
Hello Jonas.
Last change was necessary as original version in combination with following commit: seco-ne/yocto/layers/meta-seconorth-machine@aefb0c47 resulted in boot hangup:
Console log
Starting kernel ...
[ 0.000000] Linux version 5.15.29-guf (ubuntu@srv1-lxc-1.rtsoft.de) (arm-seconorth-linux-gnueabi-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #41 SMP Tue Dec 5 17:58:43 CET 2023
[ 0.000000] Kernel command line: console=ttymxc0,115200 ip=dhcp root=/dev/nfs nfsroot=192.168.1.3:/opt/seco.kirk/,tcp,v3 rootflags=data=journal rootwait cma=128M loglevel=6 vt.global_cursor_default=0 vt.color=0xF7 fbcon=logo-pos:center,logo-count:1,rotate:0 earlyprintk earlycon
[ 0.000000] Unknown kernel command line parameters "earlyprintk", will be passed to user space.
[ 0.000000] random: get_random_bytes called from start_kernel+0x4c4/0x70c with crng_init=0
[ 0.002118] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.007855] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.011827] ... MAX_LOCK_DEPTH: 48
[ 0.016032] ... MAX_LOCKDEP_KEYS: 8192
[ 0.020353] ... CLASSHASH_SIZE: 4096
[ 0.024729] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.029140] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.033576] ... CHAINHASH_SIZE: 32768
[ 0.038039] memory used by lock dependency info: 4061 kB
[ 0.043408] memory used for stack traces: 2112 kB
[ 0.048218] per task-struct memory footprint: 1536 bytes
[ 0.616140] SCSI subsystem initialized
[ 0.620021] usb_phy_generic usbphynop1: supply vcc not found, using dummy regulator
[ 0.626440] usb_phy_generic usbphynop2: supply vcc not found, using dummy regulator
[ 1.462468] VFS: Disk quotas dquot_6.6.0
[ 1.520440] armv7-pmu pmu: hw perfevents: no interrupt-affinity property, guessing.
[ 1.909224] Initialise system trusted keyrings
[ 1.943580] NFS: Registering the id_resolver key type
[ 1.945950] Key type id_resolver registered
[ 1.950095] Key type id_legacy registered
[ 2.056853] Key type asymmetric registered
[ 2.058206] Asymmetric key parser 'x509' registered
[ 2.428780] SPI driver ads7846 has no spi_device_id for ti,tsc2046
[ 2.435116] SPI driver ads7846 has no spi_device_id for ti,ads7843
[ 2.441472] SPI driver ads7846 has no spi_device_id for ti,ads7845
[ 2.447685] SPI driver ads7846 has no spi_device_id for ti,ads7873
[ 2.631949] random: fast init done
[ 2.657194] random: crng init done
[ 2.670692] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[ 2.691567] GPT:Primary header thinks Alt. header is not at the end of the disk.
[ 2.699080] GPT:1714377 != 61120511
[ 2.702838] GPT:Alternate GPT header not at the end of the disk.
[ 2.708881] GPT:1714377 != 61120511
[ 2.712500] GPT: Use GNU Parted to correct GPT errors.
[ 2.723895] Key type dns_resolver registered
[ 2.736217] Registering SWP/SWPB emulation handler
[ 2.742189] Loading compiled-in X.509 certificatesadded 1 commit
- 56ac5c08 - arm:dts:imx6qdl-san: Add empty reserved-memory node
added 1 commit
- 44f8091e - fbdev: fbmem: Fix logo center image dx issue
added 6 commits
-
44f8091e...f6ec3c06 - 2 commits from branch
linux-5.15.29-guf
- c8f2fe12 - logo: add mem logo
- f5293958 - arm:dts:imx6qdl-san: Add empty reserved-memory node
- a23bd397 - arm:dts:nallino: Add empty reserved-memory node
- 7e900e1f - fbdev: fbmem: Fix logo center image dx issue
Toggle commit list-
44f8091e...f6ec3c06 - 2 commits from branch
159 break; 160 case LINUX_LOGO_CLUT224: 161 fallthrough; 162 case LINUX_LOGO_GRAY256: 163 logo_bpc = 8; 164 break; 165 } 166 167 logo_data_size = DIV_ROUND_UP(validate_logo->width * 168 validate_logo->height * 169 logo_bpc, 8); 170 171 logo_size_validate = sizeof(struct linux_logo); 172 logo_size_validate += logo_data_size; 173 logo_size_validate += validate_logo->clutsize; 174 if (logosize < logo_size_validate) changed this line in version 6 of the diff
- Resolved by Jonas Höppner
added 11 commits
-
7e900e1f...ee94ea87 - 7 commits from branch
linux-5.15.29-guf
- e30bc118 - logo: add mem logo
- 492a65c2 - arm:dts:imx6qdl-san: Add empty reserved-memory node
- 518566e8 - arm:dts:nallino: Add empty reserved-memory node
- 971afb3b - fbdev: fbmem: Fix logo center image dx issue
Toggle commit list-
7e900e1f...ee94ea87 - 7 commits from branch
Integration merge request: seco-ne/yocto/manifest!1597 (merged)
mentioned in merge request seco-ne/yocto/manifest!1597 (merged)