A investigative hack that makes (for example) head -r356529 boot and operate normally an RPi4B (finally!): protect all armstub8-gic.bin's loaded content from replacement by the kernel

Klaus Küchemann maciphone2 at googlemail.com
Thu Feb 13 20:57:21 UTC 2020



> Am 13.02.2020 um 17:50 schrieb Mark Millard via freebsd-arm <freebsd-arm at freebsd.org>:
> 
> There is the cpu-rlease-addr information that seems
> to refer to some 1st memory page content:
> 
>        cpus {
>                #address-cells = <0x00000001>;
>                #size-cells = <0x00000000>;
>                enable-method = "brcm,bcm2836-smp";
>                phandle = <0x000000be>;
>                cpu at 0 {
>                        device_type = "cpu";
>                        compatible = "arm,cortex-a72";
>                        reg = <0x00000000>;
>                        enable-method = "spin-table";
>                        cpu-release-addr = <0x00000000 0x000000d8>;
>                        phandle = <0x0000001d>;
>                };
>                cpu at 1 {
>                        device_type = "cpu";
>                        compatible = "arm,cortex-a72";
>                        reg = <0x00000001>;
>                        enable-method = "spin-table";
>                        cpu-release-addr = <0x00000000 0x000000e0>;
>                        phandle = <0x0000001e>;
>                };
>                cpu at 2 {
>                        device_type = "cpu";
>                        compatible = "arm,cortex-a72";
>                        reg = <0x00000002>;
>                        enable-method = "spin-table";
>                        cpu-release-addr = <0x00000000 0x000000e8>;
>                        phandle = <0x0000001f>;
>                };
>                cpu at 3 {
>                        device_type = "cpu";
>                        compatible = "arm,cortex-a72";
>                        reg = <0x00000003>;
>                        enable-method = "spin-table";
>                        cpu-release-addr = <0x00000000 0x000000f0>;
>                        phandle = <0x00000020>;
>                };
>        };
> 
> 


Although I didn’t have yet time to step into debugging just a sidenote :
, the above table shown from you is for bcm2836 
Where for bcm-2711 dtsi  :

cpu0: cpu at 0 {
                       device_type = "cpu";
                       compatible = "arm,cortex-a72";
                       reg = <0>;
                       enable-method = "spin-table";
                       cpu-release-addr = <0x0 0x000000d8>;
               };

               cpu1: cpu at 1 {
                       device_type = "cpu";
                       compatible = "arm,cortex-a72";
                       reg = <1>;
                       enable-method = "spin-table";
                       cpu-release-addr = <0x0 0x000000e0>;
               };

               cpu2: cpu at 2 {
                       device_type = "cpu";
                       compatible = "arm,cortex-a72";
                       reg = <2>;
                       enable-method = "spin-table";
                       cpu-release-addr = <0x0 0x000000e8>;
               };

               cpu3: cpu at 3 {
                       device_type = "cpu";
                       compatible = "arm,cortex-a72";
                       reg = <3>;
                       enable-method = "spin-table";
                       cpu-release-addr = <0x0 0x000000f0>;
               };
       };


Regards

Klaus



More information about the freebsd-arm mailing list