From 96a5f891ba32df3fafc735bac3fb72e059192c01 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 8 Jun 2018 00:10:21 +0000 Subject: [PATCH] Use origin device-tree --- .../barebox-env/init/global_bootargs | 1 + .../board/rpi2/barebox-env/init/rpi_dt | 4 + .../overlay/barebox-state-rpi.dtbo | Bin 931 -> 1655 bytes buildroot-external/board/rpi2/post-image.sh | 1 + ...3-drivers-of-bugfix-partition-fixups.patch | 34 ++++++ fdt/barebox-state-rpi.dtbo | Bin 931 -> 1655 bytes fdt/barebox-state-rpi.dtso | 69 +++++++++-- fdt/rpi-dwc.dtbo | Bin 551 -> 0 bytes fdt/rpi-dwc.dtso | 23 ---- fdt/rpi-v3d.dtbo | Bin 1744 -> 0 bytes fdt/rpi-v3d.dtso | 108 ------------------ scripts/update-dtb.sh | 6 - 12 files changed, 98 insertions(+), 148 deletions(-) create mode 100644 buildroot-external/board/rpi2/barebox-env/init/rpi_dt create mode 100644 buildroot-external/patches/barebox/0003-drivers-of-bugfix-partition-fixups.patch delete mode 100644 fdt/rpi-dwc.dtbo delete mode 100644 fdt/rpi-dwc.dtso delete mode 100644 fdt/rpi-v3d.dtbo delete mode 100644 fdt/rpi-v3d.dtso diff --git a/buildroot-external/barebox-env/init/global_bootargs b/buildroot-external/barebox-env/init/global_bootargs index a6643cbad..f2cf669cb 100644 --- a/buildroot-external/barebox-env/init/global_bootargs +++ b/buildroot-external/barebox-env/init/global_bootargs @@ -2,3 +2,4 @@ global linux.bootargs.zram="zram.enabled=1 zram.num_devices=3" global linux.bootargs.apparmor="apparmor=1 security=apparmor" +global linux.bootargs.misc="rootwait" diff --git a/buildroot-external/board/rpi2/barebox-env/init/rpi_dt b/buildroot-external/board/rpi2/barebox-env/init/rpi_dt new file mode 100644 index 000000000..a53c77a6f --- /dev/null +++ b/buildroot-external/board/rpi2/barebox-env/init/rpi_dt @@ -0,0 +1,4 @@ +#!/bin/sh + +memcpy -d /tmp/rpi.dtb 0x02008000 0 0x8000 +oftree -f -l /tmp/rpi.dtb diff --git a/buildroot-external/board/rpi2/barebox-env/overlay/barebox-state-rpi.dtbo b/buildroot-external/board/rpi2/barebox-env/overlay/barebox-state-rpi.dtbo index 3ceea4acc9db6a126f3eb4b464c59d6abb913d37..e8eefc5b7e657664d034ad80a93da4fc4cbbbf0d 100644 GIT binary patch literal 1655 zcmbVMy^_-~5SD>EIQ|Y8C}=34fZ{UF&jBF?WGLwZA?$@`s zZ$KlL+aM&SipBEeU=7xL`0eU~u^$x0Hn6d1XN2sZw`|M{`3A9+W)0pZZhx?7&#Z1NAmMFtD3bf=iv8Zi2lH)^+e}auQUVC|O9& z^69|$zT=0Tz6sM|w6*W|5kyw}_COznRB)~ zfbZAPKPX`fFZ8$EPrKLK*6oqqufZ5}Fg%T_?ok9U$g-#@*!Tw!f7aqKF;vZ&nN(G* z&nt?AOsMEaL;ikSK)G0tb?*S)T^z11ZM~Pste}R+f{}^_!3>s~JfUf-nAW|72?3_& zpIJQ@G-iS*HYde`=4lfO&!kz9jLvxiZ%J~@^3>^`DGSyZ+9;kfL?kJj(WNkU*Tx~L Ls;E=wFGKzUx1kN# delta 235 zcmey)vzT4u0`I@K3=GVR85kHWfV2sa)&OEbAQk{(5Xfg>VEQvrqgjv>$Pr4(EKW?y zNlgLCOio~wpV zSy3R4(N8N%OwUctD{(NiDoHF#Pc5-B0E&YEOid<2jnU+ARx?JU$#pD}a7!2_A7G8r kOiE17PR&bUfYR~BC5a`e@x>__`Nbs+Kq@(t0W8D-0NF7&Qvd(} diff --git a/buildroot-external/board/rpi2/post-image.sh b/buildroot-external/board/rpi2/post-image.sh index e8b0599d1..f1d52a18b 100755 --- a/buildroot-external/board/rpi2/post-image.sh +++ b/buildroot-external/board/rpi2/post-image.sh @@ -27,6 +27,7 @@ cp -r ${BINARIES_DIR}/rpi-firmware/overlays ${BOOT_DATA}/ # Update Boot options ( echo "kernel=barebox.bin" + echo "device_tree_address=0x02008000" echo "disable_splash=1" echo "dtparam=audio=on" echo "enable_uart=1" diff --git a/buildroot-external/patches/barebox/0003-drivers-of-bugfix-partition-fixups.patch b/buildroot-external/patches/barebox/0003-drivers-of-bugfix-partition-fixups.patch new file mode 100644 index 000000000..82937ab1e --- /dev/null +++ b/buildroot-external/patches/barebox/0003-drivers-of-bugfix-partition-fixups.patch @@ -0,0 +1,34 @@ +From cf05dfaa34d8502041aa2354f3b8c97ca4d250c9 Mon Sep 17 00:00:00 2001 +From: Pascal Vizeli +Date: Thu, 7 Jun 2018 17:36:00 +0000 +Subject: [PATCH 1/1] drivers: of: bugfix partition fixups + +If we load a new device tree for linux kernel with a diferent layout, +the fixup of partition going into endless loop. Exactly the of_find_property +function will never come back on a invalid device_node. + +My patch check, if the device will exists on device tree before we run the +fixup. + +Signed-off-by: Pascal Vizeli +--- + drivers/of/partition.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/of/partition.c b/drivers/of/partition.c +index aa6e601b7..17e420964 100644 +--- a/drivers/of/partition.c ++++ b/drivers/of/partition.c +@@ -140,6 +140,9 @@ static int of_partition_fixup(struct device_node *root, void *ctx) + if (!cdev->device_node) + return -EINVAL; + ++ if (!of_find_node_by_path(cdev->device_node->full_name)) ++ return -EINVAL; ++ + list_for_each_entry(partcdev, &cdev->partitions, partition_entry) { + if (partcdev->flags & DEVFS_PARTITION_FROM_TABLE) + continue; +-- +2.17.1 + diff --git a/fdt/barebox-state-rpi.dtbo b/fdt/barebox-state-rpi.dtbo index 3ceea4acc9db6a126f3eb4b464c59d6abb913d37..e8eefc5b7e657664d034ad80a93da4fc4cbbbf0d 100644 GIT binary patch literal 1655 zcmbVMy^_-~5SD>EIQ|Y8C}=34fZ{UF&jBF?WGLwZA?$@`s zZ$KlL+aM&SipBEeU=7xL`0eU~u^$x0Hn6d1XN2sZw`|M{`3A9+W)0pZZhx?7&#Z1NAmMFtD3bf=iv8Zi2lH)^+e}auQUVC|O9& z^69|$zT=0Tz6sM|w6*W|5kyw}_COznRB)~ zfbZAPKPX`fFZ8$EPrKLK*6oqqufZ5}Fg%T_?ok9U$g-#@*!Tw!f7aqKF;vZ&nN(G* z&nt?AOsMEaL;ikSK)G0tb?*S)T^z11ZM~Pste}R+f{}^_!3>s~JfUf-nAW|72?3_& zpIJQ@G-iS*HYde`=4lfO&!kz9jLvxiZ%J~@^3>^`DGSyZ+9;kfL?kJj(WNkU*Tx~L Ls;E=wFGKzUx1kN# delta 235 zcmey)vzT4u0`I@K3=GVR85kHWfV2sa)&OEbAQk{(5Xfg>VEQvrqgjv>$Pr4(EKW?y zNlgLCOio~wpV zSy3R4(N8N%OwUctD{(NiDoHF#Pc5-B0E&YEOid<2jnU+ARx?JU$#pD}a7!2_A7G8r kOiE17PR&bUfYR~BC5a`e@x>__`Nbs+Kq@(t0W8D-0NF7&Qvd(} diff --git a/fdt/barebox-state-rpi.dtso b/fdt/barebox-state-rpi.dtso index 4da58a623..733e0c108 100644 --- a/fdt/barebox-state-rpi.dtso +++ b/fdt/barebox-state-rpi.dtso @@ -5,13 +5,6 @@ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; fragment@0 { - target = <&sdhci>; - __overlay__ { - status = "disabled"; - }; - }; - - fragment@1 { target = <&sdhost>; __overlay__ { status = "okay"; @@ -20,7 +13,7 @@ #size-cells = <1>; compatible = "fixed-partitions"; - backend_state_sdhost: partition@22100000 { + backend_state: partition@22100000 { label = "state"; reg = <0x22100000 0x800000>; }; @@ -28,10 +21,64 @@ }; }; - fragment@2 { - target = <&state>; + + fragment@1 { + target-path = "/"; __overlay__ { - backend = <&backend_state_sdhost>; + state: state { + #address-cells = <1>; + #size-cells = <1>; + magic = <0xef98423f>; + compatible = "barebox,state"; + backend = <&backend_state>; + backend-type = "raw"; + backend-stridesize = <4048>; + + bootstate { + #address-cells = <1>; + #size-cells = <1>; + + system0 { + #address-cells = <1>; + #size-cells = <1>; + remaining_attempts@0 { + reg = <0x0 0x4>; + type = "uint32"; + default = <3>; + }; + priority@4 { + reg = <0x4 0x4>; + type = "uint32"; + default = <20>; + }; + }; + system1 { + #address-cells = <1>; + #size-cells = <1>; + remaining_attempts@8 { + reg = <0x8 0x4>; + type = "uint32"; + default = <0>; + }; + priority@c { + reg = <0xc 0x4>; + type = "uint32"; + default = <10>; + }; + }; + last_chosen@10 { + reg = <0x10 0x4>; + type = "uint32"; + }; + }; + }; + }; + }; + + fragment@3 { + target-path = "/aliases"; + __overlay__ { + state = "/state"; }; }; }; diff --git a/fdt/rpi-dwc.dtbo b/fdt/rpi-dwc.dtbo deleted file mode 100644 index 3f7b691d4d11c38448a1f78c76b15bc1d8b5d08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmZ8dOG?B*5UuzD2N_VooeO0ay0CFn#9?sZ!ZWxHoum_jNjh|QWJW=+;SoHJ7x4<} zt9&LC3tqo^Rn=A9^)>$aCfYb9q8X9*2|fe%fjxlj9r3bp2dCGnP4Jlgz=ZjE5aw66 zQ}n9Mi;YZjRk-_Ut+{p!*!_ipJADA3`*r%H)t>L`XJsBQFys(R1wviFIn{%gK0=d!;@Q>H@W7~x5j{t>Tf&POB)x)@M8*utbF2QVF zG5!*#i>kEESL&IE$iH6nOPV`r66NO2w)(rHQ0Jv|X^<&uN@yaZ$S7+?sItt`#HKH* r^^Hm>Eu1o@DxIas__>Z0C88*WTZlM~wcv6@%uo)p)=5`c;_dzc{_t9r diff --git a/fdt/rpi-dwc.dtso b/fdt/rpi-dwc.dtso deleted file mode 100644 index 6e5b61a5f..000000000 --- a/fdt/rpi-dwc.dtso +++ /dev/null @@ -1,23 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "brcm,bcm2708"; - - fragment@0 { - target = <&usb>; - #address-cells = <1>; - #size-cells = <1>; - __overlay__ { - compatible = "brcm,bcm2835-usb"; - reg = <0x7e980000 0x10000>; - interrupts = <1 9>; - dr_mode = "otg"; - g-np-tx-fifo-size = <32>; - g-rx-fifo-size = <256>; - g-tx-fifo-size = <512 512 512 512 512 256 256>; - status = "okay"; - }; - }; -}; - diff --git a/fdt/rpi-v3d.dtbo b/fdt/rpi-v3d.dtbo deleted file mode 100644 index b598d50b95cc1d2174ba7572edd466c94d3dcb96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1744 zcmbW2xlY4C5QZmQ;t*FPkZ1u33alhfLIR?oqN1ZgqOjKMO=884Bd=pYML|PBLBWIN zMR)~Z#!j>*vXzCECVPGU*E@$Z-u(ImSQ!IA8~ZElPtkVKcF?GO;QCTJ{PkO!%oedf zp|Kru|IFsT*{(O$q*ZNaCl|?6rB2AYz8FN;)nrZ@bjHRvHtb856~rR+*pp=uK>N#R z<)F`=XaU>8#FSPoS=Z58L$d6+lG&bclBe?YOl`eYBoEN&oi@?*-nWiq%FercR)0%d zzws~qb#49Tzw{|@^!#(Ktxvf+^*{NF;y^LhJEw)@-{L@b(DxHomZtvv98c?q?nU=I zuE>B_9G}qv*z)Rzato{MnWB|bGf4rG-n<+nAK#!Iq8*`aqtRN9W>SbcnuYhZtd9FQ z8p^c%lQ{0-S$7rn;kb-g*cH)bask|<^N6`uOs$A{P>fl`bQM!CVx(dkMa;8ennlcu zV$O@0SH-l7m^a0=^O$|~&#hu=)ftFkh=c0kPol11}v%xc~qF diff --git a/fdt/rpi-v3d.dtso b/fdt/rpi-v3d.dtso deleted file mode 100644 index 4ad0b70c9..000000000 --- a/fdt/rpi-v3d.dtso +++ /dev/null @@ -1,108 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; - - fragment@0 { - target = <&i2c2>; - - __overlay__ { - status = "okay"; - }; - }; - - fragment@1 { - target = <&fb>; - - __overlay__ { - status = "disabled"; - }; - }; - - fragment@2 { - target = <&pixelvalve0>; - - __overlay__ { - interrupts = <0x2 0xd>; - status = "okay"; - }; - }; - - fragment@3 { - target = <&pixelvalve1>; - - __overlay__ { - interrupts = <0x2 0xe>; - status = "okay"; - }; - }; - - fragment@4 { - target = <&pixelvalve2>; - - __overlay__ { - interrupts = <0x2 0xa>; - status = "okay"; - }; - }; - - fragment@5 { - target = <&hvs>; - - __overlay__ { - interrupts = <0x2 0x1>; - status = "okay"; - }; - }; - - fragment@6 { - target = <&hdmi>; - - __overlay__ { - interrupts = <0x2 0x8 0x2 0x9>; - status = "okay"; - }; - }; - - fragment@7 { - target = <&v3d>; - - __overlay__ { - interrupts = <0x1 0xa>; - status = "okay"; - }; - }; - - fragment@8 { - target = <&vc4>; - - __overlay__ { - status = "okay"; - }; - }; - - fragment@9 { - target-path = "/soc/dma"; - - __overlay__ { - brcm,dma-channel-mask = <0x7f35>; - }; - }; - - fragment@10 { - target = <&clocks>; - - __overlay__ { - claim-clocks = <0x22 0x23 0xf 0x10>; - }; - }; - - fragment@11 { - target = <&vec>; - - __overlay__ { - status = "okay"; - }; - }; -}; diff --git a/scripts/update-dtb.sh b/scripts/update-dtb.sh index 983d2ac42..dfeac5700 100755 --- a/scripts/update-dtb.sh +++ b/scripts/update-dtb.sh @@ -8,9 +8,3 @@ cp -f fdt/barebox-state-efi.dtb buildroot-external/board/ova/ dtc -@ -I dts -O dtb -o fdt/barebox-state-rpi.dtbo fdt/barebox-state-rpi.dtso cp -f fdt/barebox-state-rpi.dtbo buildroot-external/board/rpi2/barebox-env/overlay/ -dtc -@ -I dts -O dtb -o fdt/rpi-v3d.dtbo fdt/rpi-v3d.dtso -#cp -f fdt/rpi-v3d.dtbo buildroot-external/board/rpi2/barebox-env/overlay/ - -dtc -@ -I dts -O dtb -o fdt/rpi-dwc.dtbo fdt/rpi-dwc.dtso -#cp -f fdt/rpi-dwc.dtbo buildroot-external/board/rpi2/barebox-env/overlay/ -