From 44e6a0c09050a2e13af2294a59aaac6b0bc707dd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 4 Dec 2024 18:51:45 +0000 Subject: Add libreboot branding/version to U-Boot bootflow Show it in the bootflow menu Signed-off-by: Leah Rowe --- ...oot-branding-version-on-the-bootflow-menu.patch | 213 +++++++++++++++++++++ ...oot-branding-version-on-the-bootflow-menu.patch | 213 +++++++++++++++++++++ 2 files changed, 426 insertions(+) create mode 100644 config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch create mode 100644 config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch (limited to 'config/u-boot') diff --git a/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch new file mode 100644 index 00000000..f913572f --- /dev/null +++ b/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch @@ -0,0 +1,213 @@ +From 4ff0f509aa28eb8e85f1c0c9929c63996c646bb8 Mon Sep 17 00:00:00 2001 +From: Leah Rowe +Date: Wed, 4 Dec 2024 18:20:19 +0000 +Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu + +Signed-off-by: Leah Rowe +--- + boot/bootflow_menu.c | 2 +- + drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes + 2 files changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c +index 84831915a2..8e26ec2aef 100644 +--- a/boot/bootflow_menu.c ++++ b/boot/bootflow_menu.c +@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt) + ret = scene_menu(scn, "main", OBJ_MENU, &menu); + ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100); + ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE, +- "U-Boot - Boot Menu", NULL); ++ "Libreboot 20241205 release (U-Boot Menu) https://libreboot.org/", NULL); + ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT); + + logo = video_get_u_boot_logo(); +diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp +index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644 +GIT binary patch +literal 27350 +zcmeI4X;4&Wy2qdHrW-_vf~Q+fvxtHMDuIZCglHm=fVhAxir~hgf>ENNF(W3?XpH+1 +zw}==uio$3#35sl^*F+S*+^So3t7fU1n$PoLKHXb0U#6y<|MQ++Xy|4+$n8^eeap7r +zKIil~zy3eV`@HYzCVj>4wvlMbK18wTU9&xOMXP)LkS)`eD*V$#TxIG3XQWs30+r8r5Z +zg_C89GDgvK|5-F+Vl2(^jiNcmI9lKvNArz|lx9q(#l}>MiIQplOqmi=acxsJNpBR8 +z4qXWv!7Z1ANPhWGVq`L7_~g`7&)^ +zDN{wBOjUT)Etjc22YMKf<8gtc2t16fc>GAx#5R(GZ{zWRBx^fKZ{nDQ8zjx>AZczF +z^y(%l?YAW5og*pZ5k4pSB|nfrS& +zANJDm@Y!_2vWQMw7traDG&&!;fEwgfYK(Y`j>TH(TwEwM&9Ty%`7)i0ilT2LDN|FrOgEOu)cT%GPm-uE-1<%~!Z`1E><#SB|(se#Y5b!$~s)#m9e +zp|95XEEb{(%vV*ll?nA4)6ZhjGoV7anXRlP>oSW8fTl{DgpufLPC-sF6Dq3&A^^2# +zV)!5vIsmn1VvEI>U}c)H8BsC;3Th6}3_>)M4bWF}fE*}5)6eX9-1&GW6M8+Qk)kK=177|9 +zPaSkN5kHQ86@X@51sKEVjww6%px!_{P%c7kIJW8Yb1%AU1a1eB97LQ>h^W#I11!-+_i`NT?bRg=Nx$ +z1<56AOCy+2)p-yg2;IRA>K(Xr;8IhX+7mMkk#YWll9JN(8`iOgY5*~&MaO(Rh>!6O +zT)NcMba@d@Y*HB}2r$E2Yk{|^tZXUf5o*SETplet<`Wl2A>XB@%a<=-**k^_3IHj* +zbp57H8_O$JAe7Yr@;SIotaB3D@WA)&x8LrC52~)daAIA=hO&+2Pkvc}z8Vu-EPjH~ +z6m8FfcDyFwUAc0l!H0A@b!Qf{2r@*hsCe?US3Mvu&c#)sKia_u2jGG4 +zs^Gi!4JR5jb!Im6hfjb0{6&uHQ{ciVrxC@D%);_rwc$a+3rjEw;HE0snDsi{oxT?g +zsMb-;$ftFm3+pz)`PldD>amH@ex0V&u7c8R^5=ULoHE3JLn~`G8)(W4v~=Xep%3-6 +zmv7+A0^TK&mu>1P)>ZKM|Ar-#kZxR>-eMR&uL%p^247z=>C|Q`qBr{E^|!8_u<`u4 +zGhZ#9G|30HR?Mxi4lf}-y%6yJWVK!lC)P2al34~CR}eDZ$x|neeR=rc+}X2Z0|NsB +zj1Dn}yd%X1rdGD_4|szo8xFIb=wm0|0Ow=A#*639d@b<4IGC6aKW9$L!W6XF0Fi!h +zT~|Z9zJhxPG2aWML6tFr3@FsQ>_~ieyDI8kJTLH$9#-%K90Q`+8SS?$IL!^-p?H5YA>S6%-62k1>y5U +zI^UTyr%oL^^5qu?-%W^*U)Wzh8)9sL!yE1Kf&yV*zjY{o5i(q9-%=fD%8 +z3-vtVVY0?}WiYNyy$8&P_Crpv%^TagJ32b=-NdVra@mh#Jo0zreD=KT%q(sIAs^2r +zF&o-cUjD?Uo*j=7e_WXk84cZnuO)l*d=`X9gIhd=u08Q3#=q@0bm4of9#7Wnc+Vd^ +zU@k}N>$`tD=QrIQot^jYwcJt>B1kW8@DRF;cl^lVLkANRe2I=NS8K{&z4!B-WTsCycz$tJL|G>1>Pnlbe{_OY>{gd +z5PXVp@3yquymkHYV-@!0Y0O?%K&9e4&ZC;h%WlMj?8dTd>AwHgfRD{o`k +zfuf+DeXqN#^X@%?mo-&QhDMF1a{*M;J9YGkZP;+9UYrQsQVw0t%bfV&d(4MnmfPf@ +zDH$1=nVH!c*%=wx+1bmo-WU1Wp4Ue6jHQAlP6Zngx+jrYjvi7fK6iL2DXB2-+EUKT +z8!I^R!S|HVXtfsz3a9J;s^)>bC`Pltu@N$!Bk_5zS>Sx7N@h_;H5QNMd(j6zlvjE; +zn4=!t93sQSx+RTFXvgDvnJYfGp_`I~yllf0&ezMUE#OEQiFrLWE8*Q=i?AcF_ynK7~Iix>{hdve(bmafeug{Zg2(DTcql@a1q>P&KzJcfZYRC-)v04&a%N#Xccbn+N8-a0pFOiU)Kd)X +zL4+}GwyhHQOj^9yvwHA7c0Q3=5W2`L9J;KVy}`ihBVm}205dDiCm?WkoaXwDB2=1A=i_4x2nY-ejE#+pQ}~4Mab`hmC>7rT +zx)*&@RL+DP1jBU9CKUZnN(U{Y&T}R{sHY4Y0|(uedX;nWVYmkE_T#iOpc%raIn;x7 +z*|@IOZEtTKXZ;3oDjS@NhOdL~iO@wo+COv=BJJ%x+JM$eAtCV +z75}4yj(zWb4^MUPVj;+Wh*zJXV34D#!Xlr*>*~@BA6K=RHUXg?7OA>By6)a>Q85c2 +zC!G-_HWy?*VO-3_mubYl_|R}cAz+`PUPmY7(-I#5#qu{>mqS;~#NXGBeu{vKaXGW_ +zD$sQ;@d5C*g4e}se9ZS)OMJ*NnGc2YA+a!C^JC^4!&jtUaVR4PiZwLk<-2!bTr~W$ +z`W0Vf45#xYLr;&g1bOe~P0&4Bjb*AaobXk@6?Xu!1c}g9mLS20;^tLfWDMsc$`NaP +zSc1F(^&YL(9N!e79^_N-inXPmo(!D$T6lf=(WBq4UR^Bd$8P~ag`tVQ=TQynJ!b0` +z7l&xd|B#`VDY3zHz+0m&K4j>0+eZ2Epz>;uiVczD2E064wL}5kVr~*bt$M!p9(-6#7}`g@xK~dmP3s5kinMjte1NeKzgjMxQT*j1Jr97^&`ZoMwOraO +zi!hoS)%qDwvxQ$j#@F4~3cOa}|AzvoVXtkk*iq;69{!wJ&FK +zp*LtDMV3|6?Oc+Vhpz*BYJdNo@)t|~JD$(w=_n7|11mSzRp4i9k=XxU#m?H@=x;(l +zdGGF>+`ovvR8dt{iT?NK&#eU@`hVc<Z}#VxFaLKY7E{j>{j=fa%YS_L^5s9TW3Bv8L{Dm*@Bio;(ZauBdxLXZ^i})< +z?=aEBUgx&*Z-_d+!UXY;JIiXz#C7<$o%$_Xi2kRAC~z(Q%FKV^NB*UXZrI2B>BjFd +h=Y>|w|C6Zk68;X)R-AjChtJK+n! + +literal 6932 +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 +z9iR4GOztDxf3x}P#xCR>I;RA +z0%vjMmxI}>FE4f$I14Y;bOtjr+*gYW3mne#SKZx=6rQZ{fDor>dfw84+x8mHUf +zwAQ*@wQj|6JJtLW#?^bQ0IyL?KDl`Dg9Wh6lQ-|8OiO`Von}|1z``iXD=~T(rHm{6 +zNGfR`t+6;47Uk*Hs@LS~Kwll+HScxOP8IoT)QR#og;6Ng%&4-E1O&8y8xRM&AR**ur7cX3TTr%{BI@A)?P_s5*>sX-Io_h{CDaDyj~aEo5`L8XOxIhS3N2n~ +zsA}_{rN8TN{K6|;{y;?YFLm9W3x7&d$x0U`Ii^Oh|&Rz7vDQCOyrTJvqmX}$?2_;ShamV9dqQ|@Rrt`**IXcwNdUlNd +zt5)rzDGLo6=Wtc3yVgzkYnEL4pR}xhd7U}3hPqm+FX(z}f%0Kmn!c%gxYN<5 +z>lc*|t59&ZC|Wt$O?iDu%d6$qln`knPh_R*9F@VtSkCPOvvZ!f6>bsL?7X02D4*Wn +z!5Cr|sFOm*Xtf;oQCYm4?FuPlBwHNRwY5-5t2lHQbb@-H7PFech~sJM90?YAoLQhi +zItS{^1vShCrq(iNuBPIj5v_7VhqF%QU6&LoZkMYlk6cr(v$D;Y?L4a&t<~9L$TpP} +zP-C9kB~3=(?QpAkuSuXy&D)0&AF58d8zwOy0#C3)u1xDJDp5PtCau&-t9R5JInm{4 +z;#hK9JB)9~*^36f)mcGlXl-p>2HizVaE=BU#?znqMEcNz*O)0yIU*xz7pGbsy|tjS +zQ~5}Dec{;-Pv$<~q$0Sj+))=m#ByeK?u=IL{H*7eKFpt5GXrEQw7EP7d3N`p`E^}& +zI4i2_>T9kR7nHaM=&&`i;i_q@bCo%np-J)Us3<6`q)c^XQ9*edSICpPpJ9J$ID*zR +zH&f;HV8xIxjm!w%9ko}>KdW@Pd0Kckxhl&lTy>qywcf4OmE~oX)ve3`N5#haj(f;h +zF~#d$)9HQb^dc>{vKwoueb;JDRsP1=z%xHwLU@AjV^vcqt*mNFC7jiR!KGA+zw(>P +zl^l0#u}Rg_y_{97qa0GN>ZtClAXZ=Ba-LxI<&;`geRXGtfKd5bY$Q?-IO5wr~-FM0HeWd +z9=q|}H<(Ddrq$uv{ol&bN;XNN-8P6-Rn(U7n4D`E!`N!8VTjmA7&Vthn?W;8*r!f6 +zZU3VhYgkxpqvw3u)EP$Ejz-r-=W)xo($Z%DHM9J59rLPvtouV$!^arC@iV0 +zu5WT1zG>}ne_2;uSyEV#OYeA{_ntngk~Hx)1Cw>o04vu$Pvw~7CkhH2FgvvZIWBnv +z?ef}iPfh!%$P+)YOZpxCk?cp^(KpGhikLFEhh_m~ +ztdjJgT@K0p!#%bB6k5Ri^kIxtx0?YYJXFzs#zf;gc}3E$LwnLqDYD}c;RW*iaf)^CVOrm>`!AqVv^@3^pvpbW5s+&-y*je4c&6rL_@|0 +zlsQeAstKMO7yB`+T+WGU9OqHDFe{!k-it{6N~S;JxzSN>H#4UB*2gc6)bJ2N#Vw=x*w^~EOV}? +z`s^&vog;GpNY9=BS=xNW@?%wJ?R$O_ZqWK;r}3^3fE~t5MIh3Q*N`Bj7_Te?u+{TI +zBwDi38i*~z{|rJfHW@Eo!ARu#)VrE`4NNfJ?S^2T@jf^dYm8UO5X2cTnS4{#Vnw}* +z-h-Z3*4}s5`>>EG>Ls@Kbv6tOjMv)U*V_?zUes%DIA)7_-|c<# +Date: Wed, 4 Dec 2024 18:20:19 +0000 +Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu + +Signed-off-by: Leah Rowe +--- + boot/bootflow_menu.c | 2 +- + drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes + 2 files changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c +index 84831915a2..8e26ec2aef 100644 +--- a/boot/bootflow_menu.c ++++ b/boot/bootflow_menu.c +@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt) + ret = scene_menu(scn, "main", OBJ_MENU, &menu); + ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100); + ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE, +- "U-Boot - Boot Menu", NULL); ++ "Libreboot 20241205 release (U-Boot Menu) https://libreboot.org/", NULL); + ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT); + + logo = video_get_u_boot_logo(); +diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp +index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644 +GIT binary patch +literal 27350 +zcmeI4X;4&Wy2qdHrW-_vf~Q+fvxtHMDuIZCglHm=fVhAxir~hgf>ENNF(W3?XpH+1 +zw}==uio$3#35sl^*F+S*+^So3t7fU1n$PoLKHXb0U#6y<|MQ++Xy|4+$n8^eeap7r +zKIil~zy3eV`@HYzCVj>4wvlMbK18wTU9&xOMXP)LkS)`eD*V$#TxIG3XQWs30+r8r5Z +zg_C89GDgvK|5-F+Vl2(^jiNcmI9lKvNArz|lx9q(#l}>MiIQplOqmi=acxsJNpBR8 +z4qXWv!7Z1ANPhWGVq`L7_~g`7&)^ +zDN{wBOjUT)Etjc22YMKf<8gtc2t16fc>GAx#5R(GZ{zWRBx^fKZ{nDQ8zjx>AZczF +z^y(%l?YAW5og*pZ5k4pSB|nfrS& +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 +h=Y>|w|C6Zk68;X)R-AjChtJK+n! + +literal 6932 +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 +z9iR4GOztDxf3x}P#xCR>I;RA +z0%vjMmxI}>FE4f$I14Y;bOtjr+*gYW3mne#SKZx=6rQZ{fDor>dfw84+x8mHUf +zwAQ*@wQj|6JJtLW#?^bQ0IyL?KDl`Dg9Wh6lQ-|8OiO`Von}|1z``iXD=~T(rHm{6 +zNGfR`t+6;47Uk*Hs@LS~Kwll+HScxOP8IoT)QR#og;6Ng%&4-E1O&8y8xRM&AR**ur7cX3TTr%{BI@A)?P_s5*>sX-Io_h{CDaDyj~aEo5`L8XOxIhS3N2n~ +zsA}_{rN8TN{K6|;{y;?YFLm9W3x7&d$x0U`Ii^Oh|&Rz7vDQCOyrTJvqmX}$?2_;ShamV9dqQ|@Rrt`**IXcwNdUlNd +zt5)rzDGLo6=Wtc3yVgzkYnEL4pR}xhd7U}3hPqm+FX(z}f%0Kmn!c%gxYN<5 +z>lc*|t59&ZC|Wt$O?iDu%d6$qln`knPh_R*9F@VtSkCPOvvZ!f6>bsL?7X02D4*Wn +z!5Cr|sFOm*Xtf;oQCYm4?FuPlBwHNRwY5-5t2lHQbb@-H7PFech~sJM90?YAoLQhi +zItS{^1vShCrq(iNuBPIj5v_7VhqF%QU6&LoZkMYlk6cr(v$D;Y?L4a&t<~9L$TpP} +zP-C9kB~3=(?QpAkuSuXy&D)0&AF58d8zwOy0#C3)u1xDJDp5PtCau&-t9R5JInm{4 +z;#hK9JB)9~*^36f)mcGlXl-p>2HizVaE=BU#?znqMEcNz*O)0yIU*xz7pGbsy|tjS +zQ~5}Dec{;-Pv$<~q$0Sj+))=m#ByeK?u=IL{H*7eKFpt5GXrEQw7EP7d3N`p`E^}& +zI4i2_>T9kR7nHaM=&&`i;i_q@bCo%np-J)Us3<6`q)c^XQ9*edSICpPpJ9J$ID*zR +zH&f;HV8xIxjm!w%9ko}>KdW@Pd0Kckxhl&lTy>qywcf4OmE~oX)ve3`N5#haj(f;h +zF~#d$)9HQb^dc>{vKwoueb;JDRsP1=z%xHwLU@AjV^vcqt*mNFC7jiR!KGA+zw(>P +zl^l0#u}Rg_y_{97qa0GN>ZtClAXZ=Ba-LxI<&;`geRXGtfKd5bY$Q?-IO5wr~-FM0HeWd +z9=q|}H<(Ddrq$uv{ol&bN;XNN-8P6-Rn(U7n4D`E!`N!8VTjmA7&Vthn?W;8*r!f6 +zZU3VhYgkxpqvw3u)EP$Ejz-r-=W)xo($Z%DHM9J59rLPvtouV$!^arC@iV0 +zu5WT1zG>}ne_2;uSyEV#OYeA{_ntngk~Hx)1Cw>o04vu$Pvw~7CkhH2FgvvZIWBnv +z?ef}iPfh!%$P+)YOZpxCk?cp^(KpGhikLFEhh_m~ +ztdjJgT@K0p!#%bB6k5Ri^kIxtx0?YYJXFzs#zf;gc}3E$LwnLqDYD}c;RW*iaf)^CVOrm>`!AqVv^@3^pvpbW5s+&-y*je4c&6rL_@|0 +zlsQeAstKMO7yB`+T+WGU9OqHDFe{!k-it{6N~S;JxzSN>H#4UB*2gc6)bJ2N#Vw=x*w^~EOV}? +z`s^&vog;GpNY9=BS=xNW@?%wJ?R$O_ZqWK;r}3^3fE~t5MIh3Q*N`Bj7_Te?u+{TI +zBwDi38i*~z{|rJfHW@Eo!ARu#)VrE`4NNfJ?S^2T@jf^dYm8UO5X2cTnS4{#Vnw}* +z-h-Z3*4}s5`>>EG>Ls@Kbv6tOjMv)U*V_?zUes%DIA)7_-|c<#